WordPress内置XML Sitemap站点地图使用及增强优化/wp-sitemap.xml不显示的解决方法
- 发表于
- WordPress
以前一直使用 Google XML Sitemaps 插件自动生成 sitemap.xml 站点地图。不过 WordPress 5.5 版本开始,核心代码已经内置 XML Sitemaps 功能,于是使用 WordPress 内置 XML Sitemaps 替换了 Google XML Sitemaps 插件。

WordPress 5.5 版本起 内置 sitemap 功能
WordPress 5.5 版本开始,核心代码已经内置 XML Sitemaps 功能,只要访问:https://网站地址/wp-sitemap.xml 就能得到当前站点的站点地图,比如 体验盒子 站点 wp-sitemap.xml:https://www.uedbox.com/wp-sitemap.xml
wp-sitemap.xml 是一个汇总索引性 sitemap 文件,包含所有 post_type、taxonomy 和 文章作者 sitemap 索引文件。WordPress 网站地图最多索引 50000 个条目,而每个 sitemap 文件最多只有 2000 个条目,每一个文件名以 -n 结尾区分。
WordPress 内置 XML Sitemaps 功能优化增强
WordPress 内置 XML Sitemaps 功能蛮实用,可以省掉一个插件。不过目前该功能还比较简单,changefreq, priority, 和 lastmod 这些标签信息都没有,以及每个 sitemap 文件最多只有 2000 个条目这个限制可以稍稍改大,可以按需优化一下。
如何禁用 WordPress 内置 XML Sitemaps 功能?
如果不想使用 WordPress 内置 XML Sitemaps 功能,可以使用如下代码禁用:
//移除 WordPress XML 站点地图
add_filter( 'wp_sitemaps_enabled', '__return_false' );
代码放至主题 functions.php 文件即可。
WordPress 自带 wp-sitemap.xml 网站地图突破每页 2000 条目数量限制方法
修改主题文件 functions.php 加入以下代码,其中 6666 修改成实际需要的数据即可,比如 8888 或者 888。
add_filter( 'wp_sitemaps_max_urls', 'theme_wp_sitemaps_max_urls' );
function theme_wp_sitemaps_max_urls(){
return 6666;
}
另外,wp-sitemap.xml最大限制 50000 条目应该是为了性能考虑,不过如果真的有需要,可以修改 wp-includes/sitemaps/class-wp-sitemaps-index.php
文件,将其中的 50000 修改为实际需要的数据条目数量即可。
不过一般修改单个 sitemap 链接 2000 条目限制就足够了,然后把拆分的 sitemap 链接提交给不支持索引型 sitemap 文件的搜索引擎即可。
WordPress 自带 wp-sitemap.xml 网站地图增加 changefreq, priority, 和 lastmod 这些标签信息
代码放至主题 functions.php 文件即可。
add_filter( 'wp_sitemaps_posts_entry', function( $entry, $post ) {
$entry['lastmod'] = date( DATE_W3C, strtotime( $post->post_modified_gmt ) );//DATE_W3C = 'Y-m-d\TH:i:sO'
$entry['changefreq'] = 'Daily';
$entry['priority'] = '0.6';
return $entry;
}, 10, 2 );
来源:To add the last modifed date to your XML sitemap, Google wants the date in W3C format.
wp_sitemaps_users_entry / wp_sitemaps_taxonomies_entry
这两个钩子也可以使用 wp_sitemaps_posts_entry
类似方法增加 changefreq, priority, 和 lastmod 这些标签信息,wp_sitemaps_index_entry
也可以增加 lastmod 信息,不过老头折腾不来,坐等高手或者 WordPress 官方代码。
WordPress 自带 wp-sitemap.xml 网站地图如何移除作者 / 用户列表 users 索引?
关键词:How to remove author sitemaps from WordPress、WordPress 5.5 remove Users from XML Sitemap、How to remove Users from WordPress Sitemap
代码放至主题 functions.php 文件即可:
//wp_sitemaps 移除用户 作者 列表
add_filter( 'wp_sitemaps_add_provider', function ($provider, $name) {
return ( $name == 'users' ) ? false : $provider;
}, 10, 2);
如何使用 WordPress 自动生成的 wp-sitemap.xml 提交到搜索引擎加快收录?
有了 sitemap.xml 文件,向搜索引擎站长平台提交即可让搜索引擎快速收录网站链接。目前一般提交「谷歌 Google Search Console」、「必应 Bing Webmaster Tools」、「搜狗」、「360」、「百度 搜索资源平台」以及「今日头条搜索站长平台」等。
- Google Search Console 支持内置sitemap地图提交解析
- Bing Webmaster Tools 支持内置sitemap地图提交解析
- 百度 不支持,需要逐条添加
- 今日头条 支持内置sitemap地图提交解析
wp-sitemap.xml不显示的解决方法
注意:如果要使用 WordPress 内置 XML Sitemaps 功能,得把 Google XML Sitemaps 插件禁用或删除,否则访问 wp-sitemap.xml 会 404。
如果无法访问,按顺序排查,问题几率依次降低,一般前两条就能解决。
- 搜索引擎可见性。后台【仪表盘】-> 【设置】-> 【阅读】最下方取消勾选。
- 禁用sitemap相关插件。
- 本地有动态文件‘/robots.txt’,建议用静态化固定链接。【仪表盘】-> 【设置】->【固定链接】。
- 如果正好是5.5版本,建议再升级下版本,5.5.1 官方修复了sitemap的一些bug。参考资料:https://www.searchenginejournal.com/wordpress-5-5-sitemap-bug/378919/#close
- 检查下网站自身是否有严重问题。【仪表盘】-> 【工具】-> 【站点健康】。
- 查日志,debug.log。
原文连接
的情况下转载,若非则不得使用我方内容。