③、百度收录了虚拟主机自带的三级域名,想删除之;
④、网站改版,如精简分类数量、修改分类名称,造成了 url 死链,想删除之;
先具体说一下张戈博客是如何解决第①个困扰的:
前些天分享的《彻底禁止搜索引擎收录非首选域名的方法》,实际上仅适合新站设置,而我这种中途做禁止设置的网站,只会收到来自百度的 robots 禁封提醒,而不会删除之前的收录:
那我该如何彻底删除这些重复收录呢?
方法很简单,利用百度站长平台的闭站保护功能即可。经多次尝试,张戈博客 www 域名重复收录终于全部清空了!
下面说下具体方法:
一、去掉 robots 限制
如果之前对该域名做过 robots 禁封的话,需要先解除限制,删除 robots 即可。因为,你都不让百度抓取了,百度当然不知道你这些链接还能不能用,该不该删?他只会认为你是粗心误操作了 robots 而已。
二、设置 404 状态
经测试,百度的闭站功能申请通过的前提条件是,所有链接必须是 404 死链状态,否则无法通过:
所以,我们先对那些已收录的非首选域名,设置 404 返回码,即死链状态,如果之前设置了 301,记得要取消掉!
①、Nginx
如下修改之前非首选域名的监听设置:
server { server_name www.zhang.ge; root /home/wwwroot/zhang.ge; location / { #全部返回 404 return 404; } }
②、PHP 通用
将以下代码添加到网站的 head 部分
<?php if($_SERVER['HTTP_HOST'] == 'www.zhang.ge') { ?> header('HTTP/1.1 404 Not Found'); header("status: 404 Not Found"); <?php } ?>
③、ASP 通用
同样的将以下代码添加到网站 head 部分(注意是动态模板,而不是静态页)
<% if Request.ServerVariables("SERVER_NAME")="www.zhang.ge" then Response.Status = "404 Not Found" end if %>
设置完成后,记得手动访问测试下效果。
三、闭站申请
404 确认无误之后,打开百度站长平台的抓取频率,选择闭站保护
http://zhanzhang.baidu.com/pressure/close
然后,选择你要关闭的非首选域名,比如 www.zhang.ge,最后在下方继续勾选 www.zhang.ge,提交即可!切记不要提交带星号(*)的选项,那是指所有相关域名!
大概 2 天左右,就收到了闭站申请通过的通知:
可以看到,张戈前后测试了 3 次,前 2 次测试提交时,采用的是 403 或者是仅针对搜索引擎的 404 设置,结果都没通过!
Ps:闭站是对整个域名删除的最快方法,但如果是删除部分收录,那就得使用百度站长平台的死链提交功能。
四、补刀设置
现在再去 site 非首选域名,发现已全部删除干净:
我的目的已经达到!为了保持用户体验,现在需要恢复之前的 301 跳转和 robots 禁封设置:
参考之前写的的《彻底禁止搜索引擎收录非首选域名的方法》,重新设置了 robots 禁止收录和 301 跳转。现在,只要我不去申请闭站恢复,我相信百度再也不会收录 www 域名了!
五、写在最后
看完针对困扰①的解决办法,相信其他困扰也可以依葫芦画瓢的做好相应处理。
原理很简单,你想要删除哪个快照或域名,只需要将这些对象设置为 404 死链状态,然后去百度站长平台做死链提交即可,一般 2~3 天就能立竿见影。至于,如何设置 404 死链状态,则需要对症下药,方法不尽相同,张戈就不赘述了。当然,你有任何需要都可以去留言板留言告知。