禁止搜索引擎收录抓取不想公开的网页

私密网页被搜索引擎抓取,如何禁止他们收录?

很多时候我们希望搜索引擎抓取我们网页,以获取更多流量。但是有些不想公开的网页往往也被搜索引擎收录并公开了,如后台登录网页、含个人信息的网页等。

前段时间做了个前缀名很长的单网页,方便自己查看,并不希望被搜索引擎抓取,也没有任何链接指向该网页,应该不会被搜索引擎找到了。查阅了cloudflare的防火墙事件,发现了一个阻止事件,路径正是该网页,也就是刚发布就暴露了。经多次测试每次都是刚发布,后面就有搜索引擎前来查访。百思不得其解,搜索蜘蛛也没那么神吧。经过仔细思考,发现原来在Cloudflare开启了Crawler Hints爬虫通知功能。

禁止搜索引擎收录抓取不想公开的网页

 

也就是你一个新的网页出现,通过cloudflare代理,cloudflare就通知给了各搜索引擎,搜索引擎收到通知后就立即来访问,准备收录。在cloudflare的“缓存”-“配置”-“Crawler Hints”关闭该功能应该也就可以了。暂时还不想关闭该功能,毕竟他可以直接向搜索引擎推送新网页。 那如何禁止搜索引擎抓取呢?

首先我们可以修改robots.txt文件

作为一个指引文件,大部分搜索引擎都会遵守的。就在robots.txt文件里增加了下列规则。

Disallow: /abc*

这样,就禁止了搜索引擎抓取abc字符开头的路径后的文件及文件夹。

经过查看网站日志,发现bingbot及YandexBot并不遵循该指引,直接就来访问了,并不访问robots.txt文件。Googlebot则是查阅了robots.txt文件后无动作。反复查阅了几天的网站日志,发现绝大部分蜘蛛都遵循robots.txt协议,google和国内的搜索引擎基本都是每天都访问robots.txt文件,YandexBot一两天内访问一次robots.txt文件,微软bingbot三天内未访问一次robots.txt文件,妥妥的恶霸引擎。至于他们抓取后公不公开,有待时间验证。

 二是在网页里面增加标签

meta robots标签是页面HTML代码中head标签中的一部分,它的作用是禁止搜索引擎索引本页面,此页面将不会出现在搜索引擎搜索结果中。在不想公开的网页代码<head>与</head>中增加下列标签:

<meta name="robots" content="noindex, nofollow" />

noindex:指令搜索引擎禁止索引本页面;

nofollow:指令搜索引擎禁止跟踪本页面上的链接;

这样搜索引擎即使访问了,应该不会收录了。

三是通过Nginx判断user_agent禁止百度等搜索引擎访问,实现禁止收录

既然不能直接禁止抓取,那就干脆禁止百度蜘蛛等搜索引擎访问,思路是对该网页判断user_agent,如果是谷歌蜘蛛、微软bing机器人等搜索引擎的user_agent,就返回403或者404,这样bing等搜索引擎就会认为这个网站无法打开或者不存在,自然也就不会收录了。不建议使用444代码,那样会显示服务器出现连接问题,会使得搜索引擎认为服务不稳定,降低权重。

Nginx的配置代码如下:

#定义flag变量
set $flag "";
 
# 请求uri包含abc
if ($request_uri ~* abcd*) {
    set $flag "${flag}1";
}
 
# 请求的是蜘蛛
if ($http_user_agent ~* "360Spider|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|bingbot|YandexBot|YoudaoBot|Bytespider|YisouSpider|AspiegelBot|Sogou spider|Sogou web spider|PetalBot|DotBot|AmazonAdBot")
    {
    set $flag "${flag}1";
}
 
# 两个条件都满足的情况下,对蜘蛛进行return 403操作
if ($flag = "11") {
return 403;
}

配置完后重启Nginx,这样即可彻底禁止搜索引擎对含abc字符的url进行网页访问。访问也只返回403代码,也就无从收录了。
配置成下列这样,由于在location段nginx的if判断会有问题,可能导致自己上不了或对目录类的其他文件无效。

location ~* /abcd*{
if ($http_user_agent ~* "360Spider|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|bingbot|YandexBot|YoudaoBot|Bytespider|YisouSpider|AspiegelBot|Sogou spider|Sogou web spider|PetalBot|DotBot|AmazonAdBot")
    {
    return 403;
    }
}
#不建议使用

403屏蔽了蜘蛛后,一段时间内只有bingbot在后台疯狂日志刷屏,其他蜘蛛都不再访问了。过段事件等bingbot访问了robots.txt文件后也不再访问私密链接了。

互联网上还有一些垃圾蜘蛛,一般而言对小站并没有什么用,可以用下面代码在Nginx进行屏蔽,如:

if ($http_user_agent ~*  "MJ12bot|AhrefsBot|DotBot" )
{
return 403;
}

 

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/web/78.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注