事情本身不复杂,线索都在日志里。WordPress 6.7 升级后 wp-sitemap.xml 打开是空白,状态 200 长度 0,换主题、停插件都没恢复,GSC 报无法读取站点地图。

第一反应是「伪静态规则把 wp-sitemap.xml 当成普通页面处理」,验证下来不成立。

排查方向其实有限,先把可能性排一排。主题在 template_redirect 里提前 exit,sitemap 请求被截断。还有一种是某个插件把 wp_sitemaps_enabled 过滤成 false。

另外,输出缓冲被清空,内容没有真正写出去。

第一件事是看响应头和内容长度

curl -s -o /dev/null -w "%{http_code} %{size_download}\n" https://www.example.com/wp-sitemap.xml

再往下确认 sitemap 功能是否被关掉

add_filter('wp_sitemaps_enabled', '__return_true');

然后检查伪静态规则有没有拦这个路径

location = /wp-sitemap.xml { try_files $uri $uri/ /index.php?$args; }

等前面都确认过,再用 WP-CLI 重建重写规则

wp rewrite flush --hard

当时还开着另一个排查窗口,两边日志对照着看才定位到。

同一份数据我导出了两份,一份留底,一份拿来试。

改完先别撤,确认这几项。wp-sitemap.xml 返回 200 且长度超过 1KB,GSC 能正常读取子 sitemap 列表。

容易忽略的是,空白页大多是主题或插件的 exit 造成的,先停掉 template_redirect 里的自定义逻辑。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189