Ecommerce SEO Audit Example: Product Schema and AEO
This example shows the aiwebpageseo Ecommerce Audit for a UK outdoor clothing retailer. The audit found 67% Product schema coverage, missing AEO signals on category pages and 12 product pages with invalid price markup.
| Page | Issue | Impact |
|---|---|---|
| /products/mens-waterproof-jacket | Invalid price format | Not eligible for Shopping rich results |
| /products/womens-fleece-pullover | Missing availability | Incomplete Product schema |
| /category/waterproof-jackets | No AEO signals | Missing FAQ schema for AI search visibility |
| /products/trail-running-shoes | No AggregateRating | Missing review stars in search results |
| /products/base-layer-thermal | ✓ Valid | Eligible for rich results |
- Fix price format on 12 product pages — use numeric value with currency property
- Add AggregateRating schema to product pages that have real, visible customer reviews — never to those that do not, which is a structured-data spam violation
- Add availability property to all Product schema blocks
- Add FAQPage schema to top category pages — for AI retrieval, not for the SERP dropdown, which Google restricted in 2023 to government and health sites
Eight product pages are flagged for a missing aggregateRating, and the priority list says to add it. There is a hard precondition that no audit tool can check for you.
The rating must come from real reviews that are visible on the page. Marking up a rating with no corresponding reviews a customer can see is a violation of Google's structured data policies, and the penalty is not a missing star — it is a manual action that suppresses rich results across the entire store until it is fixed and appealed. You would trade the price snippets you already have for nothing.
The order is: collect the reviews, display them on the page, then mark up the aggregate you are already showing. If those eight products have no reviews, the finding is not "add schema" — it is "these products have no reviews", which is a merchandising problem, not a markup one.
One more trap specific to ecommerce: if your reviews are injected by a third-party widget after page load, they exist in the rendered DOM but not in the served HTML. Your schema then claims something the served document does not show, and the two will never agree. Server-render both, or neither.
Price format errors are the right thing to fix first, because they break the one rich result that reliably works for ecommerce. The usual causes are dull and easy:
| Wrong | Right |
|---|---|
"price": "£129.99" | "price": "129.99" + "priceCurrency": "GBP" |
"price": "129,99" | "price": "129.99" — full stop, not comma |
"price": "From £99" | A single numeric value, or use lowPrice/highPrice on an AggregateOffer |
No currency symbols, no thousands separators, no words. The value must parse as a number, and the currency belongs in its own property.
While you are in the offers block, four properties are worth more than the stars everyone chases — and unlike reviews, you already know all four answers:
availability— flagged as missing here, and required for the Product rich result at all.priceValidUntil— without it a price can be treated as stale. Set it forward and keep it moving.shippingDetails— delivery cost and speed, shown in the search result itself. The first question anyone has about buying online.hasMerchantReturnPolicy— the returns window. The second question.
Those last two answer the objections that stop a click before it happens. They are the highest-leverage thing on this list and they are not on the report — and the marked-up price must, absolutely, match the displayed price. A stale £129 in the JSON-LD against a £99 on the page is the fastest way to lose a merchant listing you already had.
The report suggests adding FAQPage schema to category pages "for AI search visibility". Be clear about what that will and will not do.
Google restricted FAQ rich results in 2023 to a narrow set of authoritative government and health sites, and removed HowTo rich results entirely. An online shop will not get the expandable FAQ dropdown in the SERP. If that is what you were expecting, it is not coming.
The AEO argument survives, though, and it is the reason to do it. Marking up a question and its answer states unambiguously that this text is a question and that text is its answer — which is exactly the structure a retrieval system parses when assembling a response. The SEO justification has gone; the AEO one has not.
The real category-page problem is usually not schema at all. Most ecommerce category pages are a heading, a filter bar and a grid of products — a few dozen words of unique text on a page competing for a commercial term. That is a thin page, and no markup fixes thin. Genuinely useful buying guidance on the category page — how to choose, what the differences mean, what people get wrong — is worth more than any structured data you could add to it.
Schema coverage is a narrow lens. On a store of this size, four structural issues typically cost more than every markup error combined.
- Faceted navigation eating your crawl budget. Every filter combination — colour, size, price, brand — can generate a unique URL. A few filters produce thousands of near-identical pages, and Googlebot will crawl them instead of your actual products. This is the single largest technical problem in ecommerce SEO. Control it with
robots.txtrules, canonicals to the unfiltered category, and by not linking to filter combinations you do not want crawled. - Product variants competing with each other. The same jacket in four colours, at four URLs, with four near-identical pages. Pick one canonical product URL and point the variants at it — or you are asking Google to choose, and it will split your signals across all four.
- Out-of-stock and discontinued products. Do not delete them and do not 404 them if they will return. Keep the page, mark
availabilityhonestly asOutOfStock, and offer alternatives. For permanently discontinued lines, 301 to the closest equivalent — never to the homepage, which Google treats as a soft 404 and which transfers nothing. - Thin product descriptions. The manufacturer's copy, used verbatim by you and by forty competitors. It is not a penalty, but it gives Google no reason to prefer your page over anyone else's. Your own description is the cheapest differentiator available.
And one thing outside SEO entirely: if you are selling in the UK, your product data belongs in Google Merchant Center. The free product listings that come from a Merchant Center feed reach places organic Product schema does not — and the feed, not the page markup, is the primary channel Google uses for shopping surfaces.
Can I just add AggregateRating to get review stars?
No. The rating must come from real reviews that are visible on the page. Marking up a rating with no corresponding reviews a customer can see violates Google's structured data policies, and the penalty is a manual action that suppresses rich results across the entire store until it is fixed and appealed — you would trade the price snippets you already have for nothing. If those products have no reviews, the finding is not "add schema", it is "these products have no reviews", which is a merchandising problem rather than a markup one.
What is the correct price format in Product schema?
A plain numeric value with the currency in its own property: "price": "129.99" and "priceCurrency": "GBP". No currency symbols, no thousands separators, no words, and a full stop rather than a comma as the decimal separator. "£129.99", "129,99" and "From £99" all fail. For a genuine price range, use lowPrice and highPrice on an AggregateOffer.
Which schema properties matter most for an online shop?
Not the stars. shippingDetails and hasMerchantReturnPolicy surface delivery cost and the returns window in the search result itself, answering the two objections that stop a click before it happens — and unlike reviews, you already know both answers. Add availability, which is required for the Product rich result at all, and priceValidUntil, without which a price can be treated as stale. And the marked-up price must match the displayed price exactly; a mismatch is the fastest way to lose a merchant listing you already had.
Will FAQ schema on my category pages get me the SERP dropdown?
No. Google restricted FAQ rich results in 2023 to a narrow set of authoritative government and health sites, so an online shop will not get the expandable dropdown. The AEO argument survives and is the reason to do it: marking up a question and its answer states unambiguously which text is the question and which is the answer, and that is the structure a retrieval system parses. But the real category-page problem is usually not schema — it is that the page is a heading, a filter bar and a product grid, which is thin, and no markup fixes thin.
What is the biggest technical SEO problem in ecommerce?
Faceted navigation. Every filter combination — colour, size, price, brand — can generate a unique URL, so a few filters produce thousands of near-identical pages, and Googlebot will crawl those instead of your actual products. Control it with robots.txt rules, canonicals pointing to the unfiltered category, and by not linking to filter combinations you do not want crawled. Product variants are the related problem: the same jacket in four colours at four URLs splits your signals across all four unless you canonicalise them to one.
What should I do with out-of-stock products?
Do not delete them and do not 404 them if they will return. Keep the page, mark availability honestly as OutOfStock, and offer alternatives. For permanently discontinued lines, 301 to the closest equivalent product — never to the homepage, which Google treats as a soft 404 and which transfers nothing. An irrelevant redirect is worse than an honest error.
Is Product schema enough for Google Shopping?
No. If you are selling in the UK your product data belongs in Google Merchant Center. The free product listings that come from a Merchant Center feed reach surfaces that organic Product schema does not, and the feed rather than the page markup is the primary channel Google uses for shopping. Page schema and the feed are complementary, not alternatives.
67% Product schema coverage is worth fixing, and it will take an afternoon, because it is a template change rather than 43 individual edits. But a store that fixes every row on this report and changes nothing else will usually see very little.
The problems that actually cost ecommerce sites traffic are structural, and none of them appears on a schema audit:
- Faceted navigation generating infinite URLs. Every combination of colour, size and price filter becomes a crawlable URL. A 500-product store can generate hundreds of thousands of them, and Googlebot will spend its crawl budget on filter permutations while your new products go undiscovered. This is the single biggest technical failure in ecommerce SEO, and it is invisible to a schema checker.
- Thin, duplicated category pages. A heading and a grid of products gives Google nothing to rank with.
- Manufacturer product descriptions. The same paragraph the manufacturer supplied to every one of their retailers. There is no penalty for it — there is simply no reason for Google to prefer your copy of it over anyone else's.
- Out-of-stock and discontinued products. Deleting them destroys the links and rankings they earned. Keep the page, mark it
OutOfStock, and offer alternatives.
Fix the schema — it is cheap. Just do not mistake it for the work. Correct markup on a page Google has decided not to crawl is a rich result that will never be shown.
Related
🛒 Run an Ecommerce SEO Audit
Check Product schema coverage, AEO signals, structured data errors and ecommerce-specific SEO issues across your entire store. Pay as you go.