修复 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 中启用 XML 站点地图
在 Yoast SEO 中启用 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)上也会导致内部服务器错误。

查看  Google Search Console 初学者指南

早些时候,Yoast 可以选择减少每个站点地图的最大条目数。 用户可以轻松地将限制更改为 300 或 400,并检查站点地图索引下的所有站点地图是否可访问。 但是,此选项后来被删除,并且无法限制每个站点地图中的 URL。

减少站点地图文件中的条目数
减少站点地图文件中的条目数

另一种选择是迁移到 Rank Math 插件,它允许您根据需要生成具有自定义 URL 数量的站点地图。 其他选项是在 Yoast 中禁用 XML 站点地图并使用默认的 WordPress 站点地图或使用其他插件。

使用排名数学更改站点地图中的 URL 数量
使用排名数学更改站点地图中的 URL 数量

当您更改条目数时,所有单独的站点地图(如帖子、标签和类别)都将相应重组。 因此,强烈建议您在确定条目数量后将您的站点地图重新提交给 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”访问索引文件。 站点地图索引文件包含所有单独的站点地图,如下例所示:

Yoast XML 站点地图索引文件示例
Yoast 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 站点地图或其他插件即可。

类似文章