<?xml version="1.0" encoding="UTF-8"?>
<!--
  sitemap.xml — packlio.eu

  WAS HIER EINGEREICHT WIRD, UND WARUM GERADE DAS

  Packlio ist eine Single Page Application: der Server liefert fuer jede
  Adresse dieselbe index.html aus. Wer eine SPA-Route einreicht, reicht damit
  eine Adresse ein, unter der ein Crawler ohne JavaScript den App-Rumpf sieht
  und sonst nichts. Seit Welle 2 gibt es den Text der wichtigsten
  Inhaltsseiten deshalb vorgerendert als eigene Datei, und diese Dateien sind
  es, die hier stehen.

  DIE .html-ENDUNG IST ABSICHT UND UNVERMEIDBAR. Die Auslieferung loest keine
  Verzeichnis-Indizes auf: /leitfaden und /faq landen im Auffangmuster der SPA,
  nur /leitfaden.html und /faq.html liefern die vorgerenderte Datei aus.

  NICHT MEHR ENTHALTEN, mit Absicht:
    /guide      kanonisiert auf /leitfaden.html (shared/seo.js)
    /faq        kanonisiert auf /faq.html       (shared/seo.js)
    /assistant  entfernt, Begruendung unten

  Eine Adresse einzureichen, die selbst per Canonical auf eine andere zeigt,
  ist ein widerspruechliches Signal: die Sitemap sagt "indexiere das", der Kopf
  der Seite sagt "indexiere etwas anderes". Beide Routen bleiben in der App
  bestehen und erreichbar; sie gehoeren nur nicht in diese Liste.

  Der Arbeitsbereich (/dashboard, /declarations, /wizard, /settings) steht
  ebenfalls nicht darin: er verlangt eine Anmeldung und hat nichts zu
  indexieren. Dasselbe gilt fuer die Einmal-Links aus E-Mails, siehe robots.txt.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://packlio.eu/</loc>
    <lastmod>2026-08-22</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!--
    Die drei vorgerenderten Seiten. Sie sind die einzigen Adressen von
    packlio.eu, deren Inhalt ohne JavaScript vollstaendig lesbar ist, und damit
    die einzigen, die KI-Crawler und Social-Media-Vorschauen ueberhaupt
    vollstaendig erfassen koennen. Entsprechend hoch die Prioritaet.
  -->
  <url>
    <loc>https://packlio.eu/leitfaden.html</loc>
    <lastmod>2026-08-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://packlio.eu/faq.html</loc>
    <lastmod>2026-08-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://packlio.eu/ppwr-wissen.html</loc>
    <lastmod>2026-08-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!--
    /pricing bleibt als SPA-Route eingereicht und kanonisiert auf sich selbst.
    Eine statische Fassung gibt es hier bewusst nicht: Preise und Limits stehen
    in shared/plans.js und wuerden in einer zweiten Datei still veralten. Eine
    falsche Preisangabe wiegt schwerer als die bessere Lesbarkeit ohne
    JavaScript.

    /assistant ist dagegen ENTFERNT. Die Seite ist ein leeres Eingabefeld; ihr
    Inhalt entsteht erst durch eine Nutzerfrage und liegt zudem im Bundle. Fuer
    einen Index ist sie damit eine Seite ohne Inhalt, und genau solche Seiten
    wertet Google als "gecrawlt, zurzeit nicht indexiert" ab. Die Fragen, die
    der Assistent beantwortet, stehen als Text auf /faq.html und
    /ppwr-wissen.html — dort sind sie auffindbar, hier waren sie es nie.
    Erreichbar und verlinkt bleibt die Seite selbstverstaendlich.
  -->
  <url>
    <loc>https://packlio.eu/pricing</loc>
    <lastmod>2026-08-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
