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

2020年2月7日21:25:27 评论 3952字阅读13分10秒

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

众所周知,绝大多数网站都会有一个首选域名,从用户体验考虑,通常站长们还会另外解析一个域名,并设置301重定向。例如,用户未输入www的时候,仍然可以访问到我们的网站,就像访问http://baidu.com,会自动跳到http://www.baidu.com一样理论上,301重定向是对搜索引擎友好的设置,而且搜索引擎也能识别301返回码,从而只收录首选域名。但也有个例!比如,我的博客刚一上线,我就已经把www的域名301重定向到了不带www域名:

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

事实说明,百度对301很不敏感,这个问题困扰了我很久,前往百度站长平台多次投诉无果,终于忍无可忍,决定将带www的域名做了禁止收录处理,我已做好www域名全线被T的心里准备。曾多次搜索过如何禁止搜索引擎收录带www或不带www的域名的方法,但是都是一些做301设置的方法,看来还不够彻底!下面,我就来分享一下彻底禁止搜索引擎收录非首选域名的方法:

一、准备工作

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

User-Agent: *
Disallow: /

二、修改规则

①、Nginx平台

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

vim /usr/local/nginx/conf/vhost/baidu.com.conf

找到之前301跳转的配置,如:
server {
       server_name www.baidu.com;
       return 301 $scheme://baidu.com$request_uri;
}

修改为:
 server
         {
                server_name www.baidu.com;
                root  /home/wwwroot/baidu.com;
                location / {
                        rewrite (.*) http://baidu.com$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.wangshangren.net [NC]
RewriteRule ^robots.txt wrobots.txt [L]
RewriteCond %{REQUEST_FILENAME} !robots.txt
RewriteRule ^(.*) http://baidu.com/$1 [R=301,L]

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

③、实例:万网虚拟主机

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

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

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

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

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.baidu.com [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.baidu.com/robots.txt  和 http://baidu.com/robots.txt 可以发现已经是不同的内容了。

②、工具测试

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

测试http://www.baidu.com/robots.txt:

其他方法

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

只要在网站的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.baidu.com') { ?>
<meta name="robots" content="noindex,nofollow" />
<?php } ?>

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

而访问首选域名baidu.com的时候,则不会输出这个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.baidu.com(非首选域名)的配置修改如下:

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

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

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

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

五、终极大招

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

所以,必须出绝招了,先解封robots禁止,然后在nginx原有规则里面加入如下第7行判断:

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

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

继续阅读
  • 文本由 发表于 2020年2月7日21:25:27
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
以SEO培训为例查看用户需求 SEO

以SEO培训为例查看用户需求

以SEO培训为例查看用户需求 大家都知道笔者的业务板块有seo培训,对seo培训这个词有长期的观察。用户需求有真实的,也有人为制造的,通过百度需求图谱,可以大致看到那些需求是被人工操作的。 参加seo...
利用Sitemap提交漏洞劫持其它网站排名 SEO

利用Sitemap提交漏洞劫持其它网站排名

利用Sitemap提交漏洞劫持其它网站排名 我个人虽然不建议做黑帽SEO,但了解一些黑帽技术是白帽SEO的必修课。SEO黑帽的常见技术和最新应用至少可以让我们: · 在不能失误的正规网站上避免黑帽的坑...
搬家更换域名及301重定向方法 网站建设

搬家更换域名及301重定向方法

搬家更换域名及301重定向方法 由于各种原因我们可能需要放弃原来的域名,但需要保留原有的数据存在,很多人可能会直接删除原来的域名重新绑定一个新的域名。其实这样的做法是不妥的,毕竟我们之前花费较多的时间...
SEO网站优化工具分享 SEO

SEO网站优化工具分享

SEO网站优化工具分享 一、快排助手:互刷与自刷的点击软件 软件基本特点 因为有浏览窗口,我认真看了几下刷的几个任务,执行的逻辑还是比较简单的: 打开百度/搜狗/360——输入关键词——鼠标随机下滑—...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: