Key takeaways
- Give Google a clean set of category, product and variant URLs, and block filter and sort URLs you do not need indexed.
- Describe each product with merchant listing markup and a Merchant Center feed; that is how it reaches the Shopping Graph.
- Keep price, stock and variant data identical on the page, in the markup and in the feed, and retire products with care.
An e-commerce SEO checklist comes down to three jobs. Let Google crawl a clean set of category, product and variant URLs. Describe every product in a form Google can read. Then keep that data true as prices and stock change.
SEO is built on simple fundamentals, and online stores are no exception. In a post on AI search, I wrote that the e-commerce playbook has barely changed. It is still product schema, Merchant Center feed quality, pricing signals and clean inventory data. This checklist follows the order a store is built: structure first, then product data, then the things that change every day.
Plan category and product pages around how people shop
Structure decides which pages Google finds and which it treats as important. On a store, that means a short, crawlable path from the homepage to categories, subcategories and products.
Build a shallow, crawlable structure
- Link from menus to categories, and from categories to subcategories. That is the path Google’s guidance on ecommerce site structure describes. Link your best sellers from the homepage too.
- Link to every product you want indexed. Google strongly recommends it. Where that is not possible, a sitemap or a Merchant Center feed helps Google find the rest.
- Use real
<a href>links. Google says not to build navigation from JavaScript events on other page elements, because its crawler may not find those links. - Keep URLs short and descriptive. Google says words in URL paths may help it understand the page. Use one letter case throughout.
- Add breadcrumbs with BreadcrumbList markup, which Google’s ecommerce structured data guide recommends for showing the hierarchy of your pages.
- Give each product one URL. If a product sits in three categories, link to the same product URL from all three. Where duplicates exist,
rel="canonical"is a strong signal for the version you want.
At Adtric, we did SEO for a WooCommerce store selling a group’s cookers, cookware and kitchen appliances. The work was plain. We fixed technical issues on the store and optimized category and product pages for the searches shoppers make. We also improved the internal links between categories and products (case study).
Give category pages a reason to rank
Category pages usually compete for broader searches, such as “stainless steel pressure cooker”. Product pages compete for model names and very specific needs. Decide which page targets which search, so your own pages do not compete with each other.
- Write a short introduction that helps people choose: sizes, materials, and who each range suits. Keep the product grid visible early on a phone.
- Link to subcategories and to any buying guides that explain them.
- Avoid publishing empty categories. They give shoppers and Google nothing to use.
Write product pages for buyers
- Rewrite manufacturer copy. Say what each specification means for the buyer, and answer the questions your support team hears.
- Use your own photos where you can, from several angles, with descriptive file names and alt text.
- Show price, stock, delivery time and returns near the buy button.
- Link to related products, accessories and the parent category.
New brands depend on non-branded searches, because few people know the name yet. At Adtric, we worked with a new paraben-free skincare brand in 2022. We optimized its product and category pages for non-branded searches and tracked branded and non-branded queries separately.
Google impressions rose from 5,440 to 18,700 between July and August 2022, and clicks from 189 to 222 (case study). Tracking the two kinds of query separately shows whether new shoppers are finding you, not only people who already know your name.
Buying guides and comparison pages can win searches that product pages cannot. You do not need to publish three times a week to rank, though. A few guides that answer real buying questions, linked to the right categories, are a better use of your time.
Paginate category pages the way Google reads them
- Give each page in a series its own URL, and link each page to the next with
<a href>. - Do not point page 2 and beyond at page 1 with a canonical tag. Google’s pagination guidance says not to use the first page as the canonical.
- Skip
rel="next"andrel="prev"for Google. It says it no longer uses these tags, although other search engines may. - Back “load more” buttons and infinite scroll with crawlable links. Google’s crawlers do not click buttons.
Control faceted navigation, filters and sorting
Filters for size, color, price and brand help shoppers. They also multiply URLs. Google’s faceted navigation guidance warns that crawlers will typically access a very large number of these URLs, leaving less time for new, useful pages.
Decide filter by filter whether a filtered page deserves a place in Google.
If filtered pages do not need to rank
- Block the filter and sort parameters in robots.txt. In Google’s words: “Oftentimes there’s no good reason to allow crawling of filtered items.”
- Or apply filters after a
#in the URL. Google generally does not support URL fragments in crawling and indexing, so they add no new URLs to crawl. - Do not block a URL in robots.txt and also add noindex to it. For Google to see a noindex rule, the page must not be blocked by robots.txt.
If some filtered pages match real searches
Some filters match what people type into Google. “Cotton kurtas” might be a fabric filter on your women’s kurtas category. If people search for that phrase, turn it into a real landing page. Give it a static URL, its own title, a short introduction and links from the category.
For filter URLs you keep crawlable, Google asks for some discipline:
- Use
&as the parameter separator. - Keep filters in a fixed order, with no duplicate filters in one URL.
- Return a 404 status when a filter combination has no products.
- Do not rely only on canonical tags or nofollow. Google says these are “generally less effective in the long term” than blocking in robots.txt or using fragments.
- Keep session IDs and tracking parameters out of internal links.
Use your site search data
Your store’s own search box tells you what shoppers want. GA4’s enhanced measurement records a view_search_results event for it (GA4 help). The event fires when a results page loads with a query parameter such as q or s.
Review the top terms and the ones that return nothing. Then fix the gaps with a category, a product page or a synonym. If Google crawls far more URLs than you have products, my explainer on how Google crawls, indexes and decides priority goes deeper.
Product variants and variant URLs, including Shopify
Google wants each variant to have its own URL that opens with that variant already selected. On Shopify, that is the ?variant= URL your store already creates. Keep those URLs crawlable, let the canonical point to the main product URL, and check that your markup groups the variants.
What Google asks for
- A separate URL for each variant. Google’s URL guidance for ecommerce sites gives two patterns: a path such as
/t-shirt/green, or a parameter such as/t-shirt?color=green. - A URL that preselects the variant. Google’s product variant documentation says the page should show the right image, price and availability. The shopper should be able to add that variant to the cart.
- One canonical for the group. When variants use optional query parameters, Google recommends the URL without the parameter as the canonical. That is typically the base product page with no variant preselected.
- Markup that groups the variants. Use
ProductGroupwithhasVariant,variesByandproductGroupID. Each variant needs a unique ID, such as its SKU or GTIN. - Markup in the initial HTML. Google warns that JavaScript-generated product markup can make Shopping crawls less frequent and less reliable. That hurts most when price and stock change often.
- Matching Merchant Center data. The item group ID attribute is required for variants in free listings. Google recommends a different landing page URL for each variant, and the page must match the variant’s details.
What “use variant URLs” means on Shopify
Shopify already does much of this. Its developer documentation says variant deep links carry a ?variant=[variant-id] query parameter. Shopify also says it adds canonical tags automatically to prevent duplicate content in search results.
For markup, Shopify’s structured_data Liquid filter outputs a ProductGroup when a product has variants. In Shopify’s own example, the offer URL includes the ?variant= parameter. Themes and SEO apps can add markup of their own, so check what your store actually outputs.
Five checks for a Shopify store:
- Open a variant URL in a private window. The right image, price, stock status and selected options should load.
- View the page source. The canonical tag on a
?variant=URL should point to the main product URL. - Test the product page in the Rich Results Test. You want one product group with its variants, not several conflicting product blocks.
- Do not block
?variant=in robots.txt. Google crawls variant URLs to identify each variant, and it says not to use robots.txt for canonicalization. - In Merchant Center, check that each variant has its own landing page link and shares an item group ID with the others.
The same checks work on WooCommerce or any other platform. How variant URLs behave there depends on your theme and plugins, so test rather than assume.
When a variant deserves its own page
Google also supports a multi-page pattern, where variants sit on separate, equally important pages. Each page then carries full markup of its own, and there is no single canonical URL for the group.
Use it when shoppers search for a specific color, size or model, and that page has something distinct to say. Otherwise, one strong product page with selectable variants is easier to keep accurate.
Add product structured data and connect Merchant Center
Google gives two ways to tell it about products: structured data on your product pages, and a feed in Merchant Center. It recommends both. Its product structured data guide says that providing both “maximizes your eligibility” for shopping experiences.
Product structured data
- Use merchant listing markup on pages where people can buy. Product snippet markup is for pages where people cannot buy directly, such as review sites.
- Cover the required fields. Merchant listings need
name,imageandoffers. The offer needs apriceabove zero and apriceCurrency, such as INR. - Add the recommended fields you can keep accurate: availability, brand, GTIN, item condition, ratings and reviews.
- Put shipping and return policies in one place. Google recommends a global shipping and return policy under your
Organizationmarkup, with product-level policies only for exceptions. - Check it. Search Console’s Merchant listings report covers the merchant listing markup Google found on your site, and the Rich Results Test checks single pages.
Most of my SEO toolkit is free Google tools: Search Console, GA4, PageSpeed Insights and the Rich Results Test. Every check in this section uses them.
Merchant Center and free listings
Free listings let your products appear on Google at no cost. Google names Search, Images, Lens, YouTube, Gemini, Maps and the Shopping tab among the places they can show. India is on Google’s list of supported countries for free product listings.
- Provide the required attributes: ID, title, link, image link, price, description and availability.
- Add a return policy and shipping settings. Google lists India among the countries where shipping settings or shipping costs are required.
- To start quickly, Merchant Center can add products automatically from your online store. It reads the structured data on your product pages, so the markup has to be right first.
- A scheduled feed gives you more control over when updates reach Google, which matters when prices change often.
- If you have a physical store, Google says to upload products with inventory location data for Google Maps. Keep your Business Profile current too.
Merchant Center is not optional everywhere. Google says it is mandatory for some surfaces, such as listings in the Google Shopping tab.
Reviews and ratings
- Collect reviews on the product page itself. If you mark them up, Google’s review snippet guidelines say the reviews must be readily available to users on that page.
- Do not copy ratings from marketplaces or other sites into your markup. Google says, “Don’t aggregate reviews or ratings from other websites.”
- Reply to critical reviews politely, and fix the problem they point to.
- Do not count on FAQ markup for extra space in results. Google’s documentation changelog says FAQ rich results stopped appearing in Google Search on May 7, 2026. A short FAQ block can still help shoppers.
What is Google’s Shopping Graph?
The Shopping Graph is Google’s database of products, sellers, prices and stock. Google describes it as “a dynamic repository of product info that provides an up-to-date view of the products available” (Google Shopping Help). Google draws on it when it shows products in Search, ads, YouTube and its AI features.
It is large, and it changes constantly. In April 2026, Google put it at more than 50 billion of the world’s products (Google India blog). It added that 2 billion of them are updated every hour. People sometimes search for it as the “shopper graph”, but Shopping Graph is Google’s name for it.
How your products get into the Shopping Graph
- Merchant Center. Brands and retailers send product data to Google directly through Merchant Center, and through Manufacturer Center for brands.
- Your own product pages. Google’s free listings help says products crawled on your online store can show up on Google. Product structured data makes those details easy to read.
- Automatic import. Merchant Center can scan your site and add products using their structured data.
Google’s 2023 explainer adds that the graph also pulls “relevant data from the web”, such as images, descriptions, reviews and YouTube videos. So reviews and product videos published elsewhere can add to the picture Google has of your products.
Where it shows up, including AI Mode
Google’s Shopping Help says Shopping Graph data may be used in Search results, ads, YouTube and generative AI features. Those AI uses include review summaries, buying guidance and product recommendations.
AI Mode is the clearest example. In May 2025, Google said AI Mode “brings together Gemini capabilities with our Shopping Graph” (Google blog). A complex shopping question triggers a query fan-out, where several searches run at once, and the answer shows a browsable panel of products.
In April 2026, Google said it had rolled out its biggest upgrade to shopping in AI Mode in India. Answers organize prices, reviews and inventory details. At that point AI Mode shopping worked in English, with Hindi promised soon. Google has also launched Virtual Try-On for apparel in India. My article on AI Mode in Google Search covers the wider changes.
What to do about it
There is no special Shopping Graph markup to add. Google’s guidance on AI features and your website says you do not need new machine-readable files or markup. It does list keeping your Merchant Center and Business Profile information up to date, and making sure structured data matches the visible text.
In practice, that means the checklist above: accurate product markup, a complete feed, and pages that agree with both. Say the page shows ₹1,499, the markup says ₹1,299, and the feed lists a sold-out item as “in stock”. Google now has three versions of the truth.
Handle out-of-stock and discontinued products
Stock changes every day, so this is where product data most easily falls out of sync. The rule is simple: say the same thing on the page, in the markup and in the feed. Google’s Merchant Center help on availability says the page, markup, checkout and feed must match. In its words, “A mismatch in one of these will trigger a product disapproval.”
| Situation | What to do |
|---|---|
| Temporarily out of stock | Keep the page live. Show clear text such as “sold out”, or a disabled buy button. Set availability to out of stock in the markup and the feed. |
| One size or color sold out | Keep the product live and disable that option in the variant selector. Give that variant its own availability in the markup. |
| Taking orders before stock arrives | Use back order or pre-order on the page and in the feed, never “in stock”. |
| Discontinued, with a successor | 301 redirect to the new model or the closest equivalent product. |
| Discontinued, no successor, still searched | Keep the page and mark it Discontinued in the markup. Remove it from the feed, and link to alternatives, manuals or spare parts. |
| Discontinued, no successor, no value | Return a 404 or 410, and remove it from the sitemap and the feed. |
Google’s markup and Merchant Center use different value lists. Merchant listing markup supports values such as InStock, OutOfStock, BackOrder, PreOrder and Discontinued. Merchant Center’s availability attribute uses in stock, out of stock, preorder and backorder.
The redirect rows follow Google’s own 404 guidance. It says to add a redirect if the content has moved. For a deleted page with no replacement or equivalent, “returning a 404 is the right thing to do.” Google currently treats a 410 the same as a 404.
Do not redirect every retired product to the homepage. Google lists that among the things not to do with 404s. A page that says “not available” while returning a success code can also be reported as a soft 404. Give temporarily unavailable pages real content: the description, specifications, reviews and links to alternatives.
Make product pages fast on mobile, and protect URLs in a migration
Mobile speed
In India, mobile devices accounted for 84.21% of the page views StatCounter tracked in October 2026. Google also uses the mobile version of a site for indexing and ranking. So test your store on a phone first, and keep the same content and structured data on mobile and desktop.
For a “good” rating, Google’s Core Web Vitals thresholds are 2.5 seconds for Largest Contentful Paint and under 200 milliseconds for Interaction to Next Paint. Cumulative Layout Shift should stay under 0.1. Keep speed in proportion, though. Google says it “always seeks to show the most relevant content, even if the page experience is sub-par” (page experience).
Product pages are image-heavy, which is why a lesson from my own site applies to stores. On October 28, 2026, turning on page caching, along with a PHP upgrade, lifted my homepage’s mobile score from 61 to 91. The same evening, an article page dropped from 87 to 75, because its 1,500 px featured image became the largest element on the page.
Caching fixes server time, not image weight. Lighter page templates took the homepage to 97 on November 1, 2026, but a re-test the next day, after new features went live, gave 81. These are lab scores from PageSpeed Insights; my site has too little Chrome traffic for real-user data. On a store, test the homepage, a category page, a product page and checkout separately after every change. My guide to Core Web Vitals has the full fix order.
Platform moves and redesigns
Moving a store to a new platform or theme usually changes product, category and image URLs. Treat it as a migration, not a redesign. Google’s guide to site moves with URL changes sets out the core steps.
- Map every old URL to its new URL: products, categories, variant URLs, images and files such as manuals.
- Use server-side permanent redirects, one hop each, and update internal links to the new URLs.
- Submit the new sitemap, and update the product links in your Merchant Center feed.
- Keep the redirects for as long as possible. Google says generally at least a year.
- Expect temporary ranking changes. Google says most pages on a small to medium site take a few weeks to move.
Do not leave files out of the map. My team at Adtric ran a small finance bank’s move to a .bank.in domain. In the nine months after the move, 803 of the 1,000 most-clicked URLs in Google were PDFs (case study). A store’s equivalent might be old category paths, variant URLs or product manuals. My website migration SEO page explains how I plan these moves.
The e-commerce SEO checklist at a glance
Use this table to split the work between whoever owns the store, the developer and whoever owns SEO.
| Area | Check | How to verify |
|---|---|---|
| Structure | Menus link to categories; categories link to subcategories and products | Crawl with Screaming Frog; no product left without internal links |
| Structure | One URL per product; breadcrumbs with BreadcrumbList markup | Canonical in page source; Rich Results Test |
| Pagination | Each page has its own URL, linked with <a href>; no canonical to page 1 | View source on page 2 |
| Filters | Filter and sort URLs blocked, or turned into real landing pages | robots.txt; Search Console Page indexing report |
| Filters | Empty filter combinations return 404 | Crawl or browser developer tools |
| Variants | Each variant URL preselects its image, price and stock | Private-window test |
| Variants | Canonical points to the main product; ProductGroup markup present | Page source; Rich Results Test |
| Markup | Merchant listing markup in the initial HTML, with price, currency and availability | Merchant listings report in Search Console |
| Policies | Shipping and return policies under Organization markup and in Merchant Center | Rich Results Test; Merchant Center |
| Merchant Center | Free listings on; required attributes complete; no disapprovals | Merchant Center product status |
| Reviews | Marked-up reviews are visible on the same page; none copied from other sites | Manual check |
| Stock | Page, markup, checkout and feed agree on availability | Spot-check sold-out items weekly |
| Discontinued | 301 to a successor, or 404/410; nothing redirected to the homepage | Crawl the redirects |
| Mobile speed | Homepage, category, product and checkout templates tested on mobile | PageSpeed Insights |
| Site search | Top and zero-result search terms reviewed | GA4 view_search_results event |
| Migration | Full URL map, including variants, images and files | Redirect test before launch |
What to do next
Work through the table in order. Crawl and structure problems come first, because nothing else matters if Google cannot reach your products. Product data comes next. Then come the jobs that never end: stock, speed and reviews.
On-page SEO is not a one-time job. On a store, the work comes back every time a price or stock level changes. If your store is not live yet, start with my SEO checklist for new websites, and add Merchant Center to your launch plan.
If you would rather have help running this every month, look at my SEO consulting. It covers online stores: category and product pages, filters that create duplicate URLs, product structured data and feed quality.

