All posts

My SEO Setup Checklist

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.

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.xml if 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.