ECOMMERCE · FOR ONLINE STORE OWNERS AND ECOMMERCE SEOS

Google Search Console for Ecommerce SEO: A Store Playbook

A practical Search Console playbook for online stores: the Shopping reports, product rich results, page-type splits, faceted URLs, sold-out products and seasonal comparisons, with ready-to-run prompts for Shopify- and WooCommerce-style stores.

By GSC MCP Server teamUpdated 16 min read

How to use Search Console for ecommerce SEO

To use Google Search Console for ecommerce SEO, work in three layers. Check the Shopping section first: the Merchant listings and Product snippets reports show whether your product structured data qualifies for rich results, and Merchant opportunities lists store-level fixes. Then split the Performance report by page type (product, category, blog) with URL regex and by search appearance. Finally, use URL Inspection and year-over-year comparisons for faceted URLs, sold-out products and seasonal demand.

We make GSC MCP Server, a hosted, read-only MCP server that puts Search Console and Bing data into Claude, ChatGPT, Cursor and other AI assistants, so some prompts below use its tools. Everything also works by hand in the Search Console interface, and we say where our server can’t help: it can’t read the Shopping reports, Merchant Center or revenue.

The examples use a fictional outdoor-gear store at example.com in two URL styles: Shopify-style (/products/, /collections/, /blogs/) and WooCommerce-style (/product/, /product-category/). Google’s documentation was checked on 30 October 2026.

The Shopping reports in Search Console

The Shopping section in the left-hand menu only appears for sites Google identifies as online merchants. According to Google’s Shopping reports and tools help page, that means sites that mainly sell physical goods directly to consumers or have Product structured data. Affiliate sites and sites where people can’t complete a purchase don’t qualify.

  • Merchant listings. A rich result report for pages where shoppers can buy from you. These results always include a price and can show shipping, returns and availability.
  • Product snippets. A rich result report for product pages where people can’t buy directly, such as reviews and comparison pages. Each report only appears once Google finds the matching markup.
  • Merchant opportunities. Recommendations for how your shop appears on Google. This was the Shopping tab listings report until Google renamed it in April 2025; suggestions include adding shipping and returns, setting up store ratings and adding payment methods.
  • Shipping and returns (Settings → Shopping → Shipping and returns). Since 12 November 2025, Google has offered this to sites it identifies as online merchants, with no Merchant Center account required. Owners and full users can edit it, and these settings take precedence over the structured data on your site.

Associating Merchant Center

To link the two, go to Settings → Associations, click Associate and follow the dialog. Google’s associations help page sets three conditions: you must own the Search Console property and be an admin of the Merchant Center account, the property must be at domain level (subfolder properties aren’t supported), and each property can link to only one Merchant Center account.

Where each ecommerce number lives

What you wantWhere it livesReadable through the API (and MCP)?
Merchant listings and Product snippets issue countsSearch Console, Shopping sectionNo
Merchant opportunities, shipping and returns settingsSearch Console, with Merchant Center for some itemsNo
Clicks from merchant listings and product snippetsPerformance report, Search appearance tabYes: query_search_analytics with searchAppearance
Rich results detected on one URLURL InspectionYes: inspect_url (indexed version only)
Unpaid clicks from the Shopping tabMerchant Center performance reportsNo
Revenue and conversionsGA4 or your store platformNo

Merchant listings, Product snippets and Review snippet appearances

In Performance → Search results, the Search appearance tab shows clicks and impressions for each result type. These are the ones that matter to a shop, from Google’s dimensions and data groupings reference:

UI labelAPI valueWhat it covers
Merchant listingsMERCHANT_LISTINGSResults with product data such as price, availability, shipping and returns. Includes every shopping feature except product snippets, such as Popular products and the Shopping knowledge panel, in web search and Google Images.
Product snippetsPRODUCT_SNIPPETSAn enhanced text result that can show ratings, reviews, price and availability
Review snippetREVIEW_SNIPPETReview excerpts, average ratings and stars
Product results (deprecated)ORGANIC_SHOPPINGThe old combined type, split into the two above in 2023; no data for recent dates

