代码实现WordPress自动记录404死链生成文件

任何一个网站都会存在“死链”,可能是一张图片丢失,也可能是一片文章被误删等等,这些都是您网站上面的死链。对于网站来说,每一篇内容的呈现都是一个绝对的地址,而一个网站的构成都是由这些链接组成,从而让用户可以通过各种各样的连接而阅读形形色色的内容。所以,当您的网站出现“失效”的连接的时候,而这些链接我们则将其称之为“死链”。WordPress的主题模板必备的文件中其中一个就是404.php,所有已经失效的连接都会被WordPress指向到“404.php”。告诉访问者,这个网页已经失效,好让访客及时跳转到其他页面继续浏览内容。

代码实现WordPress自动记录404死链生成文件

很多WordPress的主题会在“404.php”,大做文章,可能是在里面增加一个跳转的时间,好让用户不用通过手触自动跳转到网站首页,或者是用户浏览的上一个页面。其实以上大多数的手法都是为了留住访客,并将访客引导到其他可以正常浏览的网页,继续为用户奉献价值,并同时在可能的前提下让用户给我们奉献一点价值。

说到“死链”等于“失效的网页连接”。对于网站的本身的是不会有多大影响的,毕竟还可以通过一些手法将用户引导到其他页面。而如果您的网站存在大量的死链,那则可能会对您网站的收录以及外部流量造成一定的影响。造成网站索引量变少,或者是没有流量等等。

以上,当然是搜索引擎对您网站的惩罚,毕竟搜索引擎所做的事情就是将用户搜索的关键词,呈现合理的并且可能符合用户需求的内容,如果这个内容越精准,那么对于用户的友好度也就越高。而如果相反的话,当搜索引擎,已经收录的页面链接当访客点击打开后,发现里面的内容不是访客需要的,或者干脆这个链接无法打开访问,那么久造成用户没有在这个页面查询到自己需要的信息。访客能做的是,就是直接关闭页面走人换另一个页面,继续查询符合自己需要的内容。

而当搜索引擎访问该页面地址后,发现该页面已经不存在任何内容,而是一个无法打开的连接,那可想而知,搜索引擎需要一系列的操作。

  1. 将页面反馈给数据库
  2. 通过程序将地址记录在失效的数据库
  3. 最后删除已经失效的连接//以上是小编大概的猜想如果说的不对,还请您高抬贵嘴。

也就是说原本已经被收录的页面,如果该页面连接已经失效之后,搜索引擎需要做一系列的动作才能将这个地址删除。经历过一系列的动作之后,搜索引擎会觉得这个网站不是一个优质的网站,从而造成一定的惩罚性动作。

死链对于网站的本身影响并没有多大,而对于搜索引擎来说就存在很不友好的可能性。当然,这也仅仅是针对不同搜索引擎而定的。现在的Google搜索引擎,已经发展到非常智能的程度,网站的死链在Google来说问题不大,它会自动删除这些已经失效的连接。而如果是百度搜索引擎,那可能还存在不小的影响。至少截止到今天为止,小编仍然可以在百度站长中心死链提交工具。

所以如果您有需要可以通过本文的方法,实现您的WordPress博客,将已经失效的网页连接自动记录起来,并通过百度站长的自动死链提交工具,提交给百度搜索引擎,降低网站的惩罚性打击。

代码1:来自虫子君博客

$error_url = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$error_log = "silian.txt";
$entries = file($error_log);
$check=true;
foreach($entries as $f){
if($f == $error_url."\n")
$check = false;
}
if($check){
$fp = fopen($error_log,"a");
flock ($fp, LOCK_EX) ;
fwrite ($fp, $error_url."\n");
flock ($fp, LOCK_UN);
fclose ($fp);
}

直接将以上代码粘贴到您的WordPress主题中的404.php文件的最后。

或者您当前使用的WordPress主题文件中存在有if ( ! defined( 'ABSPATH' ) ) { exit; },这一句,那将以上代码粘贴到改代码下方即可。

小编当前网站模板使用的代码则是这一种,经过测试有着很高的效率,基本自己在前端随便测试几个失效的连接,不用耽误就可以在WordPress根目录中看到以及记录成功的死链文件。

代码2:来自血泪博客

<?php
//WordPress 实现自动记录死链地址(防重复)
if(is_404 && strpos($_SERVER['HTTP_USER_AGENT'],'Baiduspider') !== false){
$file = @file("silian.txt");//silian.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("silian.txt","a");//silian.txt 就是在网站根目录的记录死链的文件
flock ($fp, LOCK_EX) ;
fwrite ($fp, home_url($_SERVER['REQUEST_URI'])."\n");
flock ($fp, LOCK_UN);
fclose ($fp);
}
}
?>

将以上代码粘贴到您的WordPress模板中的404.php最后。

以上方法,可以实现在大多数WordPress主题中,兼容性好,不过在小编使用的主题中存在问题,也可能是小编没有去处PHP头的缘故。

以上两种方法,小编都有使用过,代码1小编在当前网站主题中使用,B2主题,代码2小编在begin主题中使用过,都可以实现自动记录死链的功能,并且也都可以正常生成silian.txt文件。

最后补充一点,自动记录死链的最大方便自己的是不用手动动手将死链一条一条记录,因为那样您也记录不完。所以还有重要的一环需要做的就是,将这些已经记录在案的死链,及时的告诉搜索引擎,网站中已经存在的死链。

百度站长中心提交死链文件

登录到百度站长中心,打开死链提交功能//https://ziyuan.baidu.com/badlink/将您网站死链地址提交给搜索引擎。

代码实现WordPress自动记录404死链生成文件

以上两种代码中默认文件格式为txt文件,当然小编觉得这种格式可能会好一点, 毕竟方便编辑,可以随时利用宝塔控制面板查看silian.txt文件中已经存在的死链数量。以上两个方法,希望可以帮到您,也不枉费我花了一个多小时辛苦马下的文字。

人已赞赏
WordPress功能扩展代码WordPress功能扩展教程

百度快速收录API代码实现主动推送教程

2020-5-28 22:36:01

服务器运维教程

腾讯云镜像市场宝塔镜像的安装方法

2020-4-23 14:14:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索