A page isn't indexed in Google for one of three reasons: Google hasn't found it, Google found it but hasn't crawled it yet, or Google crawled it and decided not to index it. The URL Inspection tool in Google Search Console tells you which of the three you're dealing with, and the exact status it reports points at the fix. This guide walks through every status, the real causes behind the two confusing ones, and what actually gets a stuck page indexed.

I diagnose indexing problems on client sites for a living, and most advice on this topic frustrates me. It explains two statuses out of fifteen, then tells you to "improve your content quality" and wishes you luck. So this guide does the opposite: the full status table, an honest split between technical causes and quality verdicts, and a list of popular fixes that do nothing, so you can stop doing them.

15
distinct "not indexed" reasons Search Console can report. Each one has a different fix.
Google Search Console docs
~1 wk
Google's own guidance for how long a new page or site can take to start getting crawled and indexed
Google Search Central
96.55%
of pages get zero traffic from Google. Indexing is the entry ticket, not the prize.
Ahrefs, 14 billion pages

How Pages Get Into Google's Index

Every URL on the web moves through the same three-stage pipeline, and every "not indexed" status in Search Console is just a name for where your page stalled.

1

Discovered

Google learns the URL exists, through a link from a known page or your sitemap.

Stalls here: no links, no sitemap entry, or a queue on new sites
2

Crawled

Googlebot fetches the page, renders it and reads the actual content.

Stalls here: robots.txt blocks, server errors, login walls
3

Indexed

The page is stored in Google's index and eligible to appear in results.

Stalls here: noindex, duplicates, or a quality verdict

One expectation to set before you diagnose anything. Google's own documentation says it plainly: "Don't expect every URL on your site to be indexed." Filtered category variants, thin tag archives, redirect endpoints and true duplicates belong outside the index. The goal isn't 100% coverage. The goal is every page you care about, indexed, and nothing else.

Check If Your Page Is Indexed (the Right Way)

Most people check with a site: search, typing site:example.com/my-page into Google. That's fine as a thirty-second smoke test, but it's not reliable evidence. The site: operator isn't built to show the complete index, and a page missing from its results is sometimes indexed anyway.

The ground truth is the URL Inspection tool in Google Search Console. Paste the full URL into the search bar at the top and you get Google's actual record: whether the URL is on Google, when it was last crawled, which canonical Google selected, and, for non-indexed pages, the specific reason. Everything in this guide starts from that verdict.

No Search Console yet? Set it up first. It takes about fifteen minutes and it's the only way Google will tell you first-hand what's wrong. I wrote a full Search Console setup walkthrough covering verification and sitemap submission.

Two tools, two jobs: URL Inspection answers "why is this one page not indexed". The Page indexing report (under Indexing in the sidebar) answers "which of my pages aren't indexed, grouped by reason". Diagnose single pages with the first, find patterns with the second.

Every "Why Pages Aren't Indexed" Status, Explained

Search Console groups every non-indexed URL under one of these reasons, documented in Google's Page indexing report reference. Here's the full table, with what each status actually means and the move it calls for.

