给WordPress博客添加一个搜索引擎蜘蛛爬行及分析页面

在新站或网站收录有问题时,想要了解搜索引擎蜘蛛对我们WordPress博客的爬行情况,对网站进行针对性的SEO优化

每次打开服务器端访问日志查看非常麻烦,那么建立一个蜘蛛爬行及分析页面还是很有必要的。

网上已经有很多分享 WordPress 如何建立蜘蛛爬行及分享的页面文章了,不过大部分都是一个 txt 页面,密密麻麻一大堆字符,根本就看不出来哪个是哪个,所以根据网上大神分享的代码稍稍优化后让蜘蛛爬行结果更加直观明白。

具体效果如下:给WordPress博客添加一个搜索引擎蜘蛛爬行及分析页面1技术教程主机格调给WordPress博客添加一个搜索引擎蜘蛛爬行及分析页面3技术教程主机格调

WordPress WordPress博客添加蜘蛛爬行及分享页面步骤

1、将以下代码添加当前主题的 functions.php 文件中(或添加到一个 PHP 文件中,然后在 functions.php 文件中引入该文件即可)。

//自动分析蜘蛛,tzw520.cn
make_log_file();
function make_log_file(){
//log 文件名
$filename = 'mylogs.txt';
//去除 rc-ajax 评论以及 cron 机制访问记录
if(strstr($_SERVER["REQUEST_URI"],"rc-ajax")== false
&& strstr($_SERVER["REQUEST_URI"],"wp-cron.php")== false ) {
$word .= date('mdHis',$_SERVER['REQUEST_TIME'] + 3600*8) . " ";
//访问页面
$word .= $_SERVER["REQUEST_URI"] ." ";
//协议
$word .= $_SERVER['SERVER_PROTOCOL'] ." ";
//方法,POST OR GET
$word .= $_SERVER['REQUEST_METHOD'] . " ";
//$word .= $_SERVER['HTTP_ACCEPT'] . " ";
//获得浏览器信息
$word .= getbrowser(). " ";
//传递参数
$word .= "[". $_SERVER['QUERY_STRING'] . "] ";
//跳转地址
$word .= $_SERVER['HTTP_REFERER'] . " ";
//获取 IP
$word .= getIP() . " ";
$word .= "\n";
$fh = fopen($filename, "a");
fwrite($fh, $word);
fclose($fh);
}
}
//获取 IP 地址,网上现成代码 tzw520.cn
function getIP() //get ip address
{
if (getenv('HTTP_CLIENT_IP'))
{
$ip = getenv('HTTP_CLIENT_IP');
}
else if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
else if (getenv('REMOTE_ADDR'))
{
$ip = getenv('REMOTE_ADDR');
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
//获取浏览器信息,移动端,平板电脑数据还未加上。tzw520.cn
function getbrowser()
{
$Agent = $_SERVER['HTTP_USER_AGENT'];
$browser = '';
$browserver = '';
 
if(ereg('Mozilla', $Agent) && ereg('Chrome', $Agent))
{
$temp = explode('(', $Agent);
$Part = $temp[2];
$temp = explode('/', $Part);
$browserver = $temp[1];
$temp = explode(' ', $browserver);
$browserver = $temp[0];
$browserver = $browserver;
$browser = 'Chrome';
}
if(ereg('Mozilla', $Agent) && ereg('Firefox', $Agent))
{
$temp = explode('(', $Agent);
$Part = $temp[1];
$temp = explode('/', $Part);
$browserver = $temp[2];
$temp = explode(' ', $browserver);
$browserver = $temp[0];
$browserver = $browserver;
$browser = 'Firefox';
}
if(ereg('Mozilla', $Agent) && ereg('Opera', $Agent))
{
$temp = explode('(', $Agent);
$Part = $temp[1];
$temp = explode(')', $Part);
$browserver = $temp[1];
$temp = explode(' ', $browserver);
$browserver = $temp[2];
$browserver = $browserver;
$browser = 'Opera';
}
if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent))
{
$temp = explode('(', $Agent);
$Part = $temp[1];
$temp = explode(';', $Part);
$Part = $temp[1];
$temp = explode(' ', $Part);
$browserver = $temp[2];
$browserver = $browserver;
$browser = 'Internet Explorer';
}
if($browser != '')
{
$browseinfo = $browser.' '.$browserver;
}
else
{
$browseinfo = $_SERVER['HTTP_USER_AGENT'];
}
return $browseinfo;
}
 
