How to Improve “Largest Contentful Paint” in WordPress

If you are aware of Core Web Vitals, then you need no introduction for “Largest Contentful Paint

Also termed as: LCP

Optimize LCP in WordPress

Improving LCP is the first and foremost step to optimize your web pages for global visitors apart from First Input Delay and Cumulative Layout Shift.

LCP part of Core Web Vitals.

Here is our web pages tested against new Core Web vitals and LCP optimization is the major reason to achieve this feet.

If you are launching a new site or optimizing an existing WordPress site, follow the guide along with us, and learn how to optimize sites from “Poor” to “Good” by following Google Guidelines.

Note: This post is the very first update of LCP optimization for WordPress with simple to use solutions through which most sites can score “Good” in Search Console. However, based on the feedback, I'll make sure to update the post often with medium to advanced optimization techniques. Our goal is to help businesses to optimize their sites without any third-party support.

How To Optimize LCP in WordPress

According to Google, these are the four factors which results in poor LCP value.

  • Slow Server Response Time
  • Render-blocking Javascript and JSS
  • Slow resource load times
  • Client-side rendering.

Although Google classifies optimization in above order, our WordPress optimization guidelines are slightly different.

While our team has been working on various platforms optimizing LCP, nothing comes as easy as doing optimization in WordPress CMS.

Here are the best ways to improve LCP of your WordPress sites.

1. Reduce Server Response Times (TTFB)

TTFB measures how fast your server is sending the first byte of data to the end-user.

Lower the response time, faster is your webpages.

You need to choose the Fastest WordPress Hosting to deliver fast loading pages. If your site is slow and still your hosting provider says “everything is fine”, they're probably overselling and you need to pick a fast host.

Google recommends less than 200ms TTFB as good and use KeyCDN to check TTFB from 14 global locations.

You can see our site loads in less than 50ms across most US & Europe locations and loads between 50-150ms in Asia which is the farthest location from my physical server.

Note: Our site is hosted on Liquid Web US Data Center.

In most cases, if your host TTFB is less than 1000ms, the upcoming optimization will do wonders to improve TTFB. However, if your TTFB is over 1000ms across all locations, choose a good TTFB Hosting and follow the below optimization techniques to make your URLs turn from “Poor” to “Good” in search console.

2. Optimize WordPress Caching

For any type of WordPress sites, caching is the most essential thing. Most Managed WordPress Hosting runs server-side caching which is faster than PHP based plugin caching. If your hosting company doesn't offer caching on the server, use W3 Total Cache or WP Rocket for optimization.

For this tutorial, I'm considering WP Rocket since it does the job perfectly than any other caching plugin in the market.

Once activated the plugin, follow the below options for optimal settings.

Cache Tab: Enable Caching for mobile devices and also enable “Separate Cache Files for Mobile devices”. Every other option can be left default.

File Optimization: Under Basic settings, enable all the options.

  • Minify HTML
  • Combing Google Font Files
  • Remove Query Strings From Static Resources.

Since we are planning to use CDN, you can either choose minify HTML in the plugin or you can enable the same on CDN. We can see more on this later.

The same goes for CSS and JavaScript Files Settings. Since we are going to use CDN, we can skip Minify CSS & Java Script Files.

Now, if your server is using HTTP/2, you shouldn't be combine CSS and JavaScript files.

While most sites recommend you to combine for fast loading pages but it's not correct way unless you don't know what HTTP type you servers are using. Head to HTTP/2 test and check once or ask your host for more info.

The final option is “Load JavaScript Deferred”. Enable this option, to eliminate render-blocking JS on your site to improve load time.

Also, you can enable Safe Mode For jquery (test manually)

Media: Enable Lazy Load for images as this got recommended by Google across all their optimization contents. You can also enable LazyLoad for iframes and Videos. Replace YouTube iFrame with preview images.

Enable “Disable Emoji” and also “Disable WordPress Embeds”

Preload: Most users ignore these settings but along with speed, preload settings should be optimized for better SEO rankings as the sitemap is the one which is going to tell Google about your site's new content.

Enable “Activate sitemap-based caching preloading” and WP Rocket automatically finds your sitemap if you major SEO plugins like Yoast, Rank Math. If not, manually enter the sitemap URL in the text box.

Under the Prefetch DNS request, you can add your Google analytics, fonts, or any other external requests. This option should be done as mandatory since Google recommends this for great Core Web Vital results.

WP Rocket team added a Github page with the most possible URLs that require DNS fetching. Even if you don't use WP Rocket, you can use the same on your caching plugins to improve load time.

To make things perfect, run your domain at Prefetch.xyz to get the list of domains that can be prefetched.

//maps.googleapis.com
//maps.gstatic.com
//fonts.googleapis.com
//fonts.gstatic.com
//ajax.googleapis.com
//apis.google.com
//google-analytics.com
//www.google-analytics.com
//ssl.google-analytics.com
//youtube.com
//api.pinterest.com
//cdnjs.cloudflare.com
//pixel.wp.com
//connect.facebook.net
//platform.twitter.com
//syndication.twitter.com
//platform.instagram.com
//disqus.com
//sitename.disqus.com
//s7.addthis.com
//platform.linkedin.com
//w.sharethis.com
//s0.wp.com
//s1.wp.com
//s2.wp.com
//s.gravatar.com
//0.gravatar.com
//2.gravatar.com
//1.gravatar.com
//stats.wp.com

3. Use Fastest CDN

