网站搜索页面出现大量垃圾网页被收录怎么处理?这个问题是前几天一个朋友问我的,问题示例如下:
问题展示
再说解决方法之前我们先聊聊这个问题出现的原因,原因很明显:
就是网站被模拟搜索了大量的垃圾信息关键词,然后出现了对应的页面让搜索引擎抓取了。
像这种也算是”黑帽SEO”推广了吧…不过我认为这个东西实现起来还是很简单的,技术含量很低,而且挺早之前就出现了。
我可不可以不处理?
通常情况是建议处理,因为出现这种和网站被黑的情况也有类似,都会导致网站收录垃圾信息,可能会影响域名的权重、占用你站点的抓取额度、被利用引流、公司形象(搜索你公司名可能会出现对应的垃圾信息….)等…
如果不在意这些…忽略应该也没什么
解决方法
原因里面我们说了,就是网站被模拟搜索了大量的垃圾信息关键词才会导致这样的情况,那么我们从网站搜索的部分上下手就可以了。
解决步骤
1:限制网站搜索
2:通过robots禁止搜索引擎抓取搜索页面
WordPress限制网站搜索实现
网站程序有很多,不同的程序实现的方式都不同,如果你不懂就请咨询你们公司相关的技术人员把,这里以目前使用最多的WordPress举例:
关闭搜索
如果你网站不需要搜索功能,那么可以直接关闭,
1:把下面代码加到主题的functions.php文件中实现
// 禁用搜索
function disable_search_functionality() {
if (is_search()) {
global $wp_query;
$wp_query->set_404();
status_header(404);
get_template_part(404);
exit();
}
}
add_action('template_redirect', 'disable_search_functionality');
2:使用Disable Search插件实现
你可以前往WordPress插件库插件地址下载安装,也可以直接在WordPress网站后台搜索Disable Search安全,如下箭头指示:
WordPress插件库地址:Disable Search – WordPress plugin – WordPress.org
插件安装后,直接启用即可,不需要进行任何设置。
就看你取舍了,以达到目的来说,他们没有本质上的区别。
尽管不同的站点情况各异,但是上面的处理方式应该兼容绝大部分站点,不过要注意的是,既然关闭了搜索功能,就把网站的搜索按钮等相关样式取消,避免误导用户。如下情况 (点击搜索按钮后无任何搜索功能 只出现一个黑色界面) :
限制搜索
如果站点需要搜索功能,不能直接屏蔽,那么我们可以给搜索功能加上限制,
如果你的主题有这个功能,那么可以直接使用主题的设置就好了,如果没有就一样要用其他的插件或者功能代码
1:把下面代码添加到你主题的functions.php文件
// 限制搜索频率
function limit_search_frequency() {
// 获取访客的 IP 地址
$visitor_ip = $_SERVER['REMOTE_ADDR'];
// 设置搜索限制
$search_limit = 5; // 访客每小时可以搜索的次数
$time_limit = 60; // 时间限制(秒)
// 获取访客的搜索次数和最后一次搜索的时间
$search_count = get_transient($visitor_ip . '_search_count');
$last_search_time = get_transient($visitor_ip . '_last_search_time');
// 如果访客的搜索次数超过了限制,并且最后一次搜索的时间在时间限制内
if ($search_count >= $search_limit && time() - $last_search_time < $time_limit) {
// 显示错误信息并停止搜索
wp_die('搜索频次过高,请稍后再试。最多可以搜索' . $search_limit . '次,每' . $time_limit . '秒。');
}
// 如果访客的最后一次搜索的时间超过了时间限制
if (time() - $last_search_time >= $time_limit) {
// 重置搜索次数
set_transient($visitor_ip . '_search_count', 1, $time_limit);
} else {
// 增加搜索次数
set_transient($visitor_ip . '_search_count', $search_count + 1, $time_limit);
}
// 更新最后一次搜索的时间
set_transient($visitor_ip . '_last_search_time', time(), $time_limit);
}
// 在搜索时触发 limit_search_frequency 动作
add_action('pre_get_posts', function ($query) {
if ($query->is_search()) {
limit_search_frequency();
}
});
2:Search Limiter Blocker
老样子,直接在后台搜索安装或者是在插件市场下载上传安装即可:
WordPress插件库地址:Search Limiter & Blocker – WordPress 插件 | WordPress.org China 简体中文
安装后启用,在设置》Search Limiter Blocker》既可以进行对应的设置,如下图:
上面的代码和插件我都亲测可用,不同主题和程序版本等可以会有不兼容情况,请咨询对应的主题开发者吧。
更新网站robots文件
如果你对robots没有了解,可以看看我之前的相关文章:
在配置完网站搜索功能限制后,我们接着来配置网站的robots文件,
以开头问题展示中的搜索URL示例,他的搜索页面网址是:https://domain.com/?s=search keyword
那么我们就在robots文件中加上:
Disallow: /?s=
这样的方式让搜索引擎不抓取我们的搜索页面。
写这个文件要注意,咨询我的这个朋友一开始写的是:
Disallow: /?s*
这样的话可能会把其他动态页面给屏蔽了,尽可能的只使用搜索URL单独的特征去进禁止。
收录信息删除
如果想要删除已收录的垃圾信息,则可以按照下面流程去操作:
- 把垃圾信息页面设置成404
- 出现的垃圾关键词通常是不会存在结果的,简单省事考虑可以把搜索结果为空的页面直接设置为404
- 整理好垃圾信息页面URL
- 少量的话可以通过site语法查看并提取收录的垃圾网页和对应的URL
- 站点较多或者是单个站点数量较多则考虑通过爬虫技术实现提取
- 把URL提交到搜索引擎死链提交的地方
- 主流搜索平台都有对应的死链提交功能和文档,可以直接访问对应的官网查看。
详细流程看这里:
网站被黑,被搜索引擎收录垃圾信息删除处理教程+百度已收录404链接自动提取软件+使用教程-免费
然后建议你在配合:WordPress/PHP网站实现死链(404链接)自动收集提交处理一起处理。
这样就很完美了。
文章写到这里,网站搜索页面出现大量垃圾网页被收录怎么处理这个问题就解决了。
除上面所述,还有限制登陆用户搜索、修改搜索页面title、如果是搜索引擎访问搜索页面返回404等方式,您可以根据自己站点实际情况选择合适的处理方式,如果您需要付费的技术支持,也可以联系我辅助您解决。
上述的内容可能需要您有一定的SEO和网络基础知识,不过都是比较浅显的东西,看不懂部分可以通过搜索引擎搜索对应的关键词了解相关知识。