在 Search Console 提交 Sitemap(以及三种状态的真相)

2 分钟提交 sitemap 的完整流程,搞清楚 Success / Has errors / Couldn't fetch 各自的含义,以及怎么修。

给 Google 提交 sitemap,敲键盘大概两分钟,等结果要 24 到 72 小时。难的是提交完怎么读状态:Search Console 只给三种状态(Success、Has errors、Couldn’t fetch),而且「Success」也可能掩盖一张坏掉的 sitemap。下面是完整流程,加上每种状态到底怎么看。

TL;DR

打开 Search Console 的 Sitemaps 报告,只填路径(sitemap.xml,前面不要斜杠,也不要完整 URL),点提交。24-72 小时内状态应该变成 Success,并显示一个和你实际页面数对得上的 Discovered URLs。如果显示 Couldn’t fetch,多半是 URL 填错了或者 robots.txt 把文件屏蔽了。如果 Discovered URLs 远低于你的页面数,说明生成器漏页了。提交 sitemap 不保证收录——它只是给 Google 一份干净的清单,外加一份能尽早抓出 bug 的状态报告。

提交 sitemap 到底做了什么

sitemap 是一个 XML 文件,列出你希望 Google 发现的 URL。提交它做了三件事,还有一件它不做:

  • 给 Google 一份权威的、列全你站点所有 canonical URL 的清单。
  • 提供一份状态报告,能抓出抓取失败、编码错误、漏页这类你平时根本看不到的 bug。
  • 在新站或大站上加快发现速度——这类站点光靠内链爬起来很慢。
  • 不会强制收录。Google 对每个 URL 单独判断,看内容质量、链接和权威度。sitemap 是「这是清单」,不是「请收录这些」。

注意:Google 完全忽略 sitemap 里的 <priority><changefreq> 标签(见 Google 官方文档),别花时间调它们。<lastmod> 会被用,但前提是你填得一直准确。

什么时候需要这篇

  • 刚上线,不知道 Google 有没有看到你的 sitemap。
  • Search Console 显示 Couldn’t fetch
  • sitemap 报的 Discovered URLs 远少于你的实际页面数。
  • 换了域名搬站、或改过 sitemap 名字,老条目还挂在列表里。