Now, we completed initial steps and we move on adding CDN to your sites. Here are the major CDNs I used to deploy and optimize hundreds of WordPress sites.

Here are the fastest CDN in North America (USA & Canada) based on 300million tests per day.

Since CDN is pretty important, so I'm adding a few more info here. jsDelivr is open source CDN for developers, Google CDN can't be used separately unless you host your sites on Google (Templ.io offers Google Cloud + CDN).

CDNetworks, CacheFly, Akamai, Verizon are priced at least more than $100/month and Fastly requires $50/month billing. Though Cloudflare is free but not the fastest CDN and one needs to pay $20/month for a single site on the Cloudflare Pro plan.

Out of all, StackPath CDN is the fastest yet cheap priced at $10/month for unlimited sites. BunnyCDN is economical but at least 10 – 15ms slower than StackPath.

Since Cloudflare is free, I'm writing this post with its configuration settings, and here is the official guide to WordPress StackPath settings.

Once your site is added to Cloudflare, you'll be presented with two nameservers and update the same on your domain panel. Navigate to Speed and select Optimization. Under Auto Minify Choose all (JavaScript, CSS, and HTML) and also turn on Brotli.

You can either enable minify here or manage the same on settings of WP Rocket. However, Cloudflare settings are optimal for me.

Now, navigate to Caching tab and do the following settings.

  • Caching Level – Standard
  • Browser Cache TTL – Respect Existing Headers
  • Always Online – ON.

Finally to Page Rules. This is the important settings to improve your TTFB on a whole new level.

Through PageRules we are going to deliver HTML pages from Cloudflare instead of your server.

By enabling this option, Cloudflare will store your content on its global data center locations. Even if your server is in the USA and while someone visits the site from Singapore, the contents will be delivered from Cloudflare Singapore location instead of the USA, thus the TTFB is highly reduced.

The concept is called Full Page Cache. Once the above steps are done properly, you will get the TTFB like this.

Now, you have solved five of Google optimization suggestions like

  • Slow Response Time
  • Render-blocking JavaScript and CSS optimization,
  • Lazy Load images,
  • DNS prefetching
  • Edge HTML caching with Cloudflare CDN.

4. Remove Unwanted & Slow Loading Plugins

If you are running a blog most of the above settings are enough to improve LCP like how I did it for this blog.

If you can't achieve the desired results, follow reading the advanced LCP optimization.

To perform any of these functions, your site needs to be audited first.

Head to Gtmetrix.com and run the slow loading URL. Now check the waterfall tab and see which files take time to load. Now you need to think whether

  • Any necessary plugins take time to load? Optimize or replace it.
  • If unwanted plugin takes time to load? remove or replace it.

I'm concluding here like, there are various other factors that can slow down your site. But after optimizing hundreds of sites, I believe the above things are the most common issues that we fix for any WordPress sites.

My most recent work.

Here comes some of the additional ideas to implement on your site.

A picture is worth a thousand words. Publishing blog posts without images aren't worth in 2020 and largely affects leads and conversions.

With mandatory presence, Image optimization is one of the major factors to improve LCP.

5. Compress Images for Optimal Delivery.

If you are using a premium host like Liquid Web, it comes with inbuilt image optimization which does perform lossless image compression for unlimited images uploaded on the site.

Alternatively, you can use free image compression plugins like WP Smush, Imagify, etc which does the job in limited numbers as they don't allow bulk optimization of more than 50 images.

6. Use Image CDN to optimize images

The ideal option for image optimization is using an Image CDN (as recommended by Google)

Your site images come with fixed size and gets delivered in the same format irrespective of end-user screen size. This hugely affects Core Web Vitals in common as the images are not optimized for user experience.

This is where Image CDN comes us to recuse and here are the features

  • Deliver images based on screen size
  • Converts your image to WebP format for fast loading
  • Loads images only in viewport
  • Delivery via CDN

WP Compress is the all-in-one image optimization tool for WordPress. WP Compress not only cleans up your images but also serves images from its global CDN network powered by Google Cloud, the fastest CDN in the globe. That's not the only thing, WP Compress also delivers optimized images based on screen size.

Here is my WPCompress Dashboard. One-Click option to deliver Adaptive images, WebP, Lazy Load, and Deliver from CDN.

I found the device based image delivery to be most effective since mobile optimization is the hardest part of Core Web Vitals.

Just compressing the image is not going to be effective as users browsing from different viewport devices may face loading issues and the only way to fix the issue is delivering the right image size for the visitors' browser either mobile or desktop.

7. Client-side Rendering

There are no common settings to fix with Client-Side Rendering. If your sites are shown “Good” in search console, we can safely ignore these setup.

In a worst-case scenario like running a resource-hungry WooCommerce site, this client-side rendering can be very useful and make sure to analyze the site to find the critical issues.

Since this involves custom optimization works, we are skipping this Client-side rendering as only upon checking the site, anyone can give ideas.

Hint: Javascripts is the most common thing that needs to be optimized here. Some general ideas are

  • Choose themes with less or no JavaScript functions (For ex. Astra)
  • Choose themes or plugins that are lightweight.
  • Avoid fancy widgets or embedding social media posts often
  • Use WP Rocket iFrame settings while embedding Youtube videos.

Based on optimizing more sites in the coming days, I can expand the article with more ideas if time permits.

//see you all soon.

Source 1, Source 2.

1 comment add your comment

  1. Thank you, Mike! It is a very useful article, even for W3 Total Cache users like me.

Leave a Comment