卧槽,看到这个问题我肝都颤了一下。兄弟,听我一句劝,在动手之前,你先抽根烟冷静冷静,想想你到底为啥要屏蔽这个子域名。是测试环境被爬了?还是后台管理地址泄露了?又或者是泛解析出来的垃圾页面?原因不同,操作天差地别,一步错,你主站的收录和权重可能就跟着陪葬了,别问我怎么知道的。
当年我就是死在这个问题上。一个给运营用的临时活动子站(比如 ttt.xxx.com),活动结束了我就想着别让蜘蛛抓了浪费资源,直接在主站的robots.txt里加了条 Disallow: /ttt/。你以为我在大气层?其实我在第一层。这是个天坑!主站的robots文件对子域名基本没约束力!你得跑到那个子域名自己的根目录下去放robots.txt啊!我傻呵呵等了一个月,发现蜘蛛照爬不误,还把我主站一些奇怪的404页面抓了个遍,那流量曲线跌得跟悬崖似的。
后来学乖了,分情况说人话:
1. 如果你能控制这个子域名的根目录(比如你的测试站 test.yoursite.com),那就简单。FTP/SSH连上去,在它根目录放一个robots.txt,里面就写两行:User-agent: *
Disallow: /
这意思是告诉所有蜘蛛:“这个子域名下面所有东西都别抓”。完事。但是!大坑预警: 有些二愣子蜘蛛(尤其某些国内“快排”蜘蛛)不守规矩,它偏要抓,这时候你可能需要服务器层面(比如Nginx)对这个子域名返回403或者直接屏蔽UA。
2. 如果这个子域名下有些页面你想让用户访问,但就是不想被收录(比如后台登录页、会员中心)。别用robots了,治标不治本。最好的办法是在那些页面的<head>区域里,加上 <meta name="robots" content="noindex, nofollow"> 这个元标签。这才是精准的“隐形斗篷”。(我当初要是知道这个,也不至于……)
3. 最恐怖的情况:你是泛解析(*.yoursite.com)中招了。 被人恶意解析了无数垃圾子域名到你服务器上,形成“泛站群”,那感觉就像家里被一群蜘蛛蛀了。这时候在服务器(Web服务配置)里屏蔽特定UA或者直接禁止这些非法子域名的访问,是唯一的办法。具体怎么弄,这里有份保命文章,讲得比我清楚,我当年就是照着这个从坑里爬上来的。
真的,别手贱。改任何和蜘蛛相关的东西之前,先备份原来的文件,然后去搜索引擎的站长平台(百度资源平台、Google Search Console)提交一下robots更新。虽然他们反应慢得像个树懒,但至少是个保险。别像我一样,凌晨三点收到监控报警,爬起来一看蜘蛛爬爆了CPU,对着日志一行行找是哪条规则写错了,那种感觉,真想给自己一拳。
最后说句扎心的:屏蔽,永远比让蜘蛛重新信任你更容易。 你把它关在门外可能只需要一分钟,但它生气走了,你再想请它回来,可能得跪着求好几个月(沙盒期、权重恢复,想想都头皮发麻)。三思啊兄弟!
