Ecommerce Auditor Ecommerce Audit Guide

The ecommerce SEO audit checklist

Product pages

Category pages

Site-wide

Priority order: Fix invalid Product schema first — this directly unlocks rich results. Then fix category page thin content. Then address faceted navigation duplication. Then add AEO signals to category pages.

AEO signals for ecommerce

AEO (Answer Engine Optimisation) is increasingly important for ecommerce as AI chatbots become a product discovery channel. When someone asks "what is the best waterproof jacket for hiking" to ChatGPT or Perplexity, sites with strong AEO signals are cited in the answer.

Add FAQPage schema to your top category pages with questions your customers actually ask. Add detailed buying guides as dedicated pages or as content sections on category pages. Ensure your llms.txt file lists your key product categories so AI crawlers can understand your inventory structure.

Product schema: required, recommended, and the ones that actually change the SERP

"Valid Product schema" is not one thing. Google now distinguishes between two different rich result experiences drawn from the same markup, and which one you qualify for depends on which properties you supply.

A page carrying only name and image validates without error and produces nothing. Validation is not eligibility.

The four properties most sites are missing

PropertyWhat it unlocksNote
offers.availabilityMerchant listing eligibilityMust be a schema.org URL: InStock, OutOfStock, PreOrder, BackOrder, Discontinued
offers.priceValidUntilPrevents the price being treated as staleA common warning; set it forward and keep it moving
shippingDetailsShipping cost shown in the search resultFrequently the difference between a click and a scroll-past
hasMerchantReturnPolicyReturns window shown in the search resultSame — it removes a purchase objection before the click

Shipping and returns annotations are the two most under-used properties in ecommerce structured data. They answer, in the SERP itself, the two questions that stop people clicking — what will delivery cost me and can I send it back — and almost nobody supplies them.

The self-serving review rule. Reviews you collect about a product and display on that product's page are legitimate for Product markup. Reviews about your business as a whole, marked up on your own site with Organization or LocalBusiness, are self-serving and are not eligible for review rich results. Marking up your own testimonials page will not produce stars.

Variants: one product, twelve URLs, and a duplication problem you built yourself

A t-shirt in four colours and three sizes is not twelve products. But if every combination generates its own crawlable URL with its own near-identical description, you have just published twelve near-duplicate pages, and Google will pick one — probably not the one you wanted.

The structured-data answer is ProductGroup. The group carries the shared properties and a productGroupID, declares what the variants vary by (variesBy: colour, size), and each variant is a Product with hasVariant linking it back. This tells Google explicitly that these are one product in several configurations, rather than a dozen suspiciously similar pages.

The URL answer depends on whether the variants have genuinely distinct demand. If people search for "red hiking jacket", the red variant deserves an indexable URL. If they search for the model name and pick a colour on the page, the variants should not be separate indexable URLs at all — use a canonical to the parent, and change the selection client-side.

Faceted navigation: why canonical tags are not enough

This is the single most damaging technical problem in ecommerce SEO, and the standard advice — put a canonical on the filtered URLs — is incomplete in a way that matters at scale.

Here is what the standard advice misses. A canonical tag is a hint about which URL to index. It is not an instruction not to crawl. Googlebot must still fetch the page to see the canonical. So a category with six filters of five values each — colour, size, brand, price, rating, material — can generate tens of thousands of crawlable URLs, and canonicalising them all means Googlebot dutifully crawls tens of thousands of pages in order to be told each one does not matter.

On a large store this consumes the crawl budget that should have been spent discovering your new products. The symptom is unmistakable and very common: new products take weeks to get indexed, while Search Console reports enormous numbers of "Crawled — currently not indexed" filter URLs.

What actually controls it

  1. Do not create crawlable links to combinations you never want crawled. This is the real fix and it is upstream of everything else. If the filter link is not an <a href> that a crawler can follow, the URL space never opens. Applying filters client-side without generating a linked URL solves the problem at source.
  2. Block the parameter patterns in robots.txt for facets that have no search demand. Nobody searches for "blue medium cotton under-£30 four-star". Blocking ?colour= and friends stops the crawl before it starts. This is the only mechanism that genuinely saves crawl budget.
  3. Then canonicalise what remains, for the cases that do get crawled.
  4. Promote the facets with real demand into indexable pages. "Waterproof hiking jackets" is a query with volume; it deserves a proper category page with its own content, its own title and its own place in the sitemap — not a filter URL with a canonical pointing away from it.
noindex does not save crawl budget either. Like a canonical, the tag can only be read by fetching the page. Both control indexing. Only robots.txt and not linking the URL in the first place control crawling. Confusing the two is why so many stores have a noindex directive on a hundred thousand URLs and still cannot get their new products crawled.

One further note: Search Console's URL Parameters tool, which used to handle exactly this, was retired in 2022. Advice that recommends it is out of date, and there is no replacement — the controls are the ones listed above.

Pagination, since rel=next/prev stopped existing

