Slow page
Moderate effortFound on 59% of audited stores.
Reduce your page load time to under 3 seconds by compressing images, eliminating render-blocking scripts and styles, and improving server response speed.
What it is
Page load time is how long it takes for a visitor's browser to fully display your store page. When a page takes longer than about 3 seconds, visitors tend to leave before they even see your products — a behaviour called "bouncing." Google also directly measures loading speed as part of its Core Web Vitals scoring system, which feeds into how high your pages rank in search results. A load time of nearly 10 seconds (like the example above) is extremely slow and will hurt both rankings and sales.
Why it matters
Google uses Core Web Vitals — which include Largest Contentful Paint (LCP), a direct measure of loading speed — as a confirmed ranking signal. Pages that load slowly rank lower in search results, meaning fewer shoppers find you organically. Research consistently shows that every additional second of load time reduces conversion rates by roughly 4–7 %, so a 10-second page can cost you a significant share of potential sales. Slow pages also create a poor first impression, increase bounce rates, and can disqualify your pages from Google's "Page Experience" enhancements in search results. On mobile — where Google primarily indexes your site — performance issues are amplified further.
How to fix it
- Audit the page using Google PageSpeed Insights (pagespeed.web.dev) or Lighthouse to identify exactly which resources are slowest and get prioritised recommendations.
- Compress and properly size all images: convert to modern formats (WebP or AVIF), resize images to the actual display dimensions, and enable lazy loading for images below the fold.
- Eliminate or defer render-blocking JavaScript and CSS: move non-critical scripts to load asynchronously or defer them, and inline only the critical CSS needed for above-the-fold content.
- Enable browser caching and HTTP/2 on your server so that repeat visitors and concurrent resource loads are faster.
- Minimise the number of third-party scripts (chat widgets, tracking pixels, review apps, etc.) — each one adds network round-trips; audit and remove any you don't actively need.
- Use a Content Delivery Network (CDN) so static assets (images, fonts, CSS, JS) are served from a server geographically close to each visitor, and enable server-side compression (Gzip or Brotli) for text-based resources.
Fix it on your platform
Pick your platform for the exact steps.
How to fix slow page on Shopify
- Run your storefront URL through Google PageSpeed Insights to get a prioritised list of issues before touching anything.
- Images: In the Shopify admin go to Content → Files and replace large images with compressed WebP versions. In your theme's Liquid templates use the | image_url and | image_tag filters with 'width' parameters and loading='lazy' to serve correctly sized images automatically.
- Theme JS/CSS: Go to Online Store → Themes → Actions → Edit Code. In theme.liquid, move non-critical <script> tags to just before </body> and add the 'defer' or 'async' attribute.
- Apps: Go to Apps and uninstall any app you are not actively using — every installed app can inject scripts. Use the Shopify App Store's performance-rated apps where possible.
- Speed apps: Install a dedicated performance app such as 'Crush.pics' (image compression), 'TinyIMG', or 'Swift' to automate image and code optimisation.
- Shopify's CDN is built-in for hosted assets, but ensure your theme uses the Shopify CDN URLs ({{ 'style.css' | asset_url }}) rather than external CDN links for theme files.
How to fix slow page on Shopify Plus
- Follow all standard Shopify steps above.
- Use Shopify Plus's Script Editor or Checkout Extensibility to audit and trim any checkout-specific scripts that slow the cart/checkout funnel.
- Work with your Shopify Plus Merchant Success Manager or a Shopify Plus Partner agency to review theme code for custom slowdowns introduced during bespoke development.
- Consider Hydrogen (Shopify's React-based headless framework) for maximum performance control if your catalogue complexity warrants it.
How to fix slow page on WooCommerce
- Install the 'WP Rocket' plugin (paid, most comprehensive) or 'LiteSpeed Cache' / 'W3 Total Cache' (free) via WordPress admin → Plugins → Add New.
- Within the caching plugin's settings, enable: Page Caching, Browser Caching, GZIP Compression, CSS & JS Minification, and Defer JS.
- Images: Install 'Imagify' or 'ShortPixel Image Optimizer' (Plugins → Add New) to bulk-compress existing images and auto-compress new uploads. Enable WebP conversion in the plugin settings.
- In WordPress admin → Settings → Media, set maximum upload dimensions matching your largest display size to prevent oversized originals being stored.
- Audit plugins: WordPress admin → Plugins → Installed Plugins — deactivate and delete any plugin not in active use, as each can add page weight.
- On your hosting control panel (cPanel, Kinsta, WP Engine dashboard, etc.), enable HTTP/2, PHP 8.x, and server-side caching (OPcache) if not already active. Switch to a host with a built-in CDN if your current host lacks one.
How to fix slow page on BigCommerce
- Go to Storefront → My Themes → Advanced → Edit Theme Files and review your theme's JavaScript files for bloat or synchronous loading patterns.
- Images: Use BigCommerce's built-in Akamai Image Manager (enabled by default on most plans) — ensure you are referencing images via the CDN URL and using the 'width' and 'format=auto' query parameters to serve correctly sized WebP images.
- In the theme's templates/layout/base.html, add defer or async to non-critical <script> tags.
- Apps/Scripts: Go to Channel Manager → Scripts (or Storefront → Script Manager) — review every installed script and remove those not in active use.
- Enable BigCommerce's built-in Akamai CDN (included on most plans) — confirm it is active under Store Setup → Store Profile.
- Use Google PageSpeed Insights on your storefront URL and address each flagged resource type individually in the theme editor.
How to fix slow page on Wix
- In the Wix Editor, go to Site → SEO → Core Web Vitals (or use Wix's built-in 'Site Speed' dashboard) to see Wix's own performance suggestions.
- Images: Click each image in the editor → Change Image → ensure uploaded images are no wider than their displayed size. Enable Wix's WebP auto-conversion (on by default) and lazy loading via image settings.
- Remove unused Wix Apps: Go to the Wix App Market dashboard → Manage Apps and remove any app not actively contributing to your store.
- Reduce the number of animations and video backgrounds — each one adds significant page weight on Wix.
- In Editor settings, ensure 'Turbo' (Wix's performance mode) is enabled if available on your plan.
- Wix handles CDN and server caching automatically; your biggest levers are reducing page-level asset weight (images, apps, animations).
How to fix slow page on Squarespace
- Go to Pages → select a page → click the gear icon → SEO tab — review page-level settings, then run the page through Google PageSpeed Insights for specific guidance.
- Images: When uploading images, pre-compress them to under 500 KB using a tool like Squoosh (squoosh.app) before uploading — Squarespace does not allow post-upload compression. Use Squarespace's built-in lazy loading (enabled by default on 7.1).
- In Design → Custom CSS, remove any unused CSS rules you or a designer have added.
- Extensions: Go to Extensions in your Squarespace dashboard and uninstall any extension not in active use.
- Remove third-party embed codes (Settings → Advanced → Code Injection) that are no longer needed — each external script is a network request.
- Squarespace handles CDN, GZIP, and HTTP/2 automatically. Your primary levers are image sizes, custom code injections, and page-level content complexity.
How to fix slow page on Webflow
- In the Webflow Designer, open the Assets panel — select each image and confirm dimensions match the displayed size. Use the Image settings to enable lazy loading ('Load: Lazy') on below-the-fold images.
- Go to Project Settings → Assets → enable 'Auto-compress images' and choose WebP output if available on your plan.
- In Project Settings → Custom Code (or page-level Custom Code), review any scripts added to <head> or before </body> — move analytics/tracking to before </body> and add 'defer' where possible.
- In the Designer, review interactions and animations — delete any that are purely decorative and complex, as they add JS weight.
- Webflow hosts on Fastly CDN and handles GZIP automatically. Publish your site (Publish button) after any changes and re-test with PageSpeed Insights.
- For heavy pages, consider moving large background videos to a YouTube/Vimeo embed rather than a self-hosted video asset in Webflow.
How to fix slow page on Adobe Commerce (Magento)
- In the Admin panel go to Stores → Configuration → Advanced → Developer → JavaScript Settings — set 'Merge JavaScript Files', 'Minify JavaScript Files' to Yes.
- Go to Stores → Configuration → Advanced → Developer → CSS Settings — set 'Merge CSS Files' and 'Minify CSS Files' to Yes.
- Go to Stores → Configuration → Advanced → System → Full Page Cache — enable Varnish Cache (recommended) or the built-in Magento FPC.
- Images: Go to Stores → Configuration → General → Web → and enable WebP image conversion if your theme/extension supports it. Use an image optimisation extension (e.g., 'Magento Image Optimizer' from the Marketplace) to bulk-compress the media gallery.
- Enable Magento's built-in lazy loading for catalog images in your theme's XML layout files, or install a performance extension such as 'Mageworx Lazy Load'.
- At the server level (requires developer/sysadmin): enable OPcache, GZIP/Brotli compression, HTTP/2, and deploy a CDN (Fastly is bundled with Adobe Commerce Cloud; on-premise installs should configure Cloudflare or Cloudfront).
How to fix slow page on WordPress.org
- Install a performance plugin: WP Rocket (paid), LiteSpeed Cache, or W3 Total Cache via Plugins → Add New.
- Enable page caching, browser caching, GZIP, and asset minification/combination within the plugin's settings panel.
- Images: Install ShortPixel or Imagify (Plugins → Add New) → run a bulk optimisation of your Media Library → enable auto-optimise on upload and WebP conversion.
- Defer JS: In your performance plugin, enable 'Delay JavaScript execution' or 'Defer JS' to prevent render-blocking scripts.
- Remove unused plugins (Plugins → Installed Plugins) and switch to a lightweight, performance-focused theme.
- At the hosting level, ensure PHP 8.x and OPcache are enabled (via your host's control panel) and consider a managed WordPress host with a built-in CDN (Kinsta, WP Engine, Cloudways).
How to fix slow page on Headless / Custom (I build in code)
- Run Lighthouse CI in your deployment pipeline to catch performance regressions automatically on every deploy.
- Use Next.js Image component (<Image>) or equivalent framework primitives to get automatic WebP conversion, responsive srcset, and lazy loading out of the box.
- Code-split aggressively: use dynamic imports for heavy components not needed on initial load, and tree-shake unused library code.
- Serve all static assets through a CDN (Cloudflare, Fastly, AWS CloudFront) and set long-lived cache headers (Cache-Control: max-age=31536000, immutable) on versioned assets.
- Enable Brotli compression at the edge/server layer and use HTTP/2 or HTTP/3.
- Profile real-user performance with Chrome DevTools Performance tab and address the largest LCP element first, then Total Blocking Time (TBT), then Cumulative Layout Shift (CLS).
How to fix slow page on Klaviyo
- In your Klaviyo account, go to Settings → Integrations and confirm you are using the latest version of the Klaviyo JavaScript snippet (klaviyo.js). Older embed methods load synchronously and block rendering.
- Replace any legacy synchronous embed (e.g. a <script> tag without async/defer in your theme's <head>) with Klaviyo's recommended asynchronous snippet. In Shopify, navigate to Online Store → Themes → Edit Code → theme.liquid and ensure the Klaviyo <script> tag includes the 'async' attribute: <script async type='text/javascript' src='https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=XXXXXX'></script>
- Audit active Klaviyo on-site forms (pop-ups, flyouts, banners) in Klaviyo → Forms. Disable or archive any forms that are not currently running campaigns — each active form adds JavaScript evaluation weight on every page load.
- For forms that must stay active, set their display trigger to a time delay (e.g. 5 seconds) or scroll depth (e.g. 40%) rather than 'Immediately on page load'. This defers Klaviyo form rendering until after the critical rendering path is complete.
- Turn off Klaviyo's A/B testing on forms if not actively needed. Multiple test variants cause the snippet to fetch additional assets on load; disabling unused tests in Klaviyo → Forms → [Form] → A/B Test reduces this overhead.
- After making changes, validate page speed improvement using Google PageSpeed Insights or WebPageTest and confirm the Klaviyo script no longer appears as a render-blocking resource in the waterfall chart.
How to fix slow page on Yotpo
- In your Yotpo account, go to Settings → General Settings and disable any Yotpo widgets (Reviews, UGC, Loyalty) that are not actively displayed on the page in question — unused widgets still load their JavaScript bundles.
- Navigate to Settings → Widgets and, for each active widget, enable the 'Lazy Load' option if available. This defers widget rendering until the user scrolls near it, removing it from the critical render path.
- Open your theme's code editor and locate the Yotpo script tag (typically `<script src="https://staticw2.yotpo.com/...app.js">` in theme.liquid). Add the `defer` or `async` attribute to it so the browser does not block HTML parsing while downloading the Yotpo bundle.
- In Yotpo's Visuals / UGC settings, reduce the number of images loaded in the initial gallery carousel (e.g. set the initial image count to 4–6 instead of 12+), and confirm that Yotpo is serving images through its own CDN with the smallest dimensions sufficient for the widget size.
- If you use Yotpo Loyalty & Referrals, go to its embed settings and ensure the Loyalty widget is only embedded on the Account or dedicated Loyalty page — not injected site-wide on every page load via the global snippet.
- After making changes, test page load time with Google PageSpeed Insights or WebPageTest to confirm the Yotpo scripts no longer appear as render-blocking resources and that Time to Interactive (TTI) has dropped below 3 seconds.
How to fix slow page on Next.js (Headless)
- Replace every raw <img> tag with Next.js's built-in <Image> component (next/image). Set explicit width, height, and a descriptive alt prop. Add priority prop to above-the-fold hero images so they are preloaded. This enables automatic WebP/AVIF conversion, lazy-loading, and responsive srcsets out of the box.
- Eliminate render-blocking scripts by always using next/script with the correct strategy: strategy='lazyOnload' for analytics/chat widgets, strategy='afterInteractive' for tag managers, and strategy='beforeInteractive' ONLY for truly critical polyfills. Never use a plain <script> tag in _app.tsx / layout.tsx.
- Eliminate render-blocking CSS by importing third-party stylesheets inside the component that needs them (dynamic import) or inlining only the critical CSS. In the App Router, place global styles in app/layout.tsx and use CSS Modules or Tailwind (which purges unused rules at build time) for component styles.
- Enable HTTP caching and edge delivery by adding Cache-Control headers in next.config.js (headers() API) for static assets, and deploy on a CDN-edge runtime (Vercel Edge, Cloudflare, etc.). For API routes / Route Handlers that feed the page, use Next.js fetch() with { next: { revalidate: N } } to enable ISR and avoid blocking SSR round-trips.
- Reduce JavaScript bundle size: enable the SWC minifier (default in Next 13+), use dynamic(() => import('./HeavyComponent'), { ssr: false }) for large client-only widgets (carousels, map pickers), and audit your bundle with NEXT_ANALYZE=true next build via @next/bundle-analyzer.
- Measure before and after: run 'next build && next start' locally, profile with Lighthouse CI or WebPageTest, and verify LCP < 2.5 s, TBT < 200 ms, CLS < 0.1. Commit the next.config.js changes and re-run the audit in CI on every PR.
How to fix slow page on Elementor
- In your WordPress dashboard, go to Elementor → Settings → Performance. Enable 'Optimized Asset Loading' (Improved Asset Loading) to prevent Elementor from enqueuing CSS/JS on pages that don't use Elementor widgets, reducing render-blocking resources site-wide.
- Still in Elementor → Settings → Performance, enable 'Improved CSS Loading' (Critical CSS) so Elementor generates and inlines only the critical CSS needed for above-the-fold content, deferring the rest — this directly eliminates render-blocking stylesheets.
- Enable Elementor's built-in image lazy loading: go to Elementor → Settings → Performance and turn on 'Lazy Load Background Images'. For all Image widgets inside Elementor, open each widget's Advanced tab → ensure 'Lazy Load' is set to 'Yes' so off-screen images are deferred.
- Compress and convert images at the source: in Elementor's image widgets, replace any uploaded PNG/JPG images with WebP versions (upload via Media Library with a plugin such as ShortPixel or Imagify, then re-select the optimized image inside each Elementor widget). Target file sizes under 150 KB per hero image.
- Eliminate remaining render-blocking scripts: go to Elementor → Settings → Performance and enable 'Defer JavaScript Execution'. This adds the `defer` attribute to Elementor's own JS bundles, preventing them from blocking the browser's HTML parser.
- Improve server response speed for Elementor-built pages: install a full-page caching plugin compatible with Elementor (e.g. LiteSpeed Cache or WP Rocket), then in that plugin's settings enable page caching, enable GZIP/Brotli compression, and activate a CDN integration so Elementor's static assets (elementor/assets/) are served from edge nodes closer to shoppers.
Does your site have this issue?
Run a free SEOLZ scan to find slow page — and every other issue — across your whole site in minutes.
Scan my site freeFrequently asked questions
What is Slow page?
Page load time is how long it takes for a visitor's browser to fully display your store page. When a page takes longer than about 3 seconds, visitors tend to leave before they even see your products — a behaviour called "bouncing." Google also directly measures loading speed as part of its Core Web Vitals scoring system, which feeds into how high your pages rank in search results. A load time of nearly 10 seconds (like the example above) is extremely slow and will hurt both rankings and sales.
Why does slow page matter?
Google uses Core Web Vitals — which include Largest Contentful Paint (LCP), a direct measure of loading speed — as a confirmed ranking signal. Pages that load slowly rank lower in search results, meaning fewer shoppers find you organically. Research consistently shows that every additional second of load time reduces conversion rates by roughly 4–7 %, so a 10-second page can cost you a significant share of potential sales. Slow pages also create a poor first impression, increase bounce rates, and can disqualify your pages from Google's "Page Experience" enhancements in search results. On mobile — where Google primarily indexes your site — performance issues are amplified further.
How do I fix slow page?
Reduce your page load time to under 3 seconds by compressing images, eliminating render-blocking scripts and styles, and improving server response speed.
Authoritative references
- Page experience & Core Web Vitals — Google Search Central
- Core Web Vitals — web.dev
- SEO Starter Guide — Google Search Central
- Mobile-first indexing — Google Search Central