WP防爬虫内容保护:让爬虫无机可乘:WordPress防爬虫

WP防爬虫内容保护:让爬虫无机可乘:WordPress防爬虫

让爬虫无机可乘:WordPress防爬虫内容保护实操指南


很多站长辛苦写的文章被爬虫一键采集,流量和原创价值被剥夺。

WordPress 防爬虫内容保护并不复杂,本文用两种方法——修改 .htaccess 文件和安装插件,让你十分钟内就能挡住大多数恶意爬虫。

无论你用宝塔面板还是纯命令行,都能跟着做。


确认你的运行环境


操作前先确认两件事:



  1. 你的服务器是 Apache 还是 Nginx?如果你用的宝塔面板,可以在网站设置里看到“运行环境”字样。如果显示 Apache,可以直接使用 .htaccess;如果是 Nginx,需要使用 Nginx 的配置文件方式(本文也会给出对应命令)。

  2. 确保你有 网站根目录的写入权限。在宝塔面板中,网站根目录一般默认有读写权限;如果你用命令行,可以切换到 /www/wwwroot/你的站点目录 目录下执行操作。


方法一:通过 .htaccess 阻挡爬虫(Apache 环境)


这是最轻量的方式,无需安装任何插件。


1. 找到或创建 .htaccess 文件


进入网站根目录(例如 /www/wwwroot/example.com/),用宝塔面板的“文件”管理器或者 SSH 连接后,查看是否已有 .htaccess 文件(以点开头)。

如果没有,创建一个空白文件,命名为 .htaccess


2. 添加屏蔽规则


.htaccess 文件的最上方( 之前)添加以下代码:


# 开始屏蔽常见恶意爬虫
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (SemrushBot|AhrefsBot|MJ12bot|DotBot|DataForSeoBot|Cliqzbot|BLEXBot|SeznamBot) [NC]
RewriteRule ^.* - [F,L]

结束屏蔽

说明:这里屏蔽了 SemrushBot、AhrefsBot、MJ12bot 等常见采集爬虫。[NC] 表示不区分大小写,[F,L] 表示返回 403 禁止访问。

如果你想让被屏蔽的爬虫看到一段“禁止采集”的提示,而不是直接 403 空白页,可以把最后一行改成:


RewriteRule ^.* /blocked.html [R=403,L]

同时需要在根目录创建一个 blocked.html 文件,里面写“Your access has been blocked.”等文字。


3. 保存并验证


保存 .htaccess 文件。

用在线 User-Agent 检测工具(例如 useragentstring.com)模拟被屏蔽的爬虫 UA 访问你的网站,如果返回 403 则生效。


方法二:使用专用插件(适合所有环境)


如果你不想碰代码,或者服务器是 Nginx,推荐使用 “Block Bad Bots”“Wordfence Security” 插件。

这里以 Block Bad Bots 为例:



  1. 在 WordPress 后台 → 插件 → 安装插件,搜索 “Block Bad Bots”

  2. 安装并启用。激活后进入设置页面。

  3. “Bad Bots” 选项卡中,勾选你希望拦截的爬虫列表(SemrushBot、AhrefsBot、DotBot 等)。

  4. 开启 “Complete Block” 选项(返回 503 或 403 状态码)。

  5. 点击“Save Settings”保存。


插件的好处是无需修改服务器文件,更新爬虫列表也更方便。

但注意:插件会增加少量的 PHP 请求开销,对于高流量站,.htaccess 方式性能更好。


常见问题与避坑说明


Q1:屏蔽后自己网站打不开怎么办?


原因:可能误屏蔽了正常搜索引擎(如 Googlebot)或自己使用爬虫工具时也被屏蔽。


解决



  • 检查 .htaccess 或插件设置的屏蔽列表是否包含了 GooglebotBingbotBaiduspider 等。这些正常搜索引擎不要屏蔽

  • 如果插件误杀,可以暂时禁用插件,在插件设置里勾掉误选项目后再启用。


Q2:Nginx 环境下如何实现类似功能?


Nginx 不支持 .htaccess。

你需要编辑站点配置文件(如 /www/server/panel/vhost/nginx/你的域名.conf)。

server 块内添加:


if ($http_user_agent ~* (SemrushBot|AhrefsBot|MJ12bot|DotBot|DataForSeoBot|Cliqzbot|BLEXBot|SeznamBot)) {
return 403;
}

保存后执行 nginx -t 测试配置,然后 systemctl reload nginx 生效。


Q3:为什么屏蔽后还是看到爬虫访问日志?


爬虫可能使用了伪造的 User-Agent(比如伪装成 Chrome)。

.htaccess 和插件只能拦截表里列出的 UA,无法拦截伪装。

更高级的防爬需要结合 IP 频率限制或验证码。

你可以考虑配合 Wordfence 的速率限制Cloudflare 的 WAF 规则来双重保护。


效果验证


验证方法有两种:



  1. 使用 cURL 命令 模拟指定 UA:


   curl -I -A "SemrushBot/7.0" https://你的域名

如果返回 HTTP/1.1 403 Forbidden,说明拦截成功。



  1. 查看网站访问日志:



  • 宝塔面板 → 网站 → 日志,搜索“SemrushBot”等关键词。如果不再出现,说明拦截生效。


建议屏蔽后持续观察 24 小时,确认正常蜘蛛(Google、Bing、百度)仍能正常抓取,非预期爬虫减少。


如果你正在处理 WP 防爬虫内容保护,建议先按本文步骤完整执行,再根据自己的环境做微调;

遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
宝塔面板对接阿里云OSS保姆级教程:零基础也能挂载云存储
下一篇
Linux流量监控iftop:新手也能搞定的Linux流量监
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意