参考标准:
- 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:caption、image:title、image: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_loc、video:title、video:description。
- 其一:
video:content_loc(直链媒体)或 video:player_loc(播放页/嵌入式播放器)。
- 可选:
video:duration(秒)、video:publication_date、video: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。
- 压缩
- 响应与可访问性
- Sitemap 与被列出的 URL 均应返回 200(或可被正确抓取)。
- 不要列出 3xx 最终指向的目标以外的中间跳转 URL。
- 时间与时区
lastmod 建议带时区偏移(如 +08:00)。
- 字符转义
- XML 保留字符必须转义:
& → &,< → <,> → > 等。
7. 发布与提交
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,互链闭环。
- [ ] 图片/视频链接可抓取且稳定。