Audit my site
Search ConsoleIntermediateChecked against Google docs · Oct 2026

The Page indexing report: every status, what needs action and how to validate fixes

The Page indexing report tells you which of your URLs Google has indexed and why the rest are not. Most not-indexed reasons are normal; the skill is spotting the few that hit pages you want in search.

Author: Eugene Serbin, Head of SEO at Semalt Updated: 30 October 2026 Reading time: 25 min Visuals: 4

In short

The Page indexing report in Search Console counts every URL Google knows on your property and sorts it into indexed and not indexed, with a reason for each URL that was left out. Most of those reasons are normal: redirects, duplicates, noindex pages and deleted URLs are supposed to stay out of the index. Your job is to find the few statuses that hit pages you want in search, check them with URL Inspection, fix the cause on the site and confirm the fix with Validate fix.

What the Page indexing report shows

Open it in Search Console under Indexing → Pages. It is a report about groups of URLs, not about one page. It answers three questions: how many of your pages are indexed, why the others are not, and whether that changed after last week's release.

The summary page has four parts:

Click a row to open its details page: a chart for that reason alone and a table of example URLs. Each example row lets you open the URL, copy it or send it straight to URL Inspection. The details page also holds the Validate fix button.

Three limits to keep in mind

The Source column

Each reason is attributed either to Website or to Google systems. Website means something on your side caused it: a status code, a robots.txt rule, a noindex, a redirect. Google systems means the decision was Google's, such as choosing not to index a crawled page. You fix Website issues directly; with Google systems issues you can only change the conditions that led to the decision.

What Google officially says

“The Page indexing report shows the Google indexing status of all URLs that Google knows about in your property.”

Search Console Help — Page indexing report

“This report isn't used to investigate the index status of specific pages. To find the index status of a specific page, use the URL Inspection tool.”

Search Console Help — Page indexing report

“Remember that Not indexed is not necessarily bad.”

Search Console Help — Page indexing report

“Your goal is to get the canonical version of every important page indexed.”

Search Console Help — Page indexing report

“Having a page marked duplicate or alternate is usually a good thing; it means that we've found the canonical page and indexed it.”

Search Console Help — Page indexing report

“Note that the list of example URLs in the report is limited to 1,000 items, and isn't guaranteed to show all URLs in a given status, even when less than 1,000 items.”

Search Console Help — Page indexing report

Google also says not to expect 100% coverage: only the canonical pages should be indexed. New content “can take a few days” to be indexed. And for small sites, “If your site has fewer than 500 pages, you probably don't need to use this report.” There, a site: search and URL Inspection on your key pages usually tell you enough.

Reading the chart and the sitemap filter

“Ideally you should see a gradually increasing count of indexed pages as your site grows.” What you look for are breaks in that line, and above all a fall in indexed pages that mirrors a rise in not indexed pages.

Chart · Indexed vs not indexed over twelve weeks (illustrative numbers)
Illustrative trend of indexed and not indexed pages Illustrative data. Indexed pages grow slowly from about 4,000 to 4,450 over seven weeks. In week 8 a template release adds noindex to many pages: indexed falls to about 2,900 while not indexed rises to about 3,500. After the fix and Validate fix in week 9, indexed recovers to about 4,500 by week 12 and not indexed falls back to about 1,950. 6,0004,0002,0000 W1W2W3W4W5W6W7W8W9W10W11W12 Template ships noindex Fix + Validate fix Indexed Not indexed Illustrative data, not from a real property
A drop in indexed pages that mirrors a rise in not indexed pages almost always points to one change on your side, here a stray noindex in a template.

Google's own troubleshooting matches this picture: “If you see a drop in total indexed pages without a corresponding increase in errors, you might be blocking access to your existing pages via robots.txt, 'noindex' or a required login.” Look at the sparkline next to each reason to find the one whose rise lines up with the drop. Sudden error spikes have a similar story: they “might be caused by a change in your template that introduces a new error”, or by a new sitemap full of blocked URLs.

