WooCommerce · Self-hosted (WordPress)

WooCommerce SEO Audit: the issues built into WooCommerce — and how to fix them

The most popular ecommerce platform by store count — a WordPress plugin that gives you total control, and total responsibility for performance, security, and crawl hygiene.

Common WooCommerce stacks SEOLZ recognizes

WooCommerce + Stripe · WooCommerce + WooPayments · WooCommerce Headless · WooCommerce + Elementor

Your platform & cart configuration is auto-detected during your audit.

How WooCommerce's architecture shapes your SEO

WooCommerce runs on your own WordPress hosting, so unlike hosted platforms you control the server, robots.txt, .htaccess, and every plugin — but you also own every problem. Its SEO profile is dominated by three things: plugin-and-theme bloat that hurts Core Web Vitals, the layered-navigation and archive URLs WordPress generates automatically, and the fact that it's the single most-attacked CMS on the web. Most fixes are concrete and in your hands: a caching/CDN layer, an SEO plugin configured for products, tightened security headers, and disciplined plugin management.

Reference: WooCommerce developer docs

The issues we see most on WooCommerce stores

Why these happen on WooCommerce

Specific to how WooCommerce is built — not generic checklist advice.

SEO

Plugin and theme bloat kills Core Web Vitals

A typical WooCommerce store stacks a page builder, a slider, several Woo extensions, and a heavy theme — each loading its own CSS/JS on every page. Without caching and a CDN, TTFB and LCP suffer badly on mobile. Add full-page caching, defer non-critical scripts, and audit for plugins loading assets store-wide when they're only needed on one page.

SEO

Layered navigation creates crawlable filter URLs

WooCommerce filter widgets and attribute archives generate parameterised URLs (?filter_color=, ?orderby=, ?min_price=) and thin attribute/tag archive pages. Left open, these bloat the crawl and create duplicate-content clusters. Noindex the low-value archives and control filter parameters in robots.txt.

OWASP

Outdated plugins are the #1 security exposure

WordPress/WooCommerce is the most-targeted stack on the web, and the usual entry point is an outdated plugin or theme. Stores frequently run months-behind components, expose /wp-admin and xmlrpc.php, and ship without basic security headers (CSP, X-Frame-Options, HSTS). Keep core and plugins current, add headers at the server, and lock down login.

Full fix guide →
AEO

Product schema depends on your SEO plugin config

WooCommerce themes don't reliably emit valid Product/Offer JSON-LD on their own. Unless Yoast WooCommerce SEO or Rank Math is installed and configured, your products may have no structured data — invisible to rich results and AI shopping answers. Verify the JSON-LD actually rendered, not just that a plugin is active.

Full fix guide →

Fixes written for WooCommerce

We catalog 167 WooCommerce fixes — exact steps for WooCommerce's admin and theme, each with a link to the official docs.

Catalog coverageSEO

Ensure every product and category page is crawlable and discoverable by submitting a complete XML sitemap, fixing internal links, and removing any crawl blocks so Google can index your full catalog.

On WooCommerce
  1. 1Sitemap: Install Yoast SEO or Rank Math (free). In Yoast: SEO → General → Features → turn on XML Sitemaps. In Rank Math: Rank Math → Sitemap Settings → enable Product and Product Category sitemaps. Submit the sitemap URL to Google Search Console.
  2. 2robots.txt: In Yoast go to SEO → Tools → File Editor to view/edit robots.txt. Ensure no Disallow covers /shop/, /product/, /product-category/, or /store/.
  3. 3Noindex: In Yoast, go to SEO → Search Appearance → Taxonomies → Product Categories and make sure 'Show in search results' is set to Yes. Do the same under Post Types → Products.
  4. 4Internal linking: Ensure every product is assigned to at least one Product Category (Products → [product] → Product categories). Add your shop page and top categories to Appearance → Menus → Primary Menu.
  5. 5Pagination/filtering: If you use AJAX-based product filtering plugins (e.g. WooCommerce Product Filters), verify the plugin outputs crawlable URLs (standard query strings or pretty permalinks) rather than pure JS state changes.
WooCommerce docs →
Cwv clsSEO

Eliminate unexpected layout shifts by reserving explicit space for every image, video, embed, ad, and late-loading widget before it loads, so nothing on your page jumps around as it renders.

