Guide Ecommerce SEO Audit

How I audit an online store — and pourquoi I commencer with Recherche Google Console and explorer données, pas on-page tweaks. A prioritized, scale-first ecommerce SEO audit framework: crawlability, indexation, contenu dupliqué, on-page at scale, technical, données structurées, lien internes, out-of-stock handling, and off-page — sorted by impact and effort.

Première publication : 25 juin 2026 · Dernière mise à jour : 3 août 2026 · Advanced
Langues

An ecommerce SEO audit isn't a 500-point checklist — it's the fonctionner of finding the petit définir of problèmes holding a store's rankings and revenue back, alors prioritizing les by impact and effort. Parce que ecommerce sites hit problems at scale, I commencer the audit dans la recherche Google Console (lune page Indexation report) and explorer données, pas on-page tweaks: the biggest wins are usually exploration and indexation problèmes affecting thousands of URLs at une fois. Contenu dupliqué from facets, collections, and variants is the #1 ecommerce-specific problème audits uncover; thin category pages are #2. The goal is to fix the stuff que matters la plupart and skip the busywork.

TL;DR — I audit a store in roughly ce order: crawlability → indexation → contenu dupliqué → on-page at scale → technical (CWV, HTTPS, canonicals) → données structurées → lien internes → out-of-stock handling → off-page. I commencer in the GSC Page Indexation report and a fresh explorer, not on-page, parce que on a store the highest-leverage problems hit thousands of URLs at une fois: faceted-nav duplication, accidental sitewide noindex, “Discovered – currently not indexed” at scale, sitemaps complet of redirections. The deliverable is a prioritized impact/effort liste, pas a 500-point report. La plupart stores jamais besoin to worry à propos de budget d’exploration — but the ones que do really do.

Evidence for this claim Search Console's Page indexing report identifies indexed and non-indexed URLs and groups reasons pages are not indexed. Scope: Google Search Console audit data. Confidence: high · Verified: Search Console Help: Page indexing report Evidence for this claim Google's Rich Results Test and product structured-data requirements can be used to validate product markup eligibility. Scope: Google product structured-data validation. Confidence: high · Verified: Google Search Central: Product structured data

Audit philosophy: client-first, pas issue-first

A robot d’exploration va hand vous 170+ problème types. Si vous dump tout of les into a report, you’ve produced a document, pas an audit. The job is to trouver the handful que déplacer rankings and revenue and ignore the rest.

The starting point isn’t the outil — it’s the pain. As I’ve put it avant: “Si clients are coming to vous asking pour an audit, ils déjà have a pain point. Talk to les. Solve que un chose and they’ll be happy with the audit.” On a store the pain is usually concrete: trafic dropped, a category stopped ranking, a migration went sideways, nouveau products aren’t getting indexé. Anchor the audit to que, alors expand.

And know quand to arrêter. From our study of over a million domains: “Parfois, the meilleur course of action is to ne faites pashing parce que the costs outweigh the benefits.” Pas every flagged problème is worth a developer ticket.

Pourquoi I commencer with Search Console and explorer données, pas on-page

The instinct to ouvrir the audit with title tags and headings is the la plupart courant mistake I voir. On an ecommerce site the math is contre it: tweaking a title helps un page; fixing an indexation pattern helps thousands. The biggest wins on a store are almost toujours exploration and indexation problems at scale, and the stakes are highest exactly ici — “un mistake peut garder millions of pages out of the index or supprimer an entier site from résultats de recherche.”

So the audit runs in priority order, top to bottom. Here’s the whole chose.


Step 1 — Crawlability

Peut bots reach ce que matters, and are ils wasting leur temps on ce que doesn’t?

The ecommerce-specific traps:

  • Faceted navigation URL explosion. Filters (color, size, price range) combine into thousands of unique URLs. Google is candid à propos de the cost: “the robots d’exploration va typically accès a very grand number of faceted navigation URLs avant the robots d’exploration’ processes determine l’URLs are in fact useless.”
  • Parameter variants — session IDs, tracking codes (?utm_source=), sort orders — multiply the même content à travers URLs.
  • Explorer traps — internal résultats de recherche, infinite calendars, unbounded filter stacking.
  • robots.txt over- or under-blocking — accidentally blocking CSS/JS nécessaire to render, or a valid product chemin; or failing to block a junk parameter space.
  • JS-gated navigation. Google veut réel liens: “utiliser <a href> tags quand creating liens to autre content. Don’t utiliser JavaScript events on autre HTML DOM elements pour navigation.”

