I always knew what SEO stood for, but figuring out how to actually "do" SEO felt like a scavenger hunt.
One minute I was creating a robots.txt file, the next I was verifying my site in Google Search Console, then jumping back into my codebase to add an HTML tag. Every time I thought I was finished, I'd discover another task I hadn't accounted for.
To make things less scattershot for future projects, I put together the SEO checklist I wish I had.
This post shares that checklist, along with code examples and notes on why each step matters.
The Checklist
The steps in this checklist help search engines crawl pages (discover them) and index their contents (understand and store them). Some of these steps can also improve how pages appear in search results, but rankings ultimately depend on the quality and relevance of the content itself.
The checklist is organized into four sections, grouping tasks by implementation type to reduce context-switching.
| Update the HTML Head | |
| 1. Title Tag | link |
| 2. Canonical URL | link |
| 3. Structured Data (JSON-LD) | link |
| Create Search Engine Files | |
| 4. Sitemap.xml | link |
| 5. Robots.txt | link |
| Scan for Common Pitfalls | |
| 6. Accidental Noindex | link |
| 7. Orphaned Pages | link |
| 8. URL & Link Issues | link |
| Register with Search Engines | |
| 9. Google Search Console | link |
| 10. Bing Webmaster Tools | link |
Update the HTML Head
These are changes made to each page's HTML <head>. In many frameworks, they can be centralized in a shared layout or
template.
1. Title Tag
Add a <title> tag to the HTML <head> to define a concise, descriptive page title. Search engines use
this during indexing, and typically display it as the clickable headline
in search results.
<!-- Bad: generic -->
<title>Blog Article</title>
<!-- Good: descriptive -->
<title>Understanding SQL Window Functions</title> Recommended: Also add a
<meta name="description"> in the HTML
<head> to display a page description beneath the
page title in search results:
<meta
name="description"
content="Portfolio projects, technical blog posts, and experiments in web development."
/>
Although the <meta name="description"> isn't directly
used for SEO rankings, it can improve click-through rates by giving
readers more context before they click.
2. Canonical URL
Add a <link rel="canonical"> tag to the HTML
<head>. This specifies a single URL to be
used for indexing.
<link
rel="canonical"
href="https://example.com/page.html"
/> Without a canonical URL, search engines may treat duplicate URLs as separate pages, splitting indexing signals instead of consolidating them.
Common cases of duplicate URLs include www vs non-www, trailing slash differences, or http vs https versions of the same page.
3. Structured Data (JSON-LD)
Add a <script type="application/ld+json"> block
to the HTML
<head>. This describes the page in a
standardized JSON-LD format that search engines use during
indexing.
Different page types (such as articles or personal profiles) require different fields and values to describe their content. Refer to Google Search Central's documentation for supported types and code samples.
The structured data for this blog post is:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "My SEO Setup Checklist",
"description": "10-step checklist to help search engines crawl and index a website.",
"url": "https://nikhilnathwani.com/blog/seo-setup-checklist.html",
"datePublished": "2026-05-28",
"author": {
"@type": "Person",
"name": "Nikhil Nathwani",
"url": "https://nikhilnathwani.com"
}
}
</script> Create Search Engine Files
These files are served from the site's root and are used by search engine crawlers.
4. Sitemap.xml
Create a sitemap.xml file in the site's root. This lists
the site's pages so search engines can discover them more easily.
Update the sitemap when pages are added to or removed from the site.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<!-- URL of the page -->
<loc>https://nikhilnathwani.com/</loc>
<!-- Date the page was last modified -->
<lastmod>2026-05-30</lastmod>
</url>
<!-- Adding this blog post to the sitemap -->
<url>
<loc>https://nikhilnathwani.com/blog/seo-setup-checklist.html</loc>
<lastmod>2026-07-06</lastmod>
</url>
<!-- Additional entries -->
</urlset> 5. Robots.txt
Create a robots.txt file in the site's root. This defines
rules for search engine crawlers and tells them where to find the
sitemap.
# Target all crawlers (e.g. Googlebot, Bingbot)
User-agent: *
# Allow crawling of the entire site
Allow: /
# Example of hiding a directory from crawlers
Disallow: /admin/
# Location of the sitemap
Sitemap: https://domain.com/sitemap.xml Scan for Common Pitfalls
These checks prevent common issues that can interfere with crawling and indexing.
6. Accidental Noindex
Check that no pages meant to be indexed contain a noindex directive.
<!-- Prevents the page from appearing in search results -->
<meta name="robots" content="noindex" /> 7. Orphaned Pages
Check that all pages are reachable from at least one other page on the site. Pages with no internal links pointing to them are called "orphaned" pages and may be missed by search engine crawlers.
8. URL & Link Issues
Check that URLs and link text are descriptive. This helps search engines better understand page content and site structure.
URLs should also be concise, lowercase throughout, and use hyphens (not underscores) to separate words.
<!-- Less ideal -->
<a href="/blog/SEO_Article">
click here
</a>
<!-- Better URL and link text -->
<a href="/blog/seo-setup-checklist">
My SEO Setup Checklist
</a> Register with Search Engines
Once the site is live, register it with Google Search Console (GSC) and Bing Webmaster Tools. They help search engines discover the site more quickly and provide tools to monitor indexing progress.
9. Google Search Console
- Go to search.google.com/search-console and sign in with a Google account
- Add the site and follow the prompts to verify site ownership
-
Open Sitemaps and submit the site's
sitemap.xml - Use URL Inspection to request indexing for newly published pages
The sitemap only needs to be submitted once. Google will periodically revisit it to discover updates.
10. Bing Webmaster Tools
- Go to bing.com/webmasters and sign in with a Microsoft account
- Select Import from Google Search Console
- Follow the prompts to verify site ownership
-
Submit the site's
sitemap.xmlif it was not imported automatically
Wrapping Up
Most of this checklist is a one-time setup. Once it's complete, the only ongoing maintenance is updating the sitemap as pages are added or removed.
From here, the best SEO investment is creating content that people find valuable. This checklist will make it easier for search engines to discover and understand it.