修复 WordPress 中的 Yoast XML 站点地图问题
Yoast WordPress SEO 插件是 WordPress 评价最高和最常用的 SEO 插件之一。 除了允许添加自定义元描述、标题和其他页面优化之外,它还提供了许多其他附加功能。 一些附加功能,如添加面包屑、将附件图像重定向到帖子、XML 站点地图、网站管理员工具验证等,可帮助用户将单个插件用于所有 SEO 目的。 不幸的是,Yoast XML 站点地图功能可能会给您的 WordPress 网站带来一些问题。 在本文中,让我们探讨 Yoast WordPress SEO 插件可能存在的 XML 站点地图问题以及如何解决这些问题。
在 Yoast SEO 插件中启用 XML 站点地图
安装并激活插件后,导航到“SEO > General”菜单。 转到“功能”选项卡以查看 XML 站点地图的当前状态。 确保打开“XML 站点地图”选项下方的按钮,以便插件自动为您的站点生成站点地图索引。

如果您禁用此选项,则 Yoast SEO 插件将生成站点地图,您可以为您的站点使用默认的 WordPress 站点地图。
Yoast WordPress SEO 插件可能出现的站点地图错误
根据我们的经验,以下是与 XML Sitemap 相关的可能错误:
- 站点地图根本不起作用
- 404 页面未找到错误
- 500内部服务器错误
- 站点地图未重定向到 sitemap_index.xml
- 未找到自定义帖子/类别站点地图
- 作者/日期档案重定向到主页
- WordPress 站点地图未重定向到 Yoast 站点地图
以下部分解释了可能的修复。
1.站点地图根本不起作用
如果您看到站点地图未打开或显示白页,请尝试以下操作:
- 在 Yoast 插件中禁用 XML 站点地图。
- 导航到“设置 > 永久链接”并保存您的更改。
- 再次在 Yoast 插件中启用 XML 站点地图。
有时更改永久链接结构并将其重新设置也可能会有所帮助。
2. 404页面未找到错误
如果 XML 站点地图指向 404 Page Not Found 错误,那么 Yoast 建议添加这段代码来解决问题。 Yoast SEO 插件本身有一个选项来修改“SEO > 工具 > 文件编辑器”下的 .htaccess 文件。
对于在“/public_html”上安装 WordPress 的 Apache 服务器,在 WordPress 永久链接重写开始之前添加以下代码。
# Start Yoast SEO - Sitemap Fix for Normal WordPress Install
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L]
RewriteRule ^locations.kml$ /index.php?sitemap=wpseo_local_kml [L]
RewriteRule ^geo_sitemap.xml$ /index.php?sitemap=geo [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 Yoast SEO - Sitemap Fix for Normal WordPress Install
如果您在子文件夹中安装了 WordPress,请在 .htaccess 文件中添加以下代码。 此示例中的子目录是“wordpress”,您可以使用自己的子目录名称进行更改。
# Start Yoast SEO - Sitemap Fix for Subdirectory WordPress Install
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^sitemap_index.xml$ /wordpress/index.php?sitemap=1 [L]
RewriteRule ^locations.kml$ /wordpress/index.php?sitemap=wpseo_local_kml [L]
RewriteRule ^geo_sitemap.xml$ /wordpress/index.php?sitemap=wpseo_local [L]
RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /wordpress/index.php?sitemap=$1&sitemap_n=$2 [L]
# END Yoast SEO - Sitemap Fix for Subdirectory WordPress Install
如果您使用 Nginx 服务器,则在 Nginx 服务器配置文件中添加以下代码:
# Yoast Sitemap Fix
location ~ ([^/]*)sitemap(.*)\.x(m|s)l$ {
## this redirects sitemap.xml to /sitemap_index.xml
rewrite ^/sitemap\.xml$ /sitemap_index.xml permanent;
## this makes the XML sitemaps work
rewrite ^/([a-z]+)?-?sitemap\.xsl$ /index.php?xsl=$1 last;
rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
## The following lines are optional for the premium extensions
## News SEO
rewrite ^/news-sitemap\.xml$ /index.php?sitemap=wpseo_news last;
## Local SEO
rewrite ^/locations\.kml$ /index.php?sitemap=wpseo_local_kml last;
rewrite ^/geo-sitemap\.xml$ /index.php?sitemap=wpseo_local last;
## Video SEO
rewrite ^/video-sitemap\.xsl$ /index.php?xsl=video last;
}
3. 500 内部服务器错误
当您单击“sitemap_index.xml”文件或单击索引文件的单个站点地图部分(如“post-sitemap.xml”)时,可能会发生 500 内部服务器错误。 在大多数情况下,这是由于主机级别的 PHP 脚本运行时间限制。 为了减少运行时间,您可以减少每个站点地图中的条目数。 默认情况下,在 Yoast SEO 插件中,每个站点地图中的条目数限制为 1000。 但是,1000 在大多数共享托管环境(如 Bluehost)上也会导致内部服务器错误。
早些时候,Yoast 可以选择减少每个站点地图的最大条目数。 用户可以轻松地将限制更改为 300 或 400,并检查站点地图索引下的所有站点地图是否可访问。 但是,此选项后来被删除,并且无法限制每个站点地图中的 URL。
另一种选择是迁移到 Rank Math 插件,它允许您根据需要生成具有自定义 URL 数量的站点地图。 其他选项是在 Yoast 中禁用 XML 站点地图并使用默认的 WordPress 站点地图或使用其他插件。

当您更改条目数时,所有单独的站点地图(如帖子、标签和类别)都将相应重组。 因此,强烈建议您在确定条目数量后将您的站点地图重新提交给 Google 和其他搜索引擎。
4. Sitemap.xml 不重定向到 Sitemap_index.xml
可以使用 URL“https://yoursite.com/sitemap.xml”访问 WordPress 站点的默认站点地图。 但是 Yoast 插件不会创建“sitemap.xml”文件,而是动态创建 Sitemap 索引文件。 可以使用 URL“https://yoursite.com/sitemap_index.xml”访问索引文件。 站点地图索引文件包含所有单独的站点地图,如下例所示:
一般“sitemap.xml”会自动重定向到“sitemap_index.xml”。 但在某些情况下,站点地图不会重定向,您需要为此添加手动重定向。 在 .htaccess 文件下添加以下代码。
Redirect 301 /sitemap.xml /sitemap_index.xml
您还可以直接从 WordPress 管理仪表板或通过您的托管帐户使用重定向等插件添加重定向。 如果您使用的是 Nginx 服务器,请参阅上面的第 2 节以更正 404 page not found 错误,该错误还具有从“sitemap.xml”到“sitemap_index.xml”文件的重定向。
5. 未找到自定义帖子或类别站点地图
Yoast SEO 插件具有启用或禁用帖子类型和分类法的相应站点地图的设置。 导航到“SEO > Social Appearance”并在“Content Types”和“Taxonomies”选项卡下检查以启用或禁用所需的站点地图。 例如,您可以关闭“在搜索结果中显示标签”选项以从 XML 站点地图索引中删除标签站点地图。 在这种情况下,您可以在 Google Search Console 帐户的“覆盖范围”部分中找到所有标记为“已排除”的 URL。

6.作者或日期档案重定向到主页
当单个作者处理整个博客时,将不需要单独的作者存档站点地图。 这是为了避免在作者存档页面的两个不同 URL 下以及博客索引页面上出现重复的内容。 同样对于单个作者的博客所有日期存档,作者存档和博客索引页面将具有相同的内容。
当您在“SEO > Search Appearance > Archives”部分禁用作者档案和基于日期的档案时,这些档案页面将重定向到您的主页。 检查设置并根据需要启用或禁用存档。

7. WordPress 默认站点地图不重定向到 Yoast 站点地图
如前所述,默认情况下,WordPress 将为您的站点生成一个 XML 站点地图,无需任何插件,其格式如下:
https://your-site.com/wp-sitemap.xml
Yoast 会自动将 WordPress 站点地图重定向到 Yoast 站点地图索引文件。 如果这不起作用,您最终将拥有两个站点地图。 确保测试重定向工作正常,如果没有,您可能需要停用并重新安装 Yoast SEO 插件来解决问题。
最后的话
XML Sitemap 是搜索引擎抓取和索引您的内容的关键文件。 虽然 Yoast SEO 是 WordPress 的流行插件,但它并不能满足拥有自定义 XML 站点地图的所有需求。 如果 Yoast 站点地图不起作用或您无法解决问题,只需关闭该选项并使用默认的 WordPress 站点地图或其他插件即可。