StatusWhat it meansYour move
Discovered - currently not indexedGoogle knows the URL but hasn't crawled it yetUsually patience plus internal links. Full section below
Crawled - currently not indexedGoogle crawled the page and chose not to index itA content and duplication question. Full section below
Excluded by 'noindex' tagThe page carries a noindex directiveRemove it if unintentional. Check meta robots and the X-Robots-Tag header
Blocked by robots.txtrobots.txt forbids crawling the URLRemove the Disallow rule for pages that should rank
Soft 404The page returns 200 but looks like an error or empty page to GoogleAdd real content, or return an honest 404
Not found (404)The URL returns 404Restore the page or redirect it. Fine if the removal is intentional
Server error (5xx)The server answered Googlebot with a 500-level errorFix hosting or application errors, then retest with URL Inspection
Redirect errorA redirect loop, an overlong chain, or a broken redirect targetMake every redirect a single clean hop
Page with redirectThe URL redirects somewhere else, so this address isn't indexed itselfNothing. This is normal plumbing
Blocked due to unauthorized request (401)The page demands a loginRemove the auth wall, or accept the page stays out
Blocked due to access forbidden (403)The server refuses access, often a firewall or bot ruleAllow Googlebot through your WAF, CDN or hosting rules
Blocked due to other 4xx issueSome other 4xx responseFetch the URL yourself and fix whatever status you see
Alternate page with proper canonical tagA variant correctly pointing at its canonical versionNothing. Working as intended
Duplicate without user-selected canonicalGoogle sees duplicates and you haven't declared a preferred oneAdd canonical tags, or consolidate the duplicates
Duplicate, Google chose different canonical than userYou declared a canonical, Google overruled itDifferentiate the pages or strengthen signals toward your choice
Don't chase the healthy ones: "Page with redirect" and "Alternate page with proper canonical tag" describe your site working correctly. Redirected URLs are supposed to drop out of the index. Spend your energy on the statuses attached to pages you actually want ranking.

Diagnose Your Page in 30 Seconds

Answer two quick questions and jump straight to the part of this guide that applies to your page. Runs entirely in your browser.

Paste your page's URL into URL Inspection in Search Console. What's the verdict at the top?

"Discovered - Currently Not Indexed": Stuck in the Queue

Google knows your URL exists, from your sitemap or a link, and simply hasn't fetched it yet. Nothing evaluated your content. Nothing rejected it. You're waiting in line.

Why pages sit in this queue:

  • The site is new. Google crawls unproven domains cautiously, and the queue is longest exactly when you're most impatient. This site is days old as I write this, and I watched its pages wait in line too. No penalty, no bug, just a new domain earning its crawl.
  • Weak internal linking. A URL that only exists in your sitemap, with no links from real pages, looks unimportant. Google crawls what your own site treats as worth linking to.
  • The server pushed back. If your site responded slowly or errored when Googlebot came around, Google backs off and postpones the crawl to protect your server.
  • Thousands of low-value URLs are competing. Parameter variants, filter pages and thin archives can soak up Google's attention before it reaches the pages you care about.

And the myth to retire: for small sites, this is not a "crawl budget" problem. Google's own crawl budget guide says it's written for sites with over a million unique pages, or 10,000+ pages that change daily, and tells everyone else "you don't need to read this guide". If your site has 40 pages, Google isn't running out of budget for you. It just hasn't prioritized you yet.

What actually speeds it up:

  1. Link to the stuck page from your strongest indexed pages. Homepage and top articles first. Descriptive anchor text, real HTML links.
  2. Submit a clean sitemap and keep it current. If you haven't, that's two minutes in Search Console.
  3. Request indexing for the few URLs that matter most. It bumps them up the queue. Details and limits below.
  4. Keep the server fast and stable. Googlebot's crawl rate adapts to how your site behaves under fetch.
  5. Earn a link or mention from a site Google already crawls often. Nothing accelerates discovery of a new domain like a path from an established one.

"Crawled - Currently Not Indexed": The Quality Verdict

This status stings because the technical work already succeeded. Google fetched your page, rendered it, read every word, and then declined to add it to the index. That's not a bug to fix. It's a judgment to change.

What earns pages this verdict, in the order I actually find them on audits:

  • Near-duplicate content. Ten location pages with the city name swapped. Product variants with identical descriptions. Tag archives that repeat post excerpts. Google indexes one version and quietly declines the clones.
  • Thin pages. A 150-word page competing against 2,000-word answers gives Google no reason to spend index space on it.
  • Intent mismatch. The page technically mentions the topic but doesn't answer what searchers of that topic want, and Google's gotten good at noticing.
  • No internal endorsement. If your own site barely links to the page, you've told Google it doesn't matter. It believed you.
  • Site-level reputation. On sites with lots of thin, indexed junk, even decent new pages get held to a stricter standard.

