Skip to content
Application notes · 12 min read

Page Indexing Report in Google Search Console: Every Status Explained

The Page indexing report in Search Console, row by row: what every Google status means, which ones are expected and which ones you should fix.

The Page indexing report in Google Search Console shows how many of the URLs Google knows on your property are indexed, and gives a reason for every one that isn't. Most of those reasons are not errors: duplicates, redirects and pages you marked noindex are supposed to stay out. This guide lists every reason Google documents, in Google's own wording, says which ones are expected and which ones need a fix, and links to a full article for each.

Google page indexing comes after discovery and crawling, and before ranking. If your site has never shown up on Google at all, start with how to get your website to show up on Google; this page is about reading what Google says once it knows your URLs.

What the Page indexing report shows

Google's Page indexing report help page sums it up as the pages Google can find and index on your site, plus the indexing problems it ran into. It counts URLs, not visits, and it covers every URL Google knows on the property, including ones you never put in a sitemap. Older guides call it the Index Coverage report, the name Google used in its January 2021 post about the report.

The summary page has four parts:

  • A chart of indexed and not-indexed pages over time.
  • Why pages aren't indexed: one row per reason that kept pages out of the index. Each row opens a details page.
  • Improve page experience: issues that don't block indexing but are worth fixing.
  • View data about indexed pages: the history of your indexed count and a sample of up to 1,000 indexed URLs.

Every URL has a status (Not indexed or Indexed) and, when it isn't indexed, a reason. Each reason also has a source, Website or Google. Google's rule of thumb is that you can generally fix only the issues whose source is Website.

Above the chart, the sitemap filter switches between All known pages (the default), All submitted pages, Unsubmitted pages only and a single sitemap. A URL counts as submitted even if Google also found it another way. A details page shows a graph for that reason and up to 1,000 example URLs, which Google says aren't guaranteed to be the complete list; from each example you can open URL Inspection. In exports, cells shown as ~ or - become zero.

The report is not a URL lookup: you can't search it for one page, which is what the URL Inspection tool is for. Nor is it required reading for small sites: Google says that if your site has fewer than 500 pages, you probably don't need it.

Every page indexing issue, and whether to fix it

These are the reasons on Google's help page, in its order and with its spelling, as of October 2026. One addition: Blocked by page removal tool isn't in that list, but Google's URL Inspection help names it as an issue from the Page indexing report, so it is included. Reasons with a dedicated article link to it.

Not indexed

ReasonWhat Google meansWhat to do
Server error (5xx)Your server answered Googlebot with a 500-level error.Fix. Find which URLs fail and when: timeouts, crashes, rate limits applied to bots.
Redirect errorA redirect chain that was too long, a loop, a redirect URL over the maximum length, or a bad or empty URL in the chain.Fix. Redirect straight to the final URL, in one hop where you can.
URL blocked by robots.txtA robots.txt rule stops Googlebot from crawling the URL.Fine if intended. Remove the rule if you want the page indexed. To keep a page out of search, allow the crawl and use noindex.
URL marked ‘noindex’Google found a noindex rule, in a robots meta tag or an X-Robots-Tag header.Fine if intended. If not, remove it from the template, CMS setting or server config, then request indexing.
Soft 404The page returns a success code, but its content looks like an error message or an empty page.Fix. Return a real 404 for pages that are gone; give pages that exist real content.
Blocked due to unauthorized request (401)The server asked Googlebot to sign in.Fine if private. Public pages shouldn't need a login. Open the URL in a private window to confirm.
Not found (404)The URL returned a 404.Fine if removed. Fix the 404s your own links and sitemaps point to; 301-redirect pages that moved.
Blocked due to access forbidden (403)The server refused Googlebot. Googlebot never sends credentials, so Google says your server is returning the 403 incorrectly.Fix. Check firewall, bot protection and geo rules for anything that blocks Googlebot.
URL blocked due to other 4xx issueA 4xx response that none of the other reasons covers.Check. Inspect the URL to see which code Googlebot got, then decide if it's right.
Blocked by page removal toolA removal request is hiding the URL from Google's results.Fine if intended. Check the Removals tool. A temporary removal lasts about six months.
Crawled - currently not indexedGoogle crawled the page and didn't index it. It may be indexed later; Google says there's no need to resubmit it.Depends. One page: improve it or wait. Many similar pages: make them distinct, merge thin ones, link to them.
Discovered - currently not indexedGoogle knows the URL but hasn't crawled it, typically to avoid overloading the site.Wait, then act. Give it time. If it lasts, add links from indexed pages and check how fast the server responds.
Alternate page with proper canonical tagThe page points to a canonical URL, and that URL is indexed.Expected. Nothing to do.
Duplicate without user-selected canonicalGoogle sees the page as a duplicate, and no canonical is declared.Expected. Declare a canonical only if Google picked the wrong URL.
Duplicate, Google chose different canonical than userThe page is marked as canonical, but Google thinks another URL makes a better canonical.Check. Compare both URLs. Align your signals, or make the pages substantially different.
Page with redirectThe URL redirects. Its target may be indexed instead.Expected. Take redirecting URLs out of your sitemaps and internal links.

