Your visitors are staring at a blank white screen — and they have no idea why your site feels broken. They clicked a link, waited, and waited some more, while nothing appeared. Most of them will not wait a second time.
Here is the good news: learning how to fix render blocking resources in WordPress usually takes about five minutes. A handful of CSS and JavaScript files force the browser to download them before showing a single pixel — a good plugin clears most of them with two clicks.
What Are Render Blocking Resources?
A render blocking resource is any CSS or JavaScript file the browser must download and process before painting the first thing on screen — stylesheets in your page’s <head> and scripts without defer or async. Until they arrive, your visitor sees nothing, no matter how fast your hosting is.
Key takeaway: your page is not slow because of your content. It is slow because the browser is waiting on files your visitor cannot even see yet.
That delay hits First Contentful Paint and Largest Contentful Paint, both Core Web Vitals — a confirmed Google ranking signal. Fix the blocking files, and your LCP often drops by a full second or more.
Could not find the old “Eliminate render-blocking resources” warning? You are not imagining things. As of Lighthouse 13, it lives inside the “Render-blocking requests” insight. Same files, same fix — new name.
How to Find Render Blocking Resources on Your Site
Run PageSpeed Insights at pagespeed.web.dev and open the “Render-blocking requests” insight: it lists every blocking file and the time you would save. Google Fonts, jQuery, sliders, and page-builder CSS are the usual offenders. Test a real page, not just your homepage.
Key takeaway: never guess which files to fix. Let Lighthouse hand you the list.
How to Fix Render Blocking Resources in WordPress With a Plugin (5 Minutes)
For the fastest result with the least risk, start with a caching plugin. Pick one plugin below to eliminate render blocking resources in WordPress.
- WP Rocket (~$59/year for one site) — the simplest paid option. Turn on “Load JavaScript deferred” and “Optimize CSS delivery” under File Optimization.
- FlyingPress (~$59/year for one site) — a strong all-in-one alternative with built-in critical CSS and a 14-day free trial.
- LiteSpeed Cache (free) — the best free choice on LiteSpeed servers, which many shared hosts run.
- Autoptimize (free) — a lightweight free option: enable JS deferral and “Eliminate render-blocking CSS.”
You need exactly two settings on. First, defer JavaScript: the browser downloads scripts in the background and runs them after the page renders. Second, remove unused CSS / optimize CSS delivery: the plugin inlines the CSS your first screen needs (critical CSS) and loads the full stylesheets afterward.
Then clear every cache and re-run PageSpeed Insights. Stale cache is the number-one reason people think the fix “did not work.”
Key takeaway: the plugin fix is two toggles, not a weekend project.
Real-World Example: A Blog That Went From 4.2s to 1.8s LCP
Take a typical small business blog: WordPress, Elementor, a homepage slider, Google Fonts, and a chat widget. PageSpeed Insights flagged 11 render blocking requests and a mobile LCP of 4.2 seconds. The owner enabled “Load JavaScript deferred” and “Optimize CSS delivery” in WP Rocket, then excluded the chat widget. The next test showed LCP at 1.8 seconds — a 2.4-second gain from two toggles and one exclusion.
That is the real benefit: visitors who see your content instead of a white screen.
The Manual Code Path: Defer JavaScript in WordPress Without a Plugin
Prefer no new plugin? Defer JavaScript in WordPress with a small snippet in your child theme’s functions.php or a code-snippets plugin:
function techcoff_defer_scripts( $tag, $handle, $src ) {
if ( is_admin() ) return $tag;
if ( false === strpos( $src, 'jquery-core' ) ) {
$tag = str_replace( '<script ', '<script defer ', $tag );
}
return $tag;
}
add_filter( 'script_loader_tag', 'techcoff_defer_scripts', 10, 3 );
This defers scripts, not CSS — stylesheets need a different approach, such as inlining critical CSS and loading the rest with media="print" onload="this.media='all'". Test every page type afterward — a late script can break menus, sliders, and forms.
Key takeaway: the manual path gives you total control — and total responsibility. Not comfortable reading your browser console? Stick with the plugin fix.
Remove Unused CSS in WordPress
Deferring JavaScript is only half the job. Bloated CSS is the other half — page builders, themes, and plugins load stylesheets for features your page never uses.
To remove unused CSS in WordPress safely, use your plugin’s built-in tool: WP Rocket’s “Remove Unused CSS” and LiteSpeed Cache’s “Generate Critical CSS” inline the CSS your first screen needs and delay the rest. Delete plugins you no longer use, and never delete CSS by hand — guessing which rules are “unused” is how layouts break.
Plugin vs Manual Fix: Which Should You Choose?
| Factor | Plugin Fix | Manual Code Fix |
|---|---|---|
| Time to set up | 5–10 minutes | 30–60 minutes |
| Cost | Free to ~$59/year | Free |
| Skill needed | None | Can edit theme files |
| Handles unused CSS | Yes | No |
| Risk | Low | Medium |
| Best for | Most site owners | Developers |
Bottom line: start with the plugin. Go manual only if a specific file resists it.
What NOT to Defer: The Breakage Warnings Nobody Tells You
Not every script should be deferred. Defer the wrong one and your menu stops working, your checkout breaks, or your page flashes unstyled.
Never defer these:
- jQuery (when your theme depends on it). Many themes need jQuery loaded first. Defer it and buttons die.
- Scripts your inline code depends on. Inline JavaScript that calls a function from a deferred file runs first — and fails.
- Checkout and payment scripts. WooCommerce and payment scripts must load in order — deferring them breaks checkout.
- Analytics and consent scripts that must fire early. Your cookie-consent banner and analytics tags must run before the page renders.
- Your critical CSS itself. Critical CSS must load immediately. Never defer it.
How to recover: every plugin above has an exclusion list — add the broken script’s URL or keyword, clear the cache, and re-test. In WP Rocket, use “Excluded JavaScript files”; in LiteSpeed Cache, “JS Excludes.”
Key takeaway: deferral is a scalpel, not a sledgehammer.
Final Checklist
- Run PageSpeed Insights and open “Render-blocking requests.”
- Install one plugin: WP Rocket, FlyingPress, LiteSpeed Cache, or Autoptimize.
- Turn on defer JavaScript and remove unused CSS.
- Exclude jQuery, checkout scripts, and anything that breaks.
- Clear all caches and re-test on mobile and desktop.
- Check menus, forms, and checkout by hand — not just the score.
For a broader speed overhaul, see our guide on how to speed up your WordPress site in 2026. Or let a professional handle it — see our services or contact us.
FAQ
How do I fix render blocking resources in WordPress for free?
Install LiteSpeed Cache or Autoptimize (both free). In LiteSpeed Cache, turn on “Load JS Deferred” and “Generate Critical CSS”; in Autoptimize, enable JS deferral and “Eliminate render-blocking CSS.”
Why doesn’t PageSpeed Insights show “Eliminate render-blocking resources” anymore?
It was renamed. As of Lighthouse 13, the old audit lives inside the Lighthouse render blocking requests insight. Same files, same fixes — only the label changed.
What is the best plugin to eliminate render blocking resources in WordPress?
WP Rocket (~$59/year) is the easiest: two toggles fix JavaScript and CSS. FlyingPress (~$59/year) is a close alternative with a free trial. Free options: LiteSpeed Cache on LiteSpeed hosting, or Autoptimize anywhere.
Will deferring JavaScript break my WordPress site?
It can — if you defer the wrong scripts. Exclude jQuery, checkout scripts, and scripts your inline code depends on. Always click through your menus, forms, and checkout afterward.
Can I completely eliminate all render blocking resources?
No — and you do not need to. The critical CSS for your first screen must load before rendering. The goal is to reduce blocking files to the smallest set first paint needs, and defer the rest.
Conclusion: How to Fix Render Blocking Resources in WordPress for Good
Learning how to fix render blocking resources in WordPress is one of the highest-return speed jobs on your site: two plugin toggles can cut seconds off your load time, lift your LCP, and turn a white screen into content your visitors actually see. Start with the plugin fix, exclude anything that breaks, and re-test before touching code. Your visitors will never thank you for a faster site — they will simply stay, read, and buy.
Sources: Google on render-blocking resources and the Lighthouse render-blocking requests documentation.


