<?xml version="1.0" encoding="UTF-8"?>
<!--
  Main sitemap index. Hand-maintained: nothing regenerates this file.

  sitemap-general.xml lives here in public/. sitemap-lenders.xml,
  sitemap-rankings.xml and sitemap-rankings-md.xml are built by
  apps/pSEO-generator (generateSitemaps()) into R2 and served by the consumer
  worker's R2 allowlist in workers/app.ts.

  sitemap-local.xml is deliberately NOT listed here. Sitemap index files cannot
  nest — Google ignores an index referenced from another index — so it is a
  SIBLING of this file, listed separately in robots.txt and submitted on its own
  in Search Console.

  sitemap-rankings-md.xml was removed 2026-09-02. It listed the .txt markdown twin of every
  ranking page, and those responses now send Link: <html-url>; rel="canonical". Submitting a URL
  in a sitemap asks Google to index it while the canonical asks it not to — Google honours the
  canonical, so the entries only spent crawl budget to be told the HTML is authoritative. The
  markdown is still published and still discoverable for AI crawlers via llms.txt; it is R2 and
  the generator that own it, not the sitemap index.

  The seven sitemap-places-*.xml entries were removed 2026-08-15. They listed
  ~301,431 URLs on the retired /places/... scheme; every one 301s to
  /local/places/... (a blind prefix-prepend rule in Cloudflare, not in this repo)
  and lands on a 404. The live equivalents are /local/<slug>/... and are covered
  by sitemap-local.xml. apps/consumer/scripts/generatePlacesSitemaps.ts still
  exists and would rewrite this file with those entries if it is ever run again.
-->
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://saferate.com/sitemap-general.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://saferate.com/sitemap-lenders.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://saferate.com/sitemap-rankings.xml</loc>
  </sitemap>
</sitemapindex>
