How can you inline critical CSS to improve initial page load time?
Jun 25, 2025 am 12:46 AMInlining critical CSS speeds up initial page load by embedding essential styles directly in HTML. 1. Identify critical CSS for above-the-fold content using tools like Penthouse or plugins. 2. Inline these styles in a
Inlining critical CSS is one of the more effective and straightforward ways to speed up your page’s initial load. The idea is simple: instead of making the browser wait for an external stylesheet to download, you embed the essential styles needed for the above-the-fold content directly into the HTML. This reduces render-blocking resources and gets something on screen faster.
Here’s how to actually do it well:
1. Identify What Counts as “Critical” CSS
Not all CSS is created equal — especially when it comes to what users see first. Critical CSS refers to the styles required to render the top portion of your webpage (the part visible without scrolling).
To extract this:
- Use tools like Penthouse, critical (from Addy Osmani), or even Puppeteer scripts.
- If you're using a static site generator or build tool, there are plugins for Gatsby, Next.js, and others that automate this process.
Pro tip: Don’t guess what’s critical — test with real pages and actual viewport sizes. Mobile and desktop views often need different sets of critical styles.
2. Inline the Critical Styles in
Once you’ve extracted the critical CSS, place it inside a <style></style>
tag in the section of your HTML.
<head> <style> /* Your critical CSS here */ body { font-family: sans-serif; } h1 { color: #333; } /* ... more critical styles */ </style> </head>
This way, the browser can start rendering the page immediately without waiting for the full stylesheet to load.
Important: Keep this block lean. Overloading it defeats the purpose. Focus only on what’s needed to paint the initial view.
3. Load the Rest of the CSS Asynchronously
After inlining the critical CSS, you still need the rest of your styles. But you don’t want them to block rendering anymore.
One common approach is to load non-critical CSS asynchronously using JavaScript or a media
attribute trick:
<link rel="stylesheet" href="non-critical.css" media="print" onload="this.media='all'">
Or use a small script that loads CSS after the critical part has been handled.
The goal here is to ensure the main content shows up fast, while the rest of the styles load behind the scenes.
4. Regenerate Critical CSS When Needed
Your critical CSS isn’t set in stone. Every time your layout or content structure changes, especially above the fold, you should regenerate the critical CSS.
Some things to watch out for:
- New components added to the top of the page
- Changes in fonts or layout grids
- Dynamic content that affects styling
If you’re using a CMS or framework, look into automation tools that re-extract critical CSS during builds.
That's basically how you inline critical CSS effectively. It’s not overly complicated, but it does require some maintenance and testing to make sure everything keeps working smoothly as your site evolves.
The above is the detailed content of How can you inline critical CSS to improve initial page load time?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

There are three ways to selectively include CSS on a specific page: 1. Inline CSS, suitable for pages that are not frequently accessed or require unique styles; 2. Load external CSS files using JavaScript conditions, suitable for situations where flexibility is required; 3. Containment on the server side, suitable for scenarios using server-side languages. This approach can optimize website performance and maintainability, but requires balance of modularity and performance.

Flexboxisidealforone-dimensionallayouts,whileGridsuitstwo-dimensional,complexlayouts.UseFlexboxforaligningitemsinasingleaxisandGridforprecisecontroloverrowsandcolumnsinintricatedesigns.

The HTML popover attribute transforms elements into top-layer elements that can be opened and closed with a button or JavaScript. Popovers can be dismissed a number of ways, but there is no option to auto-close them. Preethi has a technique you can u

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

In the following tutorial, I will show you how to create Lottie animations in Figma. We'll use two colorful designs to exmplify how you can animate in Figma, and then I'll show you how to go from Figma to Lottie animations. All you need is a free Fig

We put it to the test and it turns out Sass can replace JavaScript, at least when it comes to low-level logic and puzzle behavior. With nothing but maps, mixins, functions, and a whole lot of math, we managed to bring our Tangram puzzle to life, no J

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

No,CSSdoesnothavetobeinlowercase.However,usinglowercaseisrecommendedfor:1)Consistencyandreadability,2)Avoidingerrorsinrelatedtechnologies,3)Potentialperformancebenefits,and4)Improvedcollaborationwithinteams.