Warnings and indexed

Two reasons are warnings: the page is indexed, but something about it is off. The last row is the one you want.

ReasonWhat Google meansWhat to do
Indexed, though blocked by robots.txtGoogle indexed the URL from links without crawling it, so its snippet will probably be very limited.Decide. Want it out: unblock it and add noindex. Want it in: unblock it.
Page indexed without contentThe page is in the index, but Google couldn't read its content: possibly cloaking, or a format Google can't index.Fix. Inspect the URL and compare what Google rendered with what visitors see.
Page is indexedThe page has been indexed.Nothing to do. Indexed is not ranking: the page is eligible to appear in results, nothing more.

A few facts behind the table, from Google's documentation. Google's crawlers follow up to 10 redirect hops, treat a 429 as a server error rather than a 4xx, slow down when they see 5xx errors, and eventually drop indexed URLs if the errors persist; indexed URLs that start returning a 4xx are removed. A noindex only works if the page isn't blocked by robots.txt, because Google has to crawl the page to see it. Redirects and rel="canonical" are strong canonical signals, and sitemap inclusion a weak one, which is why the three should point at the same URL. And a temporary removal hides a URL from results without stopping Google from crawling it.

Statuses that aren't rows in the report

URL Inspection and its API use a few phrases you won't find in the report's table:

  • URL is unknown to Google: Google hasn't seen the URL before. The report only covers URLs Google knows, so these pages aren't in it at all. See URL is unknown to Google.
  • Submitted and indexed: what the API returns for an indexed URL that a sitemap lists. Its counterpart for an indexed URL no sitemap lists is Indexed, not submitted in sitemap, the value in the example response of Google's API launch post. In the report, find that group by setting the sitemap filter to Unsubmitted pages only. See indexed, not submitted in sitemap.
  • Duplicate, submitted URL not selected as canonical: listed in the URL Inspection help next to the other canonical reasons, for a URL you submitted. The fix is the same as for duplicate, Google chose different canonical than user.

Same status, different words

The help page, the Search Console screens and the URL Inspection API don't always word the same state the same way. Three examples, as of October 2026:

  • The help page heads the noindex reason URL marked ‘noindex’. Elsewhere in Search Console the same state reads Excluded by ‘noindex’ tag, the wording site owners quote in Google's help community.
  • The help page says URL blocked by robots.txt; the API documents its BLOCKED_ROBOTS_TXT fetch state as “Blocked by robots.txt.”
  • The report's indexed reason is Page is indexed; the API's coverageState for an indexed URL listed in a sitemap reads Submitted and indexed.

Here is what the URL Inspection API returned on October 30, 2026 for https://www.indexcyborg.com/, which redirects to the bare domain (trimmed):

