Audit my site
Site typesIntermediateChecked against Google docs · Oct 2026

E-commerce SEO: structure, product data, Merchant Center and out-of-stock pages

An online store is found through links, product data and clear rules for the URLs it generates. This lesson walks through each part as Google documents it, from the category tree to products that sell out.

Author: Eugene Serbin, Head of SEO at Semalt Updated: 30 October 2026 Reading time: 21 min Visuals: 4

In short

E-commerce SEO is about getting three things right: a link structure that leads Google from the home page to every product, product data that says the same thing on the page, in structured data and in Merchant Center, and clear rules for filters, variants and products that sell out. Category pages win broad queries and product pages win specific ones, so each needs its own job. Most store problems come from URLs nobody planned: filter combinations, variant parameters and dead product pages.

Where product information can appear in Google

Google's e-commerce guides open with the problem every store owner knows: “A critical challenge for any ecommerce website is being discovered in Search.” The good news is that a store has more places to be found than an ordinary site. Google puts it like this: “Google has multiple surfaces where your ecommerce content can appear, such as in search results and on Google Maps.”

The surfaces Google documents for e-commerce content are:

Merchant Center Help adds that free listings can appear on “Google Search, Google Maps, Gemini, YouTube, the Shopping tab, Google Images, and Google Lens.” Inside Google Search, product information can show up as a product snippet (a text result with ratings, price and availability), as popular products (a visual block of products for sale), in a shopping knowledge panel (one product with a list of sellers) and as annotated images.

Google separates two kinds of product markup. Product snippets are “For product pages where people can't directly purchase the product.”, such as editorial reviews. Merchant listings are “For pages where customers can purchase products from you.” If you sell the product on the page, merchant listings are your target, and the required merchant listing properties usually make the page eligible for product snippets too.

Free listings are about product pages only. Merchant Center Help says: “Free listings for products help your product pages appear in search results, not other pages like homepages, shipping and return policies, or product category pages.” Your categories still compete in ordinary organic results.

What Google officially says

“When you share your ecommerce data and site structure with Google, Google can more easily find and parse your content, which allows your content to show up in Google Search and other Google surfaces.”

Google Search Central — Best practices for ecommerce sites in Google Search

“Providing both structured data on web pages and a Merchant Center feed maximizes your eligibility to experiences and helps Google correctly understand and verify your data.”

Google Search Central — Introduction to Product structured data

“It's strongly recommended to link to all products that you wish indexed.”

Google Search Central — Help Google understand your ecommerce website structure

A few more statements from the same documentation set the rules for the rest of this lesson:

Structured data and Merchant Center: two channels, one truth

Google recommends two ways of telling it about your products, and they work best together. The first: “Include structured data in your site's product pages.” The second is to upload a product feed to Google Merchant Center. Neither is a ticket into ordinary search results on its own. “While structured data isn't required to appear in Google Search results, it can help Google understand your page better and display it as a rich result.” And: “While uploading product data to Google Merchant Center isn't mandatory to appear in Google search results, it can enhance Google's understanding of your products.”

The difference shows on specific surfaces. “Participation in Google Merchant Center is required to appear in the Google Shopping tab.” Structured data is what Google Search uses for product rich results, and it also helps Merchant Center verify your feed against the page.

Table · Product structured data vs a Merchant Center feed
Product structured dataMerchant Center feed
What it isJSON-LD (Product, Offer, ProductGroup) in the HTML of each product pageA list of products with attributes (id, title, price, availability, gtin …) sent to Merchant Center
How Google gets itBy crawling the page, on Google's scheduleAutomated feed built from your pages, scheduled file uploads, or the API for immediate updates
Needed forProduct rich results in Search; helps Images, Lens and feed verificationRequired for the Shopping tab; used for free listings, Lens, Maps and local inventory
Covers products Google never crawledNoYes
Can hold data not on the siteNo: it must describe the visible pageYes, for example store-level inventory
Typical failureMissing or JavaScript-only markup, price that does not match the pageStale price or stock between uploads, item disapprovals
Use both: the markup describes each page, the feed tells Google about every product and updates faster.

Choosing a feed method

Google describes three options. Smaller stores that change rarely can use an automated feed that Merchant Center builds from your crawled pages; good structured data makes that extraction more accurate. Larger stores, or stores where prices and stock change often, should upload feed files on a schedule. And “The Content API allows immediate content updates, which is particularly useful for stock level updates.”

Keep the two in sync

“When Google combines data from your website and Google Merchant Center feeds, it can lead to data inconsistency issues due to lag.” The classic case: a product sells out, the page says so at once, but the feed still says “in stock” until the next upload. Google's fix is to let Merchant Center automatically update its copy of your product data from the website when it notices a difference. Merchant Center Help gives the rule in plain words: “Match your product data in Merchant Center with your online store to ensure customers view the same information, such as prices, across both.”

