播放记录

如何彻底禁止搜索引擎抓取/收录动态页面或指定路径的方法

博客SEO 2019年08月27日 13:46:35


最近百度“大姨妈严重异常",收录严重有误问题,随便domain一个站点,出来的结果特多,但几乎清一色的无关内容。百度近期算法大调整,调出这样的结果这是出乎意料。而且百度进去的收录竟然开开始违反robots协议,不让其收录的也都收进去了,下面是来自国内个人博客技术大牛张戈的关于如何彻底禁止搜索引擎抓取/收录动态页面或指定路径的方法分享。

如何彻底禁止搜索引擎抓取


最近张戈博客收录出现异常,原因并不明朗。我个人猜测存在如下几个直接原因:

更换主题,折腾时带来过多错误页面或间歇性访问错误;

直接线上折腾Nginx缓存和缩略图,可能导致间歇性大姨妈;

新发文章瞬间被转载,甚至是整站被采集,可能导致“降权”;

百度居然开始收录动态页面,而且还在持续抓取动态页面。

对于前三个,已发生的已无法改变,要发生的也无法阻止。对于转载和采集,我也只能在Nginx加入UA黑名单和防盗链机制,略微阻碍一下了,但是实际起不到彻底禁止作用,毕竟整个天朝互联网大环境就是这样一个不好的风气,很多人都不愿意花时间、用心写文章,喜欢不劳而获的转载甚至是篡改抄袭。

对于第四点,真是忍无可忍。我很想对百度说,我忍你很久了。明明robots里面加入了禁止抓取这些动态地址和某些路径,但是蜘蛛依然每天抓取,而且还收录了!收录也没事,关键收录了动态地址居然不收录静态地址了??这是要闹咋样啊?

案例①:

如何彻底禁止搜索引擎抓取

案例②:

如何彻底禁止搜索引擎抓取

案例③:

如何彻底禁止搜索引擎抓取

以上案例中的地址,我通过百度站长平台的robots检验结果都是被禁封的,真不知道百度怎么想的:

如何彻底禁止搜索引擎抓取

所以,我决定用极端手段,彻底禁止这些不听话的蜘蛛抓取那些我不想被收录的页面!robots协议显然还是太温柔了!下面看张戈怎么放大招吧!

一、Nginx 规则

张戈博客用的是 Nginx,所以直接在 server  中新增如下规则即可:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

#################################################

#   禁止蜘蛛抓取动态或指定页面规则 By 张戈博客       #

#   原文地址:http://zhangge.net/5043.html       #

#   申    明:转载请尊重版权,保留出处,谢谢合作!     #

#################################################

 

server

    {

    listen 80;

    server_name zhangge.net;

    index index.html index.htm index.php default.html default.htm default.php;

    root  /home/wwwroot/zhangge.net;

    #### 新增规则【开始】 ####

    #初始化变量为空

    set $deny_spider "";

    #如果请求地址中含有需要禁止抓取关键词时,将变量设置为y:

    if ($request_uri  ~* "\?replytocom=(\d+)|\?p=(\d+)|/feed|/date|/wp-admin|comment-page-(\d+)|/go") {

         set $deny_spider 'y';

    }

    #如果抓取的UA中含有spider或bot时,继续为变量赋值(通过累加赋值间接实现nginx的多重条件判断)

    if ($http_user_agent ~* "spider|bot") {

     set $deny_spider "${deny_spider}es";

    }

    #当满足以上2个条件时,则返回404,符合搜索引擎死链标准

     if ($deny_spider = 'yes') {

         return 403; #如果是删除已收录的,则可以返回404

         break;

     }

     #### 新增规则【结束】 ####

#以下规则略...

Ps:就是将上述代码中“新增规则【开始】”到“新增规则【结束】”内容添加到我们网站的 Nginx 配置-- server 模块 中的 root 指令之后即可。

二、 Apache规则

Apache 测试了半天总是500错误,暂时先放弃了,有时间再来调整!

我自己测试写的规则如下,感兴趣的朋友可以自行测试看看,也许是我环境的问题。

1

2

3

4

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} (^$|spider|bot) [NC]

RewriteCond %{REQUEST_URI} (/\?replytocom=(\d+转载:https://www.wusiwei.com/post-1102.html

© 2018 www.qingketang.net 鄂ICP备18027844号-1

武汉快勤科技有限公司 13554402156 武汉市东湖新技术开发区关山二路特一号国际企业中心6幢4层7号