sitemap 就是一份你希望搜索引擎知道的 URL 列表,用 XML 写成、可被机器读取。它不会「提交」你的页面、不会提升排名,而且 Google 会忽略大多数花哨生成器塞进去的元数据。下面讲清楚它真正做的事、它忽略什么,以及 2026 年能跑起来的最小版本。
一句话总结
生成一个 /sitemap.xml,列出所有公开、可被收录的 URL,每条配一个真实的 <lastmod> 日期。跳过 <priority> 和 <changefreq>——Google 多年来一直说这两个都不读。在 robots.txt 里声明 sitemap,让所有爬虫都能找到它,然后在 Google Search Console 里提交一次。之后每次部署重新生成。这就是全部工作。
sitemap 是什么(以及不是什么)
XML sitemap 在 2005 年被标准化,当时搜索引擎还爬不动重 JS 的站点。2026 年 Google 的爬虫能力强了很多,但 sitemap 仍然是「这里是我想被收录的完整 URL 列表」这句话的标准表达方式。对小站,Google 顺着内链也能找到大多数 URL;sitemap 主要是在上线当天加速发现,并暴露那些内链不强的页面。
有三件事 sitemap 并不会做,尽管很多人以为它会:
- 它不会强制收录。Google 仍然逐个 URL 判断这页值不值得收录。一个在 sitemap 里的 URL,如果 Google 觉得它内容单薄或重复,可能一直停在「已发现-当前未收录」。
- 它不会提升排名。发现和排名是两个阶段。URL 进了索引之后,名次靠的是内容、链接和意图匹配。
- 它不能替代内链。一个只能通过 sitemap、站内别处都点不到的页面,给 Google 的相关性信号很弱。
Google 真正会读哪些字段
一个 <url> 条目可以带四个子元素。只有两个有意义,而且其中只有一个被普遍采信。这是最值得记住的一张表。
| 字段 | Google 的行为(2026 年 6 月) | 你该怎么做 |
|---|---|---|
<loc> | 必填。绝对的、规范的 URL。 | 一定要写;只用一个主机。 |
<lastmod> | 在它看起来「诚实」时,作为重爬调度信号使用。 | 写真实的最后修改日期,用 ISO 8601 格式(2026-05-15 或 2026-05-15T09:30:00+00:00)。 |
<changefreq> | 忽略。 | 省掉。 |
<priority> | 忽略。 | 省掉。 |
Google 的官方表态很直接:它根本不用 changefreq 和 priority,并且把 priority 看成一个主观字段,很少能反映页面的真实重要性。给每个 URL 都堆上 <priority>1.0</priority>,除了把文件撑大没有任何作用。<lastmod> 是唯一值得认真写好的信号,而且只有在它可被核实为准确时才有用——Google 会拿它和页面实际内容对照,如果一堆从不变化的页面都写着「今天」,这个字段就会被打折扣。
生成与提交,分步走
- 用框架的 sitemap 插件,别手写 XML。Astro:
@astrojs/sitemap;Next.js:内置的app/sitemap.ts;WordPress:Rank Math 或 Yoast。手写对五个页面的站还行,再大就是浪费时间。 - 验证输出。浏览器访问
https://你的域名/sitemap.xml,应该看到以<urlset>为根、带一串<url>条目的 XML。如果看到的是首页 HTML,说明路由配错了。 - 检查每个条目都有
<loc>(绝对 URL)和一个诚实的<lastmod>。<priority>和<changefreq>完全不写。 - 只放你真正想被收录的 URL。草稿、不想被爬的标签页/分页归档、站内搜索结果 URL、admin 页面,都排除。混入
noindex或会跳转的 URL 会触发 Search Console 警告。 - 在
robots.txt里加一行Sitemap:,指向 sitemap 的绝对地址(例如Sitemap: https://你的域名/sitemap.xml)。Bing、Applebot、DuckDuckBot 等爬虫就是靠这个发现 sitemap 的,不需要在任何后台提交。可以写多行Sitemap:。 - 在 Google Search Console 的 Sitemaps 里提交一次。现在已经没有「ping」Google 让它重抓的办法了——旧的
ping端点已于 2023 年 6 月 26 日下线,现在访问会返回 404。Google 会按自己的节奏重抓已提交的 sitemap;只有当 sitemap 的地址变了才需要重新提交。 - 几天后看 Search Console 的 Sitemaps。状态应为「Success」,「Discovered URLs」数量应和你实际的 URL 数对得上。抓取成功却显示「0 discovered」,说明 XML 格式坏了。
容易踩的坑
- 硬塞
<priority>和<changefreq>。 Google 两个都不读,只是增加字节、毫无价值。 - 列入死链或会跳转的 URL。 任何返回 404、301 或带
noindex的 URL 都会变成 Search Console 警告。文件里只留存活、可收录、规范的 URL。 - 让
<lastmod>过期。 真的更新了文章,就同步更新它的<lastmod>。Google 用诚实的<lastmod>决定重爬优先级;日期冻住不动,你的编辑被重新收录就更慢。 - 发布了开发环境的 sitemap。 在开发服务器生成的 sitemap,里面是
http://localhost:4321的地址。一定要在真实域名上核对线上文件。 - 同时列出同一 URL 的
www.与裸域名版(或http与https版)。挑一个规范主机,其他用 301 跳转,而不是写进 sitemap。 - 在 robots.txt 里屏蔽了 sitemap 中的 URL。 一边在 sitemap 里列出某 URL、一边在 robots.txt 里
Disallow它,是自相矛盾,既浪费抓取预算,还可能让这页被丢弃。
谁需要、谁可以跳过
任何超过大约 10 个 URL 的独立站都值得做,尤其是有些页面不在首页内链里时;如果你想在 Search Console 看「提交 vs 收录」的覆盖明细,那它是必需的。
单页站、或所有 URL 都在主导航里的站,可以跳过。有 sitemap 也无害,但 Google 不靠它也能轻松找到五个内链良好的 URL。
常见问题
- sitemap 会提升排名吗?: 不会。它提升的是发现速度。URL 被发现后,排名靠的是内容、链接和意图匹配。sitemap 只是把「页面存在」到「页面有资格进索引」之间的时间缩短。
- sitemap 能多大?: 单个文件最多 50000 个 URL 或 50MB(未压缩)。超过就拆开,用一个 sitemap index 文件引用各部分(index 本身最多可指向 50000 个 sitemap)。独立站基本碰不到这两个上限。
- 要不要把图片、视频放进去?: 大多数内容站不用。图片和视频 sitemap 扩展对图片站、视频站有用;普通博客的 HTML 页面 sitemap 就够了,Google 仍会爬已收录页面里嵌的图。
- 发布后还要不要 ping Google?: 不用。sitemap 的 ping 端点已于 2023 年 6 月 26 日弃用,现在任何请求都会返回 404。在 Search Console 提交一次、或在 robots.txt 里声明即可,Google 会自己重抓。
- Search Console 显示「Couldn’t fetch」怎么办?: 基本是这几种之一:URL 写错了、robots.txt 屏蔽了 sitemap 路径、文件返回 404、或抓取时服务器返回 500。开一个无痕窗口访问那个 URL——你看到的就是 Google 看到的。
权威规范见 Google 的 Build and Submit a Sitemap 以及最初的 sitemaps.org 协议。
相关阅读
标签: #独立开发 #SEO #Technical SEO #收录 #入门