Google Lighthouse Audit for PrestaShop: Interpreting Each Score
What Google Lighthouse Measures
Google Lighthouse is an automated auditing tool built into Chrome DevTools that evaluates web pages across four main categories: Performance, Accessibility, Best Practices, and SEO. Each category produces a score from 0 to 100, and each score is calculated from specific metrics and checks that have different weights. Understanding what these scores actually mean for a PrestaShop store, and what realistic targets look like, is essential before you spend time optimizing.
Lighthouse runs in two environments. Lab data comes from a simulated environment with controlled network throttling and CPU slowdown. Field data comes from real users through the Chrome User Experience Report (CrUX). The scores you see when running Lighthouse in Chrome DevTools are lab data. The scores Google uses for ranking purposes (Core Web Vitals) come from field data. This distinction matters because lab and field results often differ significantly, and optimizing for one does not always improve the other.
For PrestaShop stores, Lighthouse is particularly revealing because PrestaShop's default configuration and most themes are not optimized for modern performance standards. A typical unoptimized PrestaShop store scores between 15 and 40 on Performance, 60 to 80 on Accessibility, 70 to 85 on Best Practices, and 75 to 90 on SEO. These baseline scores tell you where the biggest opportunities lie.
Performance Score: The Most Complex Category
The Performance score is a weighted composite of six metrics. Each metric captures a different aspect of how fast the page loads and becomes interactive. Understanding the individual metrics is far more useful than focusing on the overall number.
Largest Contentful Paint (LCP)
LCP measures when the largest visible content element finishes rendering. On a PrestaShop product page, this is usually the main product image. On a category page, it might be the first product image or a category banner. Google considers LCP good when it is under 2.5 seconds, needs improvement between 2.5 and 4 seconds, and poor above 4 seconds.
PrestaShop-specific LCP problems include oversized product images served without proper responsive sizing, render-blocking CSS from modules that load on every page, server response times slowed by unoptimized database queries (especially on category pages with many products), and third-party module JavaScript that delays the rendering pipeline.
To improve LCP on PrestaShop, start with image optimization. Ensure product images are properly sized for each context (do not serve a 2000x2000 image when the display area is 400x400). Enable lazy loading for below-the-fold images but ensure the LCP image is NOT lazy loaded, as this delays its rendering. Implement preload hints for the LCP image using a <link rel="preload"> tag in the page header. On the server side, enable OPcache, configure MySQL query caching, and ensure your hosting has adequate resources.
Cumulative Layout Shift (CLS)
CLS measures visual stability. Every time a visible element moves position after initially rendering, it contributes to the CLS score. Google considers CLS good when it is under 0.1, needs improvement between 0.1 and 0.25, and poor above 0.25.
PrestaShop stores commonly suffer from CLS caused by images loading without defined dimensions (the browser does not know how much space to reserve, so content jumps when the image loads), web fonts loading and causing text to reflow (FOUT, Flash of Unstyled Text), dynamically injected banners or notification bars from modules, cookie consent banners that push page content down, and lazy-loaded product images in grids that shift surrounding products when they appear.
Fixing CLS in PrestaShop requires setting explicit width and height attributes on all images (or using CSS aspect-ratio), preloading critical web fonts with font-display: swap or font-display: optional, reserving space for dynamic elements like cookie banners using CSS min-height, and ensuring ad or promotional modules inject content without shifting existing elements.
First Contentful Paint (FCP)
FCP measures when the first piece of content appears on screen. This could be text, an image, an SVG, or a canvas element. For PrestaShop, FCP is heavily influenced by the time it takes the server to respond (Time to First Byte) and the amount of render-blocking resources (CSS and JavaScript) that must be downloaded before the browser can paint anything.
PrestaShop's default configuration loads a significant amount of CSS and JavaScript synchronously in the head of every page. Each installed module can add its own CSS and JavaScript files. A store with 30 modules might load 15 to 25 separate CSS files and 20 to 30 JavaScript files before any content appears. This directly increases FCP.
Total Blocking Time (TBT)
TBT measures the total time between FCP and Time to Interactive where the main thread was blocked for long enough to prevent input responsiveness. Any task longer than 50 milliseconds has its excess time counted toward TBT. For example, a 200-millisecond task contributes 150 milliseconds to TBT.
PrestaShop stores are notorious for high TBT values. Common culprits include jQuery and its plugins executing synchronously, module JavaScript that performs heavy DOM manipulation on page load, analytics and tracking code from multiple modules, product page scripts that initialize sliders, zoom functionality, and combination selectors simultaneously, and chat widgets and social media embeds.
Reducing TBT requires deferring non-critical JavaScript, breaking long tasks into smaller async chunks, removing unused module JavaScript, and loading third-party widgets after the page becomes interactive.
Speed Index
Speed Index measures how quickly the visible area of the page is populated. It captures the overall visual progression of the page load. A page where the header, navigation, and first product row appear quickly but the rest loads gradually will have a better Speed Index than a page where everything appears at once after a long delay.
For PrestaShop, Speed Index improves when you prioritize above-the-fold content rendering. This means inlining critical CSS (the CSS needed to render the visible portion of the page without scrolling), deferring below-the-fold images, and avoiding JavaScript that blocks rendering of visible content.
Interaction to Next Paint (INP)
INP replaced First Input Delay (FID) as a Core Web Vital in March 2024. It measures the responsiveness of a page throughout its entire lifecycle, not just the first interaction. Every click, tap, and key press is measured, and the worst interaction latency (approximately) becomes the INP value. Google considers INP good under 200 milliseconds.
PrestaShop stores often have poor INP on product pages where clicking a combination attribute triggers a synchronous AJAX request that blocks the UI, on category pages where faceted filter clicks cause heavy JavaScript processing, and on any page where module JavaScript monopolizes the main thread during user interaction.
Accessibility Score
The Accessibility score evaluates whether your page can be used by people with disabilities, including those using screen readers, keyboard navigation, or other assistive technologies. Lighthouse checks for specific WCAG 2.1 compliance items and assigns each a weight based on user impact.
Common PrestaShop Accessibility Failures
Missing alt text on images is the most frequent issue. PrestaShop stores with thousands of products often have products uploaded without alt text descriptions. Lighthouse flags every image without an alt attribute. The fix is to add meaningful alt text to all product images through the back office, which also benefits SEO.
Insufficient color contrast is extremely common in PrestaShop themes. The theme designer may have chosen colors that look visually appealing but do not meet the WCAG minimum contrast ratio of 4.5:1 for normal text and 3:1 for large text. Typical problems include light gray text on white backgrounds (often used for product prices, descriptions, or footer links), white text on colored buttons where the color is not dark enough, and placeholder text in search inputs.
Missing form labels affect PrestaShop's search forms, newsletter signup forms, and contact forms. Many themes use placeholder text as the only indication of what an input field is for, but placeholders are not accessible labels. Each input must have an associated <label> element.
Incorrect heading hierarchy is common when themes skip heading levels (jumping from <h1> to <h3>) or when modules inject content with heading levels that break the page's document outline.
Missing ARIA attributes on interactive elements like dropdown menus, modal dialogs, and tab interfaces mean screen readers cannot convey the purpose and state of these elements to users.
Realistic Accessibility Targets
Most PrestaShop themes with effort can reach 85 to 95. A perfect 100 is achievable but requires theme template modifications, which may be overwritten during updates. Focus on the highest-impact items first: image alt text, color contrast, form labels, and keyboard navigation for the main user flows (browse, add to cart, checkout).
Best Practices Score
The Best Practices category covers general web development quality signals: HTTPS usage, avoidance of deprecated APIs, console error absence, and security headers.
Common PrestaShop Best Practices Failures
Browser console errors are flagged by Lighthouse. PrestaShop stores frequently have JavaScript errors from module conflicts, deprecated jQuery function calls, or failed AJAX requests. Each console error reduces the Best Practices score. Check your browser console on every page type (homepage, category, product, cart, checkout) and fix or suppress the errors.
Missing security headers reduce the score. PrestaShop does not set headers like Content-Security-Policy, X-Content-Type-Options, Permissions-Policy, or Referrer-Policy by default. Adding these via your .htaccess or web server configuration improves the Best Practices score and your site's security posture.
Deprecated APIs trigger warnings when older PrestaShop themes or modules use JavaScript APIs that browsers have deprecated. Common examples include document.write(), synchronous XMLHttpRequest, and the unload event listener. These are typically found in older modules that have not been updated for modern browser standards.
Mixed content (loading HTTP resources on an HTTPS page) is flagged severely. This happens when module assets, external fonts, or tracking pixels use HTTP URLs. Ensure all resources load over HTTPS.
Images without explicit width and height (which also affects CLS under Performance) are flagged here as well. PrestaShop themes that use CSS-only sizing for images without setting HTML attributes trigger this check.
Realistic Best Practices Targets
A well-maintained PrestaShop store should target 90 to 100. Most Best Practices issues are straightforward to fix through server configuration and module cleanup.
SEO Score
The SEO audit checks for basic technical SEO requirements. This is the easiest category to score well in because the checks are straightforward and PrestaShop handles many of them by default.
What Lighthouse Checks for SEO
The audit verifies that the page has a valid <title> tag, a meta description, a valid viewport meta tag, that links have descriptive text (not just "click here"), that the page is not blocked from indexing, that images have alt attributes, that the document has a valid hreflang if it serves multiple languages, that the font size is legible on mobile, and that tap targets (buttons, links) are adequately sized and spaced.
Common PrestaShop SEO Failures
Missing or duplicate meta descriptions are common on category pages, especially auto-generated ones. PrestaShop allows you to set meta descriptions per category and per product, but many store owners leave these fields empty during bulk product imports.
Non-descriptive link text appears when themes use generic text like "Read more" or "Details" for product links without additional context. Screen readers and Lighthouse both flag these.
Small tap targets affect mobile users. PrestaShop themes with compact product grids on mobile may have links and buttons that are too close together or too small. Google recommends a minimum 48x48 CSS pixel touch target with at least 8 pixels of spacing between adjacent targets.
Blocked resources can cause Lighthouse to report that JavaScript or CSS files are inaccessible. This happens when robots.txt blocks access to asset directories. PrestaShop's default robots.txt sometimes blocks directories that contain CSS or JavaScript files needed for rendering.
Realistic SEO Targets
A PrestaShop store should target 90 to 100 on the SEO audit. Most items are simple configuration fixes. The one persistent challenge is image alt text on stores with large catalogs and historical imports that skipped alt text.
Lab Data vs. Field Data
Understanding the difference between lab and field data is critical for interpreting Lighthouse results correctly and prioritizing your optimization work.
Lab Data (Lighthouse)
When you run Lighthouse from Chrome DevTools or the command line, it creates a simulated environment. It throttles the network connection (typically to a slow 4G speed of about 1.6 Mbps with 150ms latency) and slows the CPU (typically 4x slowdown). This simulated environment produces consistent, reproducible results but does not reflect any specific real user's experience.
Lab data is useful for debugging specific issues, comparing before and after optimization changes, and identifying specific bottlenecks in the loading process. But the scores should not be taken as representing real user experience.
Field Data (CrUX)
The Chrome User Experience Report (CrUX) collects real performance data from Chrome users who have opted in to usage statistic reporting. This data is aggregated at the 75th percentile, meaning the reported value represents the experience of 75 percent of your users being at or better than that threshold.
Field data is what Google actually uses for ranking signals through Core Web Vitals. You can view your field data in Google Search Console under the Core Web Vitals report, in PageSpeed Insights (which shows both lab and field data), and through the CrUX API or BigQuery dataset.
Why Scores Differ
Lab scores are typically lower than field scores for PrestaShop stores because Lighthouse uses aggressive throttling. A store on a fast server with a CDN might score 35 in Lighthouse lab mode but have perfectly acceptable field metrics because real users on decent connections experience the store much faster than the simulated slow 4G environment. Conversely, stores with issues that only manifest under real-world conditions (JavaScript errors from specific browser versions, third-party widget slowdowns, or geographic latency to users far from the server) may have better lab scores than field scores.
Which to Prioritize
For Google ranking purposes, prioritize field data and Core Web Vitals (LCP, INP, CLS). For developer debugging and optimization work, use lab data because it is consistent and gives you detailed diagnostic information. If your field data shows passing Core Web Vitals but your lab Performance score is 40, your users are fine and Google will not penalize you. If your lab score is 90 but field data shows failing Core Web Vitals, you have a problem that lab testing is not capturing.
Realistic Score Targets for PrestaShop
Setting realistic targets prevents wasted effort chasing diminishing returns. Here are achievable targets for a typical PrestaShop 1.7 or 8.x store.
Performance: 50 to 75 (Mobile), 80 to 95 (Desktop)
Mobile Performance scores above 75 are extremely difficult for PrestaShop stores with rich product pages, multiple modules, and dynamic content. The throttled mobile simulation is harsh. A score of 50 to 65 on mobile with passing Core Web Vitals in field data is a good result. Desktop scores of 85 to 95 are achievable with standard optimizations.
Do not chase a mobile Performance score of 100. The effort required to go from 70 to 100 on mobile typically involves removing functionality that your store needs (product image zoom, dynamic cart updates, combination selectors). Instead, focus on passing Core Web Vitals thresholds in field data.
Accessibility: 85 to 95
This range is achievable with theme template fixes and content discipline. The main ongoing effort is ensuring all new products have alt text and that any new modules do not introduce accessibility regressions.
Best Practices: 90 to 100
Achievable with server configuration, console error cleanup, and keeping modules updated. This score tends to degrade over time as new modules are added, so regular monitoring helps.
SEO: 90 to 100
The easiest to achieve and maintain. Most items are one-time configuration fixes.
Actionable Improvement Checklist
This checklist prioritizes optimizations by impact, starting with the changes that produce the largest score improvements for the least effort.
High Impact, Low Effort
Enable PrestaShop's CCC (Combine, Compress, Cache) feature under Performance settings to merge and minify CSS and JavaScript files. Add width and height attributes to all images in theme templates. Set explicit dimensions on product images. Enable browser caching through proper cache headers in your server configuration. Compress text resources with Gzip or Brotli. Remove or disable modules you are not actively using. Add security headers to your server configuration.
High Impact, Medium Effort
Implement critical CSS inlining for above-the-fold content. Defer non-critical JavaScript with the defer or async attribute. Optimize and properly size product images (serve different sizes for different contexts using srcset). Preload critical resources (LCP image, primary font files). Fix all browser console errors. Add missing alt text to all product and category images.
Medium Impact, Higher Effort
Implement a CDN for static assets and images. Switch to a more performance-oriented PrestaShop theme if your current theme is fundamentally slow. Optimize server-side performance (database indexes, OPcache, Redis for caching). Implement WebP image serving with JPEG fallback. Audit and optimize third-party module JavaScript for main thread blocking.
Monitoring Over Time
A one-time Lighthouse audit is less valuable than regular monitoring. Scores change as you add products, install modules, update themes, and modify configurations. Set up automated Lighthouse testing using tools like Google PageSpeed Insights API, web.dev Measure, or self-hosted Lighthouse CI. Run tests weekly at minimum and after any significant store change.
Track both the overall scores and the individual metrics. A Performance score drop from 65 to 55 is concerning, but knowing that it was caused by a CLS regression from a newly installed banner module is actionable. Without metric-level tracking, you are guessing at causes.
Pay particular attention to Core Web Vitals in Google Search Console. Google updates this data monthly, and any regression from "Good" to "Needs Improvement" or "Poor" can affect your search rankings. Set up alerts for Core Web Vitals changes so you can respond before the impact becomes visible in traffic data.
Further reading: Page Speed and SEO: How Slow Loading Kills Your Google Rankings and Image Optimization for PrestaShop: Faster Loading Without Losing Quality.
Was this answer helpful?
Still have questions?
Can't find what you're looking for? Send us your question and we'll get back to you quickly.