Skip to content
SERPCompass

XML sitemaps that are missing, unreadable or list the wrong pages

Publish an XML sitemap that lists every page you want in search results by its full https address, and nothing else: no redirects, error pages, pages whose canonical names another address, or pages robots.txt blocks. Name it in robots.txt with a Sitemap line, keep each file under 50,000 URLs and 50 MB, and submit it in Google Search Console and Bing Webmaster Tools.

Last updated 28 October 2026, when every step was checked against the vendor's documentation.

Why it matters

A sitemap is a file that lists the pages you want search engines to know about. Google says it helps them discover the URLs on a site, especially a large one, a new one with few links pointing at it, or one whose pages are not all linked to each other. It also says a sitemap does not guarantee that every listed page is crawled and indexed: submitting one is a hint.

Google adds that a small site, about 500 pages or fewer, that links to all its important pages may not need one. SERPCompass flags a missing sitemap as a warning anyway: most platforms below make one for you, you can submit it to Bing as well as Google, and it is the one list in which you tell search engines which pages count.

A sitemap only helps when search engines can trust it. Google asks for fully qualified URLs, only the canonical version of each page, UTF-8, and at most 50,000 URLs or 50 MB uncompressed per file. It uses lastmod only when the dates are consistently and verifiably accurate, and it ignores priority and changefreq. An entry that redirects, returns an error, is blocked by robots.txt or names another canonical tells search engines two different things about the same page.

SERPCompass looks for your sitemap in four places: every Sitemap: line in your robots.txt, then /sitemap.xml, /sitemap_index.xml and WordPress's /wp-sitemap.xml. A sitemap anywhere else that robots.txt does not name is reported as missing, even if you submitted it in Search Console.

The audit findings this guide fixes: No XML sitemap found; Sitemap files that cannot be read; Sitemap lists URLs that are not live pages; Sitemap lists canonicalised URLs; Sitemap entries or files on another domain; Sitemap entries that are not full URLs; Sitemap lists URLs blocked by robots.txt; Indexable pages missing from the sitemap; Sitemap files over the protocol limits; Sitemap lastmod dates that are invalid or in the future.

Find every page with this problem

Run the free scan on your domain. It reads your robots.txt and every sitemap it names, tries /sitemap.xml, /sitemap_index.xml and /wp-sitemap.xml, follows sitemap index files (up to 40 sitemap files), and compares the entries with the pages it crawls: which redirect or fail, which name another canonical, which robots.txt blocks for Googlebot, and which indexable pages no sitemap lists. It checks that last one only when it could read every sitemap file. It shows your most urgent findings with the number of pages each affects; the Gap Report and a SERPCompass workspace list the affected URLs themselves. Search Console's Sitemaps report shows how Google read each file you submitted.

Scan my site free

How to fix it on your platform

Image, video and news sitemaps, and hreflang annotations in sitemaps, are not covered here; noindex pages listed in a sitemap are in the noindex guide.

WordPress (no SEO plugin)

  1. WordPress 5.5 and later publishes a sitemap index at /wp-sitemap.xml, listing your public post types and taxonomies, author archives and home page, up to 2,000 URLs per sitemap. Open it in a browser to check it loads.
  2. WordPress names the sitemap index in the robots.txt it generates. It generates that file only while there is no robots.txt file in your site's root: if you have uploaded one, add Sitemap: https://www.example.com/wp-sitemap.xml to it, with your own domain. Search engines find the sitemap through that line or through Search Console; SERPCompass also checks /wp-sitemap.xml directly.
  3. If Settings > Reading has Discourage search engines from indexing this site ticked, WordPress turns its sitemaps off. Untick it and click Save Changes if the site should be in search results.
  4. WordPress lists the URLs only, with no lastmod. A developer can leave out a whole post type with the wp_sitemaps_post_types filter.

Sources: New XML sitemaps functionality in WordPress 5.5 (Make WordPress Core); Settings Reading screen (WordPress documentation); The robots.txt file in Yoast SEO (Yoast).

