When people say “Google isn’t indexing my pages,” what they really mean is:
Google Search Console is showing indexing errors I don’t understand.
The mistake most people make is assuming these are technical failures.
In reality, most of them are intentional decisions by Google.
Let’s go through them in the exact order you’ll see them in Search Console.
1. “Discovered – Currently Not Indexed”
What this status means
Google knows the URL exists, but has not crawled it yet.
Important:
This is not an error. It’s a waiting room.
Why this happens
Common reasons:
- The site has low crawl priority
- The page is new and unproven
- Google doesn’t see urgency to crawl it
- Weak internal linking to the page
- Sitemap-only discovery (no internal links)
Google is essentially saying:
“I’m aware of this page, but I don’t see a reason to spend crawl resources on it yet.”
What to check in Search Console
- Pages → Indexing → Not indexed → Discovered – currently not indexed
- URL Inspection → “Page discovery” section
- Sitemap report:
- Is this URL only appearing via sitemap?
- Or is it also discovered via internal links?
How to fix it
You don’t force Google to crawl. You increase priority.
Concrete actions:
- Add at least one contextual internal link from a relevant, indexed page
- Make sure the linking page:
- is already indexed
- gets crawl activity
- Avoid publishing large batches of low-priority pages at once
- Ensure the page is not buried deep in the site structure
Submitting for indexing can help after internal links exist.
Submitting alone usually does nothing.
2. “Crawled – Currently Not Indexed”
What this status means
Google crawled the page, evaluated it, and decided not to index it.
This is the most important and most ignored message in Search Console.
It does not mean:
- crawl errors
- rendering issues
- blocked resources
It means:
“We saw it. We’re not keeping it.”
Why this happens
Common causes Google never spells out:
- Content is too thin
- Content is redundant with other pages
- Page has weak internal signals
- Page doesn’t clearly satisfy a unique intent
- Page quality is low relative to your own site
This is a selection problem, not a submission problem.
What to check in Search Console
- URL Inspection → “Indexing allowed?” (it will say Yes)
- Compare:
- similar pages that are indexed
- similar pages that are not indexed
- Look at:
- content length
- depth
- internal links
- uniqueness
If Google indexes other pages like this one but not this page, the difference matters.
How to fix it
Pick one of these paths — don’t guess.
- Upgrade the page
- Add missing depth
- Clarify intent
- Remove filler
- Merge it
- Combine with a stronger, indexed page
- Redirect or canonicalize
- Deprioritize it
- If it doesn’t deserve to exist, let it go
Repeatedly requesting indexing without changes is a waste of time.
3. “Duplicate, Google Chose a Different Canonical Than User”
What this status means
Google believes this page is not the primary version.
Even if:
- you set a canonical
- the page is indexable
- there are no technical errors
Google disagrees.
Why this happens
Common triggers:
- Very similar pages targeting slight keyword variations
- Location or service pages with near-identical content
- Pagination or parameter variations
- Weak or conflicting canonical signals
- Internal links pointing inconsistently between versions
Google is saying:
“We think another URL represents this content better.”
What to check in Search Console
- URL Inspection → “Google-selected canonical”
- Compare:
- your declared canonical
- Google’s chosen canonical
- Look at internal links:
- which URL gets more links?
- which URL is closer to the homepage?
Google usually follows link signals over canonicals.
How to fix it
You have two real options:
- Strengthen the intended canonical
- Add internal links pointing to it
- Make the content meaningfully different
- Accept Google’s choice
- Consolidate content
- Redirect the weaker URL
- Stop fighting duplication you created
Canonicals are hints, not commands.
4. “Excluded by ‘noindex’ Tag”
What this status means
Google crawled the page and found a noindex directive.
This is one of the few cases where Google is very literal.
If this shows up, Google is not confused.
It is doing exactly what you told it to do.
Why this happens
Common causes:
- A leftover noindex from staging or development
- Page builder or SEO plugin defaults
- Category, tag, or filter pages set to noindex
- Conflicting directives between plugins
- HTTP header noindex (often missed)
What to check in Search Console
- URL Inspection → “Indexing allowed?”
- Look for:
noindexin meta robotsx-robots-tagin HTTP headers
- Test the live URL to confirm it’s not a cached issue
How to fix it
- Remove the noindex directive at the source
- Check:
- SEO plugin settings
- CMS templates
- server-level headers
- Re-test live URL in GSC
- Request indexing only after confirmation
Do not request indexing until the directive is gone.
Google will ignore you otherwise.
5. “Blocked by robots.txt”
What this status means
Google is not allowed to crawl the page at all.
Important distinction:
- Blocked pages can still be indexed (via external links)
- But they are indexed without content, which is risky
Why this happens
Common reasons:
- Overly broad disallow rules
- Blocking entire folders unintentionally
- Legacy rules never cleaned up
- Plugin-generated robots.txt overrides
This often happens on WordPress sites without anyone noticing.
What to check in Search Console
- Settings → Crawling → robots.txt
- URL Inspection → “Page fetching”
- robots.txt Tester:
- Paste the exact URL
- Confirm which rule is blocking it
How to fix it
- Narrow disallow rules to what actually needs blocking
- Avoid blocking:
- important content pages
- pagination
- internal search results unless intentional
- Re-test robots.txt in GSC
- Request indexing once crawling is allowed
Blocking pages is a scalpel, not a hammer.
6. “Alternate Page with Proper Canonical Tag”
What this status means
Google agrees with your canonical and is intentionally not indexing this URL.
This is not a problem.
This is expected behavior.
Why this happens
Typical scenarios:
- HTTP vs HTTPS
- www vs non-www
- URL parameters
- tracking variants
- print or AMP versions
Google is saying:
“We know this exists. We’re indexing the main version instead.”
What to check in Search Console
- URL Inspection → “User-declared canonical”
- Confirm:
- canonical points where you expect
- Google-selected canonical matches it
- Check that the canonical URL itself is indexed
How to handle it
Usually:
- Do nothing
Only act if:
- The wrong page is set as canonical
- The canonical target is broken or noindexed
- Internal links point to the wrong version
This status is informational, not actionable in most cases.
7. “Soft 404”
What this status means
Google crawled the page, but believes the content is functionally useless.
This is not about HTTP status codes.
The page technically returns 200, but Google treats it like a dead end.
Why this happens
Common triggers:
- Very thin content pages
- Pages with no real main content
- “Coming soon” or placeholder pages
- Location or service pages with minimal differentiation
- Pages overloaded with boilerplate and little substance
Google is saying:
“This page exists, but it doesn’t actually answer anything.”
What to check in Search Console
- Pages → Indexing → Not indexed → Soft 404
- URL Inspection → Live test
- Manually review:
- visible content above the fold
- whether the page answers a real query
How to fix it
- Expand the page meaningfully
- Add:
- clear primary content
- specific information
- real explanations or examples
- If the page isn’t supposed to exist yet:
- return a real 404
- or noindex it intentionally
Soft 404s are usually content failures, not technical ones.
8. “Indexed, Though Blocked by robots.txt”
What this status means
Google indexed the page without being able to crawl it.
This happens when:
- the page is blocked in robots.txt
- but Google discovers it through links
This is one of the worst states to leave a page in.
Why this happens
Common causes:
- Blocking entire directories
- Blocking parameter URLs too broadly
- Old robots.txt rules left in place
- Blocking pages after they were already indexed
Google is saying:
“We know this page exists, but we’re not allowed to understand it.”
What to check in Search Console
- URL Inspection → “Page fetch”
- robots.txt tester
- Check if:
- the page is receiving impressions
- but has poor performance
How to fix it
Decide what you actually want:
- If the page should be indexed:
- remove the robots.txt block
- If it should not be indexed:
- allow crawling
- add a noindex directive
Blocking + indexing is a bad combination.
Be explicit.
9. “Submitted URL Not Found (404)”
What this status means
You told Google this page exists.
It doesn’t.
This is usually a sitemap hygiene issue, not an SEO crisis.
Why this happens
Common reasons:
- Old URLs left in the sitemap
- Deleted pages without sitemap updates
- URL structure changes
- Trailing slash inconsistencies
- CMS-generated junk URLs
What to check in Search Console
- Sitemaps report
- Compare:
- submitted URLs
- live URLs
- Crawl the sitemap with:
- Screaming Frog
- site search
How to fix it
- Remove dead URLs from the sitemap
- Redirect valid replacements when appropriate
- Resubmit a clean sitemap
Sitemaps should reflect current reality, not history.
The Pattern Google Is Following (And Why This Matters)
Once you step back, a clear pattern emerges:
Google is not failing to index your pages.
It is selecting which pages deserve to be indexed.
Search Console isn’t showing you errors.
It’s showing you decisions.
Every status boils down to one of three things:
- Google doesn’t see the page as important
- Google doesn’t see the page as unique
- Google doesn’t see the page as useful
No tool, plugin, or AI shortcut overrides that.
And this is where people get misled by “AI SEO” promises.
If Google won’t index a page:
- AI systems won’t cite it
- AI answers won’t reference it
- and no “GEO trick” fixes that
The solution isn’t forcing indexing.
It’s building pages Google actually wants to keep.
That’s the difference between chasing visibility and earning it.