The page is in the Google index (URL Inspection says “URL is on Google”), site: finds it, but real queries don’t surface it. Call this “ghost indexing”: indexed but never gets a display impression.
Unlike “Crawled - not indexed,” this isn’t about crawling or basic quality. It’s about your page’s relative strength vs. competitors. Google knows you exist, but every time someone searches a relevant query it asks “this page vs. the top 10 — who deserves to show?” — and picks them.
Common causes
1. Content depth below top-10 average
Open the SERP for your target query and look at the top 10:
- Average word count?
- Average images / tables / code blocks?
- Video / interactive elements?
- High-authority sources (GitHub, Wikipedia, major company blogs)?
If your page is below 50% of average on any dimension, it almost certainly won’t crack the top 10.
How to confirm:
# Curl the top 10 to compare lengths
for url in "url1" "url2" "url3" ...; do
echo "$url: $(curl -sL $url | wc -c) chars"
done
Or more directly: ahrefs Content Gap or Semrush Topic Research shows sub-topics competitors cover that you don’t.
2. No backlinks at all
Search Console → Links → check this URL’s “Links to this page.” Zero or only 1-2 low-authority sites = a hard ceiling on rankings.
Backlinks are one of Google’s strongest “does this page deserve display” signals. When top-10 URLs average 50+ backlinks, your zero-backlink page won’t crack in.
3. Stronger competitors on this topic (site authority gap)
Even if your individual article is excellent, if your site’s overall authority (Domain Rating / Authority Score) is far below the competitors’ sites, Google prefers theirs.
How to confirm: ahrefs.com/webmaster-tools (free) — check your DR vs. the top 10 competitors. A 20+ point gap is hard to close.
4. Title / H1 / content doesn’t match the actual search phrasing
Your title says “5 Secrets of AI Writing” but users actually search “how to write articles with AI” — same intent, different wording. Google ranks you behind pages that match more precisely.
5. Multiple pages on the same site competing (keyword cannibalization)
If you have 3 articles all about “how to deploy Astro,” Google can’t decide which to rank, and each gets a worse position than one focused page would.
How to confirm: site:yourdomain.com "your keyword" — multiple URLs of your own appearing = cannibalization.
6. Insufficient topical authority signal
Google’s Topical Authority: you’ve published 1 article about “Astro deployment” vs. a competitor with 10 articles covering Astro in every dimension. Google trusts the deep one.
Shortest path to fix
Step 1: Audit the top 10, find the gap
Open the SERP for your target query. For each of the top 10:
| URL | Words | Images | Tables | Code | DR | Backlinks |
|-----|-------|--------|--------|------|----|-----------|
| ... | | | | | | |
Fill it in to derive the “must clear” median. Your page needs to at least hit median.
Step 2: Use People Also Ask to complete intent
Search your query in the SERP and read the “People also ask” — typically 4-8 related questions. Make each a subheading in your article.
For “Astro deploy Vercel,” PAA might be:
- “What’s the difference between Astro and Next.js?”
- “What’s the limit of Vercel’s free plan?”
- “How do I bind a custom domain?”
Each PAA = one H2 + 100-200 word answer.
Step 3: Add 3 unique signals
- 1 original screenshot / diagram (not stock)
- 1 numerical comparison table
- 1 real code / config snippet (with line numbers and comments)
Each addition is a content-signal upgrade tier.
Step 4: Concentrate internal link signal
# Find the 5 most relevant articles
rg -l "Astro|Vercel|deploy" src/
# In each, add a passage linking to the target with keyword anchor
Add this style of passage in each:
If you’re not familiar with Vercel’s build configuration, see Astro Deploy Vercel Complete Guide — especially the section on env var case sensitivity.
Anchor text should be a real intent phrase, not “click here” or “more.”
Step 5: Clean up cannibalization
site:yourdomain.com "Astro deploy Vercel"
If 3 results appear:
- Keep the strongest (longest, freshest, most internal links)
- 301-redirect the other 2 to the master, or merge their content in
Step 6: Get backlinks (hardest but most direct)
Each 1-3 quality backlinks typically moves you 5-10 positions. Paths:
- Write a “primary data” article worth linking to
- HackerNews Show HN
- Share in a relevant subreddit
- Guest post on an industry site
- Get included in a GitHub awesome-list
Step 7: Wait 4-12 weeks
Ranking signals accrue gradually. After fixes:
- 4 weeks: title/PAA rewrite starts showing, small rank lift
- 8 weeks: internal link signals re-evaluated
- 12 weeks: full effect
Don’t change title weekly hoping for instant impact.
Prevention
- Before writing, study the top 10 and define the “median to beat”
- One page per query — don’t let 5 pages compete with each other
- Build topic clusters around hub pages to concentrate authority
- When publishing, check the site for near-duplicate content to avoid cannibalization
- Internal link anchors are always real intent phrases — never “click here”
Related
Tags: #SEO #Google #Search Console #Indexing