The sitemap filter

The dropdown above the chart changes which URLs the whole report counts:

A URL counts as submitted even if Google also found it through links. In practice, All submitted pages is the most useful view. Your sitemap is your list of pages you want indexed, so a submitted URL that is not indexed is a real contradiction. The unsubmitted view is mostly noise: parameter URLs, old addresses, links from other sites. If you split your sitemap by page type (products, categories, articles), the filter shows you the indexing rate of each type separately. The lesson XML sitemaps covers how to build that split.

Every not-indexed reason, explained

These are the reasons Google lists for URLs that are not indexed, in Google's order. For each one: what it means, whether you need to act, and which lesson in this course goes deeper. The one question behind every entry is the same: do you want this URL in search? If you do not, a not-indexed status is the result you wanted.

Table · Every Page indexing status at a glance
StatusWhat it meansAct?Go deeper
Server error (5xx)The server returned a 500-level error.YesStatus codes, soft 404, 410
Redirect errorChain too long, loop, URL too long or a bad URL in the chain.YesRedirects and site migrations
URL blocked by robots.txtA robots.txt rule stops crawling.If wantedrobots.txt and AI crawlers
URL marked ‘noindex’Google found a noindex tag or header.If wantedMeta robots and X-Robots-Tag
Soft 404A not-found or empty page that returns 200.YesStatus codes, soft 404, 410
Blocked due to unauthorized request (401)The URL asks for a login.If wantedStatus codes, soft 404, 410
Not found (404)The URL returns 404.If linkedStatus codes, soft 404, 410
Blocked due to access forbidden (403)The server refuses Googlebot.YesStatus codes, soft 404, 410
URL blocked due to other 4xx issueAny other 4xx code, for example 400 or 405. (Google treats 429 as a server error, not as a 4xx here.)If wantedStatus codes, soft 404, 410
Crawled – currently not indexedFetched, then not added to the index.If importantCrawled vs Discovered – currently not indexed
Discovered – currently not indexedKnown, not fetched yet.If importantCrawled vs Discovered – currently not indexed
Alternate page with proper canonical tagPoints to a canonical that is indexed.NoCanonical tags
Duplicate without user-selected canonicalA duplicate with no canonical; Google picked one.CheckCanonical tags
Duplicate, Google chose different canonical than userYour canonical was overruled.CheckCanonical tags
Page with redirectThe URL redirects; only the target can be indexed.NoRedirects and site migrations
Indexed, though blocked by robots.txt (warning)Indexed from links without being crawled.Yesrobots.txt and AI crawlers
Page indexed without content (warning)Indexed, but Google could not read the content.YesJavaScript SEO and rendering
If wanted means act only when the URL is one you want in search; for every other URL the status is the intended outcome.

Server error (5xx)

“Your server returned a 500-level error when the page was requested.” Googlebot could not get the page because the server failed, timed out or was busy. Action: yes, if it is more than a one-off. Check the host status in the Crawl Stats report, look for firewalls or bot protection that block Googlebot, and fix slow or overloaded pages. Server errors can be transient, so a live test may pass even though Google's crawl failed. More in Status codes, soft 404, 410.

Redirect error

Google could not follow the redirect: the chain was too long, it looped, the URL grew past the maximum length, or the chain contained a bad or empty URL. Action: yes. Point every old URL straight at its final destination in one hop. More in Redirects and site migrations.

URL blocked by robots.txt

A Disallow rule stops Googlebot from fetching the page. Action: only if you want the page indexed, in which case remove the rule. If you want it out of search, robots.txt is the wrong tool: “To ensure that a page is not indexed by Google, remove the robots.txt block and use a 'noindex' directive.” For URLs you block on purpose, such as cart or internal search pages, this status is fine. More in robots.txt and AI crawlers.

