<?xml version="1.0" encoding="UTF-8"?>
<!--
  Cadence sitemap.

  TODO(domain): every <loc> below uses the temporary Cloudflare Pages host. Run
  .\landing\tools\set-domain.ps1 -NewDomain <real-domain> to rewrite them, then
  re-submit this sitemap in Google Search Console for the new property.

  Two deliberate choices:

  1. Extensionless URLs only. Cloudflare Pages 308-redirects /privacy.html to
     /privacy, so listing the .html form would fill the sitemap with redirects —
     a sitemap of redirects is a defect, and it is what the canonical tags on
     those pages point at too. Sitemap, canonical and internal links must all
     name the same URL.

  2. No <priority> or <changefreq>. Google has ignored both for years, and a
     changefreq of "weekly" on a page that changes twice a year is a claim the
     crawler can check and disbelieve. <lastmod> is the only hint that still
     carries weight, so it is the only one here — and it is only bumped when the
     page's *content* actually changes, not when its meta tags are edited.
     404.html is absent by design: error pages are noindex and must never be
     advertised for crawling.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://cadence-application.pages.dev/</loc>
    <lastmod>2026-08-07</lastmod>
  </url>
  <url>
    <loc>https://cadence-application.pages.dev/affiliates</loc>
    <lastmod>2026-08-07</lastmod>
  </url>
  <!-- Legal pages: lastmod tracks the "Last updated" line rendered on the page
       and the dateModified in their JSON-LD. Keep all three in sync. -->
  <url>
    <loc>https://cadence-application.pages.dev/privacy</loc>
    <lastmod>2026-08-07</lastmod>
  </url>
  <url>
    <loc>https://cadence-application.pages.dev/terms</loc>
    <lastmod>2026-07-03</lastmod>
  </url>
  <url>
    <loc>https://cadence-application.pages.dev/refund</loc>
    <lastmod>2026-07-03</lastmod>
  </url>
</urlset>
