今天给大家分享一个,能自动检测网站死链、然后记录死链、并提交站长工具的代码,因为我这里用的是WordPress程序,所以本代码只兼容了WordPress。
前几天我买了一个老域名建站,看着这个老域名做了十几年了,然后我拿来建站时,发现蜘蛛在疯狂的抓取以前的死链,本来我想发现一个死链,我记录一个,然后死链实在太多了,根本搞不过来。
所以干脆写了一个自动记录死链,并提交到死连文件中,然后只要把这个文件提交给百度即可。以后程序会自动检测死链,并且记录提交到死连文件中,非常省事。
最近更新了一下,现在可以去除重复链接,为防止用户恶意访问造成死链,改成只有百度、360、搜狗、神马、谷歌等搜索引擎,在访问时出现死链,才会提交。
执行步骤
1、找到当前主题的404.php文件
2、打开此文件查找:<?php
?3、在这一行代码的下面一行,添加如下代码
$ua = $_SERVER['HTTP_USER_AGENT'];
//WordPress 实现自动记录死链地址(防重复)
if(is_404() && strpos($ua, 'Baiduspider')!== false
||strpos($ua, 'Sogou') !== false
||strpos($ua, 'YisouSpider') !== false
||strpos($ua, 'Bytespider') !== false
||strpos($ua, 'bingbot') !== false
||strpos($ua, '360Spider')!== false
||strpos($ua, 'Googlebot')!== false ){
$file = @file("deadlinks.txt");//deadlinks.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("deadlinks.txt","a");//deadlinks.txt 就是在网站根目录的记录死链的文件
flock ($fp, LOCK_EX) ;
fwrite ($fp, home_url($_SERVER['REQUEST_URI'])."\n");
flock ($fp, LOCK_UN);
fclose ($fp);
}
}
最后效果图如下
?4、保存文件
5、测试代码是否生效
如果有死链的话,此代码会自动把死链的链接,记录到网站根目录,deadlinks.txt文件中
可以去百度站长工具,有一个抓取诊断,然后随便输入一个不存在的页面,看看deadlinks.txt文件中是否添加了这条死链。
5、把死链文件提交到站长工具
测试成功以后,把deadlinks.txt提交到搜索引擎站长工具
|