SEO分享:彻底禁止搜索引擎收录非首选域名的方法

众所周知,绝大多数网站都会有一个首选域名,从用户体验考虑,通常站长们还会另外解析一个域名,并设置 301 重定向。例如,用户未输入 www 的时候,仍然可以访问到我们的网站,就像访问 http://baidu.com,会自动跳到 http://www.baidu.com 一样。

理论上,301 重定向是对搜索引擎友好的设置,而且搜索引擎也能识别 301 返回码,从而只收录首选域名。但也有个例!比如,张戈博客刚一上线,我就已经把 www 的域名 301 重定向到了不带 www 域名:

但百度依然收录带 www 的,且 www 的排名更加靠前:

site 了下带 www 的域名,居然收录了 1600 多条:

又比如百度搜索“卢松松”的结果,也是 www 的排在第一:

事实说明,百度对 301 很不敏感,这个问题困扰了我很久,前往百度站长平台多次投诉无果,终于忍无可忍,决定将带 www 的域名做了禁止收录处理,我已做好 www 域名全线被 T 的心里准备。

曾多次搜索过如何禁止搜索引擎收录带 www 或不带 www 的域名的方法,但是都是一些做 301 设置的方法,看来还不够彻底!下面,我就来分享一下彻底禁止搜索引擎收录非首选域名的方法:

提前说明:如果正好和张戈博客相反:你的首选域名是带 www 的,那下面的代码只需要依葫芦画瓢的修改下即可,我就不赘述了。

一、准备工作

在网站根目录新建 wrobots.txt 文件,粘贴如下内容:

User-Agent: *
Disallow: /

二、修改规则

①、Nginx 平台

编辑网站对应的 nginx 配置文件,比如:

vim /usr/local/nginx/conf/vhost/zhangge.net.conf

找到之前 301 跳转的配置,如:

server {
       server_name www.zhangge.net;
       return 301 $scheme://zhangge.net$request_uri;
}

修改为:

server
         {
                server_name www.zhangge.net;
                root  /home/wwwroot/zhangge.net;
                location / {
                        rewrite (.*) http://zhangge.net$1 permanent;
                        }
 
               location ~ (robots.txt) {
                        rewrite /robots.txt /wrobots.txt last;
                        }
}

执行如下命令,重载 nginx 即可生效:

/usr/local/nginx/sbin/nginx -s reload

②、Apache 平台

编辑 .htaccess 文件,将之前的 301 跳转规则替换成如下代码即可:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.zhangge.net [NC]
RewriteRule ^robots.txt wrobots.txt [L]
RewriteCond %{REQUEST_FILENAME} !robots.txt
RewriteRule ^(.*) http://zhangge.net/$1 [R=301,L]

其中第 4 行是关键,表示仅在请求名称非 robots.txt 的时候,才会执行后面的 301 跳转,从而避免第三条规则被覆盖!

③、实例:万网虚拟主机

用朋友的万网虚拟主机实际测试发现,万网的控制面板已经存在 301 设置了,所以 htaccess 也要做相应修改才行。

在已有的.htaccess 文件的最前面加上如下三行代码即可:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.zhangge.net [NC]
RewriteRule ^robots.txt wrobots.txt [L]

修改后的完整的 htaccess 的内容如下:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.zhangge.net [NC]
RewriteRule ^robots.txt wrobots.txt [L]
#以下为已存在规则:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule . /index.php [L]
</IfModule>

其他虚拟主机、建站程序,可以参考这个实例来修改即可,注意避免和主机已有的 301 发生规则冲突即可。

三、效果测试

①、手动测试

分别访问 http://www.zhangge.net/robots.txt  和 http://zhangge.net/robots.txt 可以发现已经是不同的内容了。

②、工具测试

如果还不放心,那么可以使用百度站长平台的 robots 工具来检测,效果如图所示:

测试 http://www.zhangge.net/robots.txt:

测试 http://zhangge.net/robots.txt:

从图中的检测结果可知,带 www 域名的 robots 理论上已禁止所有搜索引擎的抓取!

2014/09/26 补充:一大早就看到来自百度站长的 robots 禁封通知,看来是有效果的,就看啥时候把 www 的收录 K 掉:

四、他山之石

最新补充:今天在逛博客的时候,在李明博客发现了一个更简单的方法,我稍微修改了下:

只要在网站的 head 部分加入如下代码即可:

<?php 
if($_SERVER['HTTP_HOST'] == '禁止收录域名1')
if($_SERVER['HTTP_HOST'] == '禁止收录域名2')
{
?>
<meta name="robots" content="noindex,nofollow" />
<?php } ?>

比如,如果我要禁止搜索引擎收录带 www 的张戈博客,那么代码如下:

<?php if($_SERVER['HTTP_HOST'] == 'www.zhangge.net') { ?>
<meta name="robots" content="noindex,nofollow" />
<?php } ?>

当访问被禁止收录的 www.zhangge.net 时,head 里面会输出一段禁止搜索引擎索引和跟踪链接的 meta 标签:

而访问首选域名 zhangge.net 的时候,则不会输出这个 META 标记:

异曲同工的实现了和前文相同的功能!额外补充一下相关 meta robots 的说明,请自行选用:

