<?xml version="1.0" encoding="UTF-8"?>
<!--
  https://unhalt.app/sitemap.xml

  Every URL here is the canonical one: apex host, https, no trailing slash — the
  exact string each page's <link rel="canonical"> claims. A sitemap that lists a
  URL which then redirects (http, www, a trailing slash) or that is marked
  noindex contradicts the rest of the setup and gets the whole file distrusted.

  What is deliberately NOT here:
    /terms, /privacy   — 301 aliases of the two /legal/ pages (.htaccess §1c)
    /confirmed         — noindex, and linked from nowhere
    app.unhalt.app/*   — a different host, noindex end to end

  No <lastmod>, <changefreq> or <priority>. Google ignores the last two outright,
  and it only trusts lastmod when it is consistently accurate — a date nobody
  remembers to update on every edit is worse than no date, because it teaches the
  crawler to ignore this file's dates. Adding a page here is a one-line edit.

  When you add a public page: add its <url> below, and give the page itself a
  self-referencing canonical. `npm run check:landing` fails if the two disagree.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://unhalt.app/</loc>
  </url>
  <url>
    <loc>https://unhalt.app/legal/terms</loc>
  </url>
  <url>
    <loc>https://unhalt.app/legal/privacy</loc>
  </url>
  <url>
    <loc>https://unhalt.app/legal/notice</loc>
  </url>
</urlset>
