You bought a domain a month ago, submitted a sitemap, and Search Console says “Discovered: 100 URLs” — but “Indexed: 3.” Nothing’s actually broken; Google defaults to conservative behavior on domains with zero historical signal. People call this the “sandbox.” Google officially denies that name, but the behavior is real: new domains usually take 8-16 weeks before indexing reaches steady state.
Here’s what you can actually control during that window, and where the line is between “useful action” and “wasted thrashing.”
Common causes
1. Domain / site authority is zero
Google maintains an internal score per domain: age, total backlinks, link quality, topical relevance, historical spam signals. New domains have zero on every dimension. Even with great content, Google’s posture is “let’s index one or two and see if anyone actually visits.”
How to confirm: Use ahrefs.com/webmaster-tools (free) to check Domain Rating — new sites are typically DR < 5 and have < 3 referring domains.
2. No real backlinks = zero votes for you
Backlinks are one of Google’s strongest signals for “is this site worth crawling.” Zero backlinks = no one’s voting for you = Google won’t prioritize crawl budget.
How to confirm: Search Console → Links → Top linking sites. If it’s just Twitter / LinkedIn (mostly nofollow), you have zero real backlinks.
3. Zero content history signal
When Google evaluates new content, it asks “how has this topic performed on this domain historically?” No history → no reference → default low priority.
4. Sparse internal linking / orphan pages
Common new-site mistake: each article only appears via the homepage’s “latest” feed; a few weeks later it scrolls off and becomes an orphan (no internal links except the sitemap). The crawler can’t reach it from the homepage anymore.
How to confirm: Pick 5 old articles at random; can you still reach each in ≤3 clicks from the homepage?
5. Template / bulk AI signal
If your first 30 days were 50 unedited AI articles, Google’s SpamBrain may flag you as a “bulk low-quality site,” raising the indexing threshold for everything you publish after.
Shortest path to fix
Ordered by ROI on indexing velocity.
Step 1: Nail the technical basics in week one
- Verify the domain in Search Console (use DNS TXT for the whole domain, not just a URL prefix)
- Submit sitemap:
https://yourdomain.com/sitemap.xml - robots.txt must NOT be
Disallow: /(seems obvious but template defaults have shipped this) - Every article self-canonical
- Mobile friendly (run Search Console’s “Mobile Usability” or PageSpeed Insights)
# Quick self-check
curl -s https://yourdomain.com/robots.txt | head -5
# Want: User-agent: * Allow: /
curl -sI https://yourdomain.com/sitemap.xml | head -1
# Want: HTTP/2 200
Step 2: Get 3-10 real backlinks (fastest accelerant)
Not buying links. Actually doable:
- Write one in-depth article, post to a topic-relevant subreddit (don’t need to link in the post; link in comments)
- One HackerNews Show HN submission (must have a real working project)
- Friend / coworker personal blog or company site cross-link
- Industry-relevant wiki or tool list (e.g., awesome-* GitHub lists)
- Write a follow-up to an existing blog post and pingback
- Normal share from your existing Twitter / LinkedIn — even though those are nofollow, the resulting traffic gets noticed
Target: 3-5 links from distinct domains in month one. More useful than you’d expect.
Step 3: Flatten internal link structure
The new-site-specific fix:
Homepage (depth 0)
├─ /articles/ — site-wide article index (depth 1)
│ ├─ Article 1 (depth 2)
│ ├─ Article 2 (depth 2)
│ └─ Article N (depth 2)
└─ Topic hub pages (depth 1)
└─ Link to relevant articles
Every article is ≤2 clicks from anywhere. Every article ends with 3-5 auto-generated related links.
Sketch in Astro:
---
// src/pages/articles/index.astro
import { getCollection } from "astro:content";
const posts = await getCollection("posts");
const sorted = posts.sort((a, b) => b.data.publishedAt - a.data.publishedAt);
---
<ul>
{sorted.map((p) => (
<li><a href={`/articles/${p.slug}/`}>{p.data.title}</a></li>
))}
</ul>
Every article is now permanently one click from /articles/. No orphans.
Step 4: Publish on a steady cadence
Two articles a week, every week, beats ten articles one week followed by silence for three. Google’s crawl frequency follows your publish frequency; erratic shipping drops you to the lowest of the rates.
A forced calendar:
Mon — 1 article
Thu — 1 article
Sun — 1 article
After 8 consecutive weeks, Crawl Stats will show Googlebot’s daily hits roughly double.
Step 5: Don’t touch structure for the first 8 weeks
Common traps:
- Indexing feels slow → you change URL structure → the small signal you had is reset to zero
- You edit canonicals → signals contradict
- Re-submit sitemap repeatedly → doesn’t speed anything up, wastes SC quota
Only act on:
- Real technical bugs (404s, redirect loops, 500s)
- Genuinely thin content (< 300 words) that needs body added
Otherwise: write content + push for backlinks + wait.
Step 6: After 8 weeks with no movement, diagnose
If at week 9 indexing is still in single digits:
- Search Console → Pages → see which status the “not indexed” URLs fall into
- Mostly “Crawled - currently not indexed” → content quality issue (see Crawled not indexed fix)
- Mostly “Discovered - currently not indexed” → crawl budget issue, double down on backlinks + flat link structure
- “Page with redirect” / “Blocked by robots.txt” → technical config wrong
Prevention
- Plan 4 weeks of content before launching so month one ships 8-12 articles steadily
- Pre-build authority via your existing Twitter / LinkedIn / friends; you should be able to get a few real backlinks or social hits in week one
- Don’t bulk-publish AI content in month one; slower with human editing wins
- Install Search Console + Analytics on launch day — without baseline data, diagnostics later are guesswork
Related
Tags: #SEO #Google #Search Console #Indexing