<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>
    <loc>https://www.zerable.org/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <url>
    <loc>https://www.zerable.org/mapa</loc>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Páginas legales públicas indexables (LegalPage, VALID_SLUGS).
       Prioridad baja: contenido estable, valor SEO secundario. -->
  <url>
    <loc>https://www.zerable.org/privacidad</loc>
    <lastmod>2026-06-22</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <url>
    <loc>https://www.zerable.org/terminos</loc>
    <lastmod>2026-06-22</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <url>
    <loc>https://www.zerable.org/aviso-legal</loc>
    <lastmod>2026-06-22</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <url>
    <loc>https://www.zerable.org/cookies</loc>
    <lastmod>2026-06-22</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <url>
    <loc>https://www.zerable.org/contacto</loc>
    <lastmod>2026-06-22</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.4</priority>
  </url>

  <!-- Bloque del blog: lo REGENERA scripts/prerender-blog.js en cada build a
       partir de content/blog (solo posts publicados, mismo filtro que la app).
       No editar a mano entre los marcadores: se sobrescribe en el build. El
       deploy nocturno mantiene así sitemap y autopublicación sincronizados. -->
  <!-- BLOG:START -->
  <url>
    <loc>https://www.zerable.org/blog</loc>
    <lastmod>2026-06-26</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://www.zerable.org/blog/bienvenida-al-blog-de-zerable</loc>
    <lastmod>2026-06-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <!-- BLOG:END -->

</urlset>
