<?xml version="1.0" encoding="UTF-8"?>
<!--
  网站地图（2026-10-11 补）。在此之前线上 `/sitemap.xml` 是 404，搜索引擎只能靠
  链接一页页摸，内页（下载页 / 常见问题 / 法律两页）随时可能被漏掉。

  手工维护，页面就那么几个，且每个 URL 旁边的 xhtml:link 要与页面里的 hreflang
  那一组**完全一致**（同一个 slug 的两种语言互指 + x-default 指英文页，
  规则见 src/i18n/utils.ts）。`npm run verify` 会逐条比对，写错了构建不算通过 ——
  所以这里看着啰嗦的部分（x-default 指向 /en/）不是冗余，是契约。

  刻意不含的两个地址：
  * `https://gracelink.cc/` —— 根路径是个只做语言协商的 302 跳转页（worker/index.js），
    内容不在那里，把重定向地址放进地图是「地图里一半是空门」；
  * `https://gracelink.cc/404.html` —— 错误页不该被收录。

  没有 <lastmod>：本站是静态站，没有逐页的修改时间，编一个日期比不写更糟。
-->
<urlset
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
>
  <url>
    <loc>https://gracelink.cc/zh/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/"/>
  </url>
  <url>
    <loc>https://gracelink.cc/en/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/"/>
  </url>
  <url>
    <loc>https://gracelink.cc/zh/download/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/download/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/download/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/download/"/>
  </url>
  <url>
    <loc>https://gracelink.cc/en/download/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/download/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/download/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/download/"/>
  </url>
  <url>
    <loc>https://gracelink.cc/zh/faq/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/faq/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/faq/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/faq/"/>
  </url>
  <url>
    <loc>https://gracelink.cc/en/faq/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/faq/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/faq/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/faq/"/>
  </url>
  <url>
    <loc>https://gracelink.cc/zh/privacy/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/privacy/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/privacy/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/privacy/"/>
  </url>
  <url>
    <loc>https://gracelink.cc/en/privacy/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/privacy/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/privacy/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/privacy/"/>
  </url>
  <url>
    <loc>https://gracelink.cc/zh/terms/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/terms/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/terms/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/terms/"/>
  </url>
  <url>
    <loc>https://gracelink.cc/en/terms/</loc>
    <xhtml:link rel="alternate" hreflang="zh-Hans" href="https://gracelink.cc/zh/terms/"/>
    <xhtml:link rel="alternate" hreflang="en" href="https://gracelink.cc/en/terms/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://gracelink.cc/en/terms/"/>
  </url>
</urlset>