Data also flows the other way: “For example, product snippets may use pricing data from your merchant feed if it's not present in the structured data on the page.” So a wrong price in the feed can appear in your organic result. In practice:

Which properties to add and how to validate them is covered in the lesson Structured data in 2026.

Store architecture: home, categories, subcategories, products

Google reads a store's structure from its links, not its URLs: “Google generally doesn't look at the structure of URLs to work out the structure of a site.” It looks at how many links lead to a page and how many clicks it takes to reach it. “As a general rule, the more links a page has to it within a site, the higher the relative importance of the page to other pages on your site.”

The recommended path is simple: “For example, add links from menus to category pages, from category pages to sub-category pages, and finally from sub-category pages to all product pages.” If a product can only be found through the search box, Google will probably never see it, because it does not type into search boxes. When linking every product is not possible, a sitemap or a Merchant Center feed can list the URLs Google would otherwise miss.

Diagram · Store architecture
Store architecture from the home page to products The home page links to three categories. The Running shoes category links to Women's and Men's subcategories, which link to the products Pace 3 and Trail X. A best-seller link goes straight from the home page to Pace 3. Filter and sort URLs are blocked or noindexed, while one chosen filter landing page, running-shoes/brand-x, is indexable. A breadcrumb on Pace 3 reads Home, Running shoes, Women's, Pace 3. Home page Best-seller link from the home page Running shoesTrail gearAccessories Women'sMen's Pace 3Trail X subcategories …subcategories … Filter and sort URLs: blocked or noindex Chosen filter landing page: indexable Breadcrumb on Pace 3: Home › Running shoes › Women's › Pace 3 /running-shoes//trail-gear//accessories/ /women//men/ /p/pace-3//p/trail-x/ /running-shoes/?color=red&sort=price /running-shoes/brand-x/
Every product is reachable by plain links; extra links to best sellers raise their importance, and only chosen filter pages are meant for the index.

Three habits make this structure work:

  1. Keep products close to the home page. A product that sits ten clicks deep, behind page 40 of a category, gets little attention. Add subcategories, link best sellers from the home page and from guides, and show “related products” and “also in this range” blocks.
  2. Use real links. Google asks for <a href> links and warns against navigation built on JavaScript events. Product cards, menus and pagination should all be crawlable links.
  3. Add breadcrumbs. They give every product a link back up the tree, and BreadcrumbList markup can show that trail in search results.

How to turn keyword groups into a hierarchy of hubs, and how deep is too deep, is covered in the lesson Structure from keywords: hubs and depth.

Category pages vs product pages: what each one targets

Google's own advice on catalogue content already splits the job: “Provide informative product descriptions that match search terms used by shoppers when they're searching for the product. Also provide category descriptions to cover less specific queries.”

Page typeTypical queriesWhat wins the click
Category“running shoes”, “women's trail running shoes”A good choice of products, useful filters, a short intro that helps people choose
Subcategory or filter landing page“brand x running shoes”, “waterproof trail shoes”A focused selection with its own title, H1 and text
Product“brand x pace 3”, “pace 3 size 42 review”Exact model, specs, price, stock, delivery, reviews
Guide or blog article“how to choose trail running shoes”Advice that links to the relevant categories

One search intent should have one URL. If your category “Trail running shoes” and a filter page “Running shoes · terrain: trail” both target the same query, they compete with each other. Pick one, link to it consistently, and canonicalise or block the other. Markup follows the same split: Google recommends “focusing on adding markup to product pages instead of pages that list products or a category of products.”

Page-level details, such as what to put in a category intro, how to write a product title and which blocks a product page needs, are in the lesson Category, product and article pages.

Faceted navigation, sorting and pagination

Filters by colour, size, brand and price are useful for shoppers and dangerous for crawling. Every combination is a new URL, and a few filters can create more URLs than you have products. Google's view of most of them: “Oftentimes there's no good reason to allow crawling of filtered items, as it consumes server resources for no or negligible benefit”.

The working rule for stores:

For paginated categories, give each page its own URL and its own canonical: “Don't use the first page of a paginated sequence as the canonical page.” Link the pages to each other with ordinary links, because “Google's crawlers don't "click" buttons and generally don't trigger JavaScript functions that require user actions to update the current page contents.” rel="prev" and rel="next" are not a fix either; about those tags Google says: “Google no longer uses these tags, although these links may still be used by other search engines.”

The full method, with robots.txt patterns and the choice between pagination, “load more” and infinite scroll, is in the lesson Pagination and faceted navigation.