URL marked ‘noindex’

Google crawled the page and found a noindex in a robots meta tag or an X-Robots-Tag header. Google's comment is short: “If you do not want this page indexed, congratulations!” Action: only if the page should be indexed. Then find where the noindex comes from (template, CMS setting, plugin, server header), remove it, confirm with a live test that Indexing allowed? now says yes, and request indexing. More in Meta robots and X-Robots-Tag.

Soft 404

The page shows a not-found message or almost nothing useful, but returns 200 OK. Typical cases are empty categories, “no results” pages and deleted products that show a friendly error. Action: yes. If the page is really gone, return 404 or 410. If it should exist, give it real content. If it moved, redirect it. URL Inspection's live test has a screenshot that shows how Google rendered the page, which helps when the content is loaded by JavaScript. More in Status codes, soft 404, 410.

Blocked due to unauthorized request (401)

“The page was blocked to Googlebot by a request for authorization (401 response).” Action: only if the page should be public. Staging sites and account areas are supposed to return 401. If a public page does it, remove the login requirement. Opening the URL in a private browser window shows you what Googlebot gets.

Not found (404)

The URL returned 404. Google found it through a link or because the page existed before. Google says “404 responses are not necessarily a problem, if the page has been removed without any replacement.” Action: only for 404s you cause yourself. Google's advice: “In general, we recommend fixing only 404 errors that you link to yourself or list in a sitemap.” If the content moved, use a 301 to the new address. Googlebot will keep trying a 404 URL for a while, less and less often, and the report shows only URLs that returned 404 in the past month. More in Status codes, soft 404, 410.

Blocked due to access forbidden (403)

The server answered 403. Google points out that “Googlebot never provides credentials, so your server is returning this error incorrectly.” Action: yes, when the page is meant to be public. The usual cause is a firewall, CDN or bot-protection rule that blocks Googlebot. Allow verified Googlebot requests instead of blocking them.

URL blocked due to other 4xx issue

“The server encountered a 4xx error not covered by any other issue type described here.” This bucket collects the remaining client-error codes, such as 400 (bad request) or 405 (method not allowed). Note that 429 (too many requests) is handled differently: Google treats it as a sign of server overload, like a 5xx. Action: it depends on the code. A code you send on purpose for a page that should stay out of search is fine. A 429 on pages you want indexed means your server is rate-limiting Googlebot. Use URL Inspection to see which code the URL returns. More in Status codes, soft 404, 410.

Crawled – currently not indexed

Google fetched the page and decided not to index it, at least for now. “It may or may not be indexed in the future; no need to resubmit this URL for crawling.” Action: only for pages that matter. The cause is usually the page itself: thin content, near-duplicates of indexed pages, little added value. Resubmitting alone does not change that; improving the page and its internal links does. This status cannot be checked in the live test. Full diagnosis in Crawled vs Discovered – currently not indexed.

Discovered – currently not indexed

Google knows the URL but has not crawled it yet, so the last crawl date is empty. Google explains: “Typically, Google wanted to crawl the URL but this was expected to overload the site; therefore Google rescheduled the crawl.” Action: only for important pages, and only if the count keeps growing. Look at server speed, the number of low-value URLs competing for crawling, and how well the pages are linked internally. Full diagnosis in Crawled vs Discovered – currently not indexed.

Alternate page with proper canonical tag

The URL is an alternate of another page, for example a mobile, AMP or desktop version, and it correctly points to its canonical. Google's verdict: “This page correctly points to the canonical page, which is indexed, so there is nothing you need to do.” Action: no. Parameter URLs and tracking variants with a canonical often land here too. One note from Google: “Alternate language pages are not detected by Search Console.” More in Canonical tags.

Duplicate without user-selected canonical