{
  "inspectionResult": {
    "indexStatusResult": {
      "verdict": "NEUTRAL",
      "coverageState": "Page with redirect",
      "robotsTxtState": "ALLOWED",
      "indexingState": "INDEXING_ALLOWED",
      "pageFetchState": "SUCCESSFUL",
      "googleCanonical": "https://indexcyborg.com/",
      "userCanonical": "https://indexcyborg.com/",
      "lastCrawlTime": "2026-10-25T01:28:32Z",
      "crawledAs": "MOBILE"
    }
  }
}

verdict is the summary: Google documents PASS as Search Console's “Valid”, NEUTRAL as “Excluded” and FAIL as “Error” or “Invalid”. coverageState carries the reason as a phrase. indexingState tells you where a noindex came from (BLOCKED_BY_META_TAG or BLOCKED_BY_HTTP_HEADER), and robotsTxtState whether robots.txt allowed the crawl. In the same check, the JSON index of our API at /v1 came back Crawled - currently not indexed, which is the right outcome for a page no searcher needs. If you read these values in code, store the phrase exactly as returned and match it loosely: the wording is Google's to change.

Confirming a reason in URL Inspection

The report tells you what Google concluded for a group of pages. Inspecting one example tells you why, through the fields on the inspection result. This is where to look for each family of reasons:

ReasonField to readWhat it shows
URL blocked by robots.txt, Indexed, though blocked by robots.txtCrawl allowed?Whether your site allowed Google to crawl the page or blocked it with a robots.txt rule.
URL marked ‘noindex’Indexing allowed?Whether the page explicitly disallowed indexing. The API's indexingState also says if the rule was in the meta tag or the header.
Server error (5xx), the 401, 403, 404 and other 4xx reasons, Redirect error, Soft 404Page fetchWhether Google could get the page from your server, and which failure it hit if not.
Discovered - currently not indexedLast crawlEmpty, because Google hasn't crawled the URL yet.
The three canonical reasonsUser-declared canonical, Google-selected canonicalTwo different URLs mean Google didn't follow your choice. Fix the signals, not just the tag.
Unsubmitted URLs you don't recognizeSitemaps, Referring pageWhich sitemaps list the URL and a page Google possibly used to discover it, often the link that creates the duplicate.

The indexed result is the version Google last processed. The live test fetches the page as it is now, which makes it the check to run after a fix, but it can't evaluate everything. Google's URL Inspection help lists the reasons a live test can't check: Blocked by page removal tool, Crawled - currently not indexed, Discovered - currently not indexed, the duplicate and canonical reasons, and Page indexed without content. For those, a clean live test proves only that the page is reachable; the verdict changes when Google crawls and processes it again.

How to work through the report

  1. Filter to the pages you submitted. Set the sitemap filter to All submitted pages, or to one sitemap. Unsubmitted URLs are the ones Google found on its own, which is where parameter and duplicate variants tend to collect.
  2. Start with source Website. Google's help page suggests prioritizing issues with source Website whose validation is Failed or Not started.
  3. Separate expected from actionable. Use the tables above. A noindex on a cart page or a redirect from http:// to https:// is the report working as intended.
  4. Inspect a few examples. Open the reason, pick example URLs and inspect them, reading the field from the table above. Compare the last crawl date with the date of your change: if the crawl came first, the report is describing the old page.
  5. Fix every instance, then validate once. When you click Validate fix, Search Console checks a few pages straight away; if any still has the issue, validation ends. Otherwise it works through the affected URLs, which Google says typically takes up to about two weeks. Don't click again while it runs. More in Google Search Console validate fix.
  6. Request indexing only where it counts. Requests have a daily limit, and Google says requesting the same URL again won't get it crawled faster. See request indexing in Search Console.

If you got here from a Search Console email, the steps are the same: page indexing issues detected covers the email itself.

Why so many pages aren't indexed

Google answers this one directly in its FAQ: the usual causes of large not-indexed counts are robots.txt rules that block whole sections of a site, duplicates created by URL parameters for filtering or sorting (reported as duplicate or alternate pages), and redirects, since only the target of a redirect is indexed. Google also says you should not expect every URL on your site to be indexed, only the canonical pages. On a site with filters and sorting options, a not-indexed count larger than the indexed one can be perfectly normal.

