如果哪一天你突然在Bing Webmaster或者是Google站长(Google Search Console)发现了类似下面的垃圾链接被收录了,千万别紧张,看完本文,就能避免出现这种情况。
WordPress默认有一个搜索结果页,格式是:https://www.xxxxxx.com/search/搜索关键词
这个页面是默认的搜索结果页面,它是通过用户请求自动生成的,如果有一个正常行为的用户在网站上搜索了一个“关键词”,那就会生成这样一个页面。
在WordPress网站不论以任何“搜索词”进行搜索,它都会返回搜索结果页,唯一的区别就是是否展示搜索结果,不会给404页面出来。
这样就产生了一个漏洞:
按照这样的逻辑,任何人都可以通过这个链接生成类似的搜索结果页面。
于是乎这个漏洞就被不法分子非法利用后,就出现了上图中的情况,很多垃圾菠菜链接出现在了Bing Webmaster的收录中(就Bing傻乎乎的收录了这些垃圾页面,Google貌似聪明一些没有收录)
为防止这种现象,只需要告诉wordpress,对所有的搜索结果页面,添加noindex meta标签,这样就可以告诉搜索引擎,不要收录这些页面。
<meta name="robots" content="follow, noindex">
具体路径如下:
SEOPress > Titles & Metas > Archives > [√] Do not display search archives in search engine results (noindex)
详细路径截图
和seopress类似的方式设置,另外如果还需要加上nofollow,则需要添加下面的一小段代码:
add_filter( 'rank_math/frontend/robots', function( $robots ) {
$url = home_url( $_SERVER['REQUEST_URI'] );
if(strpos($url,"your-search-page") !== false) {
$robots["follow"] = 'nofollow';
}
return $robots;
});
如果你是用的yoast,那么恭喜你,它默认就开启了noindex
官方的说法:Yoast SEO makes sure your internal search pages are set to noindex by default. It’s one of Yoast SEO’s hidden features.
进一步添加noffow的办法:
add_filter( 'wpseo_robots', 'yoast_seo_robots_modify_search' );
function yoast_seo_robots_modify_search( $robots ) {
if ( is_search() ) {
return "noindex, nofollow";
} else {
return $robots;
}
}