Pages in My Sitemap Don't Appear in Search Console (2026)

Sitemap.xml is submitted, the URLs are clearly listed, but Search Console's Pages report shows none of them. Causes and fixes.

sitemap.xml returns 200 with 800 URLs listed, Search Console → Sitemaps shows “Success” — but the Pages report only shows 50 URLs, and the other 750 are nowhere.

Sitemap “Success” only means Google could read the XML file, not that it accepted all URLs inside. Below are the common causes and ways to verify each.

Symptoms

  • sitemap.xml returns 200 and lists URLs
  • Search Console sitemap status “Success”
  • Pages report shows 0 discovered URLs, or only a fraction
  • “Discovered URLs” count far below actual sitemap URL count

Quick verdict

Either the sitemap is malformed in a way Google silently tolerates, or the URLs in it don’t match the canonical URLs Google has decided on, or the sitemap was uploaded under a different property than the one you’re looking at.

Common causes

1. Sitemap uses http but site is https (or vice versa)

<url><loc>http://yourdomain.com/page/</loc></url>

But your site is actually https. Google matches strictly by string, ignores mismatched URLs.

How to confirm:

curl -s https://yourdomain.com/sitemap.xml | grep "<loc>" | head -5
# Every URL must be https://

2. Trailing slash inconsistency

<url><loc>https://yourdomain.com/article</loc></url>

But your canonical is https://yourdomain.com/article/ (with slash). Google treats them as different URLs; the sitemap one is ignored.

How to confirm: Sample 5 sitemap URLs, compare with each page’s canonical:

for url in $(curl -s https://yourdomain.com/sitemap.xml | grep -oE 'https://[^<]+' | head -5); do
  canonical=$(curl -sL "$url" | grep -oE '<link rel="canonical" href="[^"]+"')
  echo "sitemap: $url"
  echo "canonical: $canonical"
  echo "---"
done

Must match exactly (including trailing slash).

3. Sitemap is in a different subdomain or path than the GSC property

Your Search Console verifies https://yourdomain.com/, but the sitemap is at https://www.yourdomain.com/sitemap.xml — two different properties.

How to confirm: Search Console → Settings → Verification status. Check whether the property type is Domain or URL prefix and its coverage.

4. URLs in the sitemap return 404 or redirect

The sitemap lists URLs, but crawl gets 404 / 301 → Google doesn’t accept.

How to confirm:

for url in $(curl -s https://yourdomain.com/sitemap.xml | grep -oE 'https://[^<]+' | head -20); do
  status=$(curl -sI -o /dev/null -w "%{http_code}" "$url")
  echo "$status $url"
done

All should be 200. Any 301 / 404 must be fixed.

5. Malformed XML that Google silently truncates

Sitemap must strictly conform:

  • <?xml version="1.0" encoding="UTF-8"?> must be the first line (no BOM, no preceding whitespace)
  • <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> namespace required
  • Max 50,000 URLs / 50MB per sitemap (uncompressed)

How to confirm: Use XML Sitemaps Validator.

6. Sitemap file too large

If your sitemap is 100MB or 100,000 URLs, Google truncates and reads only the first part.

Fix: split into sitemap-index + child sitemaps.

7. sitemap-index references with wrong paths

<sitemapindex>
  <sitemap><loc>./sitemap-1.xml</loc></sitemap>  <!-- Relative paths rejected -->
</sitemapindex>

Must be absolute URLs.

Shortest path to fix

Step 1: Open sitemap.xml in browser + validator

Browser: https://yourdomain.com/sitemap.xml
Should see structured XML, no error notices

XML validate: https://www.xml-sitemaps.com/validate-xml-sitemap.html

If XML format is wrong, fix before continuing.

Step 2: Sample 5 URLs for canonical consistency

Use the canonical comparison script from common cause #2. Fix any mismatch:

  • Protocol (http vs https)
  • Trailing slash
  • Case
  • www. vs apex

Fix = unify the source: sitemap generator and canonical renderer share one urlFor().

Step 3: Confirm sitemap submitted to the right GSC property

Search Console → Settings → Verification:

  • Domain property (yourdomain.com): covers all subdomains, protocols, paths
  • URL prefix property (https://yourdomain.com/): only that prefix

If sitemap is on www.yourdomain.com but property is https://yourdomain.com/ (no www), switch to Domain property, or add a new URL prefix property for www.

Step 4: All URLs return 200

Use the curl script from #4 to batch check. Any 301 / 404:

  • 301: write the final URL in the sitemap directly
  • 404: remove from the sitemap

Step 5: Split large sitemaps

<!-- sitemap-index.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap><loc>https://yourdomain.com/sitemap-articles.xml</loc></sitemap>
  <sitemap><loc>https://yourdomain.com/sitemap-pages.xml</loc></sitemap>
</sitemapindex>

Each child sitemap < 50,000 URLs / 50MB.

Step 6: Re-submit after fixes

Search Console → Sitemaps → delete the old one → re-enter URL and submit. Wait 7-14 days for the “Discovered URLs” count to update.

When this is not on you

GSC sometimes takes 7-14 days to show sitemap stats accurately. If just submitted, wait before deeper troubleshooting.

Easy to misdiagnose

  • Sitemap status “Success” = all URLs queued: not so, only means parseable
  • “Discovered URLs” count = Indexed count: completely different. Former is URLs in sitemap; latter is what actually entered the index.
  • “Sitemap is effective immediately after submit”: usually 24-72 hours

Prevention

  • Generate sitemaps from the same source-of-truth as canonical tags (shared urlFor() helper)
  • Validate sitemap XML in CI: format, URL count, every URL 200
  • URL form (protocol / www / trailing slash) exactly matches canonical
  • Split single sitemap > 5000 URLs into sitemap-index
  • Post-deploy curl sitemap.xml once to confirm 200 + URL count

FAQ

Q: How many URLs can a single sitemap hold? A: Up to 50,000 URLs or 50 MB uncompressed. Use a sitemap index for more.

Q: Should I submit individual sitemaps for each language? A: Either is fine; per-language sitemaps make debugging and monitoring easier.

Q: Must I include lastmod? A: Not required but strongly recommended. With lastmod, Google knows which URLs recently changed and prioritizes re-crawl.

Tags: #SEO #Google #Search Console #Indexing #Troubleshooting #Sitemap