WordPress实现自动提交404死链到站长平台(防重复)

张子凡 WordPress 3个月前 (11-03) 阅读(4252) 评论(25)

子凡见过有人使用Shell脚本自动提交网站404死链到搜索引擎的方法,说真的我觉得属实太麻烦了,就当是子凡Linux学艺不精找的借口吧,不过作为一个WordPress优化和一名极致爱好者,就喜欢折腾这样有意义的事情。

其实不瞒大家说,泪雪博客其实有很多链入链接就是死链,因为博客之前有更换过一次域名,所以无形之中就会形成死链,而且搜索引擎也会去抓取,然后在站长平台提示有找不到的页面,虽然之前的域名都做301跳转到了新域名,但是子凡又从新的配置了WordPress的固定链接,所以几乎之前的所有文章是死链了,然后也就迷迷糊糊的没有心思好好的整理和提交死链,出于对网站优化的态度,还有有这个必要的。好,废话到此打住。

404

百度站长平台有一个死链提交功能,可以提交的文件地址格式为txt或xml,每个地址文件最多包含50000个网址且需小于10MB。所以子凡就以WordPress为例,利用PHP来实现对网站404页面的死链进行输出,实现全自动记录。然后在利用死链提交的抓取周期,从而全面的实现全自动死链提交。

为满足大家需求以及完善代码,子凡已于2016/11/22更新升级,防止死链重复记录。欢迎大家更新使用!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
//WordPress实现自动记录死链地址(防重复)
if(is_404 && strpos($_SERVER['HTTP_USER_AGENT'],'Baiduspider') !== false){
	$file = @file("badlink.txt");//badlink.txt
	$check = true;
	if(is_array($file) && !empty($file))
	foreach($file as &$f){
		if($f == home_url($_SERVER['REQUEST_URI'])."\n")
		$check = false;
	}
	if($check){
		$fp	=	fopen("badlink.txt","a");//badlink.txt就是在网站根目录的记录死链的文件
		flock	($fp, LOCK_EX) ;
		fwrite	($fp, home_url($_SERVER['REQUEST_URI'])."\n");
		flock	($fp, LOCK_UN);
		fclose	($fp);
	}
}
?>

这就是子凡实现的全部代码,但是需要注意的是,这个代码不是像我们经常所操作的加入到主题的functions.php文件,而是添加到WordPress主题中的404.php页面中,请一定不要问我为什么,因为WordPress的原理就是如此。哈哈哈哈

死链提交

通过代码已经实现了死链记录,那么我们就还需要如上图在百度站长平台的死链提交“你的域名/badlink.txt”即可全部完成。

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/wordpress-badlink.html

发表评论

  1. 阿西吧
    1楼
    阿西吧 2个月前 (12-01)

    为什么我提交完链接文件后, 百度显示的是 文件空或过短呢?

  2. 阿西吧
    2楼
    阿西吧 2个月前 (12-01)

    我想问一下,为什么我提交上去显示 文件空或过短 呢?

    • 张子凡
      回复
      张子凡 2个月前 (12-01)
      回复 @阿西吧 :你看看你网站根目录有没有那个badlink.txt的文件是否存在,并且这个生效的死链只有百度蜘蛛抓取过返回404的才会被记录,你可以先手动创建这个txt文件
  3. 北俱芦洲
    3楼
    北俱芦洲 2个月前 (11-25)

    防重复用着很不错,就是有个问题,能不能修改下只提交.html后缀的呢?目前会提交.jpg、.css之类多余的,谢谢

    • 张子凡
      回复
      张子凡 2个月前 (11-26)
      回复 @北俱芦洲 :看情况吧,以后可能会再做完善的,不过目前感觉没有必要排除后缀,毕竟都是不错在的链接
  4. 分钱榜
    4楼
    分钱榜 2个月前 (11-16)

    是夹在文件最后一段代码的前面吗

    • 张子凡
      回复
      张子凡 2个月前 (11-16)
      回复 @分钱榜 :文章中已经有说明过的,你可以看清楚一点点
  5. 分钱榜
    5楼
    分钱榜 2个月前 (11-16)

    是加在前面吗?

    • 张子凡
      回复
      张子凡 2个月前 (11-16)
      回复 @分钱榜 :加在你WordPress主题的404.php文件中
  6. 小萝博客
    6楼
    小萝博客 2个月前 (11-15)

    自动的非常给力啊

  7. 龙笑天
    7楼
    龙笑天 2个月前 (11-13)

    这个有点问题哦~ txt里会重复记录死链,希望改正~

    • 张子凡
      回复
      张子凡 2个月前 (11-14)
      回复 @龙笑天 :是的,没有写重复的判断功能
      • 龙笑天
        回复
        龙笑天 2个月前 (11-16)
        回复 @张子凡 :希望能加上~
        • 我爱动感单车网
          回复
          我爱动感单车网 2个月前 (11-20)
          回复 @龙笑天 :是啊,这个问题我也发现了,美中不足啊,呜呜呜呜!
  8. qq昵称大全
    8楼
    qq昵称大全 2个月前 (11-12)

    刚刚加上,坐等效果。

    • 张子凡
      回复
      张子凡 2个月前 (11-13)
      回复 @qq昵称大全 :可以的
      • qq昵称大全
        回复
        qq昵称大全 2个月前 (11-17)
        回复 @张子凡 :死链有检测出来并提交了,但是百度不处理。。。
        • 张子凡
          回复
          张子凡 2个月前 (11-18)
          回复 @qq昵称大全 :在站长平台提交死链设置后百度会自动处理的
          • qq昵称大全
            回复
            qq昵称大全 2个月前 (11-24)
            回复 @张子凡 :已经好多天了,百度都没处理呢。。
            • 张子凡
              回复
              张子凡 2个月前 (11-24)
              回复 @qq昵称大全 :使用后需要到百度站长平台提交你这个死链文件的,然后隔天基本就能在数据反馈里面看到结果
  9. 明月登楼的博客
    9楼
    明月登楼的博客 2个月前 (11-09)

    好像这段代码不起作用呀!

    • 张子凡
      回复
      张子凡 2个月前 (11-09)
      回复 @明月登楼的博客 :可以用的哦,我都在用
  10. 明月登楼的博客
    10楼
    明月登楼的博客 2个月前 (11-09)

    不错,学习了!这个真心很不错的!收藏了!

  11. 我爱动感单车网
    11楼
    我爱动感单车网 2个月前 (11-08)

    这个有点意思,不过我的博客基本没啥死链,看来是用不上了。

  12. 华夏九州套图
    12楼
    华夏九州套图 3个月前 (11-02)

    我只是来随便看看!