Skip to main content
Checklist

LCP (Largest Contentful Paint) Checklist: 12 Items Every Ecommerce Store Should Audit

By ยท Updated ยท 7 min read

How to Use This LCP Audit Checklist

Largest Contentful Paint (LCP) measures how long it takes for the largest visible element on a page to fully render. For ecommerce stores, that element is almost always a hero image, product photo, or above-the-fold banner. Google's Core Web Vitals threshold sets a passing LCP at 2.5 seconds or under; anything above 4.0 seconds is a failing score.

Work through each of the 12 checks below in order. Run Google PageSpeed Insights or Chrome DevTools' Performance panel to collect data before you start โ€” you need a baseline. Mark each item Pass, Fail, or Not Applicable. Any single Fail can cost your store meaningful ranking signal and conversion rate.

Image and Media Checks (Items 1โ€“4)

Check 1 โ€” LCP Image Format: Open PageSpeed Insights on your homepage, top category page, and a best-selling product page. Identify the LCP element. Pass: the image is served as WebP or AVIF. Fail: the image is JPEG or PNG without a next-gen format alternative. Converting a 400 KB hero JPEG to WebP typically drops file size by 25โ€“35% without visible quality loss.

Check 2 โ€” LCP Image Dimensions Match Display Size: In Chrome DevTools, inspect the LCP element. Compare the intrinsic pixel dimensions to the rendered display dimensions. Pass: intrinsic width is within 10% of the display width at the largest viewport where the image appears. Fail: the intrinsic width is more than 1.5ร— the display width, indicating the browser downloads more pixels than it shows.

Check 3 โ€” LCP Image Compression Level: Download the LCP image and run it through Squoosh or a similar lossless/lossy audit tool. Pass: image file size is under 150 KB for a full-width hero at quality 75โ€“85 (WebP). Fail: image exceeds 300 KB at any quality setting before format conversion is applied.

Check 4 โ€” Video Poster Image for Video LCP Elements: If your LCP element is a video hero, check that a poster attribute is set on the <video> tag. Pass: a poster image is present, is the correct format (WebP), and is preloaded. Fail: no poster is set, forcing the browser to wait for the first video frame before painting any LCP candidate.

Resource Loading Checks (Items 5โ€“8)

Check 5 โ€” Preload Hint for LCP Image: In your page's <head>, look for a <link rel='preload' as='image'> tag pointing to the LCP image. Pass: a preload hint exists and the image URL matches the actual LCP resource loaded (verify in the Network waterfall โ€” it should appear in the first 1โ€“2 requests). Fail: no preload hint is present, and the browser discovers the image only after parsing HTML and CSS.

Check 6 โ€” LCP Image Not Lazy-Loaded: Check the HTML or JavaScript that renders the LCP image. Pass: the LCP image has no loading='lazy' attribute and is not controlled by an IntersectionObserver that defers its load. Fail: loading='lazy' is present on the LCP image, which forces the browser to defer the request until after layout โ€” this is one of the single most common LCP killers in ecommerce themes.

Check 7 โ€” Time to First Byte (TTFB) Under 800 ms: TTFB is the prerequisite for LCP. In Chrome DevTools Network panel, click the HTML document request and read the 'Waiting (TTFB)' value. Pass: TTFB is 800 ms or under. Fail: TTFB exceeds 800 ms, indicating server response, CDN misconfiguration, or uncached dynamic content is delaying everything downstream.

Check 8 โ€” LCP Resource Served From CDN: Check the response headers of the LCP image request for a CDN identifier (e.g., x-cache: HIT, cf-cache-status: HIT, or a CDN-origin hostname). Pass: the image is served from a CDN edge node geographically close to the test location. Fail: the image is served directly from the origin server, adding network latency for every visitor outside the server's region.

Render-Blocking and CSS Checks (Items 9โ€“10)

Check 9 โ€” No Render-Blocking Resources Above LCP Element: In PageSpeed Insights' 'Opportunities' section, look for 'Eliminate render-blocking resources.' Pass: no render-blocking CSS or JavaScript files delay the browser from painting the LCP element; or any blocking resources are inlined/deferred. Fail: one or more CSS files load synchronously in <head> and are not critical-path inlined, adding 200โ€“600 ms before the browser can paint any above-the-fold content.

