sitemap_index.xml 出现 404 错误的原因及解决方法(翻译)

wordpress RankMathSEO插件,sitemap URL访问出现404错误的原因及解决方法

翻译自:https://rankmath.com/kb/sitemap-404-error/

原文标题

sitemap_index.xml 出现 404 错误的原因及解决方法(翻译)

谷歌会使用 sitemap_index.xml(站点地图索引文件)来收录你网站上的所有页面。如果这个站点地图无法访问并返回 404 错误,谷歌将无法抓取到你网站的全部页面。

在这篇知识库文章中,我们将带你了解 sitemap_index.xml 出现 404 错误的原因,以及如何解决这个问题。

目录

  • 为什么 sitemap_index.xml 会出现 404 错误?

  • 导致 sitemap_index.xml 文件出现 404 错误的原因有哪些?

  • 如何修复 Rank Math 中 sitemap_index.xml 报 404 错误?

    • 清理站点地图缓存
    • 修复 Nginx 或 Apache 服务器上的站点地图问题
    • 在缓存插件中排除站点地图文件
    • 添加代码过滤器以启用 / 禁用站点地图缓存
    • 确保页面设置为允许索引(index)

1 为什么 sitemap_index.xml 会出现 404 错误?

404 错误意味着站点地图索引文件或单个子站点地图不存在。谷歌爬虫期望得到 200 正常响应,并通过提交的站点地图获取你网站的所有网址。当它无法找到 sitemap_index.xml 时,就会返回 404 错误。

在 Rank Math 中配置站点地图非常简单。如果你无法使用 Rank Math 的站点地图功能,请查阅我们关于 Rank Math 站点地图常见问题及解决方法 的知识库文章,它能帮你解决大部分常见问题。


2 导致 sitemap_index.xml 文件出现 404 错误的原因有哪些?

以下几种情况会导致 sitemap_index.xml 出现 404 错误:

  1. 固定链接结构变更:如果你最近修改了 WordPress 固定链接格式,务必同步更新 sitemap_index.xml。
  2. 缺少伪静态(重写)规则:如果你使用 Nginx 或 Apache 服务器,需要确保配置了正确的重写规则。
  3. 缓存插件影响:如果你使用了缓存插件 / 服务,必须将 sitemap_index.xml 从缓存中排除。缓存可能来自插件,也可能来自服务器层面。

3 如何修复 Rank Math 中 sitemap_index.xml 报 404 错误?

如果你正在使用 Rank Math,且 sitemap_index.xml 出现 404 错误,可以按照以下方法逐一解决:

3.1 清理站点地图缓存

添加重写规则后,需要清理站点地图缓存才能生效。

操作步骤:

  1. 进入 Rank Math SEO → 站点地图设置(Sitemap Settings)

  2. 修改每个站点地图包含的链接数量(Links Per Sitemap)

  3. 点击页面底部的 保存更改(Save Changes)

  4. 进入 WordPress 后台 设置 → 固定链接(Permalinks)

  5. 即使不修改任何内容,也直接点击一次 保存更改(Save Changes)

这样会刷新固定链接配置,通常能直接修复站点地图问题。


3.2 修复 Nginx 或 Apache 服务器上的站点地图问题

如果 Nginx 服务器阻止生成站点地图文件,Rank Math 会在站点地图设置下方给出提示。

这种情况下,你需要手动添加重写规则

3.2.1 为 Nginx 服务器添加重写规则

如果你使用 Nginx,添加以下规则修复问题:

1
2
3
4
5
# START Nginx Rewrites for Rank Math Sitemaps
rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
rewrite ^/([a-z]+)?-sitemap\.xsl$ /index.php?xsl=$1 last;
# END Nginx Rewrites for Rank Math Sitemaps

重要提示:如果你不确定如何添加这些规则,请联系你的服务器管理员或主机商客服,他们会为你处理。

3.2.2 为 Apache 服务器添加重写规则

启用 Rank Math 站点地图模块后,插件会动态生成虚拟站点地图,这依赖服务器的重定向功能。如果站点地图无法正常访问,你可能需要在 .htaccess 文件中添加重写规则。

你可以通过 Rank Math 编辑 .htaccess 文件,将以下代码复制粘贴到文件末尾:

1
2
3
4
5
6
7
# START of Rank Math Sitemap Rewrite Rules
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L]
RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]
RewriteRule ^([a-z]+)?-?sitemap.xsl$ /index.php?xsl=$1 [L]
# END of Rank Math Sitemap Rewrite Rules

3.3 在缓存插件中排除站点地图文件

使用缓存插件是加速 WordPress 网站最简单的方式,但站点地图绝对不能被缓存

站点地图必须始终反映网站最新的文章和链接,缓存会完全违背它的作用。

你需要在缓存插件中,将 Rank Math 生成的站点地图文件排除在缓存之外(无论缓存来自插件还是服务器)。

完成设置后,清除浏览器缓存或使用无痕窗口打开站点地图,应该就能正常访问了。


3.4 添加代码过滤器以启用 / 禁用站点地图缓存

有时站点地图会受到服务器级缓存的影响。这种情况下,可以将以下代码添加到主题的 rank-math.php 文件中,强制禁止站点地图被缓存:

1
2
3
4
5
6
/**
* Filter if XML sitemap transient cache is enabled.
*
* @param boolean $unsigned Enable cache or not, defaults to true
*/
add_filter( 'rank_math/sitemap/enable_caching', '__return_false');

添加并保存后,重新检查站点地图,看问题是否解决。如果仍然报错,可以尝试下一个方法。


3.5 确保页面设置为允许索引(index)

Robots 元标签用于告诉谷歌是否将某个页面纳入搜索结果。

你需要确保:希望被搜索引擎收录的文章和页面,Robots 标签必须设置为 index

如果页面被设置为 noindex,它会被 Rank Math 自动从站点地图中排除,并可能导致 404 错误。

查看方式:

进入文章编辑页面 → Rank Math SEO → 高级选项(Advanced) 查看 Robots 标签设置。

确认无误后,点击 ** 更新(Update)发布(Publish)** 保存。