首页 / 技术分享 /
sitemap.xml 结构与字段详解

sitemap.xml 结构与字段详解

GPT-5

2026-01-04
4 次浏览
0 条评论

本文介绍站点地图(Sitemap)规范、常见文件类型、核心与扩展字段含义、限制与最佳实践,并提供可直接参考的完整示例。

网站优化
SEO
Sitemap
站点地图
分享:

参考标准:

  • Sitemap 协议与 XSD: http://www.sitemaps.org/protocol.html
  • 默认命名空间: http://www.sitemaps.org/schemas/sitemap/0.9
  • 扩展命名空间(部分):
    • 图像:http://www.google.com/schemas/sitemap-image/1.1
    • 视频:http://www.google.com/schemas/sitemap-video/1.1
    • 新闻:http://www.google.com/schemas/sitemap-news/0.9
    • 多语言链接(xhtml):http://www.w3.org/1999/xhtml

1. 什么是 Sitemap

Sitemap 是一个描述站点可抓取页面的 XML 文件,帮助搜索引擎更高效发现与理解站点内容。Sitemap 不是收录保证,但可提升发现效率与时效性。

常见用途:

  • 告知搜索引擎站点重要页面、媒体资源页面。
  • 标注内容更新时间、替换频率(提示)与相对优先级(提示)。
  • 为图片、视频、新闻类内容提供额外元数据。
  • 为多语言/多地区版本提供互链关系(hreflang)。

2. 文件类型

  • 单一 Sitemap(URL 列表):描述一个站点的一组 URL。
  • Sitemap 索引(Sitemap Index):用于引用多个子 Sitemap 文件。
  • 扩展 Sitemap:
    • 图片(Image)
    • 视频(Video)
    • 新闻(News)
    • 多语言(通过 xhtml:link 互链,不是独立“类型”,而是扩展在 URL 下)

3. 基本结构与核心字段

基础 Sitemap 的根元素是 urlset,包含若干 url 条目。每个 url 描述一个页面。

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

  <url>
    <loc>https://www.example.com/</loc>
    <lastmod>2026-01-04T10:15:30+08:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

</urlset>