The playbook that works: pick one search intent per page and make the page the obvious best answer for it, with specifics only you can provide. Merge near-duplicates into one strong URL and redirect the rest. Link to the page from your best content with anchors that describe it. Cut or noindex the genuinely thin pages so the remainder looks better by association. Then, after real changes, request indexing once and give it days.

Here's the uncomfortable context that explains why Google is picky about index space in the first place. Ahrefs analyzed about 14 billion pages in its 2023 search traffic study, and 96.55% of them get no organic traffic from Google at all.

Being indexed is the entry ticket, not the prize
Share of pages by monthly organic traffic from Google, across ~14 billion pages
Zero trafficthe overwhelming default
96.55%
1-10 visitsper month
1.94%
10+ visitsper month
1.51%
Source: Ahrefs search traffic study, 2023. The web produces far more pages than searchers will ever click, which is exactly why Google's index has a door policy.

So treat "Crawled - currently not indexed" on an important page as an early review of that page's chances. A page that can't convince Google's indexing systems was unlikely to convince searchers either. Fixing it for the index usually fixes it for rankings too.

The Technical Blockers: Found in Minutes, Fixed in Minutes

A noindex you forgot about

The classic. A staging setting ships to production, an SEO plugin checkbox stays ticked, and every page politely tells Google to go away. The directive hides in two places: a meta tag in the HTML head, or an X-Robots-Tag HTTP header. Check both:

Check for noindex
# In the HTML head (View Source and search for it):
<meta name="robots" content="noindex">

# In the HTTP headers (terminal check):
curl -sI https://example.com/page | grep -i x-robots-tag

WordPress users: Settings, Reading, "Discourage search engines from indexing this site" is this exact failure with a friendly face. My meta tags guide covers the robots directives in depth, including the ones you don't need.

robots.txt is blocking the crawl

A leftover Disallow: / from staging, or a rule that catches more paths than intended. Test your page's path against https://example.com/robots.txt. I've shipped this mistake myself, so no judgment, but do check it early: it costs ten seconds.

One nuance most posts get wrong: robots.txt controls crawling, not indexing. A blocked URL can still end up in the index as a bare link if enough external pages point at it. If your goal is keeping a page out of Google, use noindex and let Google crawl it to see the directive. If your goal is ranking, make sure it's neither blocked nor noindexed.

Your canonical points somewhere else

A canonical tag says "index that URL instead of this one". Copied templates spread wrong canonicals fast: I regularly find whole sections canonicalizing to the homepage. Two checks in URL Inspection: the canonical you declared, and the canonical Google selected. When they disagree, Google explains itself with one of the duplicate statuses, and the fix is either differentiating the pages or accepting Google's choice and consolidating.

Redirects, 404s and soft 404s

Redirected URLs leave the index by design, so "Page with redirect" needs no action. What needs action: redirect chains and loops (keep every redirect a single hop), pages that died accidentally (restore or redirect them), and soft 404s. A soft 404 is a page that returns 200 but reads like an error or empty shell: no products in the category, a JS app that renders nothing for the crawler, a "no results found" template. Give the page real content or an honest 404 status.

Login walls and overeager firewalls (401/403)

Googlebot browses anonymously. Anything demanding credentials returns 401 and stays out. The sneakier version is 403: a WAF, CDN rule or hosting security plugin that treats Googlebot as a hostile bot. If URL Inspection's live test fails while your browser loads the page fine, suspect the firewall before the CMS.

Requesting Indexing, the Right Way

The Request Indexing button in URL Inspection does one thing: it moves your URL up the crawl queue. Per Google's URL Inspection documentation, indexing after a request "typically takes only a day or so, but can take much longer in some cases", there's "a daily limit to how many index requests you can submit", and, the sentence people skip, "submitting a request does not guarantee that the page will appear in the Google index".

