Indexing Slow on a Brand-New Site: What Actually Moves the Needle

Brand-new domain takes weeks to start ranking. Here's what actually helps.

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.

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

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.

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:

  1. Search Console → Pages → see which status the “not indexed” URLs fall into
  2. Mostly “Crawled - currently not indexed” → content quality issue (see Crawled not indexed fix)
  3. Mostly “Discovered - currently not indexed” → crawl budget issue, double down on backlinks + flat link structure
  4. “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

Tags: #SEO #Google #Search Console #Indexing