OnlineTextLab
Esc

Why Your Page Is Not Indexed: Search Console Statuses Explained

Updated 7 min read How we check our guides

If Google has crawled your page and chosen not to index it, the problem is usually the page’s value compared with what’s already indexed, not a technical fault. If Google hasn’t crawled it, the problem is usually that the site gives it little reason to, or a block you did not intend. Start by reading the exact status in Search Console, because each one points somewhere different. Google states plainly that “Indexing isn’t guaranteed; not every page that Google processes will be indexed.”

First, get the facts from the right place

Don’t use a site: search to check. Google’s own documentation says “The list of URLs returned is not always exhaustive” and points you to the URL Inspection tool instead.

Paste the URL into URL Inspection in Search Console. It gives you four things that matter:

  • Whether the URL is on Google, and the status if not
  • The last crawl date and whether crawling was allowed
  • The canonical you declared and the one Google selected
  • With Test live URL, how Googlebot sees the page today, including rendered HTML

The Page indexing report then shows the same statuses across the site, which tells you whether you have one bad page or a pattern. Patterns matter more. If the status covers all your blog posts, look at what they share.

What each status means

StatusWhat happenedWhere to look
Discovered, currently not indexedGoogle knows the URL and hasn’t crawled it yetSite authority, internal links, crawl waste
Crawled, currently not indexedCrawled, and not indexed so farPage value, duplication
Duplicate without user-selected canonicalGoogle sees it as a duplicate, and you named no canonicalAdd a canonical, or differentiate
Duplicate, Google chose different canonical than userYou named a canonical, and Google disagreedConflicting signals, content similarity
Alternate page with proper canonical tagCorrectly points at another pageNothing, this is normal
Excluded by “noindex” tagThe page asked not to be indexedYour templates and CMS settings
Blocked by robots.txtCrawling is not allowedYour robots.txt
Soft 404The page returned 200 but reads like an error or empty pageThin or empty content, wrong status code
Page with redirectThe URL redirects, so it isn’t indexed itselfCheck that the target is indexed

Not all of these are problems. A redirecting URL, a correctly canonicalized duplicate and a page you meant to keep out are all working as designed, and a large “not indexed” number can be perfectly healthy. Only worry about URLs you want in search.

Causes, in the order we would check them

This order is our judgment from how the statuses work, not a statistic. It starts with accidents, which are quick to rule out and cost you everything if present, and then moves on to the harder causes.

1. An accidental noindex or block

These are rare but severe, and take a minute to check. A staging setting carried into production, or a “discourage search engines” box left on, can remove an entire site. Check three places:

  • A robots meta tag in the HTML
  • An X-Robots-Tag response header, which you won’t see in page source
  • A Disallow rule covering the path in robots.txt

Our Robots Meta Checker reads the meta tags and the header for a live URL, and the Robots.txt Analyzer tests a path against the rules. If a URL is both disallowed and noindexed, see robots.txt versus noindex, since Google can’t see a noindex on a page it isn’t allowed to fetch.

A related trap: a page that has noindex in its original HTML and removes it with JavaScript may stay excluded. Google warns that when it encounters the tag, “it may skip rendering and JavaScript execution.”

2. Duplicate or near-duplicate content

Google groups similar pages and picks one to represent the group. If your page is one of many near-copies, it may never be the one chosen. Common sources are URL parameters, HTTP and HTTPS versions, printer pages, tag archives, and location or product pages where only a name changes.

The URL Inspection tool shows which canonical Google picked. If it’s a URL you don’t expect, follow the canonical tags guide. Google says a page can stay in a duplicate cluster for up to two weeks after you fix the issue, so don’t judge it the next day.

3. The page does not add enough

This is the usual answer for “Crawled, currently not indexed”, and the one nobody wants. Google’s documentation lists “The quality of the content on page is low” among the common reasons a page isn’t indexed.

