<?xml version="1.0" encoding="UTF-8"?>
<!--
  Only the pages that render without an API read.

  Every other route in src/route.ts either needs a session or goes through
  the Turnstile read gate, and a URL in here that answers with a challenge
  is crawl budget spent on nothing. When public circles become indexable
  (that is the DigitalOcean-era work, and it needs prerendering) this file
  becomes generated rather than hand-kept.

  `/signup` is absent: it keeps the age gate (route.ts, OPEN_SCREENS), so a
  crawler renders the gate there and the only head it can read is the static
  one in index.html -- which is the home page's. Listing it would be asking
  for two URLs to be indexed under one description. Moving it into the open
  set is one word in route.ts if that trade stops being worth it.

  `/circles` is absent on purpose: for a guest it renders the same screen as
  `/`, and src/head.ts points its canonical at `/` so the two do not compete.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.ironchan.com/</loc>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.ironchan.com/about</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.ironchan.com/library</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.ironchan.com/safety-and-terms</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://www.ironchan.com/safety</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://www.ironchan.com/terms</loc>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