Four rules stop these numbers from misleading you:

  1. Query search appearance on its own first. Google’s API guide says search appearance can’t be a column alongside other dimensions. Group by searchAppearance alone to list your types, then filter by one type while grouping by page or query.
  2. Clicks belong to the URL, not the feature. Filtered to Merchant listings, a page’s clicks are not guaranteed to have come from the merchant listing itself, only from a results page where it appeared.
  3. Check Google Images separately. Merchant listings appear in both web and image search, so run the same query with the Image search type.
  4. Use positive filters. In 2025, users reported an API bug where notEquals and notContains on search appearance returned only the excluded rows; Google said in November 2025 it was looking into it. We haven’t seen a fix announced, so filter with equals.
Try this prompt
For example.com on Google, run query_search_analytics for the last 90 days with dimensions searchAppearance only, once with searchType web and once with searchType image. Then, for MERCHANT_LISTINGS and PRODUCT_SNIPPETS, run it again with dimensions page and a searchAppearance equals filter, limit 300. Tell me which product URLs earn clicks from each appearance, and which of my top 50 product pages by clicks appear in neither list.

A top product with no Merchant listings impressions usually has broken markup on its template, which is the next section’s job.

Product structured data errors and warnings

Both reports sort issues into two groups. Critical issues appear under “Why items are invalid” and stop an item from appearing as a rich result. Non-critical issues appear under “Improve item appearance”; the item stays valid. Google’s rich result report documentation adds two limits: the reports show a sample of items rather than every page, and each issue’s example table stops at 1,000 rows.

The requirements behind most errors are short. The merchant listing documentation requires a Product with name, image and offers, where the Offer has a price greater than zero and a priceCurrency. It must be an Offer, not an AggregateOffer, on a page where the shopper can buy, focused on one product or its variants. Category and listing pages don’t qualify. The product snippet documentation needs only name plus one of review, aggregateRating or offers.

Typical wording in the reportSeverityUsual cause and fix
Missing field “offers”, or a missing or invalid priceCritical (Merchant listings)A template (gift cards, bundles or price-on-request items, for example) outputs Product without an Offer. Output an Offer with a price above zero and a currency.
Either “offers”, “review”, or “aggregateRating” should be specifiedCritical (Product snippets)Markup has only a name. Add one of the three.
Missing field “image”Critical (Merchant listings)The template leaves image out of the markup. Add a crawlable product image URL.
Missing field “hasMerchantReturnPolicy” (in “offers”)Non-criticalAdd an organisation-level return policy, which Google prefers to repeating it on every offer
Missing field “shippingDetails” (in “offers”)Non-criticalOrganisation-level shipping markup has been supported since November 2025
No global identifier provided (e.g., gtin, mpn, isbn)Non-criticalAdd the GTIN where the product has one. Don’t invent identifiers for own-brand goods.
Missing field “aggregateRating” or “review”Non-criticalMark up only reviews shown on the page. Google added a guideline against fake and undisclosed incentivised reviews in July 2026.

Exact wording varies; open an issue to see the field path. We haven’t seen Google say whether Search Console’s shipping and returns settings clear the markup warnings, so expect them to stay until the markup changes. Also check sale prices: a priceValidUntil date in the past may stop the listing from showing.

Fix by template, confirm by URL

  1. Group issues by template, not URL. Ten thousand invalid items usually means one broken theme file or app.
  2. Test the fix live in the Rich Results Test or URL Inspection’s live test before you publish it.
  3. Click Validate fix in the report once it is deployed.
  4. Confirm on a sample after recrawl. inspect_url returns the rich results Google detected on the indexed version of a page, each issue with a severity of WARNING or ERROR. It can’t run a live test.
Try this prompt
Run inspect_url on these six example.com URLs, one per product template: a standard product, a product with variants, a sold-out product, a bundle, a gift card and a sale item. For each, list the rich result types detected, every issue with its severity, the Google-selected canonical, the user canonical and the last crawl time. Flag any URL where Merchant listings is missing or has an ERROR.