Audit steps:

  • Récupérer and lire robots.txt; confirmer nothing important is disallowed and que low-value parameter spaces are.
  • In the robot d’exploration, pull “Blocked by robots.txt” — quelconque pages importantes caught?
  • GSC Statistiques d’exploration: regarder pour spikes in crawled URLs contre a flat indexé count — que gap is explorer waste.
  • Export tout crawled URLs and cluster by chemin/parameter pattern to size the faceted/parameter problem.

On budget d’exploration — de-escalate premier. La plupart stores don’t have a crawl-budget problem, and I’ll dire so in the audit plutôt que invent un: “La plupart sites don’t besoin to worry à propos de budget d’exploration, but là are few cas où vous may vouloir to prendre a regarder.” It becomes real around Google’s thresholds — “Grand sites (1 million+ unique pages)…” modification weekly, or 10 000+ pages modification daily — or quand “Discovered – currently not indexed” is grand. Quand it is réel, vous fix it by removing waste, pas by asking Google to explorer plus. (Deep dive: budget d’exploration.)

Step 2 — Indexation

Crawlable isn’t indexé. The GSC Page Indexation report is the center of gravity pour the whole audit — “voir qui pages Google peut trouver and index on votre site, and apprendre à propos de quelconque indexation problems encountered.”

The statuses que matter la plupart on a store:

  • Duplicate sans user-selected canonical / Google chose a différent canonical — the faceted/variant duplication problem, made visible.
  • Crawled – currently non indexée — usually thin product or near-duplicate filter pages.
  • Découvert – currently non indexée — Google knows l’URL but hasn’t crawled it; on grand catalogs ce is a crawl-priority signal.
  • URL marked ‘noindex’ — vérifier it’s intentional. The accidental sitewide version is the “one mistake” scenario.
  • Soft 404 — a 200 réponse on une page that’s effectively vide (out-of-stock, zero-result search). Google warns ces “va continuer to be crawled, and waste votre budget.”

Audit steps:

  • Export “Not indexed” URLs by raison; quantify chaque bucket.
  • Comparer GSC indexé count contre votre connu catalog size — a grand gap signifie Google isn’t finding pages.
  • Run Inspection d’URL on a sample from chaque raison bucket.
  • Audit the XML sitemap: it devrait liste seulement canonical, indexable, 200-status URLs. Redirigé, noindexed, or canonicalized-away URLs in a sitemap send conflicting signals — pull les.