WordPress with Yoast SEO

  1. Turn off any other sitemap plugin and delete any sitemap file you uploaded yourself, as Yoast asks.
  2. In the WordPress menu, go to Yoast SEO > Settings > Site features and, under Technical SEO, turn XML sitemaps on. Click View the XML sitemap to open it: its index is sitemap_index.xml at your domain's root, one of the addresses SERPCompass checks.
  3. Content types set not to show in search results (noindex) are left out of the sitemap automatically.
  4. To name it in robots.txt, go to Yoast SEO > Tools > File Editor. With no robots.txt, click Create robots.txt file: Yoast's default includes Sitemap: https://www.example.com/sitemap_index.xml with your domain. If the file already exists, check that it has that line.
  5. Submit it in Google Search Console: open Sitemaps under Index, type sitemap_index.xml under Add a new sitemap and click Submit.

Sources: XML sitemaps in the Yoast SEO plugin (Yoast); The robots.txt file in Yoast SEO (Yoast); Submit your sitemap to search engines (Yoast).

WordPress with Rank Math

  1. With Rank Math's Sitemap module in use, hover over Rank Math in the WordPress menu and click Sitemap Settings.
  2. Your sitemap index is at https://yourdomain/sitemap_index.xml, one of the addresses SERPCompass checks; each content type's tab shows its own sitemap URL at the top.
  3. On each content type's tab (Posts, Pages, Attachments, Products, Categories, Tags and so on), turn Include in Sitemap off for the types you do not want in search results.
  4. On the General tab, enter the IDs of single posts or terms to leave out in Exclude Posts or Exclude Terms, separated by commas. Links Per Sitemap sets the URLs per file; Rank Math recommends 200, well under the 50,000 limit.

Source: How to configure sitemaps in Rank Math (Rank Math).

Shopify

  1. Shopify generates sitemap.xml at the root of each of your store's domains. It links to separate sitemaps for products, collections, blogs and pages, and updates itself when you add them.
  2. If your store is in private mode, nothing can read the sitemap: turn private mode off when the store should be found.
  3. On the Basic plan or higher, each international domain gets its own sitemap. A domain you do not use for international targeting should redirect to your primary domain.
  4. In Google Search Console, add a URL-prefix property for your domain and verify it, open Indexing > Sitemaps, enter sitemap.xml under Add a new sitemap and click Submit. Repeat for each international domain.

Source: Finding and submitting your sitemap (Shopify Help Center).

Wix

  1. Wix keeps a sitemap index at /sitemap.xml on your domain and updates it whenever you change the site. Open it in a browser to check it loads.
  2. If you connect the site to Google Search Console through the Wix SEO Setup Checklist (it needs a Premium plan and a connected domain), Wix submits the sitemap to Google for you.
  3. Otherwise, in Google Search Console choose your site, open Sitemaps, enter sitemap.xml and click Submit. In Bing Webmaster Tools, open Sitemaps, click Submit sitemap, enter the full URL and click Submit.

Sources: Understanding Your Site's Sitemap File (Wix Help Center); Submitting Your Sitemap and URLs Directly to Search Engines (Wix Help Center).

Squarespace

  1. Squarespace generates https://www.yourdomain.com/sitemap.xml for you, and you cannot edit it. Changes usually show within an hour and can take up to 24 hours.
  2. If the site is private or password protected, set its availability to Public, or the sitemap does not load. Trial sites and parking pages have none.
  3. To keep a page out of the sitemap, disable it, password-protect it or hide it from search: Squarespace leaves those pages out.
  4. In Google Search Console's Sitemaps report, enter the sitemap URL under Add a new sitemap and click Submit.

Sources: View your site map (Squarespace Help Center); Sitemaps report (Search Console Help).

Plain HTML

  1. Write a UTF-8 XML file with a <urlset> element and one <url> holding a <loc> for each page. Each <loc> is the page's full URL, starting with https:// and the host, with & written as &amp;.
  2. List only the canonical version of each page, the URL that answers 200: no redirects, error pages, pages whose canonical names another URL, or pages robots.txt blocks.
  3. Keep each file to 50,000 URLs and 50 MB uncompressed. For more, split the URLs into several files and list those in a sitemap index (<sitemapindex>) on the same site, in the same directory or below.
  4. Add <lastmod> only if you can keep it accurate: the date of the page's last significant change in W3C Datetime format, such as 2026-10-28 or 2026-10-28T09:30:00+05:30.
  5. Upload it to the root of the site, such as https://www.example.com/sitemap.xml, so it may list any page of the site, and keep every entry on that same host.
  6. Name it in robots.txt by its full URL: Sitemap: https://www.example.com/sitemap.xml.
  7. Submit it in Google Search Console's Sitemaps report, and check the status it shows: Success, Has errors or Couldn't fetch.

