<?xml version="1.0" encoding="UTF-8"?>
<!--
  Sitemap for smartmigrate.eu — served from the site root as /sitemap.xml
  (files in public/ are copied to the build root by Vite, so nginx serves this
  as a real file and the SPA fallback never sees it).

  ONLY the public pages belong here. The exam material — /chapters, /practice,
  /vocabulary, /search — is behind the login, so listing it would ask Google to
  crawl pages that answer with the login screen: a set of duplicate, empty
  results that dilute the pages that do have content. /login itself is a form,
  not a destination, and /admin/ is the operator dashboard.

  lastmod is a real editorial date, not a build timestamp: it should be updated
  when the page's copy actually changes, and left alone otherwise. A file that
  claims every page changed today on every deploy teaches the crawler to ignore
  the field.

  lastmod is also the ONLY field here besides the address. <changefreq> and
  <priority> used to sit alongside it and have been removed: Google has said
  plainly that it ignores both, and a priority that ranks four pages against
  each other means nothing outside this file anyway. Two fewer things to keep
  honest.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- The front door: what this is, in three words and four boxes. -->
  <url>
    <loc>https://smartmigrate.eu/</loc>
    <lastmod>2026-08-11</lastmod>
  </url>

  <!-- About us — who runs it. It stood at "/" until the landing page took
       that address. -->
  <url>
    <loc>https://smartmigrate.eu/about</loc>
    <lastmod>2026-08-11</lastmod>
  </url>

  <!-- About the exam — what the cultural knowledge exam involves. -->
  <url>
    <loc>https://smartmigrate.eu/exam</loc>
    <lastmod>2026-08-06</lastmod>
  </url>

  <!-- Permanent residency guide — the procedure, step by step. -->
  <url>
    <loc>https://smartmigrate.eu/residency</loc>
    <lastmod>2026-08-14</lastmod>
  </url>

  <!-- The EU residence card, compared with the national one. Its own page
       since it is its own search. -->
  <url>
    <loc>https://smartmigrate.eu/eu-residence-card</loc>
    <lastmod>2026-08-14</lastmod>
  </url>

  <!-- How to use the site — what the course contains and how to work through
       it, which is also the answer to "where do I start?". -->
  <url>
    <loc>https://smartmigrate.eu/guide</loc>
    <lastmod>2026-08-11</lastmod>
  </url>

  <!-- The one chapter that is readable without an account. The other five,
       the practice and the mock exams stay out: they answer with the login
       screen, and a crawler sent to them learns nothing. -->
  <url>
    <loc>https://smartmigrate.eu/chapters/01_national_symbols</loc>
    <lastmod>2026-08-10</lastmod>
  </url>

  <!-- Image and content credits. Public because the CC licences require the
       attribution to be reachable. -->
  <url>
    <loc>https://smartmigrate.eu/sources</loc>
    <lastmod>2026-08-06</lastmod>
  </url>

  <!-- The privacy notice. Listed because it has to be findable without
       trusting us to link it — including by a person checking the site before
       they will hand over an email address. -->
  <url>
    <loc>https://smartmigrate.eu/privacy</loc>
    <lastmod>2026-08-17</lastmod>
  </url>

</urlset>
