How to Build a Responsive, SEO-Optimised Blog in 2026: The Checklist, and What It Leaves Out

Last updated: November 2026 · Reading time: about 11 minutes

A blogger looking at a laptop screen showing a search results page with no results found, illustrating the gap between a technically complete blog and one that actually ranks in 2026
Quick answer The six-step checklist — fast hosting, keyword research, clean structure, good content, technical SEO, converting design — is correct and it is also table stakes. Every freelancer and agency publishes it. It does not explain why a blog that has ticked all six boxes can sit at zero indexed pages for two weeks. What actually determines whether a blog ranks is not the six steps. It is whether the plumbing between them works: the `robots.txt` that points at the wrong sitemap, the internal links that route through redirects, the label pages that default to `noindex`, the Atom feed that caps at 78 URLs while the sitemap has 198, and the domain migration that costs 20% of traffic for a month. This post covers both — the checklist, and the six things that actually break in practice.

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

The six-step blog checklist and where each step actually fails in practice Six columns representing the standard blog checklist: foundation, niche, structure, content, technical, design. Beneath each, the failure mode that the checklist does not mention: wrong robots.txt sitemap directive, zero search volume niche, internal links through redirects, thin content at scale, noindex label pages, and a feed that caps below the sitemap count. The Checklist, and Where It Actually Breaks Six steps. Six failure modes the guides do not mention. 2026 STEP 1 Foundation Fast, secure, mobile-responsive platform. BREAKS AT robots.txt still points at the old domain's sitemap. Google follows it and ignores you. STEP 2 Niche Low-competition, high-intent keywords. BREAKS AT Five competing niches, one domain. Google cannot tell what the site is about. STEP 3 Structure URLs, headings, meta, internal links, sitemap. BREAKS AT Every internal link still points at the old domain. Each click is two requests. STEP 4 Content Researched, original, solves a problem. BREAKS AT 100 legacy posts diluting 50 good ones. The signal gets averaged down. STEP 5 Technical Schema, Core Web Vitals, crawl budget. BREAKS AT Label and search pages ship with noindex. Category pages never rank. STEP 6 Design Clean, trustworthy, turns visitors into followers. BREAKS AT No email capture. The design converts a visit into nothing durable. Six steps that take a week. Six failure modes that take a month to diagnose. The checklist gets you a site that looks right. These failures are why it does not rank. Every one of them is silent. None produces an error message. dedontech.com.ng

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.

How to check in 30 seconds: open `yourdomain.com/robots.txt` in an incognito window. If the sitemap lines do not point at the domain you are trying to rank, that is the problem. Fix it in Blogger under Settings → Crawlers and indexing → Custom robots.txt, and make sure the toggle is switched to enable the custom file. Blogger silently reverts to the default if it is not.

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.

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.

Why this matters more than it looks: Google allocates a crawl budget to every site. Every redirect consumes part of it. A site where every internal link routes through a 301 is spending its budget on redirects rather than on discovering new content — and it passes internal link equity through a chain rather than directly.

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:

  1. 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.
  2. 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 uncomfortable arithmetic: publishing one more strong post in your primary vertical does less for your site's ranking than drafting ten legacy posts that do not belong. The improvement is not additive — it changes what proportion of the domain supports the identity you are trying to build.

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.

Disclaimer: This article is general information about building and optimising a blog as of November 2026. It is not a guarantee of ranking outcomes, and search engine algorithms change frequently. Platform behaviour described here — including Blogger's `robots.txt` handling, label page defaults and sitemap generation — reflects observed behaviour at the time of writing and may change. Verify current behaviour against your platform's documentation and Google's Search Central guidance before making structural changes.
About the author
Amedu Danjuma is a technology specialist and analyst based in Nigeria, evaluating business software since 2016. He writes about legal technology, insurance technology and fintech for Dedon Tech, focusing on pricing structures, feature gaps and the difference between what a product does and what its marketing says it does. Product and compliance claims are checked against primary sources, and the editorial policy explains that process.

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: