Codewerk.
Get a quote
Home/Blog/A technical SEO audit for a shop: 400 issues, of which six matter

A technical SEO audit for a shop: 400 issues, of which six matter

The audit method, in order: crawl, index bloat, filter URLs eating your crawl budget, duplicate variants, canonicals, pagination, redirects. And an honest list of what to ignore.

Photo: free stock photography (Unsplash licence) — see imprint

The tool will find 400 issues. Six of them are real.

Point any crawler at a shop of reasonable size and it produces a report with a red number on it. Four hundred issues. Eight hundred. The list is real in the sense that each line describes something the crawler observed, and useless in the sense that it is sorted by what is easy to detect rather than by what costs you money. Missing alt attributes, meta descriptions over 160 characters, an H1 that is also the page title — the tool cannot tell you these do not matter, so it lists them next to the thing that is quietly keeping half your catalogue out of the index.

So the audit is not the crawl. The crawl is the raw material. The audit is the judgement about which findings connect to traffic and revenue, and that judgement is what you are paying for. A report handed over with 400 rows and no priority is not an audit — it is a crawl with an invoice attached.

Step one: count the pages, three ways

Before you look at a single tag, get three numbers. How many products and categories do you actually have? How many URLs does a full crawl find? How many URLs does Google report as indexed? In a healthy shop those three are in the same neighbourhood. When we see 8,000 real products, 90,000 crawled URLs and 40,000 indexed, we already know the diagnosis before opening anything else, and it is not the alt attributes.

That gap is the whole story of shop SEO. Eighty thousand URLs that are not products came from somewhere, and Google spent its crawl attention on them instead of on the 400 products you added last month that still are not indexed. Every subsequent step in this audit is really an answer to the question: where did the extra URLs come from, and which ones deserve to exist?

Step two: the filters are eating your crawl budget

This is the biggest one in almost every shop, and it is almost never at the top of the tool's list. Faceted navigation multiplies. Five colours, six sizes, four brands, three price bands and a sort order, all appended to the URL and all linked from the page, and your 200-product category has generated several thousand crawlable combinations. Most of them show the same products in a different order. Some show nothing at all. All of them are links Google is happy to follow.

The decision is per facet, and it is a commercial one, not a technical one. Does anybody search for this combination? 'Running shoes size 44' is a real query with real demand and deserves an indexable, linkable page with its own text. 'Running shoes, sorted by price descending, page 3' is not a query anybody has ever typed and should never have been a URL. Pick the handful of facets with genuine search demand, give them proper pages, and make the rest uncrawlable — not just noindexed. A noindexed page still gets crawled; it just wastes the budget silently instead of loudly.

Step three: variants, canonicals and pagination

Variants are the second-biggest source of near-duplicates. The same t-shirt in eleven colours, each with its own URL and an identical description, competing with itself for the same query. Usually the right answer is one indexable product page with the variants selectable on it, and a canonical from the variant URLs to the parent. Sometimes — when the colour genuinely has its own demand — it is the opposite. The wrong answer is what most shops have: eleven pages, no canonical, and Google picking a winner at random.

Then check that your canonicals mean what you think. Self-referencing canonicals on every page are fine and boring. Canonicals pointing at a redirect, at a noindexed page, or all pointing at the homepage — that last one we see more often than you would believe — are actively harmful, and they are exactly the kind of thing that survives for years because nothing visibly breaks. Same with pagination: every page in a series should be reachable, each should reference itself, and none should canonicalise to page one, which quietly tells Google that pages two through forty do not exist.

  • Real products vs crawled URLs vs indexed URLs — three numbers, one diagnosis.
  • Which facets have search demand? The rest should not be crawlable at all.
  • Variants: one indexable page, canonicals from the rest — unless demand says otherwise.
  • No canonical should point at a redirect, a noindex page, or the homepage.
  • Redirect chains from old migrations — one hop, or delete the rule.

Step four: the redirects nobody has looked at since the migration

Every shop that has been through a replatforming carries a redirect file like an old injury. Chains three and four hops long, rules that point at URLs that were themselves redirected two migrations ago, a handful of loops that no browser has ever completed. It rarely destroys a shop, but it wastes crawl attention and it makes every future URL change harder, because nobody dares delete a rule they do not understand.

Flatten the chains so every old URL reaches its destination in one hop, and delete rules for URLs that have had no traffic and no inbound links for two years. This is a half-day of work and it is genuinely worth it, mostly because of what it prevents later rather than what it earns now.

What to ignore, with a clear conscience

Meta description length. Keyword density. The exact number of words on a category page. Whether your H1 matches your title tag. The tool's 'SEO score'. Missing alt text on decorative images — write alt text for accessibility because it is the right thing to do, not because it will move a ranking. Each of these generates dozens of rows in the report, each is trivially fixable, and fixing all of them changes nothing, which is exactly why they are so popular: they let everyone feel productive without anyone deciding anything.

A shop audit that produces six prioritised items, each with a named owner and an expected effect, beats a 400-row spreadsheet in every respect except the impression it makes in a meeting. If the audit you commissioned does not tell you which three things to do first and which 390 to close unfixed, ask for that, or ask for your money back.

FindingPriorityWhy
Filter URLs crawlable without limitFix firstBurns the crawl budget your new products need
Variants as duplicate indexable pagesHighYour pages compete against each other
Canonicals pointing at the homepageHighActively removes pages from the index
Redirect chains from an old migrationMediumHalf a day; prevents future pain
Meta descriptions too longIgnoreNot a ranking factor; 200 rows of comfort
Key takeaways
  • The crawl is raw material; the audit is the judgement about what connects to revenue.
  • Real products vs crawled URLs vs indexed URLs — that gap is your diagnosis.
  • Noindex does not save crawl budget; the page still gets fetched.
  • Six prioritised items with owners beat a 400-row spreadsheet every time.

Frequently asked questions

A full one roughly once a year, and always after a replatforming, a URL structure change or a new filter system — those are the events that create the problems worth finding. Between audits, watch two numbers monthly: indexed URLs and crawled URLs. If either moves sharply, something changed, and you will find it faster than any scheduled review would.

Noindex is usually the wrong tool, because a noindexed page still gets crawled — it wastes the budget silently instead of loudly. Decide per facet: those with real search demand get proper indexable pages with their own content, the rest should not be crawlable links at all. That decision is commercial, not technical, and it needs someone who knows what your customers search for.

No. The list is sorted by what is easy to detect, not by what costs you money. Meta description lengths, keyword density and H1-versus-title mismatches generate hundreds of rows and change nothing. Find the handful that connect to traffic — usually crawl budget, duplicates and canonicals — do those, and close the rest as deliberately unfixed.

The crawl is hours. The analysis is a few days, and the argument about which facets deserve to exist is longer, because it needs your product and marketing people, not a tool. Implementation depends entirely on what is found: a canonical fix is an afternoon, restructuring faceted navigation is a proper project. Be suspicious of any fixed-price audit that promises implementation before it has crawled anything.

We do this for a living — Shopware, Node.js, React, ERP integration and automation for B2B.

Talk to an engineer

// Keep reading

Related articles