Skip to main content
Card class: SensitivityCategory: Indexing & Coverage
If a page is not indexed, it cannot rank, cannot earn an impression, and cannot win a click. This card is the gatekeeper metric for everything else in the connector.

At a glance

Pages Not Indexed counts the URLs that Google knows about (it has discovered or crawled them) but has chosen not to place in its index. The usual culprits are a noindex directive, a canonical that points elsewhere, a soft 404, or duplicate-content suppression. The card fires a sensitivity alert when the not-indexed count rises above 10% of your submitted URLs, because a sudden climb almost always means a template or deploy regression has quietly knocked a block of pages out of search. It is a real-time gatekeeper, not a vanity count: every page in this bucket is reach you are not getting.
What it countsThe number of URLs in the Google Search Console Page indexing report that fall under a “Not indexed” reason. This is the sum across reasons such as Excluded by ‘noindex’ tag, Alternate page with proper canonical tag, Duplicate without user-selected canonical, Soft 404, Crawled, currently not indexed, and Discovered, currently not indexed.
Data sourcedetail: URLs Google knows about but has not indexed, usually due to a noindex tag, canonical mismatch, soft 404, or duplicate-content suppression. Pulled from the URL Inspection and Index Coverage data exposed via the Search Console API.
Why it mattersA not-indexed URL is invisible to organic search. A controlled, stable number is normal (faceted URLs, thank-you pages, staging leftovers). A sudden rise is a regression: a noindex left in a release, a canonical loop, or a thin-content template that Google has started suppressing.
Reading the valueRead it as a share of submitted URLs, not an absolute. 4,000 not-indexed on a 200,000-page catalogue is routine housekeeping; 4,000 on a 12,000-page site is a fire.
CurrencyNot applicable. This card counts URLs, not money.
Time windowRT (real-time). Refreshed on the standard data pull; Search Console’s underlying indexing data is itself 2 to 3 days behind, so treat “real-time” as “as fresh as Google publishes”.
Alert trigger> 10% of submitted URLs, sentiment key for the indexing-coverage sensitivity band. The 10% threshold is calibrated to ignore normal exclusions while catching a genuine de-indexing event.
Rolesowner, marketing

Calculation

The card reads the Page indexing breakdown from Search Console for the connected property and sums every URL grouped under a “Not indexed” reason. Conceptually:
pages_not_indexed = total_known_urls − indexed_urls
                  = Σ (urls in each "Not indexed" reason bucket)
The alert ratio is then:
not_indexed_share = pages_not_indexed ÷ submitted_urls
where submitted_urls is the count of canonical URLs you have declared through your sitemaps. The card crosses into its sensitivity band when not_indexed_share exceeds 0.10 (10%). The “Not indexed” reasons are not equal in severity. The card groups them into two tiers:
  • Intentional / benign: Excluded by ‘noindex’ tag, Alternate page with proper canonical tag, Page with redirect, Blocked by robots.txt, Not found (404). These are usually you doing your job (deliberately excluding faceted, paginated, or retired URLs).
  • Investigate: Crawled, currently not indexed, Discovered, currently not indexed, Duplicate without user-selected canonical, Duplicate, Google chose different canonical than user, Soft 404. These signal that Google has judged the content thin, duplicated, or low-value, or has not yet got round to crawling it.
A healthy site can have thousands of URLs in the benign tier and a tiny number in the investigate tier. The danger is when the investigate tier swells, which is what the 10% alert is really there to catch.

Worked example

A UK home-and-garden retailer runs a 14,800-page site (category, product, blog, and guide pages) and submits 12,400 canonical URLs across three sitemaps. On 10 Jun 26 the card reads as follows after a Tuesday-evening platform deploy.
Page indexing reasonTierURLs (09 Jun 26)URLs (11 Jun 26)Change
Excluded by ‘noindex’ tagBenign1,9201,930+10
Alternate page with proper canonicalBenign640641+1
Page with redirectBenign210212+2
Crawled, currently not indexedInvestigate180184+4
Discovered, currently not indexedInvestigate9092+2
Duplicate, Google chose different canonicalInvestigate701,690+1,620
Soft 404Investigate3031+1
Total not indexed3,1404,780+1,640
The not-indexed share moves from 3,140 / 12,400 = 25.3% to 4,780 / 12,400 = 38.5%. Both are already above the 10% line for this site, but the day-on-day jump of 1,620 URLs into Duplicate, Google chose different canonical is the signal that matters. Three observations:
  1. The benign tier barely moved. Noindex, redirect, and proper-canonical counts crept up by single digits, which is normal organic churn (new faceted URLs, a few retired products). If only these had grown, you would not investigate.
  2. One reason carried the whole spike. The 1,620-URL jump landed entirely in Duplicate, Google chose different canonical than user. That is the classic fingerprint of a canonical regression: the Tuesday deploy changed the product-page template so the rel=canonical now points at a parent category instead of the product itself. Google saw thousands of products all “canonicalising” up to a handful of category URLs and dropped the products from the index.
  3. The fix is a rollback, not a content rewrite. Because the cause is a template bug, restoring the previous canonical logic returns the 1,620 URLs to the index over the next few crawl cycles. The card will track the recovery as Google re-crawls; expect a 1 to 3 week tail because indexing data lags and re-crawl is not instant.
