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

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

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

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

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

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

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

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

 

又比如百度搜索“卢松松”的结果,也是www的排在第一:SEO分享:彻底禁止搜索引擎收录非首选域名的方法

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

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

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

一、准备工作

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

二、修改规则

①、Nginx平台

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

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

修改为:

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

②、Apache平台

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

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

③、实例:万网虚拟主机

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

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

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

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

三、效果测试

①、手动测试

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

②、工具测试

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

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

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

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

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

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

2014/09/26补充:一大早就看到来自百度站长的robots禁封通知,看来是有效果的,就看啥时候把www的收录K掉:SEO分享:彻底禁止搜索引擎收录非首选域名的方法

四、他山之石

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

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

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

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

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

 

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

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

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

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

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

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

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

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

五、终极大招

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

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

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

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

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

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

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

发表评论

gravatar

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

刷新评论

目前评论:28   其中:访客  17   博主  11

  1. 香港服务器托管 1 来自天朝的朋友 谷歌浏览器 Windows 7 江苏省苏州市 百度网讯科技电信节点

    重定向这样不是更友好吗

  2. 小Z 2 来自天朝的朋友 谷歌浏览器 Windows 7 山东省青岛市 奇虎360科技联通CDN节点

    感觉好麻烦,就这样吧,不想搞

  3. 九秒 2 来自天朝的朋友 谷歌浏览器 Windows 7 湖南省永州市 电信

    百度是抓取的莫名其妙,看服务器日志。也是醉了

  4. 叶德华 4 来自天朝的朋友 谷歌浏览器 Windows 7 陕西省安康市 联通

    不错,李明的那个方法不错。

  5. 松果 3 来自天朝的朋友 谷歌浏览器 Windows 7 四川省达州市 电信

    我直接没解析www的………

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      我一起也不解析,但是有人会潜意识用www去访问,很多没做过网站的朋友,他们的潜意识,有www的才叫网站呢,解析www是为了用户体验。

      • 松果 3 来自天朝的朋友 谷歌浏览器 Windows 7 四川省达州市 电信

        这个到没发现。

  6. 松果 3 来自天朝的朋友 谷歌浏览器 Windows 7 四川省达州市 电信

    应该加个判断或者做个自适应,不然手机看着会不爽的 :grin:

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      你用的什么手机浏览器?我的网站已经有移动适配的,不会是在手机里面设置了电脑UA吧?

      • 松果 3 来自天朝的朋友 谷歌浏览器 Windows 7 四川省达州市 电信

        这主题不能自适应?

        • 张戈 [博主] 来自天朝的朋友 Safari浏览器  Android 4.4.2 NX40X Build/KOT49H 广东省深圳市 电信

          你用手机浏览器访问一下不就知道了?

  7. 阿明 2 来自天朝的朋友 谷歌浏览器 Windows XP 广东省广州市 电信

    只绑定zhangge.net一个域名,www.zhangge.net只做url转发不就更简单么?

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      url转发?那www.zhangge.net搜索引擎还是可以访问到吧?
      愿闻其详。

      • 阿明 2 来自天朝的朋友 谷歌浏览器 Windows XP 广东省广州市 电信

        www.zhangge.net都没绑定主机,搜索引擎是不会收录www.zhangge.net的页面,这样就可以避免搜索引擎同时收录两个相同页面(带www.和不带www),造成权重分散。
        同时也达到两个域名都能访问网站(一般用户都是通过搜索引擎找网站,很少手输域名的,就算手输入域名,www也会跳转到不带www上)

        • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 联通

          据我所知,不绑定主机应该是不能访问吧?你DNS不解析www.zhangge.net,然后nginx或apache也不监听www.zhangge.net,用户如何访问得到呢?
          你说的url转发类似于301跳转吧,应该是虚拟主机面板里面的一个功能,你看起来只是在面板里面设置了url转发,实际上面板是自动绑定了域名的。
          301跳转是传统的避免搜索引擎收录非首选域名的方法,文章开始也说到了这个方法,但是有时候并不凑效,搜索引擎仍然收录跳转前的网址。

          • 阿明 2 来自天朝的朋友 谷歌浏览器 Windows XP 广东省广州市 电信

            上实例:你访问dukemoto.com,会跳转到www.dukemoto.com上,这样的话搜索引擎只会收录带www的页面。
            域名解析面板截图评论

            • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 联通

              你这个其实就是301的做法,你可以用站长工具去抓取状态。

              文章开头就说到了这个传统的301做法,我只是觉得不彻底,因为百度偶尔还是会收录跳转前的页面,这个事情很多人都见到过。

              • 阿明 2 来自天朝的朋友 谷歌浏览器 Windows XP 广东省广州市 电信

                是,如果新站一上线就只绑定一个域名,其他统统做跳转,搜索引擎是不会收录绑定域名以外的域名(起码我做过的站都是,可能跟操作有关,网站做完之后只维护不做推广),当然老站有很多历史原因,就不一定了

                • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 联通

                  嗯,是有这个现象,如果你跳转前的域名存在外链,搜索引擎收录的可能性就比较大了。你这种是懒人做法,道理和我们到nginx下去做301规则其实是一样的

              • 阿明 2 来自天朝的朋友 谷歌浏览器 Windows XP 广东省广州市 电信

                我理解的301重定向和url转发是有区别的,url转发本质上没有绑定网站,不知道我的理解对不对,见笑了

                • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 联通

                  是这样的,你的url转发是从DNS或主机面板设置的,实际在你设置完成后,DNS或主机商给你做了绑定,只是这个过程你是看不到的,所以你的直觉是没有绑定网站。你这个做法是比较简单,一般人推荐使用。我只是在这个基础上,禁止搜索引擎访问跳转前的页面(判断蜘蛛UA返回禁止或404,搜索引擎就以为页面不存在了),而用户访问就跳转到我们想展示的页面。这样既不妨碍用户访问,搜索引擎也访问不到跳转前的页面。

  8. 阿邦 0 来自天朝的朋友 谷歌浏览器 Windows XP 湖北省武汉市 联通

    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] 用了这个代码后 网页打不开了 显示此网页包含重定向 求解啊 博主。

  9. wordpress优化 3 来自天朝的朋友 谷歌浏览器 Windows 10 四川省成都市 电信

    目前百度仅支持nofollow和noarchive

    • 张戈 [博主] 来自天朝的朋友 谷歌浏览器 Windows 7 广东省深圳市 电信

      支持,但不完全遵守。。。无力吐槽。

  10. 66fxw.com 0 来自天朝的朋友 谷歌浏览器 Windows 10 河北省石家庄市 电信

    貌似你已经解决了这个问题,能告知下怎么解决的吗?我的是papstudy的apache环境,合理付费求助!

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省广州市 电信

      文章不是已经分享了方法吗

  11. jiansing 0 来自天朝的朋友 谷歌浏览器 Windows 10 江西省景德镇市 电信

    感觉似乎有更简单的方法,用cloudxns给非首选域名添加一条专门用于百度搜索的解析,随便解析到一个无法访问的IP即可

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Mac OS X 10_11_3 广东省深圳市 电信

      这个是可以的,只是cloudxns的搜索引擎线路并不准确,可以使用百度抓取工具去测试解析结果是否可以从cloudxns定义,我当初也是因为这个原因才切到dnspod。cloudxns 的产品经理也跟我说并不准确,当然现在不知道如何了。。。。

加载中,请稍候...