摘要:里面加入了禁止抓取这些动态地址和某些路径,但是蜘蛛依然每天抓取,而且还收录了!所以,我决定用极端手段,彻底禁止这些不听话的蜘蛛抓取那些我不想被收录的页面!测试效果很简单,直接利用百度站长平台的抓取诊断工具即可:死链到搜索引擎》即可将这些无用的收录全部删除:
在数字化时代背景下,网站的SEO优化成为重要运营环节之一。面临着搜索引擎不断演进和算法修正,站长需适时调整策略以适应这种频繁变革。然而,所涌现出的困境在于如何有效地控制搜索引擎对特定网站内容(尤其是未预期收录页面)的收录。在此,我们将为您揭示一种高效优化策略——全面禁止非主域名的搜索引擎索引。我们深信此策略背后有以下几个重要因素支撑。
1.Nginx的UA黑名单和防盗链机制
为应对转载和采集问题,站长常运用Nginx设置UA黑名单以及防盗链措施来制止恶意的内容侵扰。然而,尽管这种方法能够有效阻止部分侵权行为,但仍然难以完全消除此类问题。尤其是我国互联网的大环境中,信息传播迅速且道德风气欠佳,许多人热衷于不劳而获,这也使得转载与抄袭行为变得相当常见。
2.robots.txt的限制失效
尽管我方已经设置了robots.txt的访问权限,禁止搜索引擎蜘蛛抓取含有动态地址和相关路径的页面,但蜘蛛仍然频繁收录此类信息。颇为费解的情况是,即使动态内容已被收录百度会收录动态页面吗,部分静态内容却未能被包括其中。经过对百度站长平台禁用策略的核实后,此现象愈发引人深思。
3.使用极端手段彻底禁止收录
专注于解决上述难题,一些网站管理者选择实施强力策略,全面封锁不愿被爬虫访问的特定页面。尽管这可能被归类为黑帽技术,但对那些全力致力于保护自身内容防止不良侵犯的网站来说百度会收录动态页面吗,无疑是无奈之举。例如,张戈博客就采用了在Nginx中设置规则来阻断蜘蛛的爬行。
#################################################
# 禁止蜘蛛抓取动态或指定页面规则 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;
}
#### 新增规则【结束】 ####
#以下规则略...
4.Apache的适配问题
然而,当这些措施应用于使用Apache构建的网站时,却时常出现适配性问题。据部分网站管理员反映,他们尝试将同样的策略引入Apache配置后,往往会引发严重的500级别错误,以致许多网站难以坚持执行这项策略,而转向寻找其它应对措施。
5.PHP代码实现
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (^$|spider|bot) [NC]
RewriteCond %{REQUEST_URI} (/\?replytocom=(\d+)|\?p=(\d+)|\/feed|\/date|\/wp-admin|wp-includes|\/go|comment-page-(\d+)) [NC]
RewriteRule ^(.*)$ - [F]
除此之外,部分站长尝试使用PHP编程技术来阻断搜索引擎蜘蛛访问,该方法是在能够实现访问控制的目录中的function.php文件中添加特定的PHP代码。然而,该方法存在一定的不稳定因素,因为环境差异可能会导致运行出错。
6.测试与效果验证
/**
* PHP比robots更彻底地禁止蜘蛛抓取指定路径代码 By 张戈博客
* 原文地址:http://zhangge.net/5043.html
* 申 明:原创代码,转载请注保留出处,谢谢合作!
* 使用说明:将一下代码添加到主题目录的functions.php当中即可。
*/
ob_start("Deny_Spider_Advanced");
function Deny_Spider_Advanced() {
$UA = $_SERVER['HTTP_USER_AGENT'];
$Request_uri = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
$Spider_UA = '/(spider|bot|)/i'; //定义需要禁止的蜘蛛UA,一般是spider和bot
//禁止蜘蛛抓取的路径,可以参考自己的robots内容,每个关键词用分隔符隔开,需注意特殊字符的转义
$Deny_path = '/\?replytocom=(\d+)|\?p=(\d+)|\/feed|\/date|\/wp-admin|wp-includes|\/go|comment-page-(\d+)/i';
//如果检测到UA为空,可能是采集行为
if(!$UA) {
header("Content-type: text/html; charset=utf-8");
wp_die('请勿采集本站,因为采集的站长木有小JJ!');
} else {
//如果发现是蜘蛛,并且抓取路径匹配到了禁止抓取关键词则返回404
if(preg_match_all($Spider_UA,$UA) && preg_match_all($Deny_path,$Request_uri)) {
//header('HTTP/1.1 404 Not Found');
//header("status: 404 Not Found");
header('HTTP/1.1 403 Forbidden'); //可选择返回404或者403(有朋友说内链404对SEO不太友好)
header("status: 403 Forbidden");
}
}
}
为了保证上述策略的高效执行,站点管理员通常需要详细的测试及效果评估过程。通过利用百度站长平台的抓取诊断工具,来核实蜘蛛是否真正无法正常进行爬行。如果到达该阶段后状态码显示为404,就可以证明此类策略已取得预期效果。
7.极端优化的影响
虽然极致优化能抑制非搜索引擎认可域名的发展,但带来了诸多难题。例如,过多垃圾链接或页面剔除可能导致网站索引量的大幅减少。然而,从长期看,这确实有助于提高排名,因为高质量和重复性内容才是关键因素。
深入分析显示,各网站管理人员均采取多种策略与手段来改善搜索引擎收录效果。无论是利用Nginx规则保障信息安全性,还是借助PHP代码确保数据完整性,其本质目标始终如一。但需强调的是,所有优化举措都应符合相关法律法规,防范潜在违规行为引发的风险。