提交流程:分步走

  1. 确认文件存在。 浏览器打开 https://你的域名/sitemap.xml,应该返回一个列着 URL 的 XML 文档。如果 404,说明你的框架没生成——先解决这个。(Astro 的 @astrojs/sitemap、Next.js 的 sitemap.ts、大多数 CMS 插件都会自动生成。)
  2. 打开 Sitemaps 报告。 在 Search Console 左侧「索引」下面点 Sitemaps
  3. 只填路径。Add a new sitemap 里填 sitemap.xml——前面不要斜杠,不要 https://。域名已经从你的资源里自动带上了。点 Submit
  4. 等 24-72 小时。 状态行几分钟就出现,但一开始常显示「Couldn’t fetch」或空白,这是正常的。过一天再看。
  5. 核对数量。 状态变成 Success 后,确认 Discovered URLs 和你的实际页面数对得上。站点 50 页但写 3,说明 sitemap 不全——多半是生成器 bug,或者某个草稿过滤条件忘了关。
  6. 抽查 3 个 URL。 再开一次 sitemap,随机挑三个 URL。能打开吗(HTTP 200)?协议和域名(https://、www 还是裸域)和你的 canonical 一致吗?协议或主机不一致,整张 sitemap 都作废。
  7. 一周后对照看。 对比 Pages 报告。「Submitted」和「Indexed」几乎不会 100% 相等,但如果「Crawled - currently not indexed」或「Discovered - currently not indexed」一大堆,那是内容或权威问题,不是 sitemap 问题。

三种状态,逐个拆解

Search Console 只会给三种状态之一。这就是关键所在:

状态含义该做什么
Success抓取并解析成功,所有 URL 进入爬取队列。核对 Discovered URLs 数量。「Success」但数字不对,照样是 bug。
Has errors抓取成功,但有一条或多条格式错误。能解析的 URL 仍进队列。点进 sitemap 看具体报错行,修 XML。
Couldn’t fetchGoogle 最近一次 HTTP 请求没拿到文件。没有任何 URL 被处理。检查 URL 是否正确、文件是否返回 200、robots.txt 有没有屏蔽。然后重新提交。

最坑的是 Success 但 Discovered URLs 偏低,因为表面上一切正常。永远要核对数字,别只看那个绿色标签。

修「Couldn’t fetch」

这是新站最常见的失败。按顺序排查:

  1. 路径填错。 确认 Sitemaps 框里是 sitemap.xml,不是页面 URL 或拼错的字符串。删掉错条目重新加。
  2. 文件 404 或 500。 自己打开那个 URL。如果不返回 200,说明你的构建没在那个路径输出文件。有些框架输出的是 sitemap-index.xml 而不是 sitemap.xml
  3. robots.txt 屏蔽了它。 一行 Disallow: /sitemap.xml(或者一刀切的 disallow)会挡住 Googlebot。用「网址检查」工具的「测试实际网址」确认能不能抓到。
  4. 服务器慢或不稳。 Google 抓取超时也会显示「Couldn’t fetch」。等你的主机稳定后重新提交,这种情况常常几天内自己好。

这个状态和你用哪家主机无关——Vercel、Firebase、Cloudflare Pages 上都会遇到,几乎总是上面四个原因之一。

容易踩的坑

  • 把完整 URLhttps://你的域名/sitemap.xml)填进只要路径的框里。有些 property 两种都接受,但填路径永远安全。
  • 列了会 301、404 或带 noindex 的 URL。 Google 看到信号冲突,可能降低对整张 sitemap 的信任。sitemap 里只放 canonical、可索引、返回 200 的 URL。
  • 主机或协议不一致。 Domain 资源下的 sitemap 却指向 http:// 或别的子域,会被整张忽略。
  • 搬完家忘了更新。 老 URL 会在索引报告里挂好几个月。
  • 拆得太碎。 单张 sitemap 上限是 50,000 个 URL 或 50 MB(未压缩,允许 gzip)。没超就用一张。超了用 sitemap index,一个 index 最多可以引用 500 个子 sitemap。

你已经不需要 ping 端点了

老的「ping」小技巧——访问 https://www.google.com/ping?sitemap=... 来催 Google——已经在 2023 年废弃,现在返回 404Google Search Central)。Google 发现绝大多数无认证的 ping 都是垃圾。现在支持的提交方式只有两种:Search Console 的 Sitemaps 报告,以及 robots.txt 里的一行 Sitemap:

Sitemap: https://你的域名/sitemap.xml

robots.txt 里列一行值得顺手做,除了 Search Console 之外——Bing 和别的爬虫也是这么找到 sitemap 的。

这篇适合谁,什么时候可以跳过

适合上线第一个月的新站、换域名搬家的站,以及 URL 超过 100、想让 Google 快速找全的站。一个总共五页、也不打算长期更新的展示站可以跳过——Google 顺着内链就能找到那五页,sitemap 不是瓶颈。

FAQ

  • 提交后多久显示 Success?: 通常 24-72 小时。3 天后还显示「Couldn’t fetch」,要么 URL 填错了、要么文件没返回 200、要么 robots.txt 屏蔽了它。
  • sitemap 显示 Success 但页面没收录,怎么回事?: 提交不等于保证收录。sitemap 是清单,收录是 Google 对每个 URL 单独的判断,看内容、链接、权威度。去 Pages 报告看这些 URL 落在哪个「未收录」分类里。
  • 每发一篇新文章要不要重新提交?: 不用。提交一次后,Google 会按自己的频率重新抓 sitemap(一般几天一次)。确保每次部署生成器都重新生成文件即可。
  • 提交 sitemap_index.xml 还是分开的子 sitemap?: 提交 index。Google 会自动顺着找到每个子 sitemap,你也只需盯一行,而不是几十行。
  • 硬性上限是多少?: 单张 sitemap 最多 50,000 个 URL 或 50 MB(未压缩),一个 index 文件最多引用 500 张 sitemap。要求 UTF-8 编码、URL 写成完整绝对地址。
  • 还能 ping Google 加速吗?: 不能。ping 端点 2023 年退役,现在返回 404。用 Search Console 和 robots.txt;单个急需的页面,用「网址检查」工具的「请求编入索引」。

相关阅读

标签: #独立开发 #SEO #Google #Search Console #收录 #入门