Be honest about the page. Does it say something that’s not already on many indexed pages? Would someone pick it over the current top results? Pages that tend to struggle include: short pages rephrasing common knowledge, templates with a few changed words, auto-generated pages at volume, and tool pages with a form and no explanation.

The fix is to make the page more useful, or merge it with another page, or delete it. Requesting indexing again doesn’t change the assessment. Google’s report help says of this status that the page “may” be indexed later and resubmission isn’t needed.

4. Weak internal linking

A page that’s linked only from your sitemap, or buried four clicks deep, looks unimportant. Link to it from relevant, already indexed pages using descriptive anchor text. This is often the fix for “Discovered, currently not indexed” on a small site, and it costs nothing to try.

5. The whole site has low standing

If most new pages sit in “Discovered” or “Crawled” for months, the issue is probably site-wide. Crawl attention follows demand, and Google’s documentation says URLs that are more popular on the internet tend to be crawled more often. A new site with few external links gets little attention, and a site with lots of thin pages may get less. Publishing another hundred pages makes this worse. Improve or remove the weak pages first, then earn links through work that deserves them.

6. Crawl waste, on large sites only

Google’s crawl budget guide is aimed at sites with over a million pages, or over 10,000 pages changing daily, or many URLs stuck in “Discovered”. If you have thousands of faceted navigation or parameter URLs, Google may spend its time there. Block what shouldn’t be crawled and fix redirect chains. On a 50-page site, crawl budget is not your problem.

7. Rendering problems

If content appears only after JavaScript runs, Googlebot may not see all of it. Open Test live URL, then View tested page, and read the HTML and screenshot. If the main text is missing, you’ll need server rendering or a fix to what’s blocking the script. Also check whether robots.txt blocks JavaScript or CSS files.

8. Server errors and bad status codes

Repeated 5xx responses or timeouts can stop Google crawling, and a misconfigured app may send 200 for missing pages or 404 for real ones. Client-rendered apps are especially prone to soft 404s. Google suggests they either redirect to a URL that returns a true 404, or add noindex to error views with JavaScript. Use Redirect Chain Checker to see the codes returned hop by hop.

9. It is just new

A page published recently may not have been processed yet. Submit it in a sitemap, link to it from a page that gets crawled often, and give it time. Use Request Indexing once for the pages that matter. Google calls this a quota-limited feature and suggests reserving it for your most important URLs. Repeating it doesn’t speed anything up.

Telling the two “currently not indexed” statuses apart

These get confused, and they lead to different actions.

Discovered means no fetch happened, so Google hasn’t judged the content. Rewriting it doesn’t address why it wasn’t fetched. Google’s report help says crawling was likely postponed to avoid overloading the site. Look at server capacity, internal links, the number of low-value URLs, and overall site signals.

Crawled means Google has seen the page and passed on it for now. Technical fixes rarely help, unless the rendered page is broken. Compare it with what ranks, and improve it, merge it, or remove it.

A short diagnostic routine

  1. Run URL Inspection on one affected URL, and read the status and canonicals.
  2. Test the live URL. Confirm 200, indexable, and that main content is present in the rendered HTML.
  3. Open the Page indexing report, and see how many similar URLs share the status.
  4. Confirm the URL is in your sitemap. Our Sitemap Analyzer reads a sitemap’s structure, and a sitemap should list only the canonical pages you want indexed.
  5. Check for at least two internal links from pages that are indexed.
  6. Compare the page with what ranks for its main query. Write down what it offers that they don’t.
  7. Fix what you found. Validate the fix in the report, and wait. Then look again in a few weeks.

Our SEO URL Inspector gives a quick view of status code, title, canonical and robots signals, and is handy for checking many pages. It requests the page’s HTML with its own user agent and doesn’t run JavaScript, so a server that treats Googlebot differently, or a page rendered by script, will look different to Google. It can’t tell you anything about Google’s index. Search Console is the only authority on that.