Google sees the URL as a duplicate of another page, the URL declares no canonical, and Google picked the canonical itself. “This is not an error, but is working as intended, because Google does not serve duplicate pages.” Action: check, then decide. Inspect the URL to see which page Google chose. If that choice is right, you can leave it, or add a canonical so the choice is explicit. If the choice is wrong, declare the canonical you want. If the page is not really a duplicate, make its content clearly different. More in Canonical tags.

Duplicate, Google chose different canonical than user

“This page is marked as canonical for a set of pages, but Google thinks another URL makes a better canonical.” In other words, you declared a canonical and Google overruled it. Action: check. In URL Inspection, compare User-declared canonical with Google-selected canonical, then open both pages. Usually other signals disagree with your tag: internal links, redirects or sitemap entries pointing elsewhere. And keep in mind that “A duplicate page must be similar to the canonical.” If your declared canonical is a different page, Google will not use it. More in Canonical tags.

Page with redirect

“This is a non-canonical URL that redirects to another page.” Only the redirect target can be indexed, so after a migration or an HTTP to HTTPS move this list fills up with old addresses. That is expected. Action: no for the redirecting URL itself. Check two things instead: that the targets are indexed, and that your own internal links and sitemap use the final URLs, not the redirecting ones. Google adds that “A canonical URL with a redirect can be indexed.” More in Redirects and site migrations.

You may also meet two older status names in Google's URL Inspection help: Blocked by page removal tool (check the Removals page for it) and Duplicate, submitted URL not selected as canonical. Treat the second one like the duplicate statuses above.

The two warnings

Warnings sit in the Improve page experience table, not in the not-indexed table. Google says these issues “don't prevent a page from being indexed, but they do reduce Google's ability to understand and index your pages.” Both deserve attention.

Indexed, though blocked by robots.txt Warning

The page is in the index even though robots.txt blocks it. “Google always respects robots.txt, but this doesn't necessarily prevent indexing if someone else links to your page.” Google indexes the URL from the links alone, so any snippet is very limited. If you want the page out of search, remove the robots.txt block and add noindex: Google has to crawl the page to see it. If you want the page in search, unblock it so Google can read the content.

Page indexed without content Warning

The URL is indexed but Google could not read its content. “Possible reasons are that the page might be cloaked to Google or the page might be in a format that Google can't index.” This is not a robots.txt issue. Inspect the URL, run a live test and look at the screenshot and the HTML Google received. Common causes are content that depends on failed JavaScript, a server that sends Googlebot an empty response, or a file type Google cannot index. The lesson JavaScript SEO and rendering covers the rendering side.

Which statuses need action

Do not work through the table from top to bottom. Start from your intent for each group of URLs and let the status confirm or contradict it. Google's own priority rule is to fix issues with a Website source that are in validation state “failed” or “not started” first.

Decision tree · Do I need to act on this status?
Deciding whether a Page indexing status needs action First ask whether the URL should appear in search. If not, no action is needed: noindex, 404, redirects, duplicates and robots.txt blocks are the goal, and the URL should not be in the sitemap. If yes, ask whether the status is an error or block on your side such as 5xx, 4xx, soft 404, redirect error, robots.txt or noindex; if so, fix it on the site, run a live test and validate the fix. If not, ask whether it is a duplicate or alternate status; if so, compare the user-declared and Google-selected canonical in URL Inspection. Otherwise it is Crawled or Discovered currently not indexed: improve the content, internal links and server, then wait. NoYesYes YesNoNo Should this URL appearin Google Search? Is it an error or a block on your side? Is it a duplicate oralternate status? 5xx, 4xx, soft 404, redirect error,robots.txt block or noindex No action needed Fix it on the site Compare canonicals Crawled / Discovered – not indexed intended; keep it out of sitemaps live test, then Validate fix user-declared vs Google-selected improve content, links and server, then wait
Intent comes first: a not-indexed status needs work only when it hits a URL you want in search.

One exception to the first branch: Indexed, though blocked by robots.txt is a case where a URL you wanted out of search got in anyway. Swap the block for a noindex.

