WordPress EXP
分享10年建站经验

禁止搜索引擎蜘蛛抓取动态(带查询参数)页面和指定路径

文章目录[隐藏]

11月23日开始,搜狗搜索引擎蜘蛛疯狂爬站,经过详细查询,其反复对相同页面进行爬取,并带有查询参数,也就是意味着对动态页面进行爬取。阻止查询参数被抓取将有助于确保搜索引擎仅抓取网站的主要 URL,而不会进入原本创建的巨大蜘蛛陷阱。何况这种恶意查询参数,请求量剧增100倍,更是无法容忍。

一开始在搜狗站长平台先对其进行抓取压力调整,毕竟网站并没有那么多的页面,无需这么大量的支柱;接着对 robots.txt 文件进行某些目录的限制,结果等了几天仍旧如此,大量集中的请求访问严重加剧了服务器负担。于是我决定使用极端手段,彻底禁止这些不听话的蜘蛛抓取那些我不想被收录的页面!robots 协议显然还是太温柔了,直接使用 Nginx 对于不想被爬取的页面进行返回404错误或403错误。

Nginx 拦截规则

由于 WPEXP 使用的是 Nginx,这里就跟大家分享下 Nginx 配置SEO 优化。由于宝塔比较方便,这里就用宝塔作为演示,原理是相同的。

推荐使用BT宝塔控制面板

WPEXP 推荐使用宝塔服务器面板,一键全能部署及可视化管理 Linux 服务器,简单快捷!

送你3188元礼包,点我注册领取 https://www.bt.cn/?invite_code=MV91dGp3eGQ=

现在 托管 WordPress 专用服务器 送宝塔专业版,托管多久送多久,数量有限,有意可联系微信:xyzyysd

在宝塔的站点配置 → 配置文件,在 Server 模块中的 root 指令之后,添加如下代码:

    #### 禁止搜索引擎蜘蛛抓取动态页面和指定路径规则 - https://wpexp.cn/593.html ####
    #初始化变量为空
    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;
     }
     #### 新增规则【结束】 ####

具体添加的位置,可以参考下图。

添加好之后保存即可。

拦截效果一览

设置好后,拦截效果杠杠的,所有匹配规则的链接都生效了。

接着使用百度搜索资源平台的抓取诊断测试一下。

好了,今天的分享就到这里。

赞(3) 付款
转载请注明来源及链接:WPEXP » 禁止搜索引擎蜘蛛抓取动态(带查询参数)页面和指定路径

若无法完成服务,承诺全额退款!

WPEXP 感谢你的信任,让我们一起创建更好的 WordPress 站点!

支付宝扫一扫打赏

微信扫一扫打赏