<?xml version="1.0" encoding="UTF-8"?>
<!--
  sitemap.xml for app.kani-math.com — the Kani Math student app.

  Lists only routes that are reachable WITHOUT a profile / onboarding
  cookie. Authenticated routes (home dashboard, level map, drills,
  versus, leaderboard, etc.) are intentionally omitted: their content
  depends on a per-student session and they redirect anonymous
  visitors to /onboarding.

  Routes that live INSIDE the onboarding-gated shell (/placement,
  /subscribe, /support, /virtual-abacus, /shop, /badges, etc.) are
  not listed either — bots get a 302 to /onboarding, which is a
  soft-404 from Google's perspective. The marketing site federates
  the placement component at www.kani-math.com/placement; that
  is the canonical indexable placement URL.

  The in-app blog (/blog/**) is deliberately NOT listed: its posts
  duplicate the same articles on www.kani-math.com/blog, which is the
  canonical, 12-locale, prerendered home for that content. The app
  copies exist for signed-in readers; advertising them to crawlers
  just splits ranking signals across subdomains. (Removed 2026-08-04;
  a per-route rel=canonical to www is the fuller fix if the app ever
  gains SSR.)

  Share-token routes (/h/<token>, /a/<token>, /teacher-arena/**)
  are excluded by robots.txt and are not listed here either — they
  point at content scoped to a single student or class.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://app.kani-math.com/</loc>
    <lastmod>2026-08-04</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://app.kani-math.com/about</loc>
    <lastmod>2026-08-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://app.kani-math.com/profiles</loc>
    <lastmod>2026-08-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://app.kani-math.com/onboarding</loc>
    <lastmod>2026-08-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>
