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