Check 10 โ€” Critical CSS Is Inlined for Above-the-Fold Content: Extract the CSS rules that style the LCP element. Pass: those rules are inlined in a <style> block in <head> so they are immediately available without a network round-trip. Fail: all styling is in an external stylesheet that must be downloaded and parsed before the LCP element can be painted. This matters most on mobile connections where CSS file requests add significant latency.

Font and Third-Party Checks (Items 11โ€“12)

Check 11 โ€” Web Fonts Do Not Block LCP Text Elements: If your LCP element is a text block (headline, promotional banner text), check the @font-face declarations. Pass: fonts use font-display: swap or font-display: optional so text renders immediately in a fallback font while the custom font loads. Fail: font-display is absent or set to block, causing invisible text (FOIT) that delays the LCP paint until the font file fully loads.

Check 12 โ€” Third-Party Scripts Do Not Execute Before LCP Paints: In Chrome DevTools' Performance trace, identify the LCP marker timestamp. Check whether any third-party script (chat widget, analytics, A/B testing tool) executes on the main thread before that timestamp. Pass: all non-essential third-party scripts are deferred or loaded asynchronously and do not block the main thread before LCP. Fail: a third-party script runs synchronously or fires a long task that pushes the LCP paint past the 2.5-second threshold.

Prioritizing Fixes After the Audit

After completing the 12 checks, sort your Fails into two groups: image/media issues (Checks 1โ€“4) and loading/rendering issues (Checks 5โ€“12). Image issues are almost always the fastest to fix โ€” format conversion and removing lazy-load from the LCP image can be deployed in hours. Loading and rendering fixes (CDN configuration, critical CSS inlining, third-party script deferral) require more coordination but deliver lasting improvements.

Run the audit on your three highest-traffic page templates โ€” homepage, category, and product detail โ€” separately. LCP elements differ across templates, and a fix on the homepage does not automatically carry over to product pages. Retest in PageSpeed Insights after each change; the tool's 'Diagnostics' section confirms whether the specific failure was resolved before you move to the next item.

Frequently asked questions

What is a passing LCP score for an ecommerce store?

Google classifies LCP as 'Good' when it loads in 2.5 seconds or under, 'Needs Improvement' between 2.5 and 4.0 seconds, and 'Poor' above 4.0 seconds. These thresholds apply at the 75th percentile of real user sessions, meaning three-quarters of your visitors must meet the threshold for the page to be considered passing.

What is the most common LCP problem on ecommerce sites?

The single most common cause is a lazy-loaded hero or product image. Many Shopify and WooCommerce themes apply loading='lazy' to all images by default, including the above-the-fold LCP image. Removing that attribute from the LCP image โ€” and adding a preload hint โ€” typically produces the largest single improvement in LCP scores.

Does LCP affect Google search rankings?

Yes. LCP is one of the three Core Web Vitals metrics that Google uses as a ranking signal through its Page Experience system. A page with a Poor LCP score is at a disadvantage relative to a competitor page with equivalent content and an LCP in the Good range. The signal is most decisive when other ranking factors are closely matched.

How is LCP different from First Contentful Paint (FCP)?

FCP marks when the first pixel of any content renders โ€” a logo, a tiny icon, or a loading spinner qualifies. LCP marks when the largest meaningful content element renders. On ecommerce pages, FCP fires much earlier than LCP because small header elements paint before the hero image. LCP is the more useful metric because it reflects when the page feels substantially loaded to users.

Should this LCP audit be run on mobile or desktop?

Run it on mobile first. Google's Core Web Vitals scores in Search Console use mobile data for mobile-indexed pages, and mobile devices are where LCP is slowest due to slower CPUs, variable connections, and smaller caches. After fixing mobile failures, run the audit on desktop โ€” some fixes like image sizing differ because display dimensions vary significantly between viewports.

MG
Written by

Matt is the founder of RunOctopus. He built All Angles Creatures from zero to page-1 rankings in reptile feeder insects in under 60 days using exactly this method โ€” turning a hard, entrenched niche into RunOctopus's proof store for programmatic SEO and AI search citation.

Connect on LinkedIn →

See what Otto would build for your store

Free architecture preview. No card required. Five minutes.

Generate Preview →