Two habits make this faster. First, work with the All submitted pages filter, because every not-indexed URL there contradicts your own sitemap. Second, fix templates, not URLs. Statuses arrive in groups. Export the examples, sort them by folder, parameter or page type, and you will usually find one shared cause, such as every /tag/ page, every ?sort= variant or every product without stock.

URL Inspection: indexed version vs live test

URL Inspection is the tool for one URL. Paste a full URL into the search bar at the top of Search Console, or click the inspect icon next to any example URL in the report. The URL must belong to the property you have open.

The indexed version

The first screen shows what Google has stored. “This is not a live test. The results shown are from most recently indexed version of a page, not the live version on the web.” The verdict at the top is URL is on Google, URL is on Google, but has issues, URL is not on Google or, for AMP, URL is an alternate version. Even the best verdict has a limit: “"URL is on Google" doesn't actually guarantee that your page will appear in Search results.”

Expand Page indexing to see the details:

If the URL redirects, the indexed view describes the URL you typed, not the target. Use the Inspect button in the Indexing section to jump to the canonical.

The live test

Test live URL fetches the page now, as Google would. Use it after a fix to check that the fix is visible to Google before you request indexing or validation. It shows Crawl allowed?, Page fetch, Indexing allowed? and the user-declared canonical. View tested page opens the rendered HTML, the HTTP response headers, JavaScript console messages, the loaded resources and a screenshot. “A screenshot is available only in a live test with a successful test result.”

Know what the live test cannot do. “The live URL test only confirms if Google-InspectionTool can access your page for indexing.” It does not check duplicates or canonical selection, sitemaps, quality, manual actions or removals. Statuses such as Crawled or Discovered – currently not indexed, the duplicate and alternate statuses and Page indexed without content cannot be confirmed in a live test. A green live test on a page reported as a duplicate means only that Google can fetch it. The live test also follows redirects silently and tests the final URL without telling you.

Request indexing

On the URL Inspection result, Request indexing puts the URL in Google's crawl queue after a quick check for obvious indexing errors. You cannot request indexing for a URL that the live test considers non-indexable.

Use it for a handful of important pages: a new key page, a page where you just removed a noindex, a page with a fixed server error. Requesting the same URL again and again does not speed anything up. For larger batches, Google is clear: “To request indexing of many new or updated pages, your best choice is to submit a sitemap, with the updated pages marked by <lastmod>.”

Validating a fix

Validation tells Google you fixed every instance of one issue and asks it to recheck those URLs. You get an email when it finishes, and a log that shows the status of each URL. You do not have to validate: Google updates the counts whenever it recrawls affected pages anyway. Validation simply makes the recheck targeted and visible.

  1. Fix every instance. “If you missed a fix, validation will stop when Google finds a single remaining instance of that issue.” Test a few URLs with the live test first.
  2. Open the issue's details page and click Validate fix. Click it once only.
  3. Wait. “Validation typically takes up to about two weeks, but in some cases can take much longer, so please be patient.”
  4. If it fails, open See details, find the URL that still has the issue, fix it and click Start new validation.
Flow · What happens after you click Validate fix
The Validate fix process and its states You fix every instance and click Validate fix. Search Console immediately checks a few pages. If the issue is still there, validation ends and the state stays unchanged. If the sample is clean, the state becomes Started. When the first rechecked URL passes, it becomes Looking good. When all queued URLs are fixed, it becomes Passed. If an instance is still present, it becomes Failed: fix it and start a new validation, which rechecks Pending and Failed URLs plus new instances. issue foundsample clean instance still there Fix everyinstance Click Validate fix Search Consolechecks a few pages Validation ends state unchanged Started queued URLs recrawled Looking good checked URLs are fixed Passed all known instances gone Failed validation stops Fix, then Start new validation rechecks Pending + Failed + new instances N/A = Google saw the issue fixed on all URLs without a validation request
Validation only rechecks URLs known to have the issue, and one remaining instance is enough to stop it.

