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.
Background
Unlike “Discovered — not indexed” (Google has not even read the page yet), “Crawled — 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.
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”.
- GSC caps ~10 per URL per day - Wait 2-4 weeks (indexing is not immediate) - Indexed? → run the playbook on the next affected URL - Not indexed? → site-level authority issue, not a single-page issue At most 20-30 URLs per month through Request Indexing; more and GSC throttles. There's no backdoor — indexing is based on site-level signals; manual requests only speed up, not bypass. -
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 helps appearance in search results; it does not flip “not indexed” to “indexed”.
- 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.
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
Tags: #Indie dev #SEO #Google #Search Console #Indexing #Troubleshooting #Content ops