function get_spider_log($atts) {
extract(shortcode_atts(array(
'text' => 'yes'),$atts));
$fh = fopen(site_url() ."/mylogs.txt", "r");
$contents = "";
while(!feof($fh)){
$contents .= fread($fh, 8080);
}
fclose($fh);
$str = "";
$showtime=date("md");
if($text == "yes") {
$str.= "<div style='background-color:#33A1C9;color:white;text-align:center;font-size:20px;height:50px;line-height:50px;'>以下为国内常用蜘蛛</div>";
}
$mytmp = array();
//google
$google = 0;
if($text == "yes")
$str.= '<li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;"> 谷歌蜘蛛</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"Googlebot\/",$text);
$google += $mytmp[0];
$str.= $mytmp[1];
$mytmp = show_spider_result($showtime,$contents,"Googlebot-Image\/",$text);
$google += $mytmp[0];
$str.= $mytmp[1];
$mytmp = show_spider_result($showtime,$contents,"Googlebot-Mobile\/",$text);
$google += $mytmp[0];
$str.= $mytmp[1];
$mytmp = show_spider_result($showtime,$contents,"Feedfetcher-Google",$text);
$google += $mytmp[0];
$str.= $mytmp[1];
 
// baidu
$baidu = 0;
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">百度蜘蛛</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"Baiduspider\/",$text);
$baidu += $mytmp[0];
$str.= $mytmp[1];
$mytmp = show_spider_result($showtime,$contents,"Baiduspider-image",$text);
$baidu += $mytmp[0];
$str.= $mytmp[1];
 
//bing
$bing = 0;
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">bingbot 蜘蛛</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"bingbot\/",$text);
$bing += $mytmp[0];
$str.= $mytmp[1];
$mytmp = show_spider_result($showtime,$contents,"msnbot-media\/",$text);
$bing += $mytmp[0];
$str.= $mytmp[1];
 
//sogou
$sogou = 0;
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">搜狗蜘蛛</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"Sogou web spider\/",$text);
$sogou += $mytmp[0];
$str.= $mytmp[1];
 
//soso
$soso = 0;
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">Soso 蜘蛛</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"Sosospider\/",$text);
$soso += $mytmp[0];
$str.= $mytmp[1];
 
if($text == "yes")
$str.= "<div style='background-color:#FA8072;color:white;text-align:center;margin:auto;font-size:20px;height:50px;line-height:50px;'>以下为垃圾蜘蛛,可屏蔽抓取</div>";
//jike
$else = 0;
if($text == "yes")
$str.= '<li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">Jike Spider</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"JikeSpider",$text);
$else += $mytmp[0];
$str.= $mytmp[1];
 
//easou
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">Easou Spider</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"EasouSpider",$text);
$else += $mytmp[0];
$str.= $mytmp[1];
 
//yisou
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">YisouSpider</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"YisouSpider",$text);
$else += $mytmp[0];
$str.= $mytmp[1];
 
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">YandexBot Spider</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"YandexBot\/",$text);
$else += $mytmp[0];
$str.= $mytmp[1];
 
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">Mail.RU Spider</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"Mail.RU_Bot\/",$text);
$else += $mytmp[0];
$str.= $mytmp[1];
 
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">AcoonBot Spider</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"AcoonBot\/",$text);
$else += $mytmp[0];
$str.= $mytmp[1];
 
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">Exabot Spider</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"Exabot\/",$text);
$else += $mytmp[0];
$str.= $mytmp[1];
 
if($text == "yes")
$str.= '<br><li style = "text-align:center;font-weight: bold;list-style:none;margin:20px;color:orangered;">spbot Spider</li><hr/> ';
$mytmp = show_spider_result($showtime,$contents,"spbot\/",$text);
$else += $mytmp[0];
$str.= $mytmp[1];
 
$str.= draw_canvas($google,$baidu,$bing,$sogou,$soso,$else);
return $str;
}
function show_spider_result($time,$contents,$str,$text){
$count = array();
$count[0] = preg_match_all("/".$time."\d*\s\/\S*\s.*".$str."/",$contents,$mymatches);
if($text == "yes") {
$str = preg_replace("{\\\/}","",$str);
$count[1].= "<br><p style='text-align:center;'> 蜘蛛类型:".$str.": 爬行次数:".$count[0]."</p>";
if($count[0] >0) {
$tmp = substr($mymatches[0][$count[0]-1],4,6);
$tmp = substr($tmp,0,2) .":" . substr($tmp,2,2) .":" .substr($tmp,4,2) ;
$count[1].= " <p style='text-align:center;'> 最后爬行时间:'. $tmp.'</p>";
}
}
return $count;
 
}
 
 
function draw_canvas($google,$baidu,$bing,$sogou,$soso,$else){
$tmp = $google + $baidu + $bing + $sogou + $soso + $else;
if($tmp == 0) {
return "<br><br>数据不足,无法生成分析图。<br><br>";
}
$google2 = $google*100/$tmp;
$baidu2 = $baidu*100/$tmp;
$bing2 = $bing*100/$tmp;
$sogou2 = $sogou*100/$tmp;
$soso2 = $soso*100/$tmp;
$else2 = $else*100/$tmp;
$str.= "<br><div style='border-top: 1px solid #e6e6e6;'><br>
<div style='width:auto;border-width:1px;border-style:groove;padding:15px;text-align:center;list-style:none;'><b>蜘蛛爬行分析图:</b><br>";
$str.= "日期:" . date("Y-m-d");
$str.= "<br>蜘蛛一共爬行". $tmp . "次:<br>";
$str.= "<li><span style='color:#33A1C9;'>google:". $google ."次(". intval($google2) ."%)</span></li>";
$str.= "<li><span style='color:#0033ff;'>baidu:". $baidu ."次(". intval($baidu2) ."%)</span></li>";
$str.= "<li><span style='color:#872657;'>bing:". $bing ."次(". intval($bing2) ."%)</span></li>";
$str.= "<li><span style='color:#FF9912;'>sogou:". $sogou ."次(". intval($sogou2) ."%)</span></li>";
$str.= "<li><span style='color:#FF6347;'>soso:". $soso ."次(". intval($soso2) ."%)</span></li>";
$str.= "<li><span style='color:#55aa00;'>else:". $else ."次(". (100 - intval($google2) - intval($baidu2) - intval($bing2) - intval($sogou2) - intval($soso2)) ."%)</span></li></div>";
//$str.= "<img src = 'http://chart.apis.google.com/chart?cht=p3&chco=33A1C9,0033ff,872657,FF9912,FF6347,55aa00&chd=t:".$google2 .",".$baidu2.",".$bing2.",".$sogou2.",".$soso2.",".$else2."&chs=400x200&chl=google|baidu|bing|sogou|soso|else' /></div><br>";
//这里好像应该是生成一个图表,但不知道 api 好像失效了,天真找不到可以替代的,于是就给注释了
return $str;
}
add_shortcode('spiderlogs','get_spider_log');
 