字段说明(位于 <url> 内):

  • <loc>(必填)
    • 页面绝对 URL,需使用完整限定(含协议与主机名),建议使用规范化 URL(canonical)。
    • 不要使用相对路径;保持协议(http/https)、主机(含/不含 www)、路径与尾斜杠策略一致。
  • <lastmod>(可选,强烈推荐)
    • 页面最后更新时间,建议使用 ISO 8601:
      • 日期:YYYY-MM-DD(如 2026-01-04
      • 日期时间:YYYY-MM-DDThh:mm:ss±hh:mm(如 2026-01-04T10:15:30+08:00
    • 应反映「可索引内容」实际变更时间,而非构建时间戳。
  • <changefreq>(可选,提示型)
    • 可能值:always | hourly | daily | weekly | monthly | yearly | never
    • 多数搜索引擎(如 Google)基本忽略此字段,仅作为参考提示,不会严格遵循。
  • <priority>(可选,提示型,范围 0.0–1.0,默认 0.5)
    • 仅在站内相对比较意义上提示重要性,搜索引擎常忽略,不会与其他站点对比。

注意:

  • 不要在 Sitemap 中包含不希望索引的 URL(如 noindex、需登录、返回非 200)。
  • 不要包含被 robots.txt 全局屏蔽的 URL(否则会造成检测冲突与报告问题)。
  • 一个 URL 仅在一个 Sitemap 中出现为佳,避免重复。

4. Sitemap 索引(sitemapindex)

当单个 Sitemap 过大或希望按内容类型/目录分组时,使用索引文件引用多个子文件。

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

  <sitemap>
    <loc>https://www.example.com/sitemaps/sitemap-1.xml.gz</loc>
    <lastmod>2026-01-03</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://www.example.com/sitemaps/sitemap-2.xml.gz</loc>
    <lastmod>2026-01-04</lastmod>
  </sitemap>

</sitemapindex>

字段说明(位于 <sitemap> 内):

  • <loc>(必填):子 Sitemap 的绝对 URL,可为 .xml.xml.gz
  • <lastmod>(可选):该子 Sitemap 最近更新时间。

5. 扩展命名空间与字段

为在一个文件中同时使用扩展,需要在根元素声明对应命名空间。

5.1 图像扩展(image)

在页面 URL 条目内添加一个或多个 image:image,描述该页面上的图片元数据。

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

  <url>
    <loc>https://www.example.com/article/123</loc>
    <image:image>
      <image:loc>https://cdn.example.com/images/123-cover.jpg</image:loc>
      <image:caption>封面图,摄影:Alice</image:caption>
      <image:title>示例文章封面</image:title>
      <image:license>https://www.example.com/license</image:license>
    </image:image>
  </url>

</urlset>

常见字段:

  • image:loc(必填):图片绝对 URL。
  • image:captionimage:titleimage:license(可选):说明与授权信息等。

建议:

  • 图片需可被抓取(200 状态、未被 robots 屏蔽)。
  • 优先提供高质量、清晰可渲染的图片 URL。

5.2 视频扩展(video)

在页面 URL 条目内添加 video:video,提供视频内容元数据(适用于该 URL 所代表页面的主要视频)。

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

  <url>
    <loc>https://www.example.com/video/abc</loc>
    <video:video>
      <video:thumbnail_loc>https://cdn.example.com/thumbs/abc.jpg</video:thumbnail_loc>
      <video:title>演示视频</video:title>
      <video:description>本视频演示产品功能。</video:description>
      <video:content_loc>https://video.example.com/stream/abc.mp4</video:content_loc>
      <!-- 或使用 <video:player_loc allow_embed="yes">https://player.example.com/?v=abc</video:player_loc> -->
      <video:duration>120</video:duration>
      <video:publication_date>2026-01-02T09:00:00+08:00</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
    </video:video>
  </url>

</urlset>

常见字段(部分):

  • 必填:video:thumbnail_locvideo:titlevideo:description
  • 其一:video:content_loc(直链媒体)或 video:player_loc(播放页/嵌入式播放器)。
  • 可选:video:duration(秒)、video:publication_datevideo:family_friendly 等。

建议:

  • 确保缩略图与视频可抓取且返回 200。
  • 标题与描述要准确、避免关键词堆砌。

5.3 新闻扩展(news)

面向新闻发布站点,要求内容新鲜度高(最近 2 天),每个 News Sitemap 最多包含 1,000 条。

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

  <url>
    <loc>https://www.example.com/news/2026/01/example</loc>
    <news:news>
      <news:publication>
        <news:name>Example News</news:name>
        <news:language>zh</news:language>
      </news:publication>
      <news:publication_date>2026-01-04T08:30:00+08:00</news:publication_date>
      <news:title>示例新闻标题</news:title>
      <news:keywords>行业; 发布; 示例</news:keywords>
    </news:news>
  </url>

</urlset>

要点:

  • news:publication 指定媒体名称与语言。
  • 仅包含最近 2 天的新闻 URL;旧新闻应迁移到常规 Sitemap。

5.4 多语言/多地区(hreflang via xhtml:link)

在 Sitemap 为每个 URL 列出其语言/地区版本的互链关系,等价于页面 <head> 中的 rel="alternate" hreflang="..."

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

  <url>
    <loc>https://www.example.com/</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/en/"/>
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://www.example.com/zh-cn/"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/"/>
  </url>

</urlset>

要点:

  • 每个语言版本彼此互相列出对方(成闭环)。
  • 使用 BCP 47 语言标记(如 en, zh-CN),可加 x-default

6. 限制与规范

  • 数量与大小
    • 单个 Sitemap:最多 50,000 个 URL,未压缩大小不超过 50MB。
    • 单个索引(sitemapindex):可引用最多 50,000 个 Sitemap。
    • 超出限制时请拆分并使用索引。
  • 主机与路径
    • 一般仅包含同一主机与协议下的 URL(如 https://www.example.com/...)。
    • 建议将 Sitemap 放在站点根或相对高层目录,以覆盖所需路径。
  • 编码与类型
    • 编码:UTF-8。
    • Content-Type:application/xml(或 text/xml);压缩文件为 application/x-gzip
  • 压缩
    • 支持 .xml.gz;索引可指向压缩后的子文件。
  • 响应与可访问性
    • Sitemap 与被列出的 URL 均应返回 200(或可被正确抓取)。
    • 不要列出 3xx 最终指向的目标以外的中间跳转 URL。
  • 时间与时区
    • lastmod 建议带时区偏移(如 +08:00)。
  • 字符转义
    • XML 保留字符必须转义:&&amp;<&lt;>&gt; 等。

7. 发布与提交

  • 在 robots.txt 中声明(推荐)
    Sitemap: https://www.example.com/sitemap.xml
    Sitemap: https://www.example.com/sitemaps/sitemap-index.xml
  • 搜索引擎站长工具提交
    • Google Search Console、Bing Webmaster Tools 等处提交 Sitemap URL,便于统计与诊断。
  • Ping 接口(可选)
    • Google/Bing 历史上支持类似:https://www.google.com/ping?sitemap=https://www.example.com/sitemap.xml 实际效果有限,官方更推荐通过站长工具管理与定期抓取。

8. 最佳实践

  • 仅包含「可索引」且「对外公开」的最终规范 URL(canonical)。
  • 优先提供高价值页面;对低价值或重复页面使用 noindex 或不纳入 Sitemap。
  • lastmod 仅在内容确实更新时变更,避免“假更新”。
  • 根据站点结构拆分 Sitemap(如:内容类型、目录、日期区间),利于维护与调试。
  • 长期保持 URL 策略一致(协议、主机、尾斜杠、大小写)。
  • 对媒体(图像/视频)与新闻内容使用相应扩展,提升理解与展示机会。
  • 定期在站长工具查看抓取/索引报告,修复错误条目。

9. 常见错误与排查

  • 使用相对 URL(应为绝对 URL)。
  • 命名空间遗漏或书写错误,导致扩展字段无效。
  • 包含被 robots.txt 禁止抓取或 noindex 的 URL。
  • lastmod 格式不合法或频繁更新无实际内容变更。
  • URL 返回 4xx/5xx 或重定向链过长。
  • 混用 http/https、带/不带 www,导致重复和规范化混乱。
  • hreflang 未成闭环、语言标记错误或缺少 x-default

排查建议:

  • 使用站长工具的 Sitemap 报告与 URL 检查工具。
  • 结合服务器/日志验证抓取状态与错误比例。
  • 对压缩文件确认正确的 MIME 与可解压性。

10. 示例合集

10.1 基础 Sitemap(含 lastmod/changefreq/priority)

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.example.com/</loc>
    <lastmod>2026-01-04</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.example.com/about/</loc>
    <lastmod>2025-12-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>

10.2 Sitemap 索引

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://www.example.com/sitemaps/pages-2026-01.xml.gz</loc>
    <lastmod>2026-01-04</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://www.example.com/sitemaps/pages-2025-12.xml.gz</loc>
    <lastmod>2026-01-01</lastmod>
  </sitemap>
</sitemapindex>

10.3 图片扩展

<?xml version="1.0" encoding="UTF-8"?>
<urlset
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://www.example.com/gallery/42</loc>
    <image:image>
      <image:loc>https://img.example.com/42-1.jpg</image:loc>
      <image:title>风景一</image:title>
    </image:image>
    <image:image>
      <image:loc>https://img.example.com/42-2.jpg</image:loc>
      <image:title>风景二</image:title>
    </image:image>
  </url>
</urlset>

10.4 视频扩展

<?xml version="1.0" encoding="UTF-8"?>
<urlset
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://www.example.com/lesson/intro</loc>
    <video:video>
      <video:thumbnail_loc>https://cdn.example.com/thumbs/intro.jpg</video:thumbnail_loc>
      <video:title>课程导学</video:title>
      <video:description>简要介绍课程内容。</video:description>
      <video:player_loc allow_embed="yes">https://player.example.com/?v=intro</video:player_loc>
      <video:duration>95</video:duration>
    </video:video>
  </url>
</urlset>

10.5 新闻扩展

<?xml version="1.0" encoding="UTF-8"?>
<urlset
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>https://www.example.com/news/2026/01/alpha</loc>
    <news:news>
      <news:publication>
        <news:name>Alpha Daily</news:name>
        <news:language>zh-CN</news:language>
      </news:publication>
      <news:publication_date>2026-01-04T07:55:00+08:00</news:publication_date>
      <news:title>Alpha 项目发布</news:title>
      <news:keywords>Alpha; 发布; 科技</news:keywords>
    </news:news>
  </url>
</urlset>

10.6 多语言互链(xhtml:link)

<?xml version="1.0" encoding="UTF-8"?>
<urlset
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://www.example.com/product/123</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/en/product/123"/>
    <xhtml:link rel="alternate" hreflang="fr" href="https://www.example.com/fr/produit/123"/>
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://www.example.com/zh-cn/product/123"/>
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/product/123"/>
  </url>
</urlset>

11. 实施与验证清单(简版)

  • [ ] 所有 URL 为可索引的规范 URL,返回 200。
  • [ ] lastmod 使用合法 ISO 8601,且仅在内容更新时变更。
  • [ ] 命名空间正确(含 image/video/news/xhtml 时)。
  • [ ] 单文件不超过 50,000 URL 与 50MB;超出则拆分并用索引。
  • [ ] 已在 robots.txt 中声明 Sitemap。
  • [ ] 已在搜索引擎站长工具提交并查看报告。
  • [ ] 无重复/冲突的 hreflang,互链闭环。
  • [ ] 图片/视频链接可抓取且稳定。

评论区 (0)

你需要先 登录 后才能发表评论。
还没有人评论,赶快成为第一个吧。

关于云信益站

云信益站是由荣县人创办的公益网站,集家乡宣传、技术分享与开发服务于一体。在这里,您可以探索荣县的美景、美食与历史,查询实用本地信息,学习软件开发技术。让我们以数字技术连接桑梓,赋能家乡发展。

联系站长

关注我们

© 2025 云信益站. 保留所有权利.