<?xml version="1.0" encoding="UTF-8"?>
<!--
  GraceOS sitemap.

  WHY THE URLS HAVE NO .html
  Cloudflare Pages serves /privacy and /terms as the canonical URLs and
  307-redirects /privacy.html to them. A sitemap listing the redirecting form
  asks every crawler to take an extra hop and reports a non-canonical URL as
  canonical, which is the one mistake a sitemap can actually make worse than
  having none.

  WHAT IS DELIBERATELY ABSENT
  The in-page anchors (#modules, #ai, #pricing). They are sections of the
  homepage, not separate documents, and listing them would claim four pages where
  one exists.
-->
<!--
  The namespace is exact and load-bearing. Search Console rejects a urlset with
  any other xmlns as an unrecognised format, which is worse than having no
  sitemap: the file looks present and does nothing.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://graceosapp.me/</loc>
    <lastmod>2026-09-05</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://graceosapp.me/privacy</loc>
    <lastmod>2026-09-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://graceosapp.me/terms</loc>
    <lastmod>2026-09-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
</urlset>