Google announced in 2019 that it had not used rel="next" and rel="prev" for years. A great deal of ecommerce documentation still tells you to implement them. They do no harm, and they do nothing.

What is correct now:

The manufacturer description problem

This is the largest content problem in ecommerce and it is barely discussed, because the fix is genuinely expensive.

If you sell products you did not manufacture, you almost certainly imported the supplier's product feed — and so did every other retailer selling that product. The result is that your product page's description is byte-identical to the description on forty other sites. Google is not obliged to pick yours, and generally picks the strongest domain. This is why small retailers can rank for nothing despite technically perfect product pages: the pages have no unique content to rank on.

There is no clever technical fix. There is only unique content, applied where it pays:

Out of stock, discontinued, seasonal: three different problems

Temporarily out of stock — keep the page

Deleting the page destroys everything it has accumulated: rankings, links, and the internal links pointing at it. Keep it live, set availability to OutOfStock, say so clearly on the page, offer a restock notification, and link to genuine alternatives. The page keeps its position; you keep the customer.

Permanently discontinued — redirect carefully, or 410

A 301 to the closest genuine equivalent product preserves the link value and serves the user. A 301 to the homepage does neither: Google treats a redirect to an irrelevant destination as a soft 404, so no value is passed, and the customer who wanted a specific product is dumped on a shop front. If there is no equivalent at all, the honest answer is a 410 Gone — it tells Google to drop the URL faster than a 404 and stops it being recrawled indefinitely.

Seasonal — never delete

The Christmas category deleted in January is a category that has to rebuild its authority from zero every October. Keep the URL live year-round, adjust the content, and let it accumulate. Rankings compound; annual resurrection does not.

The orphan trap: when a product goes out of stock and drops out of its category listings, it usually loses every internal link pointing at it. The page still exists and still returns 200, but nothing on your site links to it any more. Google slowly stops caring. Check for products that are live but unlinked — on a large store there are always more than expected.

Category pages: where the money is, and where the content is not

Category pages target the high-volume commercial terms — "hiking jackets" rather than a specific model — and they are almost always the thinnest pages on the site. A grid of product tiles, some filter controls, and no prose.

The trap on the other side is equally common: 800 words of keyword-stuffed filler dumped below the product grid, written for a crawler, read by nobody, and quietly damaging the conversion rate of the page that matters most.

What works is content that a buyer would actually want at that moment in the decision:

The technical items an ecommerce audit finds every time

Frequently asked questions

What is Product schema and why do ecommerce sites need it?

Product schema is structured data markup that tells Google the name, description, price, availability and reviews of a product. Valid Product schema makes your products eligible for rich results in Google Search and Google Shopping — showing price and star ratings directly in search results. These rich results consistently achieve higher click-through rates than standard blue link results.

How do I handle out-of-stock products for SEO?

Do not delete out-of-stock product pages — they may have backlinks and accumulated ranking authority. Instead, update the Product schema availability to 'OutOfStock', add a clear out-of-stock message to the page, and optionally list similar available products. Only delete permanently discontinued products with no replacement, and in that case set up a 301 redirect to the most relevant category page.

What is faceted navigation and how do I handle it for SEO?

Faceted navigation is the filter system on category pages — colour, size, price range etc. Each filter combination creates a new URL, which can generate thousands of near-duplicate pages. Handle this by adding canonical tags pointing to the base category URL on all filtered pages, or by using rel='nofollow' on filter links and adding a robots noindex tag to filtered pages.

Do canonical tags save crawl budget on faceted URLs?

No. A canonical tag controls which URL is indexed, not whether a URL is crawled — Googlebot has to fetch the page to read the tag. The same is true of noindex. Only blocking the pattern in robots.txt, or not generating crawlable links to those combinations in the first place, actually prevents the crawl. This is why large stores can have noindex on a hundred thousand filter URLs and still find new products taking weeks to be indexed.

Should paginated category pages canonicalise to page 1?

No. Page 3 contains different products from page 1, so it is not a duplicate. Canonicalising it to page 1 tells Google the products on page 3 do not exist and is a reliable way to lose deep products from the index. Each paginated page should canonicalise to itself, carry a distinct title, and be reachable through real crawlable links. Google confirmed in 2019 that it no longer uses rel=next and rel=prev.

Why do my product pages not rank despite perfect technical SEO?

Most often because the descriptions came from the manufacturer's feed and are identical to those on every other retailer selling the same product. There is no unique content for Google to prefer your page on, so it favours the strongest domain. The fix is unique content — your own photography, your own comparisons and buying advice, and customer reviews and questions — applied first to the products that generate most of the revenue.

What should I do with a permanently discontinued product with no replacement?

Return 410 Gone. Redirecting it to the homepage is treated by Google as a soft 404, so it passes no value and simply frustrates the customer. A 301 is correct only when there is a genuine equivalent product to send the user to; where there is not, a 410 removes the URL cleanly and stops it being recrawled indefinitely.

Written by
John
Founder, aiwebpageseo

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical website tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.