A Technical SEO Checklist for Every New Site

A Technical SEO Checklist for Every New Site

Three months after launch, a site has had no visitors at all from Google. The pages are good. Somebody was even paid for “SEO”. The actual problem usually takes two minutes to find, and it is often this: the site was built on a staging URL with the “Discourage search engines from indexing this site” checkbox ticked, and nobody unticked it at launch. Every page carried a noindex tag. Google looked, was told to go away, and obliged. What makes that failure so expensive is that it has no symptom. The site loads, the design is fine, the content is there, and the only evidence is an absence. Which is the whole argument for running a fixed checklist on new sites before anyone writes a word about keywords. Technical SEO is not clever. It is a list of ways a site can accidentally hide, and a routine for checking that it is not doing any of them.

what this checklist can and cannot do

Comparison: technical SEO helps pages get found and indexed once under the right URL; it does not create rankings or rescue thin content.
It removes obstacles. Good pages still have to do the rest.

Let me set expectations honestly, because the industry around this is full of promises. Technical SEO removes obstacles. It does not manufacture rankings. A perfectly configured site with thin, generic pages will sit at the bottom of the results with an immaculate sitemap.

What the work does buy you is that your good pages get found, get indexed under the right URL, and are not competing against three duplicate copies of themselves. Think of it as clearing the road rather than building the car.

first: can it be crawled and indexed at all

Four crawlability checks: turn off WordPress search engine discouragement, check the page source for noindex, read robots.txt, and use Search Console URL Inspection.
This is where the embarrassing failures live, often the one checkbox.
robots.txt allowing all crawlers except /wp-admin/, allowing admin-ajax.php, and declaring the sitemap at /wp-sitemap.xml.
A disallow copied from a tutorial can quietly block your images or theme assets.

This is where the embarrassing failures live, so it goes first. In WordPress, check Settings, Reading, and make sure search engine discouragement is off. Then look at the actual output rather than trusting the setting: view the page source and search for noindex. SEO plugins have their own per-post and per-archive controls, and they can override what you expect.

Next, read your robots.txt at the domain root. A disallow line copied from a tutorial can block your uploads folder, which stops images being indexed, or block a directory your theme needs for rendering. Keep it boring.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://example.com/wp-sitemap.xml

Then verify the site in Google Search Console and use the URL Inspection tool on your homepage and two inner pages. It tells you whether Google can fetch the page, whether it is indexed, and which canonical it chose. That last field settles in seconds what otherwise takes hours of guessing.

submit one sitemap, not two

WordPress generates a sitemap at /wp-sitemap.xml on its own, and most SEO plugins replace it with their own version. Either is fine; having two competing sitemaps is not. Decide which is authoritative and submit that single URL in Search Console.

A sitemap is a suggestion, not an instruction. It helps discovery on a new site with few inbound links, which is exactly the situation you are in at launch. What it will not do is force indexing of pages Google has judged thin. If the Pages report lists URLs as “Discovered – currently not indexed” for weeks, the sitemap is not your problem.

one canonical host, one protocol

Flow: three address variants with and without www and HTTPS each permanently redirect to the single canonical https://example.com.
Leaving all four live splits every signal four ways.
Terminal: curl -sSI for the http and www variants shows location headers pointing to https://example.com/.
Re-run after any host move. Redirect rules are the files that get left behind.

Your site can be reachable at four addresses: with and without www, over HTTP and HTTPS. Pick one and make the other three redirect to it with a permanent redirect. Leaving them all live splits signals and makes your analytics lie to you.

Set the WordPress Address and Site Address under Settings, General to the exact form you chose, including the protocol. Then test it at the server level, because a plugin doing the redirect in PHP is slower and easier to break than a rule in the web server.

# confirm each variant ends at one URL with a 301
curl -sSI http://example.com | grep -i '^location'
curl -sSI https://www.example.com | grep -i '^location'

If you have just changed hosts, re-run these. Redirect rules live in server config or .htaccess, and those are exactly the files that get left behind in a move. The sequence in moving a WordPress site without downtime includes this check for that reason.

titles, descriptions and heading order

Heading hierarchy: one h1 per page, h2 for sections and h3 nested beneath them.
Page builders love an h3 above an h2 because it looked better. Fix the style, not the level.

Every page needs a title that is unique, readable, and front-loads what the page is actually about. Meta descriptions do not affect ranking directly, but they are frequently the text a person reads before deciding to click, so they earn their five minutes. Write them per page; leaving a plugin to generate them all from a template produces the same sentence forty times.

Headings are a structure, not decoration. One h1 per page, usually the post title, and then h2 for sections with h3 nested underneath. Page builders love to emit an h3 above an h2 because it looked better, and that confuses both crawlers and screen readers. Fix the order and use CSS for the size.

internal linking is the part people skip