Google allows about 2,000 inspections per property per day, and each inspection counts as a tool call on our plans. Inspect a sample per template rather than the whole catalogue.

Split ecommerce performance by page type

Product pages, category pages and articles win different queries and fail for different reasons, so a site-wide total hides most of what matters. Search Console has no page-type grouping, but every store platform puts the type in the URL. Add a Page filter in the Performance report and choose Custom (regex), or pass the same pattern to query_search_analytics as an includingRegex filter.

Page typeShopify-style patternWooCommerce-style pattern
Product/products/[^/?]+$/product/[^/?]+/?$
Category/collections/[^/?]+/?$/product-category/
Blog and guides/blogs//blog/ (depends on your permalink settings)
Filtered or sorted[?&](filter\.|sort_by=)[?&](filter_|orderby=|min_price=)
Paginated[?&]page=\d+/page/\d+/

Patterns are RE2 and match the full URL, query string included. Shopify-style product URLs nested under a collection (/collections/tents/products/trailhead-2-tent) normally canonicalise to /products/trailhead-2-tent; the product pattern catches both. The Search Console regex cheat sheet covers the RE2 rules that break patterns.

Try this prompt
For example.com on Google, use multicall to run four query_search_analytics calls for the last 90 days with dimensions date: one with a page includingRegex filter /products/[^/?]+$, one with /collections/[^/?]+/?$, one with /blogs/, and one with a page excludingRegex filter /(products|collections|blogs)/ for everything else. Give clicks, impressions, CTR and average position per page type, each type’s share of total clicks, and the weekly trend.

Filtering by page aggregates data by page, so the four totals can differ slightly from the property total. That’s expected. What to look for:

  • Products earn nearly all clicks, categories almost none: categories are thin, poorly linked or losing their queries to products.
  • Blog clicks are growing but product clicks are flat: articles attract readers, but do they link to the products and categories they discuss? See internal linking with Search Console.
  • Most clicks are branded: split them first with the method in branded vs non-branded queries; own-brand product names can flatter organic growth.

Category page SEO with Search Console data

Category pages should win the broad, plural queries (“2 person tents”, “waterproof hiking boots”); product pages should win model, brand-plus-model and very specific queries. When a product page collects the impressions for a category-style query, the category page usually isn’t doing its job.

To find them, ask your assistant to run query_search_analytics with dimensions query and page and the product regex, then pick out plural, brand-free queries and group them by the collection that should rank. If two of your own URLs keep swapping for the same query, treat it as cannibalisation and work through the keyword cannibalization guide rather than rewriting both pages. For categories that already rank, three fixes come up again and again:

  • High impressions, low CTR. Rewrite the title to match the query and add a real differentiator (range, brands, starting price). Run query_search_analytics with the category pattern and dimensions page and query to find them.
  • Pagination. Google’s pagination guidance says to give each page its own URL and canonical (not page one), link pages with ordinary links, and keep sorted variants out of the index. Google no longer uses rel="next" and rel="prev".
  • Near-empty categories. A collection with one or two products rarely beats a competitor’s with forty. Merge it into its parent or fill it before chasing rankings.

Faceted navigation and parameter URLs

Filters for size, colour, brand and price can turn a catalogue of 2,000 products into millions of crawlable URLs. Google’s faceted navigation guidance (last updated December 2025) gives two routes:

  • You don’t need filtered URLs in Search: disallow the filter parameters in robots.txt, or put filters in the URL fragment after #, which Google doesn’t use for crawling or indexing. Google calls rel="canonical" and rel="nofollow" generally less effective in the long term.
  • You do need some indexed: use the standard & separator, keep filter order consistent, don’t allow duplicate filters, and return a 404 for combinations with no results.

There is no setting for this in Search Console any more: Google retired the URL Parameters tool in 2022. What Search Console can do is show whether facets are leaking into results.

