<?xml version="1.0" encoding="UTF-8"?>
<!--
  Public, indexable routes only.

  Deliberately absent:
    /login /register              public, but nothing to rank for
    /dashboard /account /results  behind RequireAuth
    /assignments/:id              behind RequireAuth, per-student
    /admin/*                      behind RequireAdmin

  Every <loc> uses the non-www origin, matching the canonical tag, so
  ganijanov.uz and www.ganijanov.uz — which serve the same build — consolidate
  into one URL instead of competing.

  This list and INDEXABLE in src/lib/seo.ts describe the same set; change both.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://ganijanov.uz/</loc>
    <lastmod>2026-09-27</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <!-- The signed-out demo of the exercise engine. -->
    <loc>https://ganijanov.uz/practice</loc>
    <lastmod>2026-09-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <!-- Unit 2 workbook, readable without an account. -->
    <loc>https://ganijanov.uz/learn</loc>
    <lastmod>2026-09-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
</urlset>
