<?xml version="1.0" encoding="UTF-8"?>
<!--
  numerology-report —— 公开页 sitemap（手维护 · W6 2026-10-14 重写）

  口径（改这个文件前先读 `docs/seo.md`，规矩都写在那儿）：

  1. **只列公开、可索引、返 200 的 HTML 页。** 受 DSM 门禁保护的路径（`/read/` `/api/` `/portal`
     `/internal/`）对爬虫是 302 → `auth.hoelee.com`；`/order/<token>` `/report/<token>` 的 URL 里
     就是凭据。它们一条都不许进 sitemap —— 进去只会给 Search Console 报「重定向 / 已抓取但被屏蔽」。
  2. **hreflang 组**：`/` `/zh` `/ms` 是同一页的三语真实 URL，**三条都要带完整 alternates**
     （每条指向组内全部含自己 + `x-default`）。只给首页挂 alternates 是 W6 之前的错 ——
     Google 要求组内互指，单向声明会被丢弃。
  3. `lastmod` = **那一页内容在仓库里最后改动的日期**（不是部署日期、也不是「今天」）。
     改页面文案就要改这里；`bash tools/seo-verify.sh` 会拿源文件的 git 日期逐条对账（源文件更新 = 当场红）。
  4. **样本 PDF 不列**：真身在 `/static/sample/`，页面上的链接带 `?v=<asset_version>` 缓存号
     （带查询串的 URL 进 sitemap 是噪音）；首页与 `/reading/` 都链着它们，交给自然发现。
     同理不列 `/demo`：W4 起它是 302 → 样本 PDF，**重定向的 URL 不进 sitemap**。
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://www.ninelore.com/</loc>
    <lastmod>2026-10-14</lastmod><changefreq>weekly</changefreq><priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.ninelore.com/"/>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://www.ninelore.com/zh"/>
    <xhtml:link rel="alternate" hreflang="ms" href="https://www.ninelore.com/ms"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.ninelore.com/"/>
  </url>
  <url>
    <loc>https://www.ninelore.com/zh</loc>
    <lastmod>2026-10-14</lastmod><changefreq>weekly</changefreq><priority>0.9</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.ninelore.com/"/>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://www.ninelore.com/zh"/>
    <xhtml:link rel="alternate" hreflang="ms" href="https://www.ninelore.com/ms"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.ninelore.com/"/>
  </url>
  <url>
    <loc>https://www.ninelore.com/ms</loc>
    <lastmod>2026-10-14</lastmod><changefreq>weekly</changefreq><priority>0.9</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.ninelore.com/"/>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://www.ninelore.com/zh"/>
    <xhtml:link rel="alternate" hreflang="ms" href="https://www.ninelore.com/ms"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.ninelore.com/"/>
  </url>
  <!-- 长版销售页（文案单一源头）。以前这里是 noindex（Phase 1 它还是原型页）⇒ 从来没进过 sitemap；
       W6 起可索引（`public/reading/index.html` 的 robots 改成 index）。⚠ 它的三语变体是**同一份文档的
       `?lang=` 状态**（服务端只有一份 HTML），三条都 canonical 到 `/reading/` ⇒ **故意不给它 hreflang**
       （hreflang 要求每条 URL 自我 canonical，见 docs/seo.md §4）。 -->
  <url>
    <loc>https://www.ninelore.com/reading/</loc>
    <lastmod>2026-10-14</lastmod><changefreq>monthly</changefreq><priority>0.9</priority>
  </url>
  <url><loc>https://www.ninelore.com/free</loc><lastmod>2026-10-14</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url>
  <url><loc>https://www.ninelore.com/privacy</loc><lastmod>2026-10-14</lastmod><changefreq>yearly</changefreq><priority>0.3</priority></url>
</urlset>
