Your XML sitemap belongs in the root directory of your domain, accessible at yourdomain.com/sitemap.xml. This is the standard convention search engines expect, and it makes submission straightforward in Google Search Console and Bing Webmaster Tools. If you run WordPress with Yoast or RankMath, the plugin creates this file automatically. For custom builds or static sites, you'll need to generate the sitemap manually or via build scripts and upload it to your public root folder. Once the file is live, verify it loads without errors by visiting the URL directly in a browser. You should see XML markup listing your URLs, not a 404 or server error. Then submit the sitemap URL in Search Console under the Sitemaps report. Google doesn't require submission to crawl your site, but it speeds up discovery of new pages and gives you diagnostic data on indexing issues. For large sites exceeding 50,000 URLs or 50 MB uncompressed, split into multiple sitemaps and reference them in a sitemap index file at sitemap.xml. For example, sitemap-posts.xml, sitemap-pages.xml, sitemap-products.xml. The index lists each child sitemap, and you submit only the index URL to Search Console. This keeps individual files manageable and lets you update sections independently. Common mistakes: blocking the sitemap in robots.txt, placing it in a subdirectory without updating Search Console, or including noindexed URLs. At Ottawa SEO, we audit sitemap accessibility during every technical SEO engagement because a broken or hidden sitemap wastes months of potential indexing signals. We also check that the sitemap includes only canonical URLs and omits redirects, 404s, or pages with noindex tags. Dynamic sitemaps via server-side generation are fine as long as the URL remains consistent and returns proper XML headers. If you're running a headless or JavaScript-heavy site, ensure the sitemap reflects the final rendered URLs, not fragment identifiers or hash routes that Google can't index.