Last updated: November 2026 · Reading time: about 11 minutes
What this guide covers
- The six-step checklist, compressed
- What breaks: the robots.txt that blocks everything
- What breaks: "on Google" is not "indexed"
- What breaks: every internal link is a redirect
- What breaks: label pages are noindex by default
- What breaks: the sitemap that caps at 78
- The decision the checklist avoids
- The order to actually do this in
- FAQ
The six-step checklist, compressed
Before the failures, the foundation. These are the six things every guide will tell you, and they are all correct.
| Step | What it actually means | How to know you have done it |
|---|---|---|
| 1. Foundation | A fast, secure, mobile-responsive site on a reliable platform | Loads in under 3 seconds on 4G; no layout shift; HTTPS with no mixed-content warnings |
| 2. Niche and keywords | Targeting queries your audience actually types, at competition levels you can win | You can name 20 queries and show the search volume for each |
| 3. Structure | Clean URLs, correct heading hierarchy, titles and descriptions, internal links, image ALT text, sitemap, Search Console | Every post has one H1, a title under 60 characters, a description under 155, and at least three internal links |
| 4. Content | Original, researched, solves a problem the reader arrived with | You can point to a question the post answers that no competing post answers |
| 5. Technical SEO | Schema markup, Core Web Vitals, crawlability | Rich Results Test passes; PageSpeed shows green on mobile; robots.txt allows crawling |
| 6. Design that converts | Clean navigation, obvious next step, trust signals | A first-time visitor can find your best content in two clicks |
That is the checklist. It takes about a week to set up on a fresh blog and it will get you a site that looks right, loads fast and has correct metadata.
It will not get you indexed. That is a different problem, and it is where the next six sections live.
What breaks: the robots.txt that blocks everything
Here is the failure that costs the most time and produces the least visible symptom.
You launch a blog on a new domain. You submit the sitemap. You wait. Nothing happens. Search Console shows zero indexed pages, and the URL Inspection tool says the homepage is "crawled" but not indexed. You check the theme, the metadata, the schema, the page speed — everything is correct.
The problem is in a file you probably have not opened. Your `robots.txt` still contains the sitemap directive from the previous setup:
Sitemap: https://old-domain.blogspot.com/sitemap.xml
Google reads `robots.txt` first. It follows the sitemap instruction. It goes to the old domain, finds the old content there, and indexes that instead. Your new domain has a perfect sitemap, correct canonical tags and clean internal links — and Google has never looked at any of it.
This is the single most common cause of a new blog sitting at zero indexed pages, and no SEO checklist mentions it — because the checklist assumes you built the site from scratch rather than migrating one.
What breaks: "on Google" is not "indexed"
Search Console's URL Inspection tool will tell you a page "is on Google" while a `site:` query for the same page returns nothing.
Both are accurate. They measure different things.
| Signal | What it actually means |
|---|---|
| "URL is on Google" | Google has crawled and processed this specific page and is willing to show it. It does not mean it ranks, and it does not mean the rest of the site is indexed. |
| `site:yourdomain.com` returns zero | Google's index has not yet expanded to cover the domain as a whole. This query lags behind the per-URL tool by days, sometimes weeks. |
| "Discovered — currently not indexed" | Google knows the URL exists but has not crawled it. Normal for a new domain, and it shrinks as the crawl catches up. |
| "Crawled — currently not indexed" | Google crawled the page and chose not to index it. Worth investigating: usually thin content, or a canonical conflict with a duplicate. |
The practical lesson: do not use `site:` as your only index check. Use Search Console → Indexing → Pages, which shows all four categories with counts, and use URL Inspection to confirm a specific page. The two together tell you whether the site is being discovered, crawled, or rejected.
What breaks: every internal link is a redirect
When you move a blog from one domain to another, the redirect at the domain level handles the URLs that external sites and bookmarks point at. It does not touch the links inside your own posts.
Every article you have ever written contains links like this:
<a href="https://old-domain.blogspot.com/2026/11/some-post.html">
After the migration, those links still work — the browser goes to the old URL, hits the redirect, and lands on the new domain. But that is two requests instead of one. On a site with 80 posts and 5–10 internal links each, that is hundreds of redirect hops per crawl.
Fixing it means replacing the domain string in every post body. Most platforms have no bulk find-and-replace, so the realistic options are a manual pass (20–30 seconds per post), a scripting route via the platform's API, or a third-party bulk-edit tool. Whichever you choose, do it before you start the backlink push, not after.
What breaks: label pages are noindex by default
On Blogger and several other platforms, category and label archive pages ship with ``. It is a sensible default — label pages often contain duplicate previews of posts and thin content — but it means your category pages will never rank, no matter how good they are.
That matters if you have built a navigation structure around those pages. A nav link to `/search/label/Fintech` that Google will not index is a navigation link that helps readers and does nothing for search visibility.
Two options:
- Leave it. Accept that label pages are for navigation only, and put your ranking effort into individual posts and pillar pages instead. This is the simpler choice and often the right one.
- Remove the noindex and add a unique introductory paragraph to each label page, so it has content of its own rather than just a list of previews. This works, but it is real work per category.
What you should not do is assume the label pages are being indexed because they appear in your navigation. Check one in URL Inspection before you plan around it.
What breaks: the sitemap that caps at 78
A blog with 198 posts can submit a sitemap and have Google report 78 URLs discovered. Zero errors, zero warnings — just a lower number than expected.
The usual cause is that Google is reading an Atom or RSS feed rather than the XML sitemap. Blog platforms generate both. The feed often caps at a lower number of entries than the sitemap does, and the platform may not make the difference obvious.
| File | Typical coverage | What to do |
|---|---|---|
| Atom / RSS feed (`/atom.xml`, `/feeds/posts/default`) | Often capped at 50–150 recent entries | Submit it, but do not rely on it alone |
| XML sitemap (`/sitemap.xml`) | Full post index, no cap | Submit this as well — Search Console accepts multiple sitemaps per property and merges them |
If the sitemap report shows a number lower than your post count, submit the XML sitemap alongside the feed and recheck after 48 hours. The combined count should move toward the real figure.
The decision the checklist avoids
Step 2 of the checklist says "find your niche." It does not say what to do when you have already published in five of them.
Most blogs that start without a plan end up with a site that looks like this:
| Cluster | Post count | Identity signal |
|---|---|---|
| Primary vertical | 40–50 | Strong — this is what you should be known for |
| Adjacent vertical | 20–30 | Moderate — supports the primary or competes with it |
| Legacy content | 80–120 | Negative — from a period before the site had a direction |
Google assesses a site's topical identity across the whole domain. A site where 40% of the content is current, focused analysis and 60% is legacy material from a different era gets a mixed signal — and mixed signals rank worse than consistent ones, even when the best posts are genuinely better than the competition.
The decision the checklist avoids is this: which vertical is the site for? Once you answer it, everything else follows — the navigation order, the homepage structure, the meta description, which legacy posts to keep and which to archive, and which cluster gets your next ten posts.
On a country-code domain, the decision is partly made for you. A `.com.ng` domain signals Nigeria before a visitor reads a word. A `.co.uk` signals the UK. A `.com` signals nothing and requires you to earn the association through content and backlinks. Whatever the domain is, the vertical it points at should be the one with the deepest coverage — not the one with the highest theoretical CPC.
The order to actually do this in
The checklist presents six steps as if they happen in sequence. In practice, the order that avoids the failures above is different.
| Phase | What to do | Why this order |
|---|---|---|
| Before launch | Decide the primary vertical and the domain. Set up `robots.txt`, sitemap, Search Console and the homepage structure for that vertical. | Retrofitting a vertical onto a general site is expensive. Retrofitting a `robots.txt` is not — but it costs two weeks of indexing if you miss it. |
| Week 1 | Fix every internal link to point at the canonical domain directly. Fix the theme's hardcoded URLs. Confirm the label pages' index status. | These are one-time fixes that get harder as the site grows. Doing them before the backlink push means the links land on clean architecture. |
| Week 2–4 | Request indexing on 10 key pages per day. Submit both the feed and the XML sitemap. Monitor Search Console's Pages report. | Indexing is a queue, not a switch. Ten per day is the pace that does not hit rate limits or look like spam. |
| Month 2 | Prune the legacy content. Draft or delete the posts that do not support the primary vertical. | This is the highest-leverage SEO action available on an established blog, and it requires no new writing. |
| Month 2–3 | Add the email capture. Build the pillar page for the primary vertical. Start the backlink outreach. | All three are worth doing, and all three are wasted if the site is not yet indexed. |
That sequence is unglamorous. It is also the difference between a blog that launches and a blog that ranks.
Frequently asked questions
Do I need WordPress to build an SEO-optimised blog?
No. WordPress is a reasonable default because the ecosystem is large and most SEO plugins are built for it, but Blogger, Ghost, Hugo and others can rank well. What matters is whether the platform lets you control `robots.txt`, canonical tags, meta descriptions, sitemap submission, URL structure and heading hierarchy. Blogger, for example, allows all six — but several of them are buried in settings that most users never open, which is how sites end up with a `robots.txt` pointing at the wrong domain.
How long does it take for a new blog to be indexed by Google?
The first page can appear in 24–48 hours if you submit a sitemap and manually request indexing. A full site of 80–200 posts typically takes 2–4 weeks to be substantially indexed. A site that has not been indexed at all after two weeks is usually blocked by something specific — most often a `robots.txt` sitemap directive pointing elsewhere, or a `noindex` tag applied globally in the theme.
Why does Search Console show fewer URLs discovered than I have posts?
Most often because Google is reading the Atom or RSS feed rather than the XML sitemap, and the feed caps at a lower number of entries. Submit the XML sitemap as a second sitemap in the same property. Search Console merges multiple sitemaps and reports the combined count.
Should I use a country-code domain like .com.ng or .co.uk?
A country-code domain signals a geographic market before a visitor reads anything, which is an advantage if that market is your primary audience and a friction if it is not. A `.com` signals nothing and requires you to earn the association through content and links. The decision should follow the vertical, not precede it: decide which market and topic you are building for, then pick the domain that reinforces it.
Do internal links matter that much?
Yes, and more than most checklists suggest. Internal links distribute authority across a site and tell Google which pages are related. A site where every internal link routes through a redirect spends part of its crawl budget on redirects rather than on discovering content, and passes authority through a chain rather than directly. On a blog with 80 posts and 5–10 links each, that is hundreds of redirect hops per crawl.
How often should I update old posts?
A quarterly cycle is a reasonable default for posts that still receive traffic. What matters more than frequency is that the update is substantive — changing the date alone, or fixing an internal link, should not reset the `lastmod` timestamp in your sitemap. Google reads `lastmod` as a signal that content changed materially, and a site where that signal is unreliable gets discounted across all its pages.
Is a fast theme enough for Core Web Vitals?
Not necessarily. Core Web Vitals measure real loading behaviour on real devices, and the most common cause of a failing score on an otherwise fast theme is unoptimised images — large header images, uncompressed JPEGs, and images without explicit width and height attributes causing layout shift. Compress images, set explicit dimensions, and lazy-load anything below the fold before you consider changing the theme.
What is the single highest-leverage SEO action on an established blog?
Pruning content that does not support the site's primary identity. Drafting or deleting 20 posts that do not belong improves the site's topical signal more than writing 20 new posts that do, because Google assesses identity across the whole domain and mixed signals rank worse than consistent ones.
Related reading on Dedon Tech: right of way: why Nigerian fibre costs more than it should · African language AI: the model exists. The data doesn't. · CBN open banking framework: what the rails do, and what they don't yet cover · full site map

0 Comments: