<?xml version="1.0" encoding="UTF-8"?>
<!--
  Public-route sitemap. Keep this file in sync with the routes
  registered in src/App.tsx that don't sit behind <ProtectedRoute />.
  Authenticated routes (/track, /goals, /journal, /settings, …) are
  intentionally excluded — they redirect to /auth for anonymous
  visitors, so indexing them would clutter the SERP with the same
  shell page.

  Locale alternates use the same URL with `?lang=` query — matches
  the hreflang tags in index.html.
-->
<urlset
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">

  <url>
    <loc>https://getlifetracker.app/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="pl" href="https://getlifetracker.app/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://getlifetracker.app/?lang=en" />
    <xhtml:link rel="alternate" hreflang="de" href="https://getlifetracker.app/?lang=de" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://getlifetracker.app/" />
  </url>

  <url>
    <loc>https://getlifetracker.app/start</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://getlifetracker.app/pricing</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://getlifetracker.app/roadmap</loc>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://getlifetracker.app/privacy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <url>
    <loc>https://getlifetracker.app/terms</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <url>
    <loc>https://getlifetracker.app/cookies</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