Try this prompt
For example.com, run query_search_analytics for the last 28 days with dimensions page and a page includingRegex filter for [?&](filter\.|sort_by=|page=), limit 500. Group the URLs by parameter name and total impressions and clicks per parameter. Then run inspect_url on the three filtered URLs with the most impressions and give me the Google-selected canonical, the user canonical, the coverage state and the robots.txt state for each.

A few parameter URLs with impressions is normal. Hundreds means Google is indexing facets, and the Google-selected canonical tells you whether it respects yours. Two cautions:

  • Don’t block what you want Google to deindex. If robots.txt blocks a URL, Google can’t see its noindex or canonical. Linked, blocked URLs can show up as “Indexed, though blocked by robots.txt”.
  • Give demand its own page. If shoppers search for a filter combination (“red 2 person tents”), build a real subcategory with a clean URL rather than letting a filter URL rank.

Out-of-stock and discontinued products

Sold-out pages are where stores lose rankings quietly. Google’s John Mueller said in 2022 that a page for an out-of-stock product can be treated like a soft 404 and dropped, unless it carries enough other useful information. Google’s own documentation adds two firm rules: all 4xx codes except 429 are treated the same, and redirecting many old URLs to one irrelevant page such as the home page might be treated as a soft 404.

SituationWhat to doWhat to check
Temporarily out of stockKeep the URL and content live with a 200. Set availability to OutOfStock, BackOrder or PreOrder, and offer a restock alert or alternatives. Avoid “no longer available” wording.inspect_url: page fetch state not SOFT_404, Merchant listings still detected
Discontinued, direct successor exists301 to the new modelThe old URL’s clicks move to the successor
Discontinued, page still usefulKeep it with Discontinued availability, specs, manuals or parts, and links to alternativesThe page still earns clicks or links
Discontinued, no value leftReturn 404 or 410. Redirect only to a page that genuinely meets the same need.Not redirected to the home page in bulk
Recurring or seasonal productKeep one persistent URL and update it each seasonYear-over-year clicks on the same URL
Try this prompt
Here are 40 example.com product URLs that sold out this month. Run inspect_url on each and list any with a page fetch state of SOFT_404, a coverage state that says it isn’t indexed, or no Merchant listings in its detected rich results. Then run query_search_analytics with dimensions page for the last 28 days and the 28 days before, and show which of the 40 lost the most clicks.

Those 40 inspections are 40 tool calls. If affected URLs show “Crawled – currently not indexed” instead, see how to fix Crawled – currently not indexed.

Seasonality: compare with last year, not last month

A gift shop’s clicks fall every January, and a garden shop’s fall every autumn. Previous-period comparisons turn that into false alarms. compare_search_periods with compareTo: "previous_year" compares against the same weekdays 52 weeks earlier, so Black Friday on 27 November 2026 lines up with Black Friday on 28 November 2025.

Try this prompt
For example.com, run compare_search_periods with dimension page, startDate 2026-10-01, endDate 2026-10-28 and compareTo previous_year, limit 300. Classify each page as product, collection or blog from its URL and report the click change per type, judging on clicks only. Then run query_search_analytics from 2025-11-20 to 2025-12-31 with dimensions page and a page includingRegex filter /collections/[^/?]+/?$, limit 20, so I can check last year’s top peak-season categories are indexed and stocked.

During the peak itself, set dataState to all to include fresh data that isn’t final yet; the default waits for finalised data, typically two to three days old. Prepare peak pages weeks ahead: Google can take days or weeks to recrawl a changed page, and our tools can’t request indexing.

Ecommerce questions: filter, tool and next step

