<?xml version="1.0" encoding="UTF-8"?>
<!--
  The 6 indexable routes, and only those: the landing plus the 5 legal pages.
  Every other route in App.tsx is behind ProtectedRoute, a transactional token
  page, or an auth form, and carries noindex. /login and /register were listed
  here until Issue #1013 (2026-08-28) and came out with the noindex: they are
  content-free forms, so advertising them only spent crawls and authority on a
  dead end. They stay crawlable on purpose, see web/public/robots.txt.
  Kept in sync with web/src/utils/seoMeta.ts by src/utils/seoMeta.test.ts.

  No <lastmod> on purpose. This is a static file, so any date written here would
  be frozen at the day it was typed and would keep claiming that /terms changed
  on that date forever. Google only uses lastmod when it is consistently
  accurate, so a permanently stale one buys nothing and can only mislead. With 6
  URLs there is no crawl budget to prioritise either. Re-add it only together
  with something that actually derives it (a build step, or per-page dates).
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://gapperlab.com/</loc></url>
  <url><loc>https://gapperlab.com/terms</loc></url>
  <url><loc>https://gapperlab.com/privacy</loc></url>
  <url><loc>https://gapperlab.com/legal</loc></url>
  <url><loc>https://gapperlab.com/cookies</loc></url>
  <url><loc>https://gapperlab.com/refunds</loc></url>
</urlset>
