大家好,

我在 Cloudflare Pages 上运行一个 Next.js 应用,遇到一个奇怪的问题:Google 搜索控制台无法读取我的站点地图。

症状

Google 搜索控制台报告:

不能读取站点地图

或者在测试时:

不能读取

然而:

  • 站点地图是公开可访问的。
  • 站点地图返回 HTTP 200。
  • Bing 网站管理员工具可以读取它成功。
  • 浏览器可以正常打开它。
  • Google 可以爬取和检查正常页面 URL。
  • 只有站点地图文件似乎受影响。

站点地图 URL

https://decido.pages.dev/secret-master-index-v2.xml

响应头

HTTP 200 OK
Content-Type: application/xml; charset=utf-8
Cache-Control: no-transform
Server: cloudflare

之前我有:

X-Robots-Tag: noindex

在站点地图路由上,但我已经移除并重新部署。

站点地图结构

主站点地图:

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

  <sitemap>
    <loc>https://decido.pages.dev/secret-main.xml</loc>
    <lastmod>2026-06-01T14:16:40.571Z</lastmod>
  </sitemap>

  <sitemap>
    <loc>https://decido.pages.dev/secret-profiles.xml</loc>
    <lastmod>2026-06-01T14:16:40.571Z</lastmod>
  </sitemap>

  <sitemap>
    <loc>https://decido.pages.dev/secret-posts/1.xml</loc>
    <lastmod>2026-06-01T14:16:40.571Z</lastmod>
  </sitemap>

</sitemapindex>

所有子站点地图都是可独立访问的,并且包含有效的 XML。

示例子站点地图:

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

  <url>
    <loc>https://decido.pages.dev/post/example-post</loc>
    <lastmod>2026-05-31T20:53:02.396Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.7</priority>
  </url>

</urlset>

我已经检查过的内容

✅ 站点地图返回 HTTP 200

✅ Content-Type 是 application/xml

✅ XML 声明存在

✅ 子站点地图有效

✅ 没有重定向

✅ 没有认证

✅ 没有 robots.txt 阻止

✅ Google URL 检查可以访问正常页面 URL

✅ Bing 可以读取站点地图

✅ 站点地图使用 Next.js Route 处理器在 Cloudflare Pages 上生成

运行时

export const runtime = 'edge';
export const dynamic = 'force-dynamic';

问题

有没有人遇到过 Google 搜索控制台无法读取:

不能读取站点地图

的错误,而站点地图本身是有效的并且公开可访问的?

是否有任何已知的 Cloudflare Pages 行为、缓存层、Workers 转换或 Googlebot 兼容性问题可能导致 Google 拒绝站点地图,而 Bing 却接受它?

任何调试想法都将被感激。

感谢!

注意:目前使用的是一个 pages.dev 子域名。还没有测试过自定义域名。有没有人观察到 *.pages.dev URL 在 Google 搜索控制台中特有的站点地图问题?