Flow: after publishing, edit two or three older posts to link to the new page with descriptive anchor text so crawlers discover and value it.
Internal links are the part entirely within your control.

A new page with no links pointing at it is nearly invisible. Internal links are how crawlers find your pages and how they judge which ones you consider important, and they are entirely within your control, unlike backlinks.

My working rule is simple: nothing counts as published until two or three older posts have been edited to link to it, using descriptive anchor text rather than “click here”. Every page on the site should be reachable from the homepage in three clicks or fewer. If you are still planning your site’s structure, the layout advice in my beginner’s guide to building a site in India is where I would start.

images, alt text and thin pages

Alt text exists for people using screen readers first and search engines second. Describe what the image shows. If the image is decorative, leave the alt attribute empty rather than stuffing it with keywords. Also give images sensible filenames before upload, because IMG_20260214.jpg tells nobody anything.

Then hunt for pages that should not be indexed at all. WordPress generates plenty of them: tag archives with one post, author archives on a single-author blog, attachment pages, and paginated comment URLs. Each is a thin near-duplicate. Set the archives you do not use to noindex in your SEO plugin, redirect attachment pages to their parent (WordPress 6.4 and later turns them off on new installs, so this mostly matters on older sites), and keep the indexable surface of your site to pages a human would want to land on. Slow pages hurt here too, which is the argument in making WordPress fast on Indian broadband.

structured data worth adding

Table of structured data types: Article, LocalBusiness, Product and Breadcrumb worth adding; FAQPage no longer shown; Review only with care.
Test with the Rich Results Test. Invalid markup is worse than none.

Structured data describes your page in a format search engines can parse, and occasionally earns you a richer result. It is not magic and it does not lift rankings by itself. Add what genuinely matches your content and skip the rest.

TypeUse it whenWorth it?
ArticleBlog posts and newsYes, most plugins add it
LocalBusinessYou have a physical addressYes, for any Indian shop or service
ProductReal products with a price and stockYes, if accurate
FAQPageGenuine questions and answersNo: Google stopped showing FAQ rich results in 2026
BreadcrumbNested categoriesYes, cheap to add
ReviewReviews you did not write about yourselfCareful, misuse invites penalties

Whatever you add, test it with Google’s Rich Results Test. Invalid markup is worse than none, because it looks like an attempt to describe something you did not.

the mobile pass, and one more thing at launch

Indexing is mobile-first, so open the site on an actual phone, not a narrow browser window. Check that tap targets are not stacked on top of each other, that text is readable without pinching, that nothing overflows sideways, and that your cookie or newsletter popup can be dismissed with a thumb.

Last, send yourself a message through the contact form and confirm it arrives. Plenty of sites rank respectably for a year while every enquiry silently vanishes into a spam folder, which is a strange kind of success. The fix is in why your contact form email never arrives.

common mistakes

Four technical SEO mistakes: blocking CSS or JavaScript, running two SEO plugins, changing permalinks without redirects, and never testing the contact form.
Check the site on an actual phone. Indexing is mobile-first.
  • Blocking CSS or JavaScript folders in robots.txt, so Google renders a broken version of your page.
  • Running two SEO plugins. They fight over canonical tags and titles, and the output is unpredictable.
  • Changing permalink structure after launch without redirects, then wondering where the traffic went.

FAQ

How long before a new site shows up in Google?

Days for the homepage, often weeks for the rest, and there is no way to hurry it meaningfully. Submitting a sitemap and requesting indexing for a few important URLs helps discovery. After that, the pace depends on whether anything links to you and whether the pages look worth storing. Patience is cheaper than any service promising speed here.

Do I need a paid SEO plugin?

No. The free tiers of the popular plugins cover titles, descriptions, canonical tags, sitemaps and noindex controls, which is everything on this list. Paid versions mostly add workflow features and internal-link suggestions. If you want less code on your site, modern WordPress handles sitemaps natively and a small plugin can do the rest.

WWW or no WWW, and does .in hurt me?

The www question has no ranking answer: pick one, redirect the other, never revisit it. As for the domain, a .in or .co.in site is not penalised, and it can help clarify that you serve Indian customers. Just do not switch domains casually once you have started, because every change costs you a little.

Is my old content being ignored because of technical issues?

Check before you believe it. Open Search Console’s Pages report and read the reasons given for excluded URLs. “Duplicate without user-selected canonical” or “Blocked by robots.txt” are technical and fixable. “Crawled, currently not indexed” usually is not technical at all, and means the page needs to be better rather than differently configured.

None of this is difficult, which is exactly why it gets skipped and why skipping it is so expensive. Run the list once at launch, once a quarter, and always after you change hosts or themes.

Update history: FAQPage markup no longer earns a rich result, and the attachment-page and Search Console wording now matches current WordPress and Google behaviour.

Sources