最近站点收录有点慢,于是去百度站平台测试一下抓取诊断,发现百度可以抓取到页面的原生的动态链接,如?p=2848,而本站的网页是做了伪静态处理的,索性去网页查看源代码并未发现有这个动态链接,于是去查询了一下,发现很多站长有类似的情况,而且这个shortlink对百度搜索引擎来说很不友好,很多站长也反馈百度在抓取该网页时还会收录这个链接,导致网页权重分散。
所以删除势在必行,另外也发现网页有许多不需要的mate标签,索性一次性清除掉。
1、去除shortlink
我们在主题中的functions.php加入一些去掉该信息的代码就OK了。具体代码如下
// 移除头部 HTTP header 中的shortlink remove_action('wp_head','wp_shortlink_wp_head',10,0); remove_action('template_redirect','wp_shortlink_header',11,0);
2、去除wp-json
依然是编辑主题中的functions.php,然后加入以下代码:
// 移除头部 wp-json 标签和 HTTP header 中的 link remove_action('wp_head', 'rest_output_link_wp_head', 10 ); remove_action('template_redirect', 'rest_output_link_header', 11 );
3、屏蔽 REST API
还是编辑functions.php文件,添加以下代码:
//屏蔽 REST API add_filter('json_enabled', '__return_false' ); add_filter('json_jsonp_enabled', '__return_false' ); add_filter('rest_enabled', '__return_false'); add_filter('rest_jsonp_enabled', '__return_false');
添加了如上代码后,返回百度再次使用抓取诊断功能,如此返回的HTTP头部就不在带有shortlink动态网址了,如下图所示:
另外补充一点就是解决wp-json还可以安装插件:Disable REST API,在WordPress后台插件搜索即可安装。如果是添加上面代码来实现功能,前往那要做好备份再来修改。