<?xml version="1.0" encoding="UTF-8"?>
<!-- THE PUBLIC PAGES, and only those (2026-09-29). Until then / redirected every visitor to
     /login, and /leaderboard and /rank, listed here, redirected there too: a crawler found a
     sign-in form at every URL this file offered. Each URL below now renders for a visitor
     without an account (App.tsx PUBLIC_PATHS + the legal pages), and
     tests/unit/publicFrontDoor.test.tsx fails if a public route or a lesson is missing or if
     anything else is added. /login is gone: a sign-in form is not a page to rank.

     PHASE 2 (owner plan of 2026-09-29): prerendered HTML and one URL per language (en, tr, de,
     ru, ja, zh), each <url> then carrying xhtml:link rel="alternate" hreflang entries for its
     six siblings. Until those URLs exist, listing them here would point at pages that do not.

     THE HOST IS www (2026-09-30). Every <loc> named https://sudokurank.com until then, and the
     bare domain answers each of them with 307 (temporary) to https://www.sudokurank.com, so
     a crawler was handed nineteen redirects and no page. Search engines expect a sitemap to
     list the final URLs. Vercel's domain settings decide which host redirects; this file only
     has to name the one that answers 200. -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.sudokurank.com/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/practice</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/basics</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/naked-singles</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/hidden-singles</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/pencil-marks</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/naked-pairs</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/naked-triples</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/pointing-pairs</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/box-line-reduction</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/x-wing</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/swordfish</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/tutorials/jellyfish</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/leaderboard</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/rank</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/privacy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/cookie-policy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.sudokurank.com/terms</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