Sources: Sitemaps XML format (sitemaps.org); Build and submit a sitemap (Google Search Central); Manage your sitemaps with a sitemap index file (Google Search Central); How Google interprets the robots.txt specification (Google Search Central); Sitemaps report (Search Console Help).

Examples

  • Bad
    Sitemap: /sitemap.xml

    A robots.txt line with a path, not a full URL. Google requires a fully qualified URL here, and SERPCompass reports the line as a robots.txt problem.

  • Bad
    <url>
      <loc>/menu/</loc>
    </url>

    A relative entry: the protocol requires the full URL, so search engines skip it.

  • Bad
    <url>
      <loc>http://example.com/menu</loc>
      <lastmod>28/10/2026</lastmod>
    </url>

    On a site served at https://www.example.com/, this http:// address redirects, and the date is not in W3C Datetime format.

  • Good
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
      <url>
        <loc>https://www.example.com/</loc>
        <lastmod>2026-10-28</lastmod>
      </url>
      <url>
        <loc>https://www.example.com/menu/</loc>
      </url>
    </urlset>

    Full, final URLs on the site's own host; lastmod only where it is known.

  • Good
    <?xml version="1.0" encoding="UTF-8"?>
    <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
      <sitemap>
        <loc>https://www.example.com/sitemap-pages.xml</loc>
      </sitemap>
      <sitemap>
        <loc>https://www.example.com/sitemap-products.xml</loc>
      </sitemap>
    </sitemapindex>

    A sitemap index for a site with more URLs than one file may hold.

  • Good
    User-agent: *
    Disallow:
    
    Sitemap: https://www.example.com/sitemap_index.xml

    robots.txt naming the sitemap by its full URL.

Common mistakes

  • Writing the robots.txt Sitemap: line as a path (Sitemap: /sitemap.xml). Google requires the full URL there.
  • Keeping the sitemap at an unusual address and only submitting it in Search Console: search engines you have not submitted it to, and SERPCompass, look for it in robots.txt.
  • Running two sitemap generators at once, such as an SEO plugin and an old sitemap file you uploaded, so different files list different pages.
  • Listing the http:// or non-www version of each URL when the site redirects to https:// or www, so every entry redirects.
  • Leaving deleted or moved pages in a hand-made sitemap.
  • Listing pages from another domain or subdomain. A sitemap may list only URLs on its own host unless you prove you own the other one, so a blog on its own subdomain usually gets its own sitemap.
  • Setting every lastmod to the day the file was rebuilt. Google uses lastmod only when it is consistently and verifiably accurate, for significant changes to the page.
  • Expecting the sitemap to get pages indexed. Google calls it a hint: the page still has to be worth indexing.

Questions and answers

Does every website need an XML sitemap?

Not strictly. Google says a small site, about 500 pages or fewer, whose important pages are all linked from each other may not need one. Most platforms make one automatically, and it is the one list in which you tell search engines which pages count, so SERPCompass flags a missing sitemap on every site.

Where should the sitemap file go?

At the root of the site, such as example.com/sitemap.xml, named by its full URL in robots.txt. Google says a sitemap at the root can cover every page of the site, while one in a subdirectory covers only that directory unless you submit it in Search Console.

Should I list every page in my sitemap?

List every page you want in search results, and only those: the canonical URL of each, answering 200 and allowed by robots.txt. Leave out redirects, error pages, pages that name another canonical, and filtered or internal search pages. SERPCompass reports indexable pages it crawled that no sitemap lists.

What does Couldn't fetch mean in Search Console?

Google says it could not retrieve the sitemap file itself. It names a robots.txt block, an unresolved manual action or a 404 among the causes. Open the sitemap's address in a browser, check that it loads and that robots.txt does not block it, and check that you typed the address you submitted correctly.

Do I need to resubmit the sitemap after every change?

Platforms that generate the sitemap, such as WordPress, Shopify, Wix and Squarespace, update it themselves, and Wix says there is no need to submit it again after changes. A hand-made sitemap has to be updated by you or your build whenever pages are added, moved or removed.

Start with a free scan of your site.

Two to five minutes, no account. You get your three most urgent findings, and the exact count of everything else.

Free, 2–5 minutes, no account needed.