How to fix low performance score on Adobe Commerce (Magento)

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.

Steps for Adobe Commerce (Magento)

  1. 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.
  2. 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'.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
Official Adobe Commerce (Magento) documentation ↗
<!-- 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>

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.

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.

See the complete Low performance score guide for every platform and the full background.

Not sure if your Adobe Commerce (Magento) store has this?

Run a free SEOLZ audit — we’ll find low performance score and every other issue across your whole site.

Scan my site free

Fix low performance score on another platform