This is the single most-Googled Search Console error among indie devs, and the most misunderstood. “Crawled — currently not indexed” is not a technical failure. It is Google telling you: I read the page and chose not to put it in the index. Here is what that actually means and what to do about it.
TL;DR
- “Crawled — currently not indexed” is a quality / priority decision, not a crawl bug, not a penalty. Google fetched the full HTML, rendered it, and declined to spend an index slot.
- The cause is almost always one of three: the page is not better than what already ranks, it duplicates other content (yours or the web’s), or your site lacks the authority for Google to commit the slot.
- Technical fixes (resubmit sitemap, tweak meta, add schema) do not move it. Content depth, internal links, and inbound authority do.
- Request Indexing in Search Console is capped at roughly 10–12 URLs per day per property (the button greys out for 24 hours once you hit it); it only speeds up re-evaluation, it cannot override the quality decision.
- The Google Indexing API does not apply here — it is officially limited to
JobPostingandBroadcastEvent-in-VideoObjectpages. Using it for blog posts is ignored.
Background
Unlike “Discovered — currently not indexed” (Google found the URL but has not crawled it yet — usually a crawl-budget or scheduling issue), “Crawled — currently not indexed” means Google fetched the full HTML, rendered it, and made a decision. The decision is almost always one of three things: the content is not good enough relative to what already ranks, the page duplicates other content, or your site does not yet have enough authority for Google to commit a slot in the index. Technical fixes will not solve it; content and link fixes will.
Google’s own page indexing report documentation describes this status as “the page was crawled by Google but not indexed. It may or may not be indexed in the future; no need to resubmit this URL for crawling.” That last clause is the part people ignore — resubmitting changes nothing on its own.
How to tell
- Search Console Pages report shows a growing “Crawled — currently not indexed” bucket.
- Affected URLs were live for weeks, then dropped, or never got indexed in the first place.
- The pages render fine, return 200, have proper canonical, and are in your sitemap.
site:yourdomain.com/the-url/returns nothing in Google.- Other pages on the same site are indexed normally — so it is not a sitewide problem.
Quick verdict
Pick 3 affected URLs. For each, ask: (1) is the content substantially different from what already ranks #1-5 for the keyword? (2) does this page have ≥ 3 internal links pointing to it? (3) does the page have unique value beyond what 100 other pages already say? If you cannot answer yes to all three, rewrite the page. If you can, the issue is site authority and time — keep publishing, keep linking, and wait.
Step by step
-
Run URL Inspection. Search Console → top search bar, paste URL → “Test Live URL”. Watch 3 statuses:
Page Availability: URL is available to Google ← must pass Indexing: User-declared canonical: <url> ← must be self-canonical Google-selected canonical: ... ← these two must match Crawl: Last crawl: <date> ← should have a dateCommand-line double-check:
# 1. robots.txt isn't blocking curl -s https://yoursite.com/robots.txt | grep -E "Disallow|Allow" # 2. No noindex meta on the page curl -s https://yoursite.com/article-slug/ | grep -iE "<meta[^>]*name=['\"]robots" # 3. canonical is self curl -s https://yoursite.com/article-slug/ | grep -iE "<link[^>]*rel=['\"]canonical" # 4. Server returns 200 curl -sI https://yoursite.com/article-slug/ | head -1Any failure → that’s the real problem, not “crawled not indexed”. Fix, then skip to step 6.
-
Compare to Google Top 3 for the target keyword. Pull the URL’s highest-impression query from GSC, search it in incognito / via a foreign exit node, record top 3:
| Rank | URL | Words | H2 count | Original data? | Screenshots? | Date | Internal links | |------|-----|-------|----------|----------------|--------------|------|----------------| | 1 | ... | | | | | | | | 2 | ... | | | | | | | | 3 | ... | | | | | | |Your page must either clearly beat them on one axis (depth / data / screenshots / recency), or take a completely different angle (“for X audience” / counter-conventional / first-hand data). Neither → Google has no reason to add another copy.
-
Audit internal links pointing to this URL.
# Full-site grep for internal link count grep -rE "\\(/en/articles/article-slug/?\\)" src/content/ | wc -l # Or crawl the sitemap with Screaming Frog free tier (≤500 URLs)Thresholds:
0 links → orphan; you signal "even I think this is unimportant" 1-2 links → still low, add 3-5 more ≥5 links → internal linking isn't the issue; look elsewhereHow to add: grep pages where the article’s key concept already appears, manually insert one natural link per match:
grep -rEl "key concept A" src/content/ | head -10 # For each, pick a natural sentence to embed the link -
Site-wide thin content audit. Google judges the whole site; one page can’t rise alone:
# Count words per article for f in src/content/articles/en/**/*.mdx; do wc -w "$f" done | sort -n | head -50< 300 words possibly too thin; merge or drop 300-800 words depends on topic: troubleshooting/FAQ may suffice, deep how-to does not ≥ 800 words usually enough, depends on quality If ≥ 20% of the site is <500-word duplicative content → whole-site authority gets discountedAction: build a
thin_content.csv, markmerge / rewrite / noindex, run the cleanup loop from scale-content-with-ai-safely #8. -
Add original content to this specific URL. Most effective additions (ROI-ordered):
1. One real data chart you made yourself (from your GA / surveys / measurements) Tools: Datawrapper (free) / Google Sheets chart → PNG 2. One section: "We tested ourselves: N days / N samples, the result was X" 3. One counter-conventional paragraph: "Most pieces say X; in our test it was actually Y, because Z" 4. Comparison table: 3-5 alternatives × your specific evaluation dimensions 5. FAQ block: pull real queries from GSC, ≤2-sentence answers eachDon’t:
- Add paraphrased sentences repeating the same info - Add unrelated H2s for length ("Industry background", "Future outlook") - Rewrite to be more "marketing-y" instead of more specific -
Request indexing after rewriting. GSC URL Inspection → “Test Live URL” → pass → “Request Indexing”.
- The Request Indexing button is capped at ~10-12 URLs per day per property. Hit the cap and the button greys out ("Quota exceeded") for 24 hours. - Wait 2-4 weeks; indexing is not immediate even after a successful request. - Indexed? → run the playbook on the next affected URL. - Not indexed after a strong rewrite? → site-level authority issue, not a single-page one.There is no backdoor. The manual request only re-queues the URL for evaluation sooner; it does not override the quality decision, and re-requesting an unchanged page just re-confirms the existing verdict.
Two tool myths worth killing here:
- The Indexing API is not for this. Google restricts it to pages with
JobPostingorBroadcastEvent-in-VideoObjectstructured data (job listings and live streams). For blog posts and product pages Google ignores the call — and over-pinging it can hurt. See Google’s Indexing API quota docs. - The Search Console API URL Inspection endpoint is for checking status in bulk, not forcing indexing. Its quota (as of June 2026) is 2,000 queries per day and 600 per minute per site, per Google’s published limits — useful for auditing 500+ URLs programmatically, useless for getting anything indexed.
- The Indexing API is not for this. Google restricts it to pages with
-
Long-term: ≥1 high-quality inbound link per month. This is the strongest signal for moving URLs out of “crawled not indexed”:
Effective link types (by authority): 1. Industry-leader newsletter / blog citing you hard, but 1 = 50 ordinary links 2. Hacker News / Product Hunt front page opportunistic 3. Reddit / X high-follower account share can outreach 4. Same-niche independent blog / mid-size newsletter moderate difficulty 5. GitHub stars + README backlinks byproduct when shipping tools Don't: - Pay for links (Google reverses these effectively) - Reciprocal-link spam ("let's swap one") - Comment-section link dropsAdd a monthly calendar event:
This month — link outreach. Pick 5 relevant niche content creators, prep a 30-second “I wrote X, might interest you” email, reach out cold. 1 of 5 hits = win.
Common pitfalls
- Treating it as a technical bug. There is rarely a technical fix. Re-submitting the sitemap, removing whitespace, or tweaking meta tags will not change a “not good enough” verdict.
- Requesting indexing repeatedly. Each request just re-confirms Google’s existing decision. Fix the page first, request once.
- Adding word count without adding value. Google’s evaluation is not “longer is better” — adding 500 words of filler can actively hurt.
- Cargo-culting schema / structured data fixes. Structured data changes how a result looks (rich snippets); it does not flip “not indexed” to “indexed”. Likewise, the Google Indexing API will not help — it is limited to
JobPostingandBroadcastEventpages, not articles. - Ignoring sitewide signal quality. One thin article can be tolerated; a site of 80% thin articles will see the whole long tail stuck in this bucket.
Who this is for
Indie content sites, blogs, and SaaS marketing sites that have crossed 30+ articles and see a long tail of pages that Google reads but refuses to index.
When to skip this
Brand-new sites < 30 days old. “Crawled — not indexed” on a new site is not a verdict — it is “we are still evaluating”. Give it 60-90 days before acting.
FAQ
- Will my page ever get indexed if it is in this bucket?: Maybe. Google re-evaluates periodically. If you improve the page and the site’s overall signal, many of these URLs will be re-indexed within 30-90 days. If nothing changes, they often sit indefinitely.
- Is it a penalty?: No. It is a quality / priority decision, not a manual action. Manual actions appear in the Manual Actions report and are explicit.
- Will removing affected URLs help the rest of my site?: Sometimes. If you have 100 thin pages and 20 good ones, removing the 100 can lift the 20. Test on a portion first; do not mass-delete reflexively.
- How long should I wait before assuming a URL is stuck for good?: After a substantive rewrite + request indexing, give it 30 days. If it still has not indexed and the page is genuinely strong, the bottleneck is site authority — not that page.
- Can the Google Indexing API force-index my articles?: No. Google officially limits the Indexing API to pages with
JobPostingorBroadcastEvent-in-VideoObjectmarkup. For ordinary articles the calls are ignored, and third-party “instant index” services that abuse it can do more harm than good. Use Request Indexing for one-offs and a clean sitemap for bulk.
Related
- Discovered — currently not indexed explained
- Reading the Pages report without panicking
- When Google won’t crawl your new pages
- Canonical in Search Console explained
- GSC Coverage Report by Folder: Debug Indexing Drift
- Sitemap submitted but pages not indexed
Tags: #Indie dev #SEO #Google #Search Console #Indexing #Troubleshooting #Content ops