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 want | Where it lives | Readable through the API (and MCP)? |
|---|---|---|
| Merchant listings and Product snippets issue counts | Search Console, Shopping section | No |
| Merchant opportunities, shipping and returns settings | Search Console, with Merchant Center for some items | No |
| Clicks from merchant listings and product snippets | Performance report, Search appearance tab | Yes: query_search_analytics with searchAppearance |
| Rich results detected on one URL | URL Inspection | Yes: inspect_url (indexed version only) |
| Unpaid clicks from the Shopping tab | Merchant Center performance reports | No |
| Revenue and conversions | GA4 or your store platform | No |
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 label | API value | What it covers |
|---|---|---|
| Merchant listings | MERCHANT_LISTINGS | Results 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 snippets | PRODUCT_SNIPPETS | An enhanced text result that can show ratings, reviews, price and availability |
| Review snippet | REVIEW_SNIPPET | Review excerpts, average ratings and stars |
| Product results (deprecated) | ORGANIC_SHOPPING | The old combined type, split into the two above in 2023; no data for recent dates |
Four rules stop these numbers from misleading you:
- Query search appearance on its own first. Google’s API guide says search appearance can’t be a column alongside other dimensions. Group by
searchAppearancealone to list your types, then filter by one type while grouping by page or query. - 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.
- Check Google Images separately. Merchant listings appear in both web and image search, so run the same query with the Image search type.
- Use positive filters. In 2025, users reported an API bug where
notEqualsandnotContainson 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 withequals.
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 report | Severity | Usual cause and fix |
|---|---|---|
| Missing field “offers”, or a missing or invalid price | Critical (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 specified | Critical (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-critical | Add an organisation-level return policy, which Google prefers to repeating it on every offer |
| Missing field “shippingDetails” (in “offers”) | Non-critical | Organisation-level shipping markup has been supported since November 2025 |
| No global identifier provided (e.g., gtin, mpn, isbn) | Non-critical | Add the GTIN where the product has one. Don’t invent identifiers for own-brand goods. |
| Missing field “aggregateRating” or “review” | Non-critical | Mark 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
- Group issues by template, not URL. Ten thousand invalid items usually means one broken theme file or app.
- Test the fix live in the Rich Results Test or URL Inspection’s live test before you publish it.
- Click Validate fix in the report once it is deployed.
- Confirm on a sample after recrawl.
inspect_urlreturns 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.
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 type | Shopify-style pattern | WooCommerce-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.
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_analyticswith 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"andrel="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.
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.
| Situation | What to do | What to check |
|---|---|---|
| Temporarily out of stock | Keep 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 exists | 301 to the new model | The old URL’s clicks move to the successor |
| Discontinued, page still useful | Keep it with Discontinued availability, specs, manuals or parts, and links to alternatives | The page still earns clicks or links |
| Discontinued, no value left | Return 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 product | Keep one persistent URL and update it each season | Year-over-year clicks on the same URL |
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.
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
| Question | Filter or tool | What to do with the answer |
|---|---|---|
| Which page types earn our clicks? | query_search_analytics, page regex per type, in multicall | Invest in the type that is under-earning for its size |
| Do our products show as merchant listings? | searchAppearance alone, then an equals filter by page | Fix templates whose top products are missing |
| How many Shopping tab clicks did we get? | Not in Search Console | Merchant Center performance reports |
| Are filter URLs leaking into Search? | Page regex for parameters | Robots.txt, fragments or clean subcategories |
| Is Google ignoring our canonicals? | inspect_url: Google vs user canonical | Fix internal links, sitemaps and duplicate templates |
| Are sold-out products dropping out? | inspect_url page fetch state and coverage | Keep content; set availability; redirect only to successors |
| Do product pages steal category queries? | Dimensions query and page with the product regex | Strengthen the category; see cannibalization guide |
| Is the peak tracking last year? | compare_search_periods, previous_year | Judge on clicks; check last year’s peak pages early |
| How much growth is non-branded? | Query excludingRegex with your brand | Report branded and non-branded separately |
| Which pages make money? | Not in Search Console | Join 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
- Shopping reports (interface). Any new critical issues in Merchant listings or Product snippets? Validate fixes and read Merchant opportunities.
- Page-type split. The multicall prompt above, month on month and year on year, on clicks.
- Search appearance. Merchant listings clicks in web and Image search, and which top products are missing.
- Facets. Count parameter URLs with impressions.
- Spot checks.
inspect_urlon five top products, five sold-out items and three facet URLs. - Bing. Run
get_search_querieswith 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.