Low performance score
Larger projectFound on 40% of audited stores.
Improve your Lighthouse/PageSpeed performance score by reducing page weight, deferring JavaScript, optimizing images, and fixing Core Web Vitals metrics so your store loads fast on mobile and desktop.
What it is
Lighthouse (the engine behind Google's PageSpeed Insights tool) grades every page from 0–100 on performance. The score rolls up several real-world loading metrics — most importantly Google's Core Web Vitals: Largest Contentful Paint (LCP, how fast the main content appears), Interaction to Next Paint (INP, how fast the page reacts to taps/clicks), and Cumulative Layout Shift (CLS, how much the layout jumps around). A score of 8/100 on mobile means the page is extremely slow for the majority of shoppers who visit on a phone. The score is not a vanity number — it reflects a genuine, measurable delay that real visitors experience.
Why it matters
Google uses page experience signals, including Core Web Vitals, as a ranking factor for mobile search — a store with a very low score can lose meaningful search visibility to faster competitors. Beyond rankings, conversion research consistently shows that every additional second of load time can reduce conversions by 10–20%; a score in single digits means customers are likely abandoning the page before it even finishes loading. Slow pages also penalize your Google Ads Quality Score, raising your cost-per-click. On mobile — where most ecommerce traffic now originates — the experience gap between a score of 8 and 80 is the difference between a bounce and a sale.
How to fix it
- Run a free audit at PageSpeed Insights (pagespeed.web.dev) or Lighthouse in Chrome DevTools on your most important pages (homepage, top category, top product) to identify which specific metrics are failing and which resources are the biggest culprits.
- Optimize and compress every image: convert large PNGs/JPEGs to WebP or AVIF, resize images to the dimensions they actually display at (never serve a 3000 px image in a 400 px slot), and add width/height attributes to prevent layout shift (CLS).
- Eliminate render-blocking JavaScript and CSS: audit installed apps, plugins, and third-party scripts (chat widgets, pop-up tools, review carousels) — remove any you no longer need, defer or async-load the rest so they don't delay the first paint.
- Enable server-side performance features on your hosting or CDN: HTTP/2, Gzip/Brotli compression, browser caching (long cache-control headers for static assets), and a Content Delivery Network (CDN) so assets load from a server geographically close to each visitor.
- Reduce 'total blocking time' caused by large JavaScript bundles: split code so only the JS needed for the current page loads first; use a tag manager audit to remove duplicate or unused tracking scripts.
- Measure your Core Web Vitals in the 'field data' section of PageSpeed Insights (real-user data from the Chrome UX Report) after every change, and set a goal of LCP < 2.5 s, INP < 200 ms, and CLS < 0.1 on mobile.
<!-- Hero/LCP image: load eagerly with high priority, explicit dimensions -->
<img
src="hero-banner.webp"
alt="Summer collection — shop now"
width="1200"
height="600"
loading="eager"
fetchpriority="high"
/>
<!-- All below-fold images: lazy-load, explicit dimensions to prevent CLS -->
<img
src="product-thumbnail.webp"
alt="Blue running shoes"
width="400"
height="400"
loading="lazy"
/>
<!-- Defer non-critical third-party scripts -->
<script src="https://example-chat-widget.com/widget.js" defer></script>Fix it on your platform
Pick your platform for the exact steps.
How to fix low performance score on Shopify
- Theme bloat — Online Store → Themes → Customize: disable or remove unused sections, apps, and feature blocks. Each app you remove from the theme eliminates its JS/CSS payload.
- App scripts — Apps → (review each installed app) → uninstall any apps whose scripts load on every page but are not actively used; residual script tags from deleted apps must be removed manually in Online Store → Themes → Edit Code → theme.liquid (look for <script> tags referencing old apps).
- Image optimization — Shopify automatically serves WebP via its CDN when the browser supports it; ensure your theme uses the img_url filter with width parameter, e.g. {{ product.featured_image | img_url: '800x' }}, so Shopify resizes and CDN-delivers the correct size. Add explicit width and height attributes in the img tag.
- Lazy-loading — In Edit Code → snippets/product-image.liquid (or equivalent), add loading='lazy' to all below-the-fold images; the hero/above-fold image should have loading='eager' and fetchpriority='high'.
- Font optimization — In theme.liquid, replace Google Fonts <link> imports with a self-hosted subset or use font-display: swap in your CSS (Online Store → Themes → Edit Code → assets/theme.css).
- Use a performance-focused theme — Dawn (Shopify's free default) scores significantly higher than many third-party themes. Consider migrating if your current theme is the root cause.
- Apps to help — 'Crush.pics' or 'TinyIMG' for bulk image compression; 'Tapita' or 'Hyperspeed' for script deferral and CSS optimization specific to Shopify.
How to fix low performance score on WooCommerce
- Hosting — Switch to a host with LiteSpeed or Nginx + object caching (Redis/Memcached) if you're on shared Apache hosting; this alone can double your score.
- Caching & optimization plugin — Install WP Rocket (paid, easiest all-in-one) or the free stack: LiteSpeed Cache OR W3 Total Cache + Autoptimize. Configure: page caching ON, CSS/JS minification ON, defer JS ON, lazy-load images ON.
- Image optimization — Install ShortPixel or Imagify: Dashboard → ShortPixel → Bulk Optimize to convert existing images to WebP and compress them. Set all new uploads to auto-optimize.
- Remove plugin bloat — Dashboard → Plugins → deactivate and delete any unused plugins. Use Query Monitor or Asset CleanUp Pro to identify which plugins add scripts to which pages, then disable per-page.
- CDN — In your caching plugin's CDN tab, connect Cloudflare (free) or BunnyCDN to serve static assets from edge nodes worldwide.
- Core theme/block editor — If using a page builder (Elementor, Divi), check its own performance settings (Elementor: Dashboard → Elementor → Performance → enable Improved Asset Loading and Inline Critical CSS).
How to fix low performance score on BigCommerce
- Use Cornerstone theme — Storefront → Themes: Cornerstone (BigCommerce's official theme) is the most performance-optimized. If on a custom theme, compare its PageSpeed score against Cornerstone to diagnose theme-level bloat.
- Script Manager — Store Setup → Script Manager: review every script installed. Delete or disable scripts that are not actively used. Set non-critical scripts to 'Footer' placement and load strategy 'Defer' where the option exists.
- Image optimization — When uploading product images, BigCommerce serves them via Akamai CDN automatically. Ensure you upload images no larger than necessary (max 1280 px on longest side for most layouts). Use WebP uploads where your theme supports the <picture> element.
- Lazy loading — In Storefront → My Themes → Advanced → Edit Theme Files → templates/components/products/product-listing.html, add loading='lazy' to product card images.
- Fonts & CSS — In assets/scss/settings/ reduce the number of loaded font weights and use font-display: swap in your SCSS files.
- Apps — Apps Marketplace: 'Yottaa' or 'Amasty Speed Optimizer' provide server-side script bundling and CDN optimization for BigCommerce stores.
How to fix low performance score on Wix
- Wix handles core infrastructure (CDN, compression, HTTP/2) automatically — your leverage is in content and design choices.
- Images — In the Wix Editor, click each image → Settings → Optimize for web. Wix will auto-convert to WebP. Avoid uploading images wider than 2560 px; use 'Original' crop setting only when necessary.
- Remove unused apps — Wix App Market → Manage Apps: delete any installed apps you no longer use; each adds script weight to every page.
- Wix performance settings — Dashboard → Settings → Performance: enable 'Turbo' (available on some plans) which defers off-screen resources.
- Video backgrounds — Replace video background sections on mobile with a static image (Editor → Mobile view → click the section → change background to image); video backgrounds are the single biggest LCP killer on Wix mobile.
- Third-party scripts — Settings → Custom Code: audit every snippet added here. Remove tracking pixels, chat widgets, or pop-up scripts that are no longer needed or that load on every page unnecessarily.
How to fix low performance score on Squarespace
- Images — In the Pages panel, edit each page and click every image block → Image Settings → set focal point; Squarespace auto-serves WebP and resizes via its CDN when you upload correctly-sized originals (keep source files under 500 KB and no wider than 2500 px).
- Remove third-party scripts — Settings → Advanced → Code Injection: audit the <head> and footer code blocks. Remove any unused analytics, chat, or marketing scripts.
- Fonts — Design → Fonts: limit your selection to 1–2 font families; each additional font family adds an external request. Use system fonts (e.g., '-apple-system, sans-serif') via custom CSS for body text if performance is critical.
- Page sections — Edit each page and delete or hide any sections/blocks that are not visible or not needed; hidden blocks still load their assets in some Squarespace versions.
- Commerce scripts — Extensions → (review): uninstall any Squarespace Extensions that inject scripts if you are not actively using them.
- Video — Replace background videos on mobile by going to the section settings and toggling 'Disable video on mobile' — this alone dramatically improves mobile LCP.
How to fix low performance score on Webflow
- Images — In the Designer, select each image → Element Settings panel: enable 'Lazy load' for below-fold images; set explicit width and height. Use the Webflow Asset Manager to upload WebP images directly.
- Interactions & animations — Webflow Interactions add significant JS. In the Interactions panel, audit and delete any unused animations. Disable interactions that fire on every page scroll if not essential.
- Custom code — Project Settings → Custom Code (site-wide) and Page Settings → Custom Code (per-page): audit all <head> and before-</body> scripts. Move analytics and marketing scripts to the footer and add defer or async attributes.
- Fonts — Project Settings → Fonts: remove any unused Google Fonts or Adobe Fonts. Each font family/weight is a separate network request.
- Unused CSS — Webflow does not generate unused CSS the way hand-coded sites do, but third-party embed scripts can. Audit embed blocks on each page.
- Hosting CDN — Webflow's hosting uses Fastly CDN automatically. Ensure your site is published to Webflow Hosting (not a custom server export without CDN) to benefit from edge caching.
How to fix low performance score on Adobe Commerce (Magento)
- Full Page Cache — Stores → Configuration → Advanced → System → Full Page Cache: enable Varnish (strongly recommended for production) or the built-in FPC. This is the single highest-impact change for Magento performance.
- JS/CSS bundling and minification — Stores → Configuration → Advanced → Developer → JavaScript Settings: enable 'Minify JavaScript Files' and 'Move JS code to the bottom of the page'. Under CSS Settings, enable 'Minify CSS Files'.
- Image optimization — Use a Magento extension such as 'tinify/tinify' or a CDN with image optimization (Cloudflare Polish, Fastly Image Optimization, or Cloudinary). In your theme's layout XML, ensure product images use the correct image role and size declarations to prevent oversized images being served.
- Third-party scripts — Admin → Stores → Configuration → Sales → Google API / Marketing: disable integrations you are not actively using. Audit your theme's default.xml and head section for injected scripts.
- CDN for static assets — Stores → Configuration → General → Web → Base URLs (Secure): configure a CDN base URL so all static assets (JS, CSS, images) are served from CDN edge nodes.
- Deploy mode — Ensure your server is in 'production' mode (bin/magento deploy:mode:set production), which generates optimized, merged static files. Developer mode severely degrades performance.
- Hosting — Magento's minimum spec is high; upgrade to at least PHP 8.x with OPcache enabled, Redis for session and cache storage, and a server with ≥4 GB RAM if on VPS/dedicated.
How to fix low performance score on Elementor
- In your WordPress admin, go to Elementor → Settings → Performance tab. Enable 'Optimized Asset Loading' (Improved Asset Loading) to load only the CSS/JS required for each page instead of site-wide, then save changes.
- Still in Elementor → Settings → Performance, enable 'Improved CSS Loading' to inline critical CSS and defer non-critical stylesheets, and turn on 'Lazy Load Background Images' so off-screen background images set via Elementor widgets are deferred.
- Go to Elementor → Settings → Experiments and activate 'Optimized DOM Output' — this reduces the number of wrapper divs Elementor renders, cutting HTML payload and improving rendering performance.
- For every image widget in Elementor editor, open the Content tab of the Image or Section/Column background, set the Image Size to the smallest adequate preset (e.g. 'Large' instead of 'Full'), and in the Advanced tab enable the native 'Lazy Load' attribute so images below the fold are not fetched on initial load.
- Install a WordPress caching + minification plugin compatible with Elementor (e.g. LiteSpeed Cache or WP Rocket), configure it to minify & combine CSS/JS, enable browser caching, and in its 'Excluded JS/CSS' list whitelist Elementor's core files (elementor/assets/js/frontend.min.js) to avoid breaking interactions.
- After applying all changes, go to Elementor → Tools → Regenerate CSS & Data to flush Elementor's stylesheet cache, then verify scores in Google PageSpeed Insights or Lighthouse to confirm Core Web Vitals (LCP, CLS, FID/INP) have improved on both mobile and desktop.
Does your site have this issue?
Run a free SEOLZ audit to find low performance score — and every other issue — across your whole site in minutes.
Scan my site freeFrequently asked questions
What is Low performance score?
Lighthouse (the engine behind Google's PageSpeed Insights tool) grades every page from 0–100 on performance. The score rolls up several real-world loading metrics — most importantly Google's Core Web Vitals: Largest Contentful Paint (LCP, how fast the main content appears), Interaction to Next Paint (INP, how fast the page reacts to taps/clicks), and Cumulative Layout Shift (CLS, how much the layout jumps around). A score of 8/100 on mobile means the page is extremely slow for the majority of shoppers who visit on a phone. The score is not a vanity number — it reflects a genuine, measurable delay that real visitors experience.
Why does low performance score matter?
Google uses page experience signals, including Core Web Vitals, as a ranking factor for mobile search — a store with a very low score can lose meaningful search visibility to faster competitors. Beyond rankings, conversion research consistently shows that every additional second of load time can reduce conversions by 10–20%; a score in single digits means customers are likely abandoning the page before it even finishes loading. Slow pages also penalize your Google Ads Quality Score, raising your cost-per-click. On mobile — where most ecommerce traffic now originates — the experience gap between a score of 8 and 80 is the difference between a bounce and a sale.
How do I fix low performance score?
Improve your Lighthouse/PageSpeed performance score by reducing page weight, deferring JavaScript, optimizing images, and fixing Core Web Vitals metrics so your store loads fast on mobile and desktop.
Authoritative references
- Page experience & Core Web Vitals — Google Search Central
- Core Web Vitals — web.dev
- Mobile-first indexing — Google Search Central