On WooCommerce
  1. 1Images: In Appearance > Customize > (theme options) or directly in your theme's template files (e.g. woocommerce/content-single-product.php), ensure every <img> has width and height attributes. WordPress auto-generates these for images added via the Media Library — verify your theme is not stripping them.
  2. 2WordPress Core: Navigate to Settings > Media and confirm thumbnail dimensions are set. When regenerating thumbnails (use the 'Regenerate Thumbnails' plugin), WordPress re-writes width/height into the database markup.
  3. 3Fonts: In Appearance > Theme File Editor (or via a child theme's style.css), add font-display: swap; to every @font-face rule. If your theme uses Google Fonts, install the 'OMGF | Host Google Fonts Locally' plugin to self-host fonts and apply font-display:swap from its settings panel.
  4. 4Third-party plugins (chat, reviews, pop-ups): Go to each plugin's settings and ensure their widgets are positioned fixed/sticky or loaded below the fold. Move any <script> tags these plugins add to the footer using a plugin like 'Asset CleanUp' to defer or move them.
  5. 5Page speed plugin: Install a performance plugin such as WP Rocket, LiteSpeed Cache, or NitroPack. In the plugin's settings, enable 'Eliminate render-blocking resources,' 'Defer JavaScript,' and (in WP Rocket) the 'Remove Unused CSS' option — these collectively reduce the late-loading surprises that cause CLS.
  6. 6Ads/banners: If you use a banner or slider plugin (e.g. MetaSlider, Slider Revolution), set an explicit height on the slider container in CSS, or use the plugin's built-in 'aspect ratio' option, so the space is reserved before the images load.
WooCommerce docs →
Cwv lcpSEO

Reduce Largest Contentful Paint (LCP) to under 2.5 seconds by serving your hero image in a modern format, preloading it, and eliminating render-blocking resources.

On WooCommerce
  1. 1Install the 'Perfmatters' or 'WP Rocket' plugin (Plugins → Add New) to handle render-blocking JS/CSS deferral and preloading in one interface.
  2. 2Convert your hero image to WebP: install the 'Imagify' or 'ShortPixel' plugin, which auto-converts uploaded images to WebP and serves them via <picture> elements with a JPEG/PNG fallback.
  3. 3In your active theme's header.php (Appearance → Theme File Editor → header.php), add a preload link tag for the hero image URL: <link rel='preload' as='image' href='YOUR-HERO-IMAGE-URL.webp' fetchpriority='high'>. If using a page builder (Elementor/Divi), use the theme's Custom Code / Head section instead.
  4. 4In WP Rocket (Settings → WP Rocket → Media tab), enable 'Disable LazyLoad for LCP image' and paste the CSS selector of your hero image so it loads eagerly.
  5. 5Under WP Rocket → File Optimization, enable 'Minify CSS', 'Load CSS asynchronously', 'Defer JavaScript', and 'Delay JavaScript execution' to remove render-blocking resources.
  6. 6Verify: use PageSpeed Insights or the WP Rocket built-in 'Sitechecker' to confirm LCP is under 2.5s on mobile.
WooCommerce docs →
Duplicate meta descriptionSEO

Write a unique, page-specific meta description for every page on your store so Google can display a relevant snippet in search results.

On WooCommerce
  1. 1Install an SEO plugin if not already present — Yoast SEO or Rank Math are the most common choices.
  2. 2For individual products: Admin → Products → Edit product → scroll to the 'Yoast SEO' (or 'Rank Math SEO') meta box below the editor → click the 'Edit snippet' preview → type a unique description in the 'Meta description' field → Update.
  3. 3For shop/category pages: Admin → Products → Categories → Edit category → fill in the SEO meta box 'Meta description' at the bottom → Save.
  4. 4For the homepage: Yoast → Settings → Site basics → Homepage, or navigate to the homepage in the editor and use the page-level Yoast meta box.
  5. 5For bulk updates: use Yoast SEO's bulk editor (Yoast → Tools → Bulk editor → Descriptions tab) to edit descriptions for all posts/pages in one table view without opening each individually.
  6. 6Alternatively, use Rank Math → Content AI or the built-in bulk editing screen under Rank Math → Analytics → Posts for mass updates.
WooCommerce docs →

Browse all 167 WooCommerce fixes →

Based on 7 WooCommerce stores audited on SEOLZ

vs all-platform average

Avg SEO90
+9 above average
Avg AEO53
+11 above average
Avg WCAG86
-4 below average
Avg Security70
-6 below average
Avg GEO53
+5 above average
Avg Composite73
+9 above average

WooCommerce stores score above average overall — but AEO is the common weak point.

⚠ What SEOLZ can't modify on WooCommerce

We still flag these issues — but the fix lives outside what WooCommerce lets you change.

Hosted vs self-hosted

WooCommerce is self-hosted, giving you full control. However, on managed WooCommerce hosting, server-level configurations (PHP, server headers) may be restricted by your host.

Every scan checks all six pillars

🔍
SEO

Search engines need to crawl and understand your catalog. We check every page for indexability, metadata, canonical tags, Core Web Vitals, internal linking, and faceted navigation — the issues that silently kill organic traffic.

Learn how to fix SEO issues →
Answer Engine (AEO)

AI tools like ChatGPT and Google's AI Overviews pull from structured data. We audit your product schema, FAQ markup, brand signals, and E-E-A-T indicators — so your products show up where shoppers are increasingly searching.

Learn how to fix Answer Engine (AEO) issues →
🌐
AI Visibility (GEO)

Is your brand mentioned when someone asks an AI assistant for product recommendations? We track your presence across ChatGPT, Perplexity, and other AI engines — and tell you what's driving mentions up or down.

Learn how to fix AI Visibility (GEO) issues →
Accessibility (WCAG)

1 in 4 adults has a disability. Inaccessible sites face ADA lawsuits — and lose customers. We run WCAG 2.1 AA checks across your catalog pages and tell you exactly what to fix.

Learn how to fix Accessibility (WCAG) issues →
🛡️
Security (OWASP)

Security headers, SSL configuration, email authentication, and server misconfigs — issues that erode customer trust and tank your search rankings if Google flags you.

Learn how to fix Security (OWASP) issues →
Site Lifecycle

SSL expiry, outdated CMS versions, unverified GTM containers. The operational health checks that fall through the cracks — until they cause an outage or a ranking drop.

Learn how to fix Site Lifecycle issues →

Start free. Upgrade when ready.

Scout
Free
1 site · 50 pages/audit · monthly audits
SEO only
  • Composite + pillar scores
  • Issue counts
  • Free forever
Start free
Recommended
Starter
$49/mo
1 site · 500 pages/audit · weekly audits
All 6 pillars
  • Every finding + platform-specific fixes
  • Action plan & Today's Focus
  • ADA risk + AI visibility
  • Export reports
Choose Starter

Questions about WooCommerce audits

Yes — we crawl your live WooCommerce store from the outside. Because WooCommerce is self-hosted, most of our fixes are things fully under your control: server config, plugins, and theme files.

See what's holding back your WooCommerce store

Free scan. No credit card. Results in minutes.

Scan My WooCommerce Store Free