<?xml version="1.0" encoding="UTF-8"?>
<!--
  GhostGauge — https://ghostgauge.pro/sitemap.xml

  Only pages describing something that actually exists are listed. The one
  remaining static preview (compare) is excluded deliberately: a sitemap is a
  request to index, which would contradict the noindex it carries. The account
  family shipped 2026-08 — see the dated notes below for who is listed and why. Add each one here on the day its feature ships —
  and remove its noindex in the same edit.

  2026-08-24: ✅ DONE — the overhaul copy was signed off, and this is the edit that 2026-08-16 asked
  for. `/` is listed again and is the priority-1.0 entry; `index.php`, `tracks.html`, `feats.php`
  and `gallery.php` all came off `noindex` in the same change. `/app.html` stays listed — it is no
  longer a stand-in homepage but a real page about the dashboards, linked from the nav and footer —
  and dropped to 0.9 so it no longer outranks the actual home page.
  ⚠️ /Feats WAS NOT ADDED, and the 2026-08-16 note asking for it was already stale when written:
  the boards were renamed on 2026-08-19 and `.htaccess` now 301s `/Feats` → `/Crowns`. A sitemap
  entry is a request to index, so listing a URL that redirects asks for the wrong thing. The two
  live band addresses, /Crowns and /Titles, are listed instead.
  2026-08-29: ✅ THE PER-TRACK AND PER-DRIVER PAGES ARE NOW LISTED — the owner made the decision
  this file used to defer to ("add tracks and driver pages to index"), so `/Track/<slug>` and
  `/RaceDriver/<name>` came off `noindex` and are listed in the same change, because a sitemap entry
  IS a request to index and the two cannot disagree.
  ⛔ DO NOT HAND-EDIT THEM. They live between the BEGIN/END GENERATED markers at the bottom and are
  written by `tools/gen_sitemap.py` from the live `/public/tracks` and `/public/standings` — 85
  tracks today and one more whenever a track is added, plus one page per driver holding a record.
  Everything ABOVE those markers, including this comment, is the human part and the script never
  touches it. Drivers come from STANDINGS on purpose: an account that has published nothing has an
  empty profile, and asking Google to index it would be asking for a thin page.
  The per-feat boards (/Crowns/<feat>) are still NOT listed — they are reachable from /Crowns, and
  nobody has decided they should stand as their own indexed pages.

  2026-08-12: signup.html and leaderboards.html SHIPPED (E3 P6 cutover) — both
  now read the live API, so their noindex was removed and they are listed below.
  races.html, race-detail.html and account.html stay out permanently: they show
  private per-user data, so indexing them would never be correct.

  404.html is excluded (it is an ErrorDocument target and carries noindex).
  <changefreq> and <priority> are advisory only — Google ignores both; <lastmod>
  is the field that is actually read, so keep it honest when a page changes.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>
    <loc>https://ghostgauge.pro/</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/app.html</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/tracks.html</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/Crowns</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/Titles</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/Gallery</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/download.html</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/setup.html</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/faq.html</loc>
    <lastmod>2026-08-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/roadmap.html</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/feedback.html</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>

  <!--
    terms.html — every part of it now governs something that exists: the app, the live
    account service, and the small print over both. Rewritten 2026-08-17 (v2, 26 sections)
    for a New York operator: arbitration with a class-action waiver, DMCA notice-and-takedown,
    the 13+/18-to-pay age rule, and the 365-day post-deletion retention.
    ⚠️ It is also the Terms-of-Service URL registered with Patreon's OAuth client, so it must
    stay publicly reachable at this exact address — do not rename or redirect this page.
  -->
  <url>
    <loc>https://ghostgauge.pro/terms.html</loc>
    <lastmod>2026-08-17</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <!--
    2026-08-17: privacy.html IS NOW LISTED. Both reasons for excluding it have gone.
    The page is now a privacy POLICY and nothing else — written from an inventory of what the
    code actually collects — and the "servers that do not exist yet" now exist: sign-in, upload
    and the leaderboards are live. The per-race console that carried the invented data was first
    rewired to the real /races endpoint and has now MOVED OFF this page entirely, to
    account.html#visibility, precisely because this URL is public and indexable.
    ⛔ That is the standing rule for this entry: privacy.html is listed only while it holds no
    per-user state. A privacy policy must be conspicuously posted for visitors in California
    regardless of where the operator sits, so it has to be findable — and it is the
    Privacy-Policy URL a Patreon OAuth client is expected to publish.
  -->
  <url>
    <loc>https://ghostgauge.pro/privacy.html</loc>
    <lastmod>2026-08-17</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <!--
    rules.html and conduct.html — added 2026-08-17. Both describe things that exist:
    the eligibility rules are the ones the server actually enforces, and the code of
    conduct governs racing here from the day it is published. terms.html and the privacy
    policy both link to them, so leaving them out would orphan two of the four legal
    documents from a crawler's point of view.
  -->
  <url>
    <loc>https://ghostgauge.pro/rules.html</loc>
    <lastmod>2026-08-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/conduct.html</loc>
    <lastmod>2026-08-17</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/leaderboards.html</loc>
    <lastmod>2026-08-12</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://ghostgauge.pro/signup.html</loc>
    <lastmod>2026-08-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- BEGIN GENERATED — per-track and per-driver pages. tools/gen_sitemap.py owns this block. -->
  <!-- 85 track pages -->
  <url>
    <loc>https://ghostgauge.pro/Track/airfield-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/arashiyama-takao-touge-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/bamboo-forest-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/bandai-azuma-touge-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/cedar-run-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/cherry-field-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/chiheisen-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/city-docks-cross-country-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/coastline-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/daikoku-chase-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/daikoku-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/edogawa-cross-country-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/electric-town-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/festival-chase-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/festival-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/hakone-nanamagari-touge-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/highway-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/hirosaki-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/hokubu-ascent-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/hokubu-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/hokubu-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/horizon-festival-drag-strip</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/horizon-stadium-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/ine-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/irokawa-circuit-road-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/ito-airfield-drag-strip</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/ito-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/ito-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/izu-cross-country</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/kawazu-nanadaru-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/kinkaku-ji-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/kita-ine-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/launch-control</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/legend-island-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/legend-island-cross-country-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/legend-island-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/matsumi-climb-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/minami-chase-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/mt-haruna-touge-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/nachi-run-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/nangan-cross-country-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/narai-juku-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/naruo-cross-country-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/norikura-descent-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/norikura-skyline-touge-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/nukabira-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/oka-cross-country-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/okishinaimura-run-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/oyashirazu-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/rainbow-bridge-descent-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/river-descent-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/ruriko-ji-cross-country</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/satta-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/seaside-park-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/sekibe-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/shikisai-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/shimanoyama-charge-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/shimanoyama-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/shimanoyama-cross-country</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/shimanoyama-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/shinjuku-gyoen-cross-country</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/shirakawa-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/snow-forest-cross-country-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/soni-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/soni-highlands-cross-country</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/sotoyama-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/stadium-cross-country-circuit</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/sunflower-charge-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/sunflower-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/taiyaki-scramble</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/takashiro-cross-country</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/takashiro-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/tateyama-alpine-cross-country</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/tateyama-kurobe-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/temple-cross-country</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/the-colossus</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/the-gauntlet</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/the-goliath</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/the-titan</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/tokyo-city-docks-charge-street-race</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/tokyo-railway-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/venus-sprint</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/waterfall-trail</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/wind-farm-cross-country</loc>
  </url>
  <url>
    <loc>https://ghostgauge.pro/Track/yahikoyama-cross-country</loc>
  </url>
  <!-- 2 driver pages (drivers holding at least one record) -->
  <url>
    <loc>https://ghostgauge.pro/RaceDriver/krasnal</loc>
    <lastmod>2026-08-29</lastmod>
  </url>
  <url>
    <loc>https://ghostgauge.pro/RaceDriver/modzel</loc>
    <lastmod>2026-08-27</lastmod>
  </url>
  <!-- END GENERATED -->

</urlset>