QuestionFilter or toolWhat to do with the answer
Which page types earn our clicks?query_search_analytics, page regex per type, in multicallInvest in the type that is under-earning for its size
Do our products show as merchant listings?searchAppearance alone, then an equals filter by pageFix templates whose top products are missing
How many Shopping tab clicks did we get?Not in Search ConsoleMerchant Center performance reports
Are filter URLs leaking into Search?Page regex for parametersRobots.txt, fragments or clean subcategories
Is Google ignoring our canonicals?inspect_url: Google vs user canonicalFix internal links, sitemaps and duplicate templates
Are sold-out products dropping out?inspect_url page fetch state and coverageKeep content; set availability; redirect only to successors
Do product pages steal category queries?Dimensions query and page with the product regexStrengthen the category; see cannibalization guide
Is the peak tracking last year?compare_search_periods, previous_yearJudge on clicks; check last year’s peak pages early
How much growth is non-branded?Query excludingRegex with your brandReport branded and non-branded separately
Which pages make money?Not in Search ConsoleJoin with GA4 or platform revenue by landing page

For the last row, see Search Console vs Google Analytics 4 on why the two tools’ numbers differ and how to join them.

A monthly ecommerce Search Console routine

  1. Shopping reports (interface). Any new critical issues in Merchant listings or Product snippets? Validate fixes and read Merchant opportunities.
  2. Page-type split. The multicall prompt above, month on month and year on year, on clicks.
  3. Search appearance. Merchant listings clicks in web and Image search, and which top products are missing.
  4. Facets. Count parameter URLs with impressions.
  5. Spot checks. inspect_url on five top products, five sold-out items and three facet URLs.
  6. Bing. Run get_search_queries with provider bing. Copilot grounds its answers in Bing search, which is why Bing Webmaster Tools matters for AI search.

With a small sample of spot checks, this comes to roughly 20–30 tool calls. The Free plan (one Google or Bing account, 30 calls a month) covers the Google steps once; the Pro plan adds Bing, weekly runs and larger catalogues. If you haven’t connected an assistant yet, start with the Claude, ChatGPT and Cursor setup guide. Replatforming, say from WooCommerce to Shopify, changes every URL pattern above at once, so follow the site migration monitoring plan for the weeks after launch.

Frequently asked questions

Does Google Search Console show clicks from the Shopping tab?

No. The Performance report covers Web, Image, Video and News search, and the Merchant listings search appearance covers results in general web search and Google Images. Clicks and impressions from unpaid listings in the Shopping tab are reported in Merchant Center’s performance reports. Some surfaces, such as Popular products, show up in both tools, so the two sets of numbers will never match exactly.

What is the difference between Merchant listings and Product snippets in Search Console?

Merchant listings are for pages where a shopper can buy the product from you; they always include a price and can show shipping, returns and availability. Product snippets are for product pages where people can’t buy directly, such as editorial reviews and comparison sites, and support review details such as pros and cons. Online stores should check the Merchant listings report first.

Why is the Shopping section missing from my Search Console?

Google decides programmatically which sites are online merchants. Eligible sites mainly sell physical goods directly to consumers or have Product structured data; affiliate sites and sites where people can’t complete a purchase don’t qualify. The Merchant listings and Product snippets reports only appear once Google finds that markup, so test a product URL with the Rich Results Test or URL Inspection first.

Do I need to fix every warning in the Merchant listings report?

No. Warnings are non-critical issues listed under “Improve item appearance”; items with only warnings are still valid and can appear as rich results. Fix critical issues first, because those make items invalid. Then add the missing details that help shoppers, such as return policy, shipping and GTINs, where you genuinely have that information.

Should I delete out-of-stock product pages?

Not if the product is coming back. Keep the URL live, keep the content and mark availability as OutOfStock, BackOrder or PreOrder. For discontinued products, redirect to a direct successor if there is one, keep the page with Discontinued availability if it still earns clicks or holds useful information, and otherwise return a 404 or 410. Avoid redirecting large numbers of old products to the home page.

Do I need Google Merchant Center for ecommerce SEO?

Not to be eligible for merchant listing experiences in Google Search: Product structured data on your pages is enough. Google says providing both structured data and a Merchant Center feed maximises eligibility, and the Shopping tab follows Merchant Center’s own requirements. You also need a Merchant Center account associated with your property to unlock the full Merchant opportunities report.