AI2Work
SEO 实战

Google Search Console 一直无法获取 Sitemap,我是怎样解决的

当 sitemap 文件本身返回 200、XML 格式正确、robots.txt 没有阻止抓取,但旧 sitemap URL 在 GSC 中长期显示 Couldn't Fetch 时,可以新建一个内容相同、从未提交过的 sitemap URL 进行对照测试。本案例最终通过新 URL 成功让 Google 发现 74 个页面。

更新时间:2026-06-26 适用对象:SEO / 站长运维

问题表现

AI2Work.xyz 最初提交:

https://ai2work.xyz/sitemap.xml

GSC 长期显示:

Couldn't fetch Sitemap could not be read Discovered pages: 0

但直接访问文件时:

HTTP/1.1 200 OK Content-Type: text/xml

已排除的问题

依次确认:

  1. sitemap URL 可以公开访问
  2. GET 和 HEAD 均返回 200
  3. Content-Type 为 text/xml
  4. 文件不是 HTML 错误页
  5. XML 语法可解析
  6. robots.txt 没有禁止抓取
  7. 首页可以被 Google 抓取和索引
  8. HTTPS 正常
  9. sitemap 中使用规范 HTTPS URL
  10. 没有明显的重定向循环

第一次有效测试

创建测试文件:

https://ai2work.xyz/test-sitemap.xml

只包含首页:

https://ai2work.xyz/ 2026-06-26

提交后,测试 sitemap 很快显示成功,并发现 1 个页面。这证明:

正式解决

将已经验证正确的 URL 列表复制到新的正式地址:

https://ai2work.xyz/sitemap-index.xml

同时:

  1. robots.txt 改为指向新地址
  2. GSC 提交新的完整 URL
  3. 保留旧 sitemap 一段时间
  4. 不使用重定向增加额外变量

最终结果:

Status: Success Discovered pages: 74

关于“旧 URL 退避”的判断

不能断言 Google 一定为旧 sitemap URL 设置了某种固定退避计时器。更准确的判断是:旧 sitemap URL 可能保留了历史失败状态、缓存或较低的重试优先级。更换新 URL 是本案例中有效的解决方案,但不保证适用于所有网站。

建议排障顺序

  1. 检查 HTTP 200
  2. 检查 Content-Type
  3. 检查 XML 解析
  4. 检查 robots.txt
  5. 检查重定向
  6. 创建最简测试 sitemap
  7. 提交测试 URL
  8. 测试成功后再判断旧路径问题
  9. 必要时使用全新正式 sitemap URL

命令示例

curl -I https://example.com/sitemap.xml
curl -fsSL https://example.com/sitemap.xml | xmllint --noout -
curl -sS -o /dev/null -w 'status=%{http_code} redirects=%{num_redirects} type=%{content_type}\n' https://example.com/sitemap.xml

适用范围

适合:

不适合:

最终检查清单

补充说明

深度分析:为什么旧 URL 会"记住"失败状态

Google 对 sitemap URL 的处理和普通页面不同。当一个 sitemap URL 多次返回错误或无法解析时,Google 会将其标记为低优先级并降低抓取频率。这个机制的目的是保护 Google 的抓取资源不被浪费,但副作用是即使你已经修复了问题,旧 URL 的重试周期可能长达数周。这就是为什么在很多实际案例中,创建一个全新的 sitemap URL 比等待旧 URL 恢复更高效。本案例中 test-sitemap.xml 在 20 分钟内被成功处理,而旧 sitemap.xml 在 24 小时后仍无响应。

sitemap-index 命名的考量

选择 sitemap-index.xml 而非其他名称有几个原因:这个名称表明它是"索引级"sitemap(区别于依赖子 sitemap 的 sitemapindex 结构);与旧 sitemap.xml 保持命名空间相近,方便后续维护;不会与任何已有路径冲突。如果你的旧 sitemap 也遇到类似问题,建议选择一个有语义且从未提交过的名称,而不是简单加个 v2 后缀。

FAQ

相关教程

相关专题