<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW" />     可以抓取本页,而且可以顺着本页继续索引别的链接
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW" />   不许抓取本页,但是可以顺着本页抓取索引别的链接
<META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW" />   可以抓取本页,但是不许顺着本页抓取索引别的链接
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW" /> 不许抓取本页,也不许顺着本页抓取索引别的链接。

特别说明:用这个方法需要取消 301 重定向功能,否则不会有 meta 申明的输出!

所以,将 robots 和 META 这 2 种方法结合一下,新站架设前可以这样设置:

无须设置 301 重定向,先在 nginx 配置文件中,将监听www.zhangge.net(非首选域名)的配置修改如下:

server
        {
              listen 80;
              server_name www.zhangge.net;
              index index.html index.htm index.php default.html default.htm default.php;
              root  /home/wwwroot/zhangge.net;
              #以下是robots的重写规则
              location ~ (robots.txt) {
                         rewrite /robots.txt /wrobots.txt last;
                        }
               #以下其他需要的规则,和首选域名保持一致
               *******
        }

然后,在 header.php 里面新增如下代码:

<?php if($_SERVER['HTTP_HOST'] == 'www.zhangge.net') { ?>
<meta name="robots" content="noindex,nofollow" />
<?php } ?>

如此,就双管齐下的做好了禁止搜索引擎收录新站非首选域名的设置!

五、终极大招

张戈博客亲自测试发现,就算是加了 robots 限制,百度依然还会索引这个非首选域名:

所以,必须出绝招了,参照《浅谈 404 问题》和《服务器反爬虫攻略》,先解封 robots 禁止,然后在 nginx 原有规则里面加入如下第 7 行判断:

server
         {
                server_name www.zhangge.net;
                root  /home/wwwroot/zhangge.net;
                location / {
                 #新增判断,如果是百度蜘蛛就返回404!
                 if ($http_user_agent ~ "Baiduspider") {return 404;}
                        rewrite (.*) http://zhangge.net$1 permanent;
                        }
                        location ~ (robots.txt) {
                        rewrite /robots.txt /wrobots.txt last;
                        }
}

现在,无论是用抓取诊断还是用站长之家的模拟抓取,都将返回 404 错误:

为了测试,张戈博客已走上极端,所以并不建议老站做以上极端设置!我只是看不惯百度的傻逼收录行为!

以上就是禁止搜索引擎收录非首要域名的全部教程了,希望对和我一样苦恼的站长有所帮助。由于,这种中途设置禁止收录非常罕见,张戈也只是做下测试,还不知道有什么结果,所以不建议老站轻易尝试!个人强烈建议新站在上线之前就做好这些设置,避免带来和我一样的困扰!另外,由于没有 IIS 环境,所以就没有研究测试 IIS 下的设置方法,感兴趣的站长可以参考文章的思路去研究测试下。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维小白

原QQ坦白说之解密教程

背景:之前在QQ上突然有人发坦白说给我,第一感觉就是谁恶搞我,想找到是谁,是谁在恶作剧 ? ---- QQ坦白说之解密教程 一、模拟手机QQ 首先使用谷歌...

49090
来自专栏FreeBuf

技术剖析:海莲花OceanLotus Encryptor样本分析

前言 上周,360发布了海莲花的报告,数据收集,分析,解释,加工方面很能让人折服,但是看了其对所谓OceanLotus Encryptor样本的分析,和我自己观...

23370
来自专栏程序员笔记

从头开始写一个 Chrome 插件

20050
来自专栏张戈的专栏

正确的Win主机网站伪静态设置方法

在这两天折腾主题的过程中,再次注意到伪静态的设置,之前刚建站时用的是最简单的404 错误重定向的方法:复制代码,新建成一个 404.php 丢到 web 根目录...

414130
来自专栏FreeBuf

新型勒索病毒软件GruxEr来袭:深度分析如何传播、加密及如何删除

本文旨在帮助您清除Gruxer ransomware感染,并通过此ransomware病毒恢复AES加密文件。 据报道,GruxEr名称的ransomwar...

31060
来自专栏技术小黑屋

Gmail托管邮箱发邮件认证失败

Gmail是一款很优秀的邮件工具,我一直使用Gmail来托管公司的邮箱,利用最棒的过滤器进行过滤垃圾邮件。前段时间公司邮箱密码更换,使用了新的密码后导致了只能收...

21910
来自专栏蜉蝣禅修之道

ubuntu13.10安装broadcom无线网卡驱动

30970
来自专栏FreeBuf

如何通过恶意宏劫持桌面快捷方式提供后门

多年以来,一直都有攻击者使用恶意宏来传播恶意软件,并且还设计出了各种方法来让这种技术变得更加有效。近期,研究人员观察到了一种更加隐蔽的基于宏的攻击活动,在这个攻...

14420
来自专栏针针小站

【Phi】斐讯K2 – 从编程器到刷机

CPU:MEDIATEK MT7620A 580MHZ RAM:64MB DDR2 SDRAM FLASH:8M 25Q64CS1G Flash 2.4G...

1.2K10
来自专栏刘望舒

Android P 适配指南

Google自 android L (5.0) 以来就持续对安装系统进行 安全 以及 性能上的升级,此次的 android P (9.0)也不例外, 更大程度...

1.4K20

扫码关注云+社区

领取腾讯云代金券