Product variants

A T-shirt in five colours and six sizes is one product with thirty variants. Google's first rule: “To help Google understand your product variants, make sure that each variant can be identified by a separate URL.” Either a path segment (/t-shirt/green) or a parameter (/t-shirt?color=green) works. Fragments do not, because “Google does not use fragment identifiers in indexing.”

There are two common set-ups, and the canonical rule differs:

Either way, group the variants. In markup that means ProductGroup with productGroupID, variesBy and hasVariant, and “Each variant must have a unique ID in its corresponding structured data markup (for example, using the sku or gtin properties).” In the feed, item_group_id ties the variants together. Each preselected variant URL should show the right image, price and availability and let the user add that variant to the cart.

When does a variant deserve its own indexable page? In practice, only when people search for it on its own and you can say something specific about it, for example a colour with its own name and photos. Sizes almost never qualify.

Out-of-stock, discontinued and seasonal pages

Google's e-commerce documentation does not give one rule for products that sell out. It does give the tools: the availability values in merchant listing markup include “https://schema.org/OutOfStock: The item is currently out of stock.” and “https://schema.org/Discontinued: The item has been discontinued.”, along with BackOrder, PreOrder and SoldOut. The decision below is standard practice built on those values and on normal status codes.

Decision tree · A product is no longer available
What to do with an unavailable product page If the product will be back, keep the page with status 200 and mark it OutOfStock, BackOrder or PreOrder. If not, and there is a direct successor, 301 redirect to the successor. If there is no successor but the page still earns links, traffic or support visits, keep it, mark it Discontinued and link alternatives. Otherwise return 404 or 410 and remove it from the sitemap, feed and internal links. YesYesYes NoNoNo Will the product be backin stock? Is there a direct successoror replacement? Does the page still earn links,traffic or support visits? Keep the page (200) 301 to the successor Keep it, mark Discontinued OutOfStock, BackOrder or PreOrder update links, sitemap and feed show specs, link alternatives Return 404 or 410 remove from sitemap, feed and links
Temporary gaps keep the page; permanent ones either pass the URL to a successor or let it go cleanly.

Temporarily out of stock

Keep the page live with status 200 and the same URL. Change the availability in the markup and in the feed, say on the page when the product is expected back, offer a “notify me” option and link to similar products. Do not redirect, noindex or delete a page that will be selling again in a few weeks: you would throw away its rankings and links for a short gap. If you still take orders, use BackOrder or PreOrder instead of OutOfStock.

// Offer inside Product markup, product temporarily sold out
"offers": {
  "@type": "Offer",
  "url": "https://example.com/p/pace-3/",
  "price": "129.00",
  "priceCurrency": "EUR",
  "availability": "https://schema.org/OutOfStock"
}

Discontinued for good

If there is a direct successor (Pace 3 replaced by Pace 4), a 301 redirect passes visitors and signals to the new page. If there is no successor but the old page still gets links, search traffic or visits from owners looking for manuals and spare parts, keep it, mark it Discontinued and point to alternatives. If none of that applies, return 404 or 410. Avoid redirecting every dead product to the home page or a loosely related category: Google tends to treat such redirects as soft 404s, and visitors are confused.

Empty categories

Here Google is specific. “If a category has no items, use a noindex robots meta tag.” And if your platform hides empty categories automatically, “consider returning a 404 (not found) HTTP status code for the page.”

Seasonal pages

Pages for Black Friday, Christmas or summer sales work best on one permanent URL without the year, such as /black-friday/. Keep the page live all year, update it each season and, between seasons, show when the next sale starts and link to evergreen categories. A new URL every year starts from zero each time. Google lists seasonal offers among the content that helps stores reach shoppers: “Describe your special offers during special seasonal sales events such as Mother's Day.”

Launching before products are on sale

One of Google's launch options is to publish the full site with products marked out of stock, so everything can be indexed before sales begin. Even then, keep the cart working: “Don't disable add-to-cart functionality as a way to stopping users from purchasing products.”

Internal search pages, reviews, shipping and returns

Internal search result pages

Pages such as /search?q=red+shoes can be generated in endless numbers and usually repeat category content. Keep them out of the index: block the search path in robots.txt or serve noindex, and do not link to search results from crawlable navigation. If a search term shows real demand, build a proper category or landing page for it instead.