Rule of thumb. When this card jumps, do not read the total. Read the delta by reason. A spike concentrated in one investigate-tier reason is a regression with a single root cause; a broad, even rise across benign reasons is usually just the catalogue growing.

Sibling cards merchants should reference together

CardWhy pair it with Pages Not Indexed
Indexed PagesThe complement. Indexed + Not Indexed should reconcile to total known URLs; a fall here usually mirrors a rise there.
Total Pages IndexedThe headline coverage number. Use it to size the not-indexed share against your real index.
Index Coverage TrendThe trended view. Tells you whether today’s not-indexed reading is a one-off spike or a slow leak.
Indexing TrendTracks indexed-page momentum over time, the inverse curve of this card during a de-index event.
Index-Coverage-Drop AlertThe real-time fire alarm for mass de-indexing. If this card climbs AND that alert fires, you have a confirmed regression.
Sitemap StatusConfirms your submitted-URL denominator is healthy. A broken sitemap can both inflate not-indexed and skew the share.
Sitemap-Errors AlertIf new content is not getting indexed, check whether the sitemap that should announce it is erroring.
Pages Losing TrafficThe downstream impact. De-indexed pages stop earning clicks; this card shows the traffic bleed.

Reconciling against the source

Where to look in Google Search Console: The authoritative source is the Indexing → Pages report (often still called “Page indexing” or “Coverage”). Open it for the same property and compare:
Indexing → Pages → Not indexed gives the total and the per-reason breakdown. Click any reason to see the example URL list. This is exactly what the card sums. URL Inspection (top search bar) confirms the status of a single URL: indexed, excluded by noindex, duplicate, or “discovered, currently not indexed”. Use it to verify a sample after the card spikes. Sitemaps report gives your submitted URL count, the denominator in the 10% share calculation.
The Search Analytics API vs the indexing data. The Performance side of the API (searchanalytics.query) reports clicks, impressions, CTR and position. It does not expose index coverage. Indexing counts come from the URL Inspection API and the Index Coverage data, which update on a slower cadence than Performance. Do not expect the two to share a timestamp. Why the card may legitimately differ from the GSC UI:
ReasonDirection of divergenceWhat to do
Data delay. GSC indexing data is typically 2 to 3 days behind. The card shows the latest Google has published, which may trail what you just changed.Card lags real stateWait 2 to 3 days after a fix before judging recovery.
Reason grouping. The card sums all “Not indexed” reasons; the UI lets you read them individually. If you compare a single reason against the card total, they will not match.Card higher than one reasonCompare like for like, total vs total.
Property scope. A Domain property aggregates http/https and all subdomains; a URL-prefix property does not. Make sure the card and the UI point at the same property type.VariableMatch property type.
Sampling and caps. The GSC UI caps example URL lists at 1,000 rows per reason, so you cannot eyeball the full list for a large reason bucket. The count is still correct; only the visible examples are capped.UI shows fewer examples than the countTrust the count, not the visible list.
GSC also anonymises rare queries, which affects Performance cards, not this one; indexing counts are not query-level, so anonymisation does not apply here.

Known limitations / merchant FAQs

My not-indexed count is in the thousands. Is that bad? Not on its own. Large sites legitimately exclude faceted, paginated, filtered, and retired URLs, and those land here under benign reasons. Read the share against your submitted URLs and, more importantly, read the per-reason delta. A stable count, even a large one, is housekeeping. A sudden jump is the problem. The card crossed 10% but my rankings look fine. Should I worry? The 10% threshold is a sensitivity band, not a verdict. If the excess sits in benign reasons (noindex, redirects, proper canonicals) you are fine. If it sits in Crawled/Discovered, currently not indexed or Duplicate reasons, those are pages Google is choosing to suppress, and they are reach you are losing even if your top queries are unaffected. What is the difference between “Crawled, currently not indexed” and “Discovered, currently not indexed”? Discovered means Google found the URL (usually via a sitemap or link) but has not yet crawled it, often a crawl-budget or server-load signal. Crawled, currently not indexed means Google did fetch the page and decided not to index it, usually a quality or duplication judgement. The second is the more worrying of the two. Why does Search Console show a different number than this card? Almost always a timing or scope difference. GSC indexing data lags 2 to 3 days, so the card reflects whatever Google last published. Also confirm you are comparing the same property type (Domain vs URL-prefix) and the total-vs-total figure rather than a single reason. A page is in this bucket but I want it indexed. How do I get it out? Find the reason via URL Inspection, fix the cause (remove the stray noindex, correct the canonical, thicken thin content, or fix the soft 404), then use Request Indexing in the URL Inspection tool. Recovery is not instant: Google re-crawls on its own schedule and the card will only reflect the change once the indexing data refreshes, typically 1 to 3 weeks. Can a healthy site ever have zero not-indexed pages? Effectively never. Any site with faceted navigation, redirects, retired products, or a thank-you page will have URLs Google deliberately leaves out. Zero would actually be suspicious; it usually means the property is brand new or the sitemap is incomplete. Aim for a low, stable investigate-tier count, not a zero total. Does this card double-count URLs that appear under more than one reason? No. Google assigns each known URL a single primary status, so a URL sits in exactly one reason bucket at a time. If a URL’s reason changes (say from Discovered to Crawled, currently not indexed), it moves between buckets rather than being counted twice.

Tracked live in Vortex IQ Nerve Centre

Pages Not Indexed is one of hundreds of KPI pulses Vortex IQ tracks across Google Search Console and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.