Step 3 — Contenu dupliqué (the #1 ecommerce problème)

Ce is the unique la plupart courant chose an ecommerce audit uncovers, and it’s worth its propre step. Google’s Gary Illyes has estimated que roughly 60% of the internet is contenu dupliqué — and stores are overrepresented.

Où it comes from:

  • Faceted navigation?color=blue, ?size=S&color=blue, ?size=S&color=blue&sort=price tout serve near-identical content.
  • Parameter-order permutations?color=blue&size=S and ?size=S&color=blue are the même page twice.
  • Product variants as separate URLs?variant=… sans a self-referencing canonical or a canonical to the parent.
  • A product living sous multiple category paths, les deux indexable.
  • HTTP/HTTPS, www/non-www, trailing-slash inconsistency que doesn’t 301 to un canonical.

The Shopify gotcha worth appel out by nom. Shopify does canonicalize /collections/{collection}/products/{product} to the clean /products/{product} URL — so personnes assume it’s handled. It isn’t entièrement: the lien internes from collection pages encore point at the non-canonical /collections/... version, so the canonical product URL receives aucun internal popularité des liens via normal navigation, and it peut montrer up as an orphan. Fixes: ajouter an “All products” page que liens the canonical /products/ URLs, or edit collection templates to lien the URL canonique directement.

Audit steps:

  • GSC: pull les deux “Duplicate” buckets from Page Indexation.
  • Robot d’exploration Content Quality / duplicate-cluster report: trouver clusters with aucun canonical specified.
  • Confirmer faceted parameter URLs are handled — Google’s recommended prevention is robots.txt blocking of filter parameters, or fragment-based (#) filtering, qui “will have no impact on crawling.” Don’t reach pour noindex ici (voir Myths).
  • Spot-check que Shopify /collections/*/products/* URLs canonicalize to /products/* — and que something liens the canonical version.

(Background: contenu dupliqué and canonicalization.)

Step 4 — On-page at scale

On a store, on-page is a templating problem, pas a copywriting un — you’re auditing patterns, pas pages.

The recurring problèmes:

  • Thin category pages (the #2 ecommerce problème). John Mueller is direct à propos de it: “Quand the ecommerce category pages don’t have quelconque autre content at tout, autre que liens to the products, alors it’s really hard pour us to rank ceux pages.” But don’t overcorrect into a wall of text — “maybe 90%, 95% of que text is unnecessary,” and “our algorithms parfois obtenir confused quand ils have a liste of products on top and essentially a giant article on the bottom.” The target is a short, utile block (sourcing, materials, sizing, popularity) near the top — pas filler que buries the grid.
  • Templated title collisionsBuy {Product} | Store patterns que go near-identical à travers products, or two products sharing a nom.
  • Manquant/vide H1s and titles at the template level.
  • Meta descriptions — worth doing on votre top category and product pages, moins worth it on the long tail (Google rewrites les la plupart of the temps anyway).

Audit steps:

  • Robot d’exploration On-Page report: filter pour manquant title, manquant H1, manquant meta description, duplicate titles, duplicate H1s.
  • Flag category pages with little to aucun unique corps copy (thin-content candidates) and cross-reference contre “Crawled – currently not indexed.”
  • Export titles and vérifier pour template collisions.

A remarque on ce que not to spend audit temps on: multiple H1s. They’re valid HTML5 and near-irrelevant to ranking — 51,3% of sites have les somewhere, per my propre million-domain study. Skip it.

Step 5 — Technical (CWV, HTTPS, canonicals, mobile)

Core Web Vitals. Google’s passing thresholds: LCP < 2,5s, INP < 200ms, CLS < 0,1. Ecommerce échec modes are predictable — unoptimized hero images and third-party scripts (chat, A/B, pixels) hurt LCP; add-to-cart and checkout JS hurt INP; images sans explicit dimensions and injected promo bars hurt CLS. Audit by URL groupe in the GSC CWV report so vous pouvez voir si it’s product, category, or checkout templates failing, alors confirmer on representative templates in PageSpeed Insights. (Voir Core Web Vitals.)

HTTPS. Everything — product, cart, checkout — on HTTPS, aucun mixed content (HTTP images/resources on HTTPS pages), and canonicals/redirections pointing at the HTTPS version.

Canonicals. The courant ecommerce errors: canonicals pointing at 4XX pages; non-URL canoniques in le sitemap; paginated pages canonicalized to page un (don’t); and — the quiet un — lien internes pointing at non-canonical versions so the canonical jamais accumulates popularité des liens. Multiple rel=canonical tags on un page obtenir ignored.

Mobile-first. Google indexes the mobile version. Assurez-vous the mobile product page isn’t a stripped-down un manquant the description, the données structurées, or full-size images.

Raw versus rendered product evidence. On representative PDPs, enregistrer the initial HTML and a rendered capture après a fresh navigation. Ne faites pas treat resizing an already-loaded desktop page as a mobile-rendering tester. The raw réponse devrait expose the core product identity, selected/par défaut SKU and attributes, price, currency, availability, crawlable variant liens où requis, and matching Product/Offer données. Alors comparer the rendered DOM and visible selection. Google may render JavaScript, but autre robots d’exploration and agents vary; a successful render aussi ne fait pas cure contradictory product facts.

Pour chaque sampled variant, continuer the comparison via the feed, cart, and checkout. L’URL, visible PDP, rendered JSON-LD, feed item, and transaction devrait agree on product identity, SKU, groupe ID, selected attributes, price, currency, and availability. Record intentional emplacement- or customer-specific revalidation separately from unexplained mismatches. Voir Product Page SEO pour the raw/rendered boundary and Product Variant SEO pour the complet selected-offer contract.

Step 6 — Données structurées

Pour a store, the priority types are Product / ProductGroup, BreadcrumbList, Organization (with retourner policy), and Examiner / AggregateRating. Ajout plus valid properties widens eligibility — Google: “ajout the plus properties vous pouvez ajouter, the plus enhancements votre page peut be eligible pour.” (The un myth to garder in votre head: schema rend vous eligible pour résultats enrichis; it doesn’t faire vous rank.)

Audit steps:

  • Run the Résultats enrichis Tester on a representative product and category page.
  • GSC Enhancements: vérifier Product Snippets and Merchant Listings pour errors/warnings.
  • Vérifier requis vs. recommended separately per fonctionnalité — don’t collapse les. Pour merchant listings, Google’s requis définir is name, image, and offers (an Offer, with price, priceCurrency, and availability). Pour product snippets, name is requis and vous besoin au moins un of review, aggregateRating, or offers to be eligible — Google listes aggregateRating, offers, and review as recommended, pas requis, on que fonctionnalité.
  • Courant faults: manquant image, manquant offers, manquant availability, schema prices que don’t match the visible price (a policy violation), breadcrumb schema que doesn’t match the visible trail.

Step 7 — Maillage interne

The problèmes: orphan product pages (classic Shopify symptom, ci-dessus); important category/product pages buried 5+ clicks deep; lien internes pointing at redirections or 404s; meilleur sellers pas lié from high-authority hubs. Google: “ajouter liens from menus to category pages, from category pages to sub-category pages, and finalement from sub-category pages to tout product pages.”

Audit steps:

  • Robot d’exploration Liens report: pull orphan pages and explorer depth; confirmer clé pages sit dans ~3 clicks of the homepage.
  • Pull liens to redirections and broken liens.
  • Vérifier que votre highest-revenue products are lié from the principal nav and editorial/hub pages.

Step 8 — Out-of-stock and discontinued products

A genuinely ecommerce-only section. My honest réponse ici is the SEO cliché pour a raison: “though it’s a joke in the SEO community, ‘it dépend’ is really the réponse quand dealing with out-of-stock products.” And “ultimately, there’s aucun perfect solution.” The decision turns on si it’s temporary vs. permanent and si lune page has trafic or liens:

ScenarioCe que I doPourquoi
Temporarily OOSGarder lune page liveAjouter restock dates, waitlist, notify-me; don’t throw away ranking
Permanently discontinued, fermer replacement301 to the similaire productPreserves popularité des liens si they’re genuinely similaire
Discontinued, aucun match, has liens/traficGarder live with “related products”Retains ranking potential; route utilisateurs onward
Discontinued, aucun liens/trafic404 or 410Clean it up; fix lien internes pointing at it

Ne faites pas audit availability from the visible étiquette alone. Sample an ordinary in-stock SKU, a temporary stockout, a recently restocked item, un unavailable variant à l’intérieur an disponible product groupe, and a postcode-restricted offer. Pour chaque, reconcile the authoritative backend state, selected variant, visible page, Product/Offer markup, merchant feed row, cart line, and checkout outcome. Record the market, postcode, channel, collection temps, and feed-processing temps so a personalized fulfillment result n’est pas mistaken pour the catalog’s general state. The complet mapping is in the Product Schema availability contract.

Watch pour soft 404s: out-of-stock pages, zero-result searches, or vide cart/account pages returning 200. Pull the Soft 404 bucket in GSC and resolve by pattern. (Voir out-of-stock products pour the complet framework.)

Step 9 — Off-page

Lighter pour la plupart stores, but worth a réussir:

  • GSC Performances: branded vs. non-branded click share — heavy branded reliance signifie weak non-branded discovery.
  • Backlink profile by page type — are category/product pages earning liens, or seulement the homepage and blog?
  • Trouver 404 pages que have backlinks and 301 les to the closest live page (reclaim the equity).
  • Competitor lien gap on category pages.

How to prioritize the findings

Everything ci-dessus produces a liste. The liste n’est pas the deliverable — the sorted liste is. I score chaque finding on an impact/effort matrix: “anything high-impact and low-effort is a rapide win, so ceux tasks devrait be tackled premier.” Pour a store:

  • Élevé impact / low effort — do premier: a stray sitewide noindex; a sitemap complet of redirection/noindex URLs; manquant canonicals on variant URLs; lien internes pointing at redirections; out-of-stock soft 404s.
  • Élevé impact / élevé effort — plan and schedule: faceted-nav architecture; Core Web Vitals fonctionner; rolling Product schema à travers templates; crawl-depth / architecture fixes.
  • Low impact / low effort — quand temps permet: meta descriptions on long-tail products; minor title-template tidy-ups.
  • Low impact / élevé effort — skip: redirect-chain cleanup on zero-traffic pages; Ouvrir Graph tags (social, pas ranking).

The whole point of the matrix is permission to not do choses.

Template patterns make prioritization visible: the same issue can be urgent in one cohort and irrelevant in another.

An illustrative cohort matrix compares thin content, non-canonical pages, deep URLs, and schema errors. Product pages score 22, 11, 36, and 48 percent; category pages 18, 8, 54, and 12 percent; facet URLs 71, 83, 64, and 5 percent; blog pages 9, 3, 14, and 2 percent. These are synthetic rates, not customer or site data.

Courant myths to clair up in the report

  • “More indexed pages = better SEO.” Aucun — Google’s propre advice is to “eliminate contenu dupliqué to focus exploration on unique content plutôt que unique URLs.” Inflating the index with thin variant pages usually hurts.
  • “Use noindex to save crawl budget on facets.” Aucun: “don’t utiliser noindex, as Google va encore requête, but alors drop lune page… wasting exploration temps.” Block the récupérer (robots.txt) or utiliser fragment filtering à la place.
  • “Shopify handles all canonicalization.” It sets the balise canonical, but it doesn’t fix the internal-linking-to-non-canonical problem. Voir Step 3.
  • “Crawl budget affects every store.” It doesn’t — la plupart stores jamais besoin to think à propos de it.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.