# robots.txt: keep internal search and sort URLs out of the crawl
User-agent: *
Disallow: /search
Disallow: /*?*sort=

Reviews

Stores benefit from two kinds of reviews. Customer reviews on product pages help shoppers and can feed review stars through Review and AggregateRating markup, as long as the reviews are real and visible on the page. Merchant reviews and buying guides written by your own staff are content in their own right, and Google has published guidance for them. Among its points:

“When writing reviews, focus on the quality and originality of your reviews, not the length, following as many of the above best practices as you are able.”

Google Search Central — Write high quality reviews

Shipping and returns

Google lists customer service among the content that helps a store: “Improve customer trust by being clear on your return and shipping policies (including any shipping discounts based on order size), and by highlighting your customer support contact points.” Put it in three places:

Speed and rendering for stores

Stores are heavy: big category grids, many images, filters, reviews widgets and third-party scripts. Two Google statements matter most. “If you're a merchant optimizing for all types of shopping results, we recommend putting Product structured data in the initial HTML for best results.” And for markup injected later: “Be aware that dynamically-generated markup can make Shopping crawls less frequent and less reliable, which can be an issue for fast-changing content like product availability and price.”

In practice: render the product grid, prices and markup on the server; lazy-load images below the fold but never the main product photo; set image dimensions so the grid does not jump; and review every third-party app for the weight it adds. Metrics and fixes are in Core Web Vitals: LCP, INP, CLS, and image formats and sizes in Images: alt, formats, sizes, lazy loading. If you also sell in physical shops, Google Business Profile and local ranking covers the local side.

Audit your store's structure and status codes

OurSEO Tools crawls up to 1,000 pages and records the status code, canonical, indexability and load time of every URL, alongside a 69-point checklist covering indexation, duplicates, redirects and internal linking.

69-point checklistTechnical crawlContent analysis

Common mistakes

E-commerce SEO audit checklist

Use the same list before launch and in every audit. Work through it in this order, because problems early in the list hide the ones further down.

Checklist · Store launch and audit
  • 1. SetupSearch Console verified, sitemaps for categories and products submitted, Merchant Center account linked.
  • 2. IndexingIndexed product pages roughly match the number of products you sell; Page indexing report checked for excluded products.
  • 3. StructureEvery product linked from a category; no orphan products; key products a few clicks from the home page; breadcrumbs on all levels.
  • 4. URLs and duplicatesFilter, sort, session and tracking URLs blocked or noindexed; one URL per intent; same URL in links, canonicals and sitemap.
  • 5. VariantsEach variant has a unique URL and ID; canonical rules applied; ProductGroup and item_group_id in place.
  • 6. Product dataProduct markup in the initial HTML with no errors in Search Console; feed price and availability match the page.
  • 7. Stock and status codesOut-of-stock pages return 200; discontinued pages redirect to a successor or return 404/410; empty filters return 404.
  • 8. TrustShipping and returns pages linked site-wide; return policy in markup and Merchant Center; real reviews on product pages.
  • 9. Speed and renderingGrid and prices server-rendered; images sized and lazy-loaded below the fold; Core Web Vitals checked on category and product templates.
  • 10. Search pages and seasonsInternal search results out of the index; seasonal pages on permanent URLs.
Ten areas cover most store problems; check each template type, not just the home page.

A crawler does most of the counting for you: export every URL with its status code, canonical and indexability, then compare the list with your product catalogue. Products missing from the crawl are not linked well enough; parameter URLs in the crawl show where filters leak. OurSEO Tools runs a 69-point checklist across indexation, URLs and duplicates, redirects, rendering and speed, security, on-page, internal linking, content and local signals, and a technical crawl of up to 1,000 pages with status code, canonical, indexability and load time per URL.

FAQ

Do I need both structured data and a Merchant Center feed?

Not to appear in ordinary results, but you need Merchant Center for the Shopping tab and free listings, and Google says using both “maximizes your eligibility to experiences”. Generate both from one product database so they never disagree.

Should I noindex out-of-stock products?

No, not if they are coming back. Keep the page with status 200, mark it OutOfStock (or BackOrder / PreOrder) and link alternatives. Only permanently discontinued products need a redirect or a 404/410.

Can Google find products that are only in my sitemap or feed?

It can find the URLs that way, but pages without internal links look unimportant. Google strongly recommends linking every product you want indexed; the sitemap and feed are a safety net.

Which filter pages should be indexable?

Only combinations that match real search demand, such as brand within a category, with a static URL, their own title and text, and internal links. Sort orders, price ranges and multi-filter combinations stay out.

Do category pages appear in free listings?

No. Free listings are for product pages; categories compete in ordinary organic results, which is why their titles, intros and internal links matter.

Should every colour have its own page?

Each variant needs its own URL, but not its own indexable page. On a single-page set-up all variant URLs canonicalise to the main product. Give a colour its own indexable page only when it is searched for on its own and has its own content.

Sources

Quotes checked against the official pages on 30 October 2026.