Ecommerce SEO requires a different approach to standard SEO. Product schema, faceted navigation, out-of-stock handling and category page optimisation are all ecommerce-specific challenges. This guide covers all of them.
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.
"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.
aggregateRating or review.offers block with price, priceCurrency and availability.A page carrying only name and image validates without error and produces nothing. Validation is not eligibility.
| Property | What it unlocks | Note |
|---|---|---|
| offers.availability | Merchant listing eligibility | Must be a schema.org URL: InStock, OutOfStock, PreOrder, BackOrder, Discontinued |
| offers.priceValidUntil | Prevents the price being treated as stale | A common warning; set it forward and keep it moving |
| shippingDetails | Shipping cost shown in the search result | Frequently the difference between a click and a scroll-past |
| hasMerchantReturnPolicy | Returns window shown in the search result | Same — 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.
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.
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.
<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.?colour= and friends stops the crawl before it starts. This is the only mechanism that genuinely saves crawl budget.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.
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:
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:
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.
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.
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.
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:
/search?q= URL should be blocked in robots.txt. Left open, they generate unlimited crawlable URLs from any query anyone types — including the spam ones injected deliberately.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.
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.
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.
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.
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.
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.
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.
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.