Go-Live Clearance

Discovery · sitemap.xml

Sitemap Checker

No sitemap means Google finds your pages by crawling links — slowly. A broken sitemap means Google ignores it entirely. Paste your URL — we check /sitemap.xml and the Sitemap: line in robots.txt, then stamp CLEARED / HOLD / DENIED.

Sitemap problems we catch

These look fine until you wonder why Google still has not indexed your pages weeks after launch.

  • No sitemap found (404 on common paths)

    /sitemap.xml, /sitemap_index.xml, and robots.txt Sitemap: line all return nothing. Discovery is crawl-dependent only.

  • Sitemap returns soft 404 or empty XML

    The URL exists but serves an HTML error page or an empty <urlset>. Google drops it silently.

  • Sitemap URLs point at preview / wrong domain

    Every <loc> contains *.vercel.app or a staging host. Google indexes the wrong origin.

  • Sitemap has noindex pages

    URLs in the sitemap are blocked by noindex meta or X-Robots-Tag. Contradictory signals waste crawl budget.

  • Sitemap not declared in robots.txt

    Crawlers can find it by convention (/sitemap.xml), but the official Sitemap: line in robots.txt is missing.

Next.js sitemap fixes

Use App Router sitemap generation — never hand-write XML.

app/sitemap.ts — auto-generated sitemap

import type { MetadataRoute } from 'next'

export default function sitemap(): MetadataRoute.Sitemap {
  return [
    {
      url: 'https://yourdomain.com',
      lastModified: new Date(),
      changeFrequency: 'weekly',
      priority: 1,
    },
    {
      url: 'https://yourdomain.com/about',
      lastModified: new Date(),
      changeFrequency: 'monthly',
      priority: 0.5,
    },
  ]
}

app/robots.ts — declare sitemap location

import type { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {
  return {
    rules: { userAgent: '*', allow: '/' },
    sitemap: 'https://yourdomain.com/sitemap.xml',
  }
}

Still check by hand

  • Submit sitemap URL in Google Search Console after domain verification
  • Confirm <loc> URLs use the production domain, not preview hosts
  • Re-submit sitemap whenever you add significant new pages

Related