大家好,
我在 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 搜索控制台中特有的站点地图问题?
评论 (0)