Issue states

StateWhat it meansWhat you do
Not startedSome instances have never been part of a validation request.Fix, test, click Validate fix.
StartedValidation is running and no remaining instance has been found yet.Wait for the emails.
Looking goodEvery instance checked so far is fixed.Nothing.
PassedAll known instances are gone, or the URLs are no longer available.Nothing.
N/AGoogle found the issue fixed everywhere without a validation request.Nothing.
FailedPages still have the issue after you clicked Validate fix.Fix the remaining URLs and start a new validation.

URL states inside a validation

Each URL in the validation log has its own state: Pending (queued, the issue existed when last checked), Passed (rechecked and fixed), Failed (rechecked and still there) and Other (Google could not reach the URL, which counts the same as Passed). An issue also counts as fixed for a URL that has become unavailable: removed, marked noindex or behind a login. The same URL can be Passed for one issue and Pending for another.

Rules worth knowing

A weekly routine

The report changes slowly, so once a week is enough for most sites. Twenty minutes, in this order:

  1. Check the chart with the filter set to All submitted pages. Is indexed flat or rising? Any drop that mirrors a rise in not indexed?
  2. Scan the sparklines in “Why pages aren't indexed”. Note any reason that is new or growing.
  3. Open each changed reason, export the examples and group them by folder, parameter or template.
  4. Ask the intent question for each group: should these URLs be in search? If not, make sure they are not in the sitemap or linked prominently, and move on.
  5. Inspect two or three examples from each group that should be indexed: crawl date, Crawl allowed?, Indexing allowed?, both canonicals.
  6. Fix the cause in the template or configuration, then confirm with a live test.
  7. Request indexing for a few key URLs, and click Validate fix for the issue.
  8. Check running validations and the two warnings in Improve page experience.
  9. Write it down. Keep a change log with the date, the change and the issue. When the chart moves weeks later, you will know why.

After a release, a migration or a CMS update, do steps 1 to 3 within a few days, not at the next weekly check. Template mistakes spread to thousands of URLs at once.

See the indexability of every URL on your site

OurSEO Tools crawls up to 1,000 pages and records the status code, canonical, indexability and load time of every URL, so you can find the template behind a Page indexing issue before you validate the fix.

69-point checklistTechnical crawlContent analysis

Common mistakes

FAQ

Is it bad that I have more not-indexed than indexed pages?

Not by itself. Shops with filters and sorting parameters often have far more duplicate URLs than real pages. Look at the reasons: if most not-indexed URLs are duplicates, redirects or intentional noindex pages, the site is fine. Switch to All submitted pages to see whether the pages you care about are indexed.

The report shows an error, but URL Inspection says the page is fine. Which is right?

Usually both. The report shows the state at the last crawl, so you may have fixed the page since. Check the crawl date. Also, the live test does not cover every issue; most notably, duplicate and canonical conditions are not tested in the live test.

How long until a fixed page is indexed?

A requested URL is often indexed within a day or so, but it can take much longer, and there is no guarantee. Validation of a whole issue typically takes up to about two weeks.

Do I need to validate every fix?

No. Google updates the counts when it recrawls pages anyway. Validation is useful when you want a targeted recheck, an email when it is done and a per-URL log.

Why do old 404 URLs keep appearing?

Google keeps retrying known URLs for a while in case the error is temporary, less and less often over time. That is harmless. Fix only the 404s you link to yourself or list in your sitemap, and redirect URLs whose content moved.

Why is a page I never linked to in the report at all?

The report covers every URL Google knows, including ones found through links from other sites, old sitemaps or parameters your site generates. If the page should not be indexed, give it a noindex or a login. Do not block it in robots.txt if you need Google to see the noindex.

Sources

Quotes checked against the official pages on 30 October 2026.