The useful question is narrower: are the pages you want in search in the indexed count? Filter by your sitemap and look at what is left. For new pages, Google's help page says it can take a week or so before it starts crawling and indexing a new page or site, so a fresh URL in Discovered - currently not indexed is normal. When new pages stay out for weeks, see Google not indexing new pages, and when the sitemap reads Success but its URLs aren't indexed, see sitemap submitted but not indexed.

When the indexed count drops

Google's troubleshooting section covers two patterns. If the indexed count falls without a matching rise in errors, pages that used to be indexed may now be blocked by robots.txt, marked noindex or behind a login: look for a not-indexed reason that grows at the same moment. If errors spike, the cause is often a template change that introduced an error on many pages at once, or a sitemap that lists blocked URLs.

Rule out the report itself too. In 2026 its data stayed stuck at June 11 for more than three weeks before it caught up in early July, according to Search Engine Roundtable. When the chart and URL Inspection disagree, trust the inspection of a few key URLs. For a real loss of indexed pages, see Google deindexed my site; for slowdowns on Google's side, see Google indexing delay.

What the report can't tell you

  • The status of one specific URL. There is no search box. Use URL Inspection, or the URL Inspection API, which allows 2,000 inspections a day and 600 a minute per property.
  • The full list. Details pages show up to 1,000 examples, and Google doesn't promise they're all the affected URLs. On a large site, a reason can affect more pages than you can see.
  • Live state. Results reflect Google's last crawl. An issue stays open until 90 days after its last instance is gone, and its First detected date doesn't change while it is open.
  • Pages Google doesn't know. A URL Google never discovered is missing, not flagged. Counting indexed pages against your own inventory is covered in how to check indexed pages.

How IndexCyborg tracks page indexing

Once you connect Search Console, IndexCyborg inspects every URL in your sitemaps through the URL Inspection API: new pages straight away, within Google's 2,000 inspections per property per day, then again after 7 days. Google's coverageState is stored word for word next to a status you can filter the pages table on, so every page has its own row with Google's exact reason, not a sample of 1,000. A page Google hasn't been asked about is Not checked, never counted as indexed, and coverage is always stated against the pages actually inspected.

Its technical checks look at the causes behind many of these reasons (HTTP status, redirect chains, meta robots, X-Robots-Tag, robots.txt rules, canonicals) and raise an issue with the evidence. The Chrome extension clicks Request indexing in your own Search Console session, pages Google reports as not indexed first, at most 10 per property per rolling 24 hours. It never requests pages that don't return 200, and its own picks skip pages excluded on purpose (noindex, robots.txt, redirects, duplicates). None of it makes Google index a page. It tells you, page by page, what Google decided and why. More on the features page.

Frequently asked questions

How often does the Page indexing report update?

Google doesn't publish a refresh schedule, and the data isn't live. In 2026 the report stayed stuck at June 11 for more than three weeks before it caught up in early July. For the current state of a single page, use the URL Inspection tool.

Why does the Page indexing report show URLs that aren't in my sitemap?

The default view is All known pages, which covers every URL Google found on the property, through links and redirects as well as sitemaps. Set the sitemap filter to All submitted pages to see only the URLs your sitemaps list.

What is the difference between the Page indexing report and the URL Inspection tool?

The report summarizes the index status of every URL Google knows on your property and shows up to 1,000 examples per reason, and you can't search it by URL. URL Inspection shows one URL: its indexed state, last crawl, canonicals and a live test, and it is where you request indexing.

Is the Page indexing report the same as the Index Coverage report?

Yes, it is the same report under its current name. Google's January 2021 Search Central post described changes to the Index Coverage report, such as replacing the generic “crawl anomaly” issue with more specific ones. Search Console's help now documents it as the Page indexing report.

Why does a page I fixed still show the old reason?

The report reflects Google's last crawl of the page, so a fix made after that crawl isn't visible yet. Compare the last crawl date in URL Inspection with the date of your fix, run a live test, then request indexing or start Validate fix, which Google says typically takes up to about two weeks.