//自动分析蜘蛛结束

2、登录 WordPress 后台 >> 页面 >> 新建页面,页面名称随意即可,然后把以下代码直接放在内容中并发布页面即可。

[spiderlogs]

具体如下图所示:

给WordPress博客添加一个搜索引擎蜘蛛爬行及分析页面5技术教程主机格调
【声明1】:如本站转载别的站的文章,我个人没有添加来源,您可以发电邮:admin#zhuji.gd 提醒我,我会尽快添加文章来源。 【声明2】:本博客不参与任何交易及中介服务,只记录 VPS 测评和优惠,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。
(0)
上一篇 29/03/2019
下一篇 29/03/2019

相关推荐

  • Typecho搬家到WordPress迁移插件:ByeTyp,附详细搬家教程

    Typecho轻量,但是已经好几年没有更新,插件和模板支持已经很吃力,越来越多的人撤离 Typecho ,转向 WordPress。最近因为要将一个英文站从Typecho 转 WordPress,找到一款非常不错的Typecho 导出插件:ByeTyp,此插件将 Typecho 上的资源无缝迁移到 WordPress 上。转换网站程序前,务必备份,以免出错。 Typecho搬家教程 一.下载 ByeTyp 插件,Github地址:https://github.com/sunxiyuan/ByeTyp 或者在文末下载即可。下载后,...

    09/01/2021
    2000
  • 搜索引擎喜欢什么样的反向链接,反向链接如何给博客SEO加分?

    链接来说是非常重要的评分标准之一,以前大家都觉得有越多的反向链接对SEO加分必定越多,但随着搜寻引擎不断调整,对反向链接的定义也越来越严谨。 需要区分外链和反链之间区别 SEO外链就是所有指向自己网站的链接,它存在的目的就是吸引蜘蛛的爬行抓取路径,也就是大家所熟知的路标和引导的作用,仅此而已。 SEO反链:准确的来讲应该叫做反向链接。反向链接指的是两个网页之间直接的关系。举例,有两个网页,网页X和网页Y,网...

    技术教程 24/03/2019
    11.2K0
  • 更换收费 SSL 和 DNSPOD国际版收费服务

    昨晚,本站更换成商用 SSL 和收费 DNS 解析。一是为了网站加速,二是为了网站安全。 商用 SSL  安全性要比Let's Encrypt高,免费的 SSL 服务只是低级别的加密,信任度较低,不适合生产型的网站,而且搜索引擎对于免费版收录不是太积极。 国内 DNS 解析服务现在都需要实名制,所以我曲线使用 DNSPOD 国际版个人专业版,只要月付0.88刀,TTL 最低值从默认 600s 减少了 120s,如果购买月付8.99刀旗舰版则是 1s,解析时间明显加快。...

    14/11/2020
    7.2K0
  • WordPress插件:Add-Document-Pages为你的网站增加一个文档页面

    请注意,这是一个WordPress插件,而不是WordPress主题哦! 这个WordPress插件的作用就是为你的网站增加一个文档页面,这个页面可以用来做什么?适用于创建个文档页面,产品使用说明等等... 之所以做成插件而不是WordPress主题,是因为很多人并不需要因为一个文档页面而专门搭建一个网站,插件的形式就很方便了,不管你使用什么主题,启用这个插件后都可以创建一个文档页面,互不影响。 这个插件如何使用? 上传并启用插件,然后...

    05/03/2019
    11.5K0
  • Debian 10 如何启用 BBR 加速

    本站搬瓦工 VPS 安装了最新的 Debian 10 。该系统基于Linux 4.19内核,默认编译了 BBR 模块,通过以下步骤来开启 BBR。启用 BBR 后,网站速度明显有所提升。 1、修改系统变量 echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf 2、保存生效 sysctl -p 3、查看内核是否已开启BBR sysctl net.ipv4.tcp_available_congestion_control 显示以下即...

    技术教程 03/10/2020
    1020
  • PS 打不开 WebP 图片的解决方法

    WebP 现在已经成为网站常用图片格式,WebP 的压缩效率和优化后效果要优于 JPG 和 PNG格式。PhotoShop 软件暂时打不开 WebP 图片,也无法保存为 WebP 图片,可以通过安装 WebP.8bi PS插件可以解决以上问题。 WebP.8bi 插件体积小,安装非常简单。  WebP.8bi PS 插件安装教程 1、右击 PS,点击属性,点击打开文件所在的位置; 2、将 WebP.8bi 丢到 Photoshop 安装目录或者安装目录的 Plug-ins 文件中,注意分清32与64位。 3、打开...

    02/10/2020
    25.2K0
  • 最简单的 WordPress 网站更换域名教程

    网上 WordPress 网站更换域名教程讲得不是很全面。个人站长不是经常更换域名,换完过段时间就忘了,找来找去太麻烦。整理一下,以备不时之用。 域名解析 新域名进行解析可以使用域名注册商自有 DNS 服务,也可以选择第三方 DNS 服务,国内选 DNSPOD ,国外选 DNS.HE.NET 。我自己首选DNS.HE.NET ,解析服务非常稳定。 域名解析都非常简单。 注意一点:旧域名不要删除解析。 网站后台修改域名 新域名解析成功后,在 WordPress 后...

    技术教程 25/07/2020
    13.6K0
  • RAKsmart 服务器限量秒杀,40G防御仅99刀,洛杉矶新品预售,美日VPS全场8折!!!

    RAKsmart 是一家由华人创办老牌海外 VPS 商家。RAKsmart 今年推出韩国、日本、新加坡、香港等多个数据中心。RAKsmart 的便宜 VPS 、高防服务器、站群服务器、独服在国内销售都不错。 RAKsmart 恢复了40/60/100G防御促销,E3-1230 40G防御仅$ 99,日本+美国站群、G/10G口大带宽不限流量。洛杉矶产品上线预售,限量20台。 活动时间:美国西岸圣何塞时间 9月26到10月31日。 服务器限量秒杀 线路包括:大陆优化,100M/不限;国际BGP...

    02/10/2020
    15.9K0
  • 红米 Redmi K20Pro MIUI 11 欧版 ROM 刷机教程

    为什么选择欧版MIUI 欧版 MIUI 是K20Pro手机ROM中唯一真正纯净,只保留基本的谷歌服务框架,没有预装谷歌全家桶,预装的小米应用没有广告。非常良心,非常精简的系统。 国际版或者印度版MIUI 有 AnalyticsCore、MSA-Global 等广告后台,虽然广告较中国版少,但系统预装了谷歌全家桶,还是不如欧版精简。 K20Pro刷机说明 K20Pro刷机要用到欧版固件、Andriod Debug Bridge (ADB) SDK、Recovery TWRP三件套。 ROM提前复制到手机的...

    03/02/2020
    61.6K0
  • WordPress如何手动还原到旧版本

    注意:在升级/降级前,请务必备份所有文件跟数据库、并且停用所有插件。 WordPress 还原到旧版本 WordPress的更新比较频繁,如果WordPress推送了新版本,你的WordPress主题或者插件,在使用新版本的WordPress会导致出现问题,甚至无法使用的情况,比如最近5.0版本升级,好多主题都不太适合用WordPress新版本。 有时候有些WordPress主题和插件的更新没有跟上,或者使用的停止更新的版本,更新wordpress可能会发现和现在使用的主...

    16/03/2019
    640
返回顶部