It's a priority pass, not a quality waiver. The page still faces the same evaluation, which is why requesting indexing for an unchanged "Crawled - currently not indexed" page does nothing except spend a request.

The sequence that works:

  1. Fix the actual cause first, using the sections above.
  2. Request indexing once for the fixed page.
  3. Give it days, not hours, before rechecking URL Inspection.
  4. For many pages at once, skip the button entirely. Google's advice: "If you want many pages indexed, try submitting a sitemap."

How Long Does Indexing Take?

Honest ranges, from Google itself. A new page or site "can take a week or so" to start being crawled and indexed, per Google's indexing documentation. John Mueller's version, quoted in Search Engine Journal: indexing "can take anywhere from several hours to several weeks", and he suspects "most good content is picked up and indexed within about a week".

Established sites live at the fast end. Brand-new domains live at the slow end, and no amount of button-pressing moves them to the front. The practical thresholds I use: recheck after one week, investigate after two to four weeks if an important page hasn't moved status, and treat anything stuck beyond a month, after real fixes, as a sign that something structural deserves an audit.

What Works and What Wastes Your Time

Indexing problems attract folk remedies. Here's the honest split:

Worth your time

  • Internal links from your strongest indexed pages
  • Consolidating near-duplicates into one strong page
  • A clean, current sitemap submitted in Search Console
  • One indexing request after a real fix
  • Fixing what URL Inspection's live test actually reports
  • Mentions and links from sites Google crawls daily

The Indexing Triage Checklist

Run this before asking anyone for help

  • Verdict pulled from URL Inspection, not from a site: search
  • Exact status name noted from the Page indexing report
  • No noindex in the HTML head or X-Robots-Tag header
  • robots.txt doesn't block the URL's path
  • Declared canonical and Google-selected canonical both checked
  • URL returns a clean 200: no chains, no login, no soft 404
  • Page is linked from at least one strong, indexed page
  • URL is in the sitemap, and the sitemap shows "Success" in GSC
  • Content honestly beats what's already ranking for the target query
  • One indexing request submitted after fixes, then a week of patience

Page Still Stuck After All That?

Then something structural is going on, and that's my favorite kind of problem. Send me the URL and I'll look at it personally: crawl signals, rendering, canonicals, internal linking, the works. Free, no obligation.

Get My Free Audit

Page Not Indexed: FAQ

Anywhere from several hours to several weeks. Google's John Mueller has said most good content gets picked up within about a week, and Google's docs say a new page or site can take a week or so to start being crawled. Brand-new domains sit at the slow end of that range.
Indexed and ranking are different things. Indexed means stored and eligible to appear. Where the page actually shows depends on how it competes for each query, and a page can be indexed while ranking on page nine. If URL Inspection says "URL is on Google", you have a ranking question, not an indexing problem.
No. Google documents a daily limit on requests and says outright that a request doesn't guarantee indexing. One request after a real fix beats thirty requests for an unchanged page, because the request only affects queue position, not the quality evaluation.
No, it's a decision. Google fetched the page, evaluated it and chose not to index it for now, which usually points at content value or duplication rather than a technical fault. Some URLs in this bucket is normal on every site. It deserves action when important pages land there and stay.
Submit a clean sitemap in Search Console, link every page you care about from your strongest indexed pages, keep the server fast, and request indexing for your handful of money pages. Beyond your own site, links and mentions from places Google already crawls often are the real accelerator.
Mostly no. They ping URLs or point throwaway links at your pages, neither of which bypasses Google's quality evaluation. A page that deserves indexing gets there free with a sitemap and internal links, and junk links from these services can actively hurt. Save the money.
Milan Georgijevic, technical SEO consultant
Milan Georgijevic
Technical SEO Consultant & Developer

I'm a developer who moved into technical SEO. I audit sites, then implement the fixes myself: indexing, Core Web Vitals, structured data, rendering. Indexing triage is the first thing I run on every stuck site. Request a free technical audit and I'll take a look personally.

All SEO Guides