Guide
E-commerce SEO Audit Guide
A practical seven-step walkthrough of a full e-commerce SEO audit: how to crawl your store, control faceted navigation, audit product metadata and Product schema, and fix the thin pages and broken links that hold online stores back. Every step links to the detailed checks behind it — 45 in total — and you can run the entire audit automatically with our free SEO audit tool.
Step 1. Crawl your store like a search engine
Estimated time: 15–45 minutes
An e-commerce site has more ways to hide pages from a crawler than almost any other site type: filtered category views, pagination, search-result URLs, product variants and retired stock. Start the same way a search engine does — load robots.txt, read the sitemap, then crawl the site and compare what the sitemap promises with what internal links actually expose.
For every product and category page you want the final status code, redirect chain, canonical tag, robots meta, title, meta description, headings, word count and every internal link. Stores also benefit from two e-commerce-specific checks: whether sitemap URLs are indexable (a sitemap full of noindexed variants is common), and whether crawlable pages are missing from the sitemap.
DeepSEO Auditor does this automatically: enter your store URL and it crawls up to 500 pages respecting robots.txt, then reports crawlability, indexation, metadata, links and structured data in one pass.
Step 2. Verify crawlability and indexation
Estimated time: 30–60 minutes
Check robots.txt returns 200 with no accidental broad Disallow — stores frequently block /cart, /checkout and /account (correct), but the same file sometimes catches /products or a whole category tree (not correct). Confirm your sitemap is declared in robots.txt, resolves at a single stable URL, and contains only indexable, self-canonical pages.
Then examine the indexability matrix per page. Product pages should return 200 directly with no redirect chains; sold-out or discontinued items should stay live with clear messaging rather than vanishing into 404s that burn accumulated authority. Out-of-stock pages may legitimately noindex or redirect to a category once they will never return — but the decision must be deliberate and consistent.
Watch for seasonal archives and A/B-test pages that carry stale noindex tags from staging, and for orphan pages that exist in the sitemap but are linked from nowhere on the site.
Key checks for this step — Crawlability & indexation
- robots.txt responds with HTTP 200
- robots.txt has no accidental broad Disallow rules
- Crawl-delay and rate limits are not overly restrictive
- XML sitemap is discoverable
- Sitemap URLs all resolve and are indexable
- Indexable pages are listed in the sitemap
- No nested/sitemap index errors
- Important pages return 200 without redirect chains
- No redirect loops
- Broken internal links are fixed
- No orphan pages
- Crawl depth stays shallow
Step 3. Tame faceted navigation and URL parameters
Estimated time: 1–3 hours
Faceted navigation is the single largest source of duplicate content on stores. Every color, size, price and sort filter can generate a URL, and a category with ten filter groups can spawn millions of permutations — all of them crawling-budget poison if left uncontrolled.
Decide, per facet, which combinations deserve to be indexable landing pages (usually high-demand ones like 'red running shoes') and which must be kept out of the index. The standard toolkit: self-referencing canonicals on the base category, noindex or robots-disallow on parameterized permutations, consistent handling of empty filter results, and internal links that always point at clean canonical URLs rather than parameterized ones.
Pagination needs the same discipline: every paginated page must be reachable via crawlable links (not scroll-only loading), self-canonical, and free of stray canonical tags pointing every page back at page one — that pattern hides everything past the first page from the index.
Key checks for this step — Links & architecture
- Internal linking is sufficient on every template
- Anchor text is descriptive
- Redirecting internal links are updated to final URLs
- External links are intentional and not broken
- URLs are short, stable and readable
- Query-parameter duplication is controlled
- Pagination is crawlable
Step 4. Audit product and category metadata
Estimated time: 1–2 hours
Product titles should be unique and descriptive — title plus brand plus distinguishing attribute, roughly 30–60 characters. Template-generated titles like 'Product Name | Store Name' repeated with only the product name swapped are acceptable; identical titles across variants (same title for blue and red) are not. Meta descriptions should sell the click in 70–160 characters and never repeat verbatim across dozens of products.
Category pages deserve real titles and descriptions too — they are your highest-value commercial pages and are too often left with bare template defaults. Exactly one H1 per page (the product or category name), descriptive H2s for sections, and enough supporting content that a category page is not just a grid of thumbnails.
Thin content is endemic to e-commerce: products with only a spec table, categories with a one-line description. Expand the important ones, and consider noindexing genuinely worthless utility pages rather than leaving them to dilute crawl.
Key checks for this step — Metadata & content
- Every indexable page has a unique title
- Titles are 30–60 characters
- Every indexable page has a meta description
- Descriptions are 70–160 characters
- Exactly one H1 per page
- Heading levels follow a logical hierarchy
- Pages have sufficient content
- No keyword stuffing
- Canonical tags are self-referencing on live pages
- Canonicals do not conflict with sitemap or internal links
- No duplicate H1s or near-identical content across pages
- hreflang and lang attributes are consistent
Step 5. Validate Product structured data
Estimated time: 45–90 minutes
Product schema is what earns price, stock and review stars in search results — on a store it is not optional. Every product page should carry a JSON-LD Product block with name, image, description, brand, sku or gtin, price (offers with priceCurrency), and availability. Missing required properties is the most common reason rich results silently never appear.
Check that the markup matches what the user sees: the schema price must equal the displayed price, availability must reflect real stock, and review aggregates must come from real reviews on the page. Marking up content that is not visible violates search engine guidelines and can trigger manual penalties.
Also verify BreadcrumbList on product and category pages so the breadcrumb trail (Home > Category > Product) can render in results, keep exactly one authoritative Product block per page (no duplicate conflicting blocks from theme plus plugin), and complete Open Graph product tags so shared links preview properly.
Key checks for this step — Structured data & social
- JSON-LD parses without errors
- Relevant schema types are present
- Required and recommended schema properties are filled
- No duplicate or conflicting schema blocks
- Open Graph tags are complete
- Twitter card tags are present
- A favicon is served and referenced
Step 6. Check links, speed and internal architecture
Estimated time: 30–60 minutes
Store architecture should be a shallow tree: homepage to category in one click, category to product in one more. Products buried four or more clicks deep get crawled rarely and rank poorly. Fix orphan products by ensuring every product is linked from at least one category, and cross-link related products to distribute authority.
Chase broken internal links (dead products linked from menus or blog posts), internal links pointing at redirects, and descriptive anchor text for the products and categories you most want to rank. Check response times per template — slow category pages with 48 products and their images are typically the slowest, most important pages on the store.
Finally, hygiene: HTTPS everywhere with no mixed content (a store that serves product images over HTTP loses browser trust), one canonical host, consistent trailing slashes, and a viewport tag so the store renders on mobile — where most store traffic now lives.
Key checks for this step — Links & architecture
- Internal linking is sufficient on every template
- Anchor text is descriptive
- Redirecting internal links are updated to final URLs
- External links are intentional and not broken
- URLs are short, stable and readable
- Query-parameter duplication is controlled
- Pagination is crawlable
Step 7. Prioritize fixes and re-run the audit
Estimated time: 1–2 hours, then ongoing
Sort findings by severity and scope first: robots.txt blocking your product tree, a noindexed sitemap, or Product schema missing site-wide each dwarf a handful of long titles. Then rank by revenue proximity — fixes to category and product pages outrank fixes to policy pages — and by effort, since a template-level fix repairs hundreds of pages at once.
Fix in waves and re-crawl after each one: indexation blockers first, then faceted navigation and canonicals, then metadata and content, then structured data and link hygiene. Comparing before-and-after runs is the only reliable way to confirm the fix landed across every affected template.
Stores change inventory constantly, so audit on a shorter cadence than other sites — weekly for large catalogs, monthly for small ones — so new products, filters and theme edits do not quietly reintroduce old problems.
Run the whole audit automatically
DeepSEO Auditor performs steps 1–6 in a single pass: it crawls your store, checks all 45 items, scores them 0–100 by category and gives you a prioritized, exportable fix list — complete with a shareable PDF report.