Largest Contentful Paint (LCP) is one of Google’s three Core Web Vitals.
Like the other two (Cumulative Layout Shift and Interaction to Next Paint), it’s not exactly clear what it means.
Lots of tools can show your LCP score and outline ways to improve it. But their tips are often generic, and lack the detail you need to actually take action.
So, in this guide I’ll walk you through actionable steps to improve your LCP. I’ll separate them by:
Their potential impact
The effort required to make the fix
Which specific aspect of your LCP score they help with
But first, let’s talk about what LCP actually means for your website (jump to this part for the fixes).
What Does Largest Contentful Paint Even Mean?
Largest Contentful Paint measures how long it takes for the main content of your webpage to appear on your user’s screen—whether that’s a hero image, heading, or block of text.
It’s not the most intuitive phrase, so let’s break it down word by word:
Largest: The biggest piece of visible content on the screen. This could be a large image, a big headline, or any major element that stands out.
Contentful: It’s something that has actual content—like text or an image—and isn’t just a background or frame.
Paint: This refers to how your browser “draws” (or renders) that element on your screen.
For example, imagine clicking a link to read a news article.
The page might load various elements quickly, like the header menu at the top and placeholders for ads.
But if the article text takes five seconds to show up, that’s a poor experience. That delay is what LCP measures.
When you think about LCP, think about your visitors. It’s the difference between someone seeing your main product image or headline right away versus waiting and possibly leaving.
A faster LCP generally means a better user experience. And a better experience means happier visitors who trust your site and want to hang around (and potentially buy from you).
Further reading: For more on how loading speed can affect your website experience and optimization, check out our full guide to page speed and SEO.
What Is a Good LCP Score?
Google provides three scoring ranges for LCP:
Good: 2.5 seconds or faster
Needs Improvement: 2.5 to 4 seconds
Poor: Longer than 4 seconds
These benchmarks serve as useful guidelines, but your users’ actual experience matters most.
A visually rich photography portfolio might take longer to load but still satisfy visitors. Meanwhile, a simple text-based article that loads in three seconds might frustrate users who
expect instant access.
So, focus on your audience’s expectations and behavior. Check your analytics to see if slower LCP correlates with higher bounce rates or lower conversion rates.
These numbers tell you more about your site’s real performance than any benchmark can.
If your conversion rate is 10x the industry average, it likely won’t make a massive dent in your bottom line if you improve your LCP score.
But if people aren’t staying long on your important pages, improving your LCP score could help boost your site’s performance. This, in turn, can lead to better results for your business.
How to Measure Your LCP Score
There are lots of tools you can use to measure your LCP. But you don’t want to just get your score.
You also want to learn these two things:
What your LCP element is
Which stage of your LCP is longest
Finding these two pieces of information is key for prioritizing which methods you should use to improve your LCP.
For example, you could spend hours minifying your code, inlining your CSS, and deferring JavaScript. But it won’t make much of a difference if your LCP element is a hero image you just
haven’t optimized yet.
As for the stages:
LCP is made up of four stages:
Time to First Byte (TTFB)
Resource load delay
Resource load time
Element render delay
Each stage is affected by different factors (and methods of optimization). So, if you can identify which stages of your LCP are taking the longest, you can prioritize your fixes accordingly.
Here are two ways to find this information.
Note: With many tools, you’ll get different LCP scores depending on whether you check the mobile or desktop version of your site. Optimizing for both helps improve your experience for all users.
Google PageSpeed Insights
Google’s PageSpeed Insights (PSI) is a popular choice if you want a simple, web-based report.
Just plug in your URL, and you’ll get a quick overview of your Core Web Vitals, including LCP.
PSI is great if you’re not a big fan of digging around in complex dashboards. It gives you clear visuals and actionable tips without much fuss.
It also has a handy diagnostics section which tells you some of the main ways you can reduce your score. Just make sure you select the “LCP” option next to “Show audits relevant to.”
Click the “Largest Contentful Paint element” option to see which element on that page is the LCP element.
It also shows you the breakdown (as a percentage) of each stage of your LCP. From the example above, you can see the vast majority (88%) of our LCP time comes from the render delay stage.
Knowing this lets us focus our efforts on the methods in the next section that specifically help reduce that stage of the LCP score.
Chrome DevTools
Chrome’s DevTools can give you detailed, real-time feedback on various aspects of your page’s performance.
It’s especially useful for testing changes on the fly, but it might feel a bit overwhelming if you’re completely new to web development.
Access it in Chrome on any webpage by right clicking and selecting “Inspect.”
In the interface that appears, head to the “Performance” tab.
(You can select the three dots next to the cog icon and change where the dock goes—I find horizontal is best for analyzing LCP.)
This view shows your LCP score. If you hover over the “LCP element” underneath the score, you’ll see which part of the content is the largest contentful element.
Then, get a breakdown of the LCP stages by clicking the “Record and reload” button. This will run the performance checks again on the page, and you’ll see more information along with a
waterfall chart.
Ignore that for now, and instead click the “LCP by phase” drop-down. This breaks the LCP down into its four constituent parts, showing the actual time for each stage along with a percentage.
As before, you can use this information to prioritize your optimization efforts and more effectively improve your LCP.
How to Improve Your LCP
You can improve your LCP in several ways, and some methods will help you more than others.
The table below sorts the methods by impact, also indicating the effort level each one requires and which stage of your LCP it’ll help reduce.
Method
Impact
Helps Reduce
Use a CDN
High
Resource Load Time
Optimize Your Images
High
Resource Load Time
Use WordPress Plugins
High
Potentially all stages
Implement Caching
High
Time to First Byte
Use a Faster Host
High
Time to First Byte
Minify Your Code
Medium
Resource Load Time
Optimize Your Fonts
Medium
Resource Load Time
Avoid Lazy Loading Above the Fold
Medium
Resource Load Delay
Remove Elements You Don’t Need
Medium
Element Render Delay
Use Defer/Async for JS
Medium
Element Render Delay
Inline Critical CSS
Medium
Element Render Delay
Switch to SSR
Medium
Element Render Delay
Preload Important Resources
Medium
Resource Load Delay
These values are all relative.
Your own skill level, your website’s setup, and your budget will affect how easy or cost-effective these changes are for you.
I’ve taken each method in isolation, as the relative impact of each fix may decrease as you implement each one.
For example, if you implement lots of these methods but don’t use a CDN, your LCP score will likely improve to the point that using a CDN might not make much difference to the score
(although it may still improve your user experience).
Finally, a few of these might help reduce different stages of your LCP. As with every change you make to your website, there’s usually a bit of overlap in terms of what it’ll affect.
I’ll explain more of the nuances and who each fix is best suited to below.
Free Resource: Stay on top of your LCP optimization efforts with our free LCP progress tracker.
Use a CDN
Impact: High | Effort: Low | Helps Reduce: Resource Load Time
A Content Delivery Network (CDN) stores (cached) copies of your content across servers around the world. When people visit your site, they’re served files from the closest server to them.
That means faster load times for your users.
If you’re running a small local blog, you might not absolutely need a CDN. But if you have visitors from all over, a CDN can boost your LCP by reducing the travel time for your data.
This is most impactful for:
Websites with visitors from multiple regions
Sites with lots of large images or media files
Anyone wanting to improve global load times without lots of coding
How to Implement This
You can sign up for a CDN service like Cloudflare, KeyCDN, or StackPath. They’ll provide instructions for changing your domain’s settings to route traffic through their servers.
Once set up, the CDN will serve your website files to users from the server that’s physically located closest to them.
There are cheap and free options, but it can get expensive for larger sites with lots of traffic.
If you use WordPress or a similar content management system (CMS), there are often plugins that make the setup process even smoother.
Optimize Your Images
Impact: High | Effort: Medium | Helps Reduce: Resource Load Time
Large image files are a common reason for poor LCP scores. This is especially true if you use a large hero image at the top of your pages or blog posts.
By compressing images before uploading them, you reduce their file size to make them load faster.
This is most impactful for:
Sites with lots of large product or blog images
Photographers or ecommerce stores with high-res visuals
Anyone looking for a straightforward way to speed up load times
How to Implement This
You can optimize your images using online tools, and there are lots of free options. Or you can use plugins that auto-compress images when you upload them to your content management system.
Squoosh is a free tool that lets you tweak the optimization settings, choose a format to convert to, and resize the image:
To do this in bulk, you can also use a tool like TinyPNG:
Just keep an eye on quality—if you compress too much, your images might look blurry. But most of the time, you can shrink them a lot without anyone noticing.
Pro tip: Beyond images, it’s usually best to avoid having a video above the fold. This can lead to poor LCP scores.
Use WordPress Plugins
Impact: High | Effort: Low | Helps Reduce: Potentially all stages
For many WordPress users, plugins are the easiest way to speed up your site and fix LCP issues with minimal effort. They can handle image optimization, caching, code minification, and
more—all from a simple dashboard.
The caveat is that the best ones aren’t always free. So you’re often paying a convenience cost. But there are still some unpaid options out there.
Another downside is the risk of plugin “bloat,” which can slow your site if you install too many or choose poorly optimized ones.
Compatibility issues may also pop up, especially if you try to use multiple optimization plugins at one time.
But as long as you don’t have hundreds of plugins, and check for compatibility, I find the benefits typically outweigh the downsides here.
Note: If you use a different CMS, like Shopify, there are likely apps or add-ons that can help with your LCP score.
This is most impactful for:
WordPress users without technical know-how
Anyone who wants a quick fix for multiple performance issues
Those willing to spend a bit of money to solve a lot of issues at once (although there are free options)
How to Implement This
There are lots of WordPress plugins that are great for improving your LCP in particular, and your page speed in general.
One example is WP Rocket. It’s a paid WordPress optimization plugin that does a lot of the things on this list for you.
Including:
Image optimization
Code minification
Preloading/prefetching resources
CDN implementation
Caching
There are lots of customization options, making this a useful plugin a quick and fairly easy solution to improve your LCP.
Autoptimize is a free WordPress plugin that does a lot of the same things as WP Rocket.
It does lack a few features, like generating critical CSS and caching. But it’s a good starting point for beginners on a budget with a WordPress site.
Implement Caching
Impact: High | Effort: Low | Helps Reduce: Time to First Byte
Caching stores parts of your site on your user’s browser so it doesn’t have to request them from scratch every time they visit the site.
This can speed up your LCP because your server won’t need to work as hard to deliver the key page elements the next time the user visits.
Many hosting providers include caching by default.
You can also install plugins that handle caching for you.
This is most impactful for:
Sites with repeat visitors (e.g., blogs, online magazines)
Websites on platforms that generate pages dynamically (like WordPress)
Sites experiencing slow server response times
How to Implement This
If your host offers caching, enable it in your hosting dashboard. Otherwise, consider a caching plugin.
If you use a CDN, it already relies on caching to serve your content to users with faster load times.
Note: You only need to use one effective caching setup or plugin at a time. Using multiple can lead to no performance improvements at best, and various compatibility issues at worst.
Use a Faster Web Host
Impact: High | Effort: Low | Helps Reduce: Time to First Byte
Switching to a more powerful hosting plan or provider can make a big difference in how quickly your site’s main content loads.
That’s because your web host’s speed is going to have the largest impact on your Time to First Byte.
This is often the simplest route if you don’t want to tinker with technical details. However, premium hosting can be expensive.
If you have a small site or a tight budget, you might find it hard to justify the cost for LCP gains alone. But for large businesses or sites that generate a lot of revenue, investing in better hosting can pay off.
Note: This is also unlikely to put a dent in your LCP if your host is already pretty quick. I’d generally only recommend considering this option if your Time to First Byte is exceptionally long. Or if you’re noticing other performance issues or extended periods of website downtime.
This is most impactful for:
High-traffic sites that need consistent speed
Businesses with a budget to invest in premium hosting
Sites that have outgrown their current hosting plan
How to Implement This
When upgrading your web host, look for:
Reliable uptime
Scalability
Good support
Security features
Robust backup options
Migrating your site can be as simple as using a migration plugin if you’re on WordPress, or asking your new host for help.
It’s usually fairly straightforward if you’re staying with your current host and just upgrading your plan. But moving hosts can be a little more effort-intensive.
Further reading: Website Migration Checklist: Essential SEO Steps for Success
Minify Your Code
Impact: Medium | Effort: Low | Helps Reduce: Resource Load Time
Minifying code involves stripping out anything “unnecessary,” like extra spaces or new lines, from your site’s HTML, CSS, and JavaScript files. This makes them smaller and faster to load.
If you’re not a developer, you can still do this using tools or plugins that automate the process (like WP Rocket mentioned above).
Just be sure to back up your site or test it in a staging environment. Sometimes, minification can cause layout or script issues.
This is most impactful for:
Sites with lots of CSS and JavaScript files
Pages that rely on multiple libraries or frameworks
How to Implement This
You can minify your code with free tools like Minifier:
If you use a CMS like WordPress, use plugins (e.g., WP Rocket, Autoptimize) that automatically shrink your CSS, JS, and HTML.
Here’s how it looks in the “File Optimization” screen of WP Rocket:
Most plugins let you choose which files to minify, so if you see any issues, uncheck or exclude the problematic file and test again.
Alternatively, reach out to a developer to help with this instead.
Optimize Your Fonts
Impact: Medium | Effort: Medium | Helps Reduce: Resource Load Time
Fancy fonts can look great, but they can also slow down your page.
Custom fonts often have to be downloaded from a separate server. If you optimize or host them locally, you reduce delays that stop your text (like big headlines) from being visible.
You do want to maintain your site’s style, so it’s a balance between looking good and loading fast. Some sites solve this by using system fonts that don’t need extra downloads.
This is most impactful for:
Sites using multiple custom fonts or large font families
Design-heavy pages with fancy typography
Anyone noticing a “flash of invisible text” when pages load
How to Implement This
Hosting fonts locally is often faster than pulling them from external servers. If you use Google Fonts, you can download them and serve them from your own domain.
But honestly, this just won’t be necessary for most site owners. While it might reduce your LCP, it’s unlikely to be a massive gain and may not be worth the effort.
Alternatively, let a plugin handle font optimization for you. Minimize the number of font weights you use—if you only need bold and regular, don’t load the entire family.
Lazy loading is a feature that only loads images when you scroll down to them. In other words, images only load when they’re in the user’s “viewport” (on their screen).
It’s great for boosting page load time, and is typically regarded as a best practice for fast websites.
But if you lazy load images that are right at the top of your page, your visitors will see a blank space before anything else pops in. That can really hurt your LCP.
The idea behind lazy loading is to not load images the user doesn’t need to see yet. But when it’s the first image you want a user to see as soon as they land on your page, clearly you don’t want to delay loading at all.
So, it’s usually best to load above-the-fold content right away, then lazy load what’s below.
This is most impactful for:
Sites that lazy load everything by default
Above-the-fold areas with key images or banners
Pages where the main header image is crucial for user engagement
How to Implement This
Many lazy-loading tools let you exclude certain images. Find the settings or plugin option that specifies “above the fold” or “first contentful paint” images, and disable lazy loading for those.
In WP Rocket, you do that in the “Media” area:
If you’re not using a CMS like WordPress, just make sure the LCP image’s HTML looks like this, with either loading=“eager” or no loading attribute (“eager” is the default):
Rather than like this, with the loading=“lazy” attribute:
Remove Elements You Don’t Need
Impact: Medium | Effort: Medium | Helps Reduce: Element Render Delay
Every script, image, or widget on your site adds to the time it takes for your page to fully load. So you need to think carefully about what appears above the fold.
If there’s a huge banner, multiple images, or extra code that doesn’t add real value, consider removing it or placing it below the fold.
Just make sure you don’t strip away elements that are crucial for your users or your brand message.
This is most impactful for:
Content-heavy sites filled with widgets or ads
Homepages stuffed with multiple banners, slideshows, or animations
Anyone looking to simplify their design without sacrificing core features
How to Implement This
Audit your site’s above-the-fold area and ask, “Does this element help my user right away?”
If not, move it below the fold (or remove it entirely).
Think about collapsing large sign-up forms or extra images.
Removing unnecessary scripts, like old tracking codes, can also help. To pinpoint snippets you might want to remove, look out for the “Reduce unused JavaScript” opportunity in PageSpeed Insights:
Use Defer/Async for JS
Impact: Medium | Effort: Medium | Helps Reduce: Element Render Delay
JavaScript files can block the rendering of your page if they load first. By deferring or asynchronously loading scripts, you let your main content appear before any heavy scripts run.
This helps your LCP because the biggest chunk of your page shows up without waiting for all your JS to finish loading.
The main reason you’ll likely want to look into async and defer is if the tool you’re measuring your LCP with says you have render blocking resources.
Like this:
Basically, without any attributes, the browser will attempt to download and then execute your JavaScript as it encounters it. This can lead to slower load times, and longer LCP times if it blocks the LCP element from loading.
With async, it won’t pause parsing (breaking down and analyzing) of the HTML during the download stage. But it still pauses as the script executes after downloading.
With defer, the browser doesn’t pause HTML parsing for the download or execution of your JavaScript. This can lead to lower LCP scores, but it means your JavaScript won’t execute until the browser has finished parsing the HTML.
You might need a developer’s help if you’re not sure which scripts to defer or load asynchronously, or how to do it.
Some optimization plugins for platforms like WordPress can also handle this for you.
This is most impactful for:
Sites that rely on several JavaScript libraries
Pages slowed down by loading scripts too early
Website owners looking for a middle-ground solution without full SSR (more on that below)
How to Implement This
If you’re on WordPress, look for an optimization plugin that includes deferring or async-loading scripts.
In custom setups, you’d add attributes like “defer” or “async” to your script tags in the HTML.
Just make sure you don’t delay any critical scripts (like core functionality) too much.
Inline Critical CSS
Impact: Medium | Effort: High | Helps Reduce: Element Render Delay
Inlining CSS means putting small blocks of CSS code right into your HTML, so your page doesn’t need to fetch a separate file for that part.
It can speed up how quickly your main elements appear. But you can’t inline everything, or you’d end up with a massive HTML file that defeats the purpose.
This method can be helpful for critical (above-the-fold) styles, but it shouldn’t replace your entire stylesheet.
Plus, the Chrome team’s official guidance on this is that:
“In general, inlining your style sheet is only recommended if your style sheet is small since inlined content in the HTML cannot benefit from caching in subsequent page loads. If a style sheet is so large that it takes longer to load than the LCP resource, then it’s unlikely to be a good candidate for inlining.”
This is most impactful for:
Sites with a small amount of critical CSS for the header area
Minimalist designs that don’t rely on big external stylesheets
Anyone looking to shave off small load delays
How to Implement This
Identify the essential CSS you need to style your page’s top section, and place it directly in the HTML <head>. This can reduce the time it takes to render the crucial above-the-fold part.
Keep the rest of your CSS in external files to avoid bloating your HTML. Some performance plugins can automate this “critical CSS” approach for you.
Autoptimize offers a cheap solution, while it’s baked into plugins like NitroPack and WP Rocket.
While there are also dedicated critical CSS plugins, I’d generally recommend going for a more feature-rich option for a bit of extra money (if you have the budget). You’ll typically get more value than spending $10 a month on one feature that may have limited impact on your LCP.
Switch to SSR
Impact: Medium | Effort: High | Helps Reduce: Element Render Delay
CSR (Client-Side Rendering) means your user’s browser does a lot of the work to build the page.
SSR (Server-Side Rendering) means most of the work happens before the page hits the user’s browser.
SSR can help LCP for sites heavy in JavaScript, because the biggest content is already “pre-built” for the user. But switching from CSR to SSR can be a big project if you’re not familiar with it.
For some sites, it’s overkill. For others, it’s the key to big performance gains.
This is one method where you really need to weigh up the benefits and how they might apply to your specific situation:
Run a fairly standard blog, service website, or ecommerce store? Switching to SSR might bring noticeable performance gains.
Got a highly interactive web app? You might want to stick with CSR for a better user experience.
Generally, if you implement other methods like caching and using a CDN, you’ll see performance benefits with SSR that outweigh the potential server load increase.
This is most impactful for:
JavaScript-heavy web apps (e.g., React, Vue)
Sites noticing a significant delay before content appears
Advanced users or teams that can handle more complex architecture
How to Implement This
Switching from Client-Side Rendering to Server-Side Rendering (or a hybrid approach) typically involves using frameworks (like Next.js for React) that pre-render your content on the server.
This can speed up LCP since the browser receives a ready-made page. However, it’s a bigger project requiring code changes and a good understanding of your tech stack.
If you’re not comfortable with that, you might need to hire a developer or agency.
Preload Important Resources
Impact: Medium | Effort: Medium | Helps Reduce: Resource Load Delay
Preloading tells the browser which files it should grab or prepare in advance.
It can shave off a bit of loading time and help your main content appear slightly faster. For many small sites, these optimizations won’t create dramatic changes.
But on bigger sites or those with lots of images and unique fonts, it can make a difference.
This is most impactful for:
Sites that rely on off-site resources (e.g., fonts or images)
Those comfortable editing HTML headers or using plugins that can do this at scale
How to Implement This
You can preload fonts and images by adding special link tags in your site’s <head>. They tell the browser to grab or prepare certain resources before they’re actually needed.
You simply add rel=“preload” to the <link> tag. Like this:
How much effort this requires depends on your specific setup and how many pages you want to deploy it on. But it’s a fairly simple process that can help reduce your LCP score.
Note: As with a lot of the other methods on this list, WordPress plugins can help here too.
Boost Your Rankings by Improving Your Page Experience
Improving your LCP is one way to boost your overall page experience for users.
In turn, this can actually end up having an impact on your rankings beyond Google’s page experience signals.
Check out our guide to user behavior and SEO to learn how the way your users behave on your website could potentially impact how Google ranks your site.
(It makes optimizing for factors like LCP and the other Core Web Vitals A LOT more important.)
The post How to Improve Largest Contentful Paint (LCP) in Under an Hour appeared first on Backlinko.
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok