Should a small site have a sitemap.xml?
A missing sitemap.xml means search engines find your pages only by following links, so anything shallowly linked or orphaned can stay invisible for a long time. A sitemap is a simple UTF-8 XML file that lists the URLs you want indexed. The protocol is small, and the payoff is faster, more complete discovery.
Why this matters
The sitemaps.org protocol defines a compact XML vocabulary: a urlset root that declares the namespace, one url entry per URL, and a required loc child inside each. It also sets hard limits, no more than 50,000 URLs and no larger than 50 megabytes per file, and requires UTF-8 encoding with fully qualified absolute URLs rather than relative paths. Google's build guidance echoes all of this and adds that submitting a sitemap is a hint, not a guarantee, and that the lastmod value is used only when it is consistently accurate. For a small marketing site or documentation set, a sitemap is cheap insurance against pages that are valid but unreachable through navigation. It is also the cleanest way to tell crawlers which of several near-duplicate URLs is the canonical one to index. A sitemap gives you a defensible list of the URLs you consider important, which makes later audits, redirects, and migrations far easier to reason about.
How to fix it
Author the file by hand for a small site. Begin with the XML declaration, open a urlset with the standard namespace, and add one url block per page.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2026-01-15</lastmod>
</url>
<url>
<loc>https://example.com/pricing</loc>
</url>
</urlset>
Place the file at the site root, for example /sitemap.xml, because a sitemap affects only descendants of its own directory unless you submit it through a search console. Then announce it by adding a Sitemap line to your robots.txt, which the protocol says is independent of the user-agent line and may appear anywhere in the file.
Sitemap: https://example.com/sitemap.xml
If the site grows past 50,000 URLs or 50MB, split it into multiple files and list them in a sitemap index rather than trying to keep one file under the limit.
How to verify the fix
Confirm the file is served as XML at the expected path. A healthy response returns 200 and an XML content type.
curl -sI https://example.com/sitemap.xml
curl -s https://example.com/sitemap.xml | grep -c '<loc>'
The first command checks status and content type; the second counts the loc entries so you can confirm the expected number of URLs and, more importantly, that the document parses. If a validator or the search console rejects it, the usual causes are a missing namespace or unescaped ampersands in query-string URLs. Submit the file through your search engine's console as well, so you can attribute processing warnings and crawl errors to it directly.
Automated check
The Auditor reports no sitemap.xml as a Low-severity finding. It requests /sitemap.xml and, where present, checks that the response is well-formed XML with a urlset root. It reports whether the file exists and parses, so you know the entry point is sound.
Scan your app free โ