Yashveer Singh
Connect
<- All posts
Performance Optimization10 min read

Critical CSS: When to Bother, When to Skip

Critical CSS is the technique of inlining the styles needed for the above the fold content directly in the HTML, so the page can render without waiting for an external stylesheet. In 2018 it was a top tier performance win. In 2026 modern frameworks and HTTP 2 have absorbed most of the value. The manual work still pays off in specific cases. For most teams it is no longer the priority it once was.

Written by Yashveer Singh, founder of Yashveer Labs.

What you actually need to know

  • Modern frameworks handle most of what critical CSS used to do.
  • Manual extraction is worth it in specific cases, not as a default.
  • Reduce total CSS first. Critical extraction is a later step.
  • Tools like critical and penthouse automate the work.
  • The trade off is faster first paint versus total bytes.
StackCritical CSS work needed
Next.js with TailwindUsually no manual work
Next.js with traditional CSSSometimes, depending on size
Static site generatorOften automated
Custom build without frameworkOften yes
Highly optimized landing pageYes

The core argument

Critical CSS was one of the strongest performance levers of the 2018 era. The page would wait for an external stylesheet to load before rendering. Inlining the above the fold styles meant the page could render immediately. The improvement to Largest Contentful Paint was dramatic.

The landscape has changed. Modern frameworks like Next.js inline critical CSS automatically for server rendered pages. HTTP 2 and HTTP 3 reduce the cost of multiple file fetches. CSS bundles produced by Tailwind and other modern tools are small enough that the render blocking impact is reduced. The manual critical CSS work that used to be table stakes is now an optimization that fits specific cases.

The cases that still benefit are real. Static marketing pages outside the application framework. Landing pages where every millisecond matters because conversion is the metric. Custom build pipelines that do not have framework support for inlining. For these cases, the manual work pays back.

For most B2B SaaS application pages, the optimization is not the priority. The team gets more value from reducing the total CSS, improving the JavaScript bundle, optimizing images, and tightening the server response time. The critical CSS work would produce a small additional gain after those bigger wins have been captured.

When to bother

Page typeCritical CSS effort worth it?
Marketing landing pageOften yes
Static blogSometimes, if framework does not inline
B2B SaaS dashboardUsually no
E commerce product pageYes, conversion sensitive
E commerce checkoutYes
Auth pagesUsually no
Internal adminNo

How much does this cost

The investment to set up automatic critical CSS extraction is roughly a sprint of work for a team without it. The ongoing cost is the build complexity. The savings show up on the specific pages where render blocking CSS was the bottleneck.

Features the CSS optimization must have

  • Small total CSS through purging and tree shaking.
  • Above the fold extraction for the pages where it matters.
  • Async loading of below the fold styles.
  • Long lived caching with content hashed filenames.
  • Compression with gzip or brotli.
  • No render blocking external CSS for above the fold.

Expert opinion

Critical CSS was once the top of the performance optimization list. It has moved down. Modern frameworks have absorbed most of the win. The teams that still spend time on it are usually optimizing pages where every millisecond matters and the framework is not handling it for them. For most teams there are higher leverage wins available. The priorities have changed and the playbook has not always kept up.

>

Yashveer Singh, founder of Yashveer Labs

How this played out on a real project

A client team had read a 2018 performance article and was about to invest a sprint into critical CSS extraction. We measured first. Their LCP was 2.4 seconds. The CSS was already inlined by Next.js. The actual bottleneck was a large hero image that was not optimized.

We pointed the sprint at the hero image instead. AVIF format. Proper sizing. Preload hints. The LCP dropped to 1.6 seconds. The critical CSS work would have produced a fraction of that improvement.

The team would have spent a week getting a small win. They spent two days getting a large one. The lesson was to measure before optimizing.

For more on the related work, see largest contentful paint the metric that changes conversions and image optimization at scale AVIF WebP responsive images.

Common mistakes teams make

  1. Investing in critical CSS without measuring whether CSS is the bottleneck.
  2. Manual extraction when the framework already inlines it.
  3. Inlining so much CSS that the total payload grows.
  4. No async load of below the fold styles.
  5. Treating critical CSS as required regardless of context.
  6. Optimizing CSS when JavaScript or images are the actual bottleneck.
  7. No measurement of LCP before and after.
  8. Following 2018 era advice in 2026.

A measurement first plan

  1. Step one. Measure LCP and the bottleneck.
  2. Step two. Check whether the framework already inlines critical CSS.
  3. Step three. If CSS is render blocking, decide whether to invest.
  4. Step four. If yes, automate the extraction in the build.
  5. Step five. Measure again. Confirm the improvement.

For more on the related work, read largest contentful paint the metric that changes conversions and font loading the subtle discipline that improves LCP. On the broader frontend side, bundle size the quiet killer of mobile web performance is the natural next read.

FAQ

Frequently asked

Author

Why I am built for this project type

I have worked on five production systems before turning eighteen. That is not a flex. That is a statement of capability. Yashveer Singh, founder of Yashveer Labs. The work in this article is the work I do on a weekly basis. If you are facing the problem I just described, I do not need to be sold on solving it. I need to be told the constraints.

Related reading