<?xml version="1.0" encoding="UTF-8"?>
<!--
  Sitemap INDEX, not a urlset.

  The marketing pages are static and ship with the SPA build, but blog posts
  are authored in the admin UI and server-rendered by the backend, so they
  cannot be baked in here at build time. Previously /sitemap.xml listed only
  the /blog landing page and the posts themselves were reachable only via the
  second `Sitemap:` line in robots.txt — which meant any crawler or LLM agent
  that fetches /sitemap.xml directly (a very common shortcut) never saw a
  single post.

  Splitting into an index fixes that: one fetch of /sitemap.xml now leads to
  both halves. Keep the two children in sync with robots.txt.
-->
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://visibilitas.de/sitemap-pages.xml</loc>
  </sitemap>
  <!-- Generated per-request by the backend (apps/backend/src/routes/blog-public.ts).
       Requires Traefik to route /blog to backend-api — see
       infra/k8s/31-ingressroute.yaml. -->
  <sitemap>
    <loc>https://visibilitas.de/blog/sitemap.xml</loc>
  </sitemap>
</sitemapindex>
