Key takeaways
- A practical checklist for diagnosing "Crawled - currently not indexed" / "crawled but not indexed" in Google Search Console
- Separate technical blockers (robots, canonicals, redirects, rendering) from the more common reality: site-level prioritization
Table of Contents
"Crawled - currently not indexed" is one of the most misunderstood statuses in Google Search Console.
People treat it like a bug: something must be broken on the page.
Sometimes that’s true. But most of the time it’s not a single-page problem. It’s Google making a storage decision: I saw it, I can fetch it, but I’m not keeping it yet.
This post is a debug checklist that helps you answer one question fast:
Is this technical (blocked/duplicated/misconfigured), or is this priority (not important enough yet)?
If you want the “mental model” first, start here:
If you’re cleaning up old URLs and crawl debt, this pairs well:
New here? The reading map:
Step 0: classify the URL (this decides the rest)
Before you run any checks, classify the URL into one of these:
- Core page (pillar, topic hub, best essays): you want it indexed.
- Support page (a supporting essay): you want it indexed, but it’s not top priority.
- Utility page (social links, experiments, thin lists): maybe you don’t need it indexed.
If it’s not something you’d proudly put on your homepage, don’t fight for indexing.
Step 1: confirm it’s actually indexable (the boring hard gates)
1) Is it returning 200 OK for Google?
Check the URL in GSC → URL Inspection:
- If you see redirect chains, unexpected 4xx/5xx, or intermittent timeouts, fix that first.
- If the page is sometimes 200 and sometimes 4xx, Google may keep it in limbo.
Also sanity-check with curl from a clean environment (no cookies, no auth, no geolocation logic).
2) Is it blocked by robots or noindex?
Common blockers:
X-Robots-Tag: noindexat the header level (easy to miss).<meta name="robots" content="noindex">on the page.robots.txtdisallow (especially if you recently added middleware rules).
If any noindex signal exists, “crawled, not indexed” is expected.
3) Is the canonical pointing somewhere else?
If your canonical points to:
- another URL (duplicate), or
- a URL that returns 404/410, or
- a URL that redirects,
…Google will often refuse to index the inspected URL.
Rule of thumb: one page → one stable canonical → 200 OK.
4) Is it an accidental “soft 404”?
A soft 404 is when the page returns 200 but looks like “nothing”:
- empty state
- “not found” messaging without a 404 status
- “thin placeholder” pages generated by templates
If you use dynamic routes, validate that missing content returns a real 404 (or 410 if intentional).
Step 2: check duplication patterns (the silent index killers)
Even strong content can be de-prioritized if Google sees it as a duplicate variant.
5) Host + slash + params: do you have one preferred URL?
Typical duplication footprints:
wwwvs apex- trailing slash vs no slash
- legacy params like
?m=1 - multiple feed endpoints (
/feed,/rss.xml,/atom.xml)
Pick one canonical pattern and 301 everything else to it.
6) Thin archives and paginated pages
Archive/pagination pages often get crawled but not indexed:
/tag/.../page/2/category/.../page/3- old WordPress lists you no longer use
If they’re not part of your strategy, make them cheap to discard (410 for legacy, or noindex for “utility”).
Step 3: rendering + hydration (Next.js reality check)
“Rendering” is not the most common cause, but it’s the easiest technical trap to eliminate.
7) Does the HTML contain the real content without JavaScript?
If you rely on client-side rendering for the main article body, Google can process it — but it becomes slower, more expensive, and more likely to be deferred.
For a content site, the safest pattern is:
- SSG/SSR for the article body
- minimal client components
If you inspect “View source” and the main content isn’t there, fix that before anything else.
8) Are you blocking Google with CSP or scripts?
Overly strict CSP or broken script loading can lead to partial rendering.
Symptoms:
- page looks fine to you, but GSC screenshot / rendered HTML is missing key sections
- internal links aren’t visible in rendered output
If you changed CSP recently, validate with real Googlebot rendering in URL Inspection.
Step 4: the truth: priority signals (why good pages stay out)
If the page is clearly indexable and not duplicated, the remaining causes are usually priority.
9) Internal linking doesn’t express “this matters”
Discovery is not priority.
If a post is only reachable via the /blog list, Google may crawl it but never “promote” it into the index.
High leverage patterns:
- Homepage → 3–6 pillars
- Topic hub → pillar + supporting essays
- Each supporting essay → links back to the hub + pillar
10) The site has crawl debt / noise
When a site has lots of low-value URLs (legacy slugs, archives, scanner junk), Google becomes conservative:
- it samples more
- it indexes less
- it refreshes slower
Fixing noise often improves indexing more than rewriting a single post.
11) “Incremental value” is unclear
Your post can be accurate and still not earn a slot if it feels like:
- a generic summary
- a rewording of what already ranks
- a piece with no constraints (who it’s for, what to do first, what not to do)
Indexing is not just quality. It’s distinctiveness + demand + site trust.
Step 5: what to do (the minimal action plan)
If you want this practical:
- Fix hard gates first: status code, noindex, canonicals, obvious duplication.
- Pick 5–10 “core” URLs and request indexing (don’t spam requests for everything).
- Make internal linking explicit:
- add your best posts to
/start - link supporting essays from
/topics/seo - add hub/pillar backlinks in the new post
- add your best posts to
- Give it time: Search Console reports lag. Expect 3–14 days for visible movement.
FAQ
Should I keep requesting indexing every day?
No. Repeated requests rarely help. It can even waste your time: the bottleneck is usually prioritization, not “Google didn’t notice.”
Request indexing for a small set of pages you really care about, then improve signals (linking + coherence).
Does “crawled, not indexed” mean I’m under a penalty?
Usually no. It most often means Google is being conservative about what to store.
If you had a spam incident, hacked pages, or massive duplication, clean that up — but don’t assume a “filter” just from this status.
What if the page is indexed but not ranking?
That’s a different problem. Indexing is “stored.” Ranking is “chosen.”
Treat indexing as the prerequisite, then work on search intent matching and internal link context.
When is it a real technical issue?
When you find any of these:
noindexheaders/meta- canonical points elsewhere
- the page renders empty/placeholder in fetched HTML
- unstable status codes, redirect chains, timeouts
If none of that is true, assume it’s priority and work on coherence + internal linking.
Next in SEO & Search
Up next:
Search Visibility in the Age of AI: Why SEO Is No Longer About KeywordsRankings are a weak proxy for visibility. AI understands content through entities and context, not keyword matches. The future of SEO is interpretability, not optimization.