← Back to all posts

Web Performance Tips That Actually Matter | Note-Tech

A browser DevTools performance panel showing a fast page load waterfall

There’s a lot of performance advice on the internet. Most of it won’t move your Core Web Vitals. Here are five techniques that consistently produce measurable improvements.

1. Lazy-Load Everything Below the Fold

<img src="hero.jpg" alt="Hero" loading="eager" />
<img src="section-2.jpg" alt="Section 2" loading="lazy" />

Use loading="eager" only for the LCP image. Everything below the fold gets loading="lazy". This alone often cuts Time to Interactive by 30–40 %.

2. Inline Critical CSS

Your render-blocking CSS is likely delaying paint. Extract the styles needed for above-the-fold content, inline them in <style>, and load the full stylesheet asynchronously:

<style>/* critical above-the-fold styles */</style>
<link rel="preload" href="/styles.css" as="style" onload="this.rel='stylesheet'" />

3. Subset Your Fonts

Loading a full variable font can cost 300 KB. Use unicode-range subsetting to load only the characters you actually use. Google Fonts’ &text= parameter does this automatically.

4. Use HTTP/2 Push Carefully

HTTP/2 server push sounds great in theory. In practice, push resources that are already cached waste bandwidth. Use <link rel="preload"> instead—it has the same priority hints without the cache-collision problem.

5. Split Your Bundles

A single 500 KB JS bundle means users wait for code they may never execute. Route-based code splitting with dynamic import() ships only what the current page needs.

const HeavyWidget = lazy(() => import('./HeavyWidget'));

Conclusion

These five changes are measurable, targeted, and applicable to virtually every production site. Pick the one with the worst current metric and start there.