Website speed is one of the most important factors in attracting and retaining visitors. All other things being equal, a faster website is much more likely to land users. This is because search engines take site speed into consideration when ranking results. So, if you want to leave your competition biting the dust in SEO, make site speed a priority.
To understand this suggestion, we must look at Google’s criteria for scoring sites on PageSpeed Insights. There are ten speed rules defined by Google, and failure in any one of these results in a reduction of points.
Render-blocking JS and CSS in above-the-fold content is one of these rules. Typically, JS and CSS scripts force the web browser to delay loading the HTML page. Of course, this is not an issue. In fact, that is precisely what you would want; no one desires to look at content that hasn’t been styled.
Render-blocking JS and CSS, however, refers to those scripts, that introduce load latency but are not used in above-the-fold (ATF) content. ATF content refers to that part of the web page that is visible when the page loads; any part of the page that you have to scroll down to reach is non-ATF. So, with this suggestion, Google is letting you know that there are JS and CSS scripts on this web page that are slowing it down needlessly, as the part of the page they affect isn’t even observable to the user yet.
In this WordPress tutorial, we will use Google PageSpeed Insights to identify render-blocking scripts. Then, we will show you how to fix this issue for your WordPress site, using 3 different methods. In addition to this guide, you should also look at other ways of speeding up your WordPress site for an optimal user experience.
What you’ll need
Before starting this tutorial, you’ll need the following
- Access to WordPress admin area
Step 1 – Using Google PageSpeed Insights to Find Render-blocking JS and CSS
The first step in fixing render-blocking is testing your site’s speed using Google PageSpeed Insights. Simply visit the page, and in the input field, paste your site’s URL. Click Analyze to get a report of your site. Most sites score between 50-70; this should serve as a benchmark for your score. Along with the score, Google will also list suggestions to improve the performance of your site.
In order to show how to fix render blocking error, we will use a real website. In the above screenshot, you can see that it currently contains quite a few blocking JS and CSS resources.
An important thing to keep in mind – your goal here should not be to score a perfect 100 on PageSpeed Insights. Rather, it should be to try your best to get a good score, without sacrificing user experience. If there are scripts on your WordPress site essential for a robust UX, you shouldn’t remove them just to get a slightly higher score on PageSpeed Insights. The rules on which Google scores your sites are merely guidelines, and should be taken as such.
Option 1 – Using W3 Total Cache
Now that you are aware of render-blocking code on your website, you have a few options on how to fix it. We recommend downloading a plugin that makes your life easy in taking care of this problem. One of our favorites is the W3 Total Cache plugin. Install and activate it. Once you have it setup, follow these steps:
- Go to Performance -> General Settings. Find the Minify heading on the page.
- You will see a few options under this heading. The first one is titled Minify; check the Enable box in front of it.
- In the Minify mode option, choose Manual, and then click Save all settings button.
- At this point, you must fetch all the JS and CSS scripts causing render-blocking. You will find these scripts through Google PageSpeed Insights. If you kept the PageSpeed tab open as suggested in Step 1, you will find the Show how to fix clickable text under the render-blocking suggestion. Click on it. This will list all those scripts and stylesheets causing render-blocking.
- Go back to WordPress. Navigate to Performance ->Minify. You will have to minify both JS and CSS files separately.
- First, let’s take care of JS. On the page, find the heading JS, you will then see Operations in areas section. There, choose Non-blocking using defer as the embed type for the before <head> tag.
- Then, under the sub-heading JS file management, choose your active theme and click on the Add Script button. Now, simply copy the URLs of JS scripts from the PageSpeed tab, and paste them here one-by-one. This completes the fix for JS files.
- Moving on to CSS. Scroll down further on the same page to find the CSS section. Under the CSS file management sub-heading, choose your active theme and click on Add a style sheet. Similar to JS scripts, copy/paste CSS stylesheets from PageSpeed Insights to this section.
- Finally, click the Save settings and purge cache button.
If you want even more control over your above-the-fold content, do check out Above The Fold Optimization. This plugin is designed specifically for ATF content and works with other popular plugins like W3 Total Cache and Autoptimize.
Option 2 – Using Autoptimize
In most cases, this is enough to fix render-blocking (it depends on your theme and active plugins). To find out if you’re one of these people, run your site through PageSpeed Insights again.
As you can see from the above screenshot, Autoptimize left 1 blocking JS resources and 1 blocking CSS resources.
If you want to take the optimization even further, head back over to Settings -> Autoptimize. Click on the Show Advanced Settings button. From here, check the options Also aggregate inline JS and Also aggregate inline CSS. Finish by clicking on Save changes and Empty Cache. To see if this worked, visit PageSpeed Insights once again.
Option 3 – Using Speed Booster Pack
Another popular plugin that you may find useful in fixing render-blocking for your WordPress site is Speed Booster Pack. Download and activate the plugin. You will find its options in the Settings ->Speed Booster Pack section of the WordPress admin area.
For CSS render-blocking, go to the Still need more speed? menu. Here, you will find additional settings pertaining to CSS optimization; minifying CSS, moving CSS styles inline to the footer and loading CSS asynchronously.
You should experiment with these optimizations to find a happy medium – simply enabling all of them will load your site faster, but may also introduce the unwanted Flash of unstyled content (FOUC) artifact. This happens when the browser loads the web page without waiting for the stylesheet to load, causing a momentary flash any styling off of the page. To ensure that render-blocking is not an issue anymore, check back with Google PageSpeed Insights.
If any of the above fixes broke your site’s functionality in some way, then make sure to follow render-blocking code. Remember, site speed only goes so far in improving your website; you shouldn’t have to compromise on core functionality. So, if there’s still some render-blocking code dangling on your site, don’t worry about it. Found this tutorial useful? We have much more for you at hostinger.com/tutorials/wordpress.