如何利用百度蜘蛛referer找到报错页面入口?

大家应该都知道百度已经全站https并取消referer关键词显示了(详情可查看站长之家文章:百度站点属性功能升级 全面取消referer关键词显示),那么“百度蜘蛛referer”又是什么?有什么妙用吗?艺龙SEO负责人刘明发现通过百度蜘蛛referer可以快速定位部分站内url的报错(4xx或者5xx)原因。

什么是百度蜘蛛的referer

百度蜘蛛的referer,是指当百度蜘蛛抓取某一个URL的时候,在HTTP头中带的Referer字段。请注意,这个定义和百度最近声明去除Referer中关键词数据没有任何关系。这次讲的是spider发起的HTTP请求,百度而去除的是用户发起的。如果百度蜘蛛抓取百度首页的logo,会发起这样的请求:

上面Referer字段很明确的表示了他是从www.baidu.com这个页面上发现并抓取了www.baidu.com/img/bd_logo1.png。而大家在服务器访问日志中也应该能看到相应的记录。目前发现只有当百度抓取一个网页的同时,又抓取了网页中的:img、js和css才会带上referer字段。这部分额外的抓取量,应该不会占用百度分配的抓取配额,属于“买1送1”。

对于站长的意义

如果你发现有一批URL(仅限于img,js,css)报错(4xx或者5xx),但是一直找不到入口在哪,也就是说你不明白百度蜘蛛是从哪里发现这些错误URL的。这个字段可以帮助你迅速定位。

举个例子

比如我们的SEO日志分析系统中可以看到,符合下面这种URL Pattern的路径每天有6万到10万的抓取而且全部报404。

从发现问题至今过了1个月,查遍整个网站我也没找到入口。今天偶然仔细查了一下日志,想起了百度蜘蛛的referer,马上就能定位问题了。这些404的URL来自于一套没人维护也没人关注的页面(往往是这样)。收录流量都不错。由于最近公司图片系统更新,图片的URL全部更改了,但这套页面并没有跟着更新。

如果站点没有记录referer怎么办?

iis请在这里勾选“cs(Referer)”:

apache请参考:

apache log配置“Combined Log Format”章节

apache log配置的官方链接

Nginx请参考:

nginx log配置

nginx log配置的官方链接

时间: 2024-10-27 19:26:18

如何利用百度蜘蛛referer找到报错页面入口?的相关文章

使用百度编辑器时,报错:从客户端("...)中检测到有潜在危险的 Request.Form 值

ajax请求失败,提交不上去 起初没找到报错的这句话,可能由于我用了其他第三方插件的原因,后来改动了一下,出现了这个错误 然后百度得到答案:http://www.cnblogs.com/tearer/archive/2012/05/16/2503792.html 当asp.net提交<>这些字符到aspx页面时,如果未设置validaterequest="false",就会出现错误:从客户端(<?xml version="...='UTF-8'?>&l

利用Tomcat部署Web项目报错

1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help | start | stop } 八月 18, 2014 7:35:40 下午 org.apache.catalina.core.AprLifecycleListener init 信息: Loaded APR based Apache Tomcat Native library 1.1.24 u

自定义404报错页面

对Nginx服务器进行适当优化,解决如下问题,以提升服务器的处理性能: 如何自定义返回给客户端的404错误页面 火狐浏览器新开一个页面,摁F12,然后打开随便一个网站,然后点击框框上面的Network,下面的name可以看到状态码 状态返回码很重要,面试的时候经常问.比如出现404,怎么解决?404是访问的页面不存在. 4)常见http状态码:状态码 功能描述200 一切正常301 永久重定向302 临时重定向401 用户名或密码错误403 禁止访问(客户端IP地址被拒绝)404 文件不存在41

Less(19)POST - Header Injection - Referer field - Error based (基于头部的Referer POST报错注入)

1.单引号,报错型,referer型注入点: 本题和上一题很像,回显是referer,查一下php文加可以发现,insert语句中向数据库插入了referer,所以注入点改为referer 2.爆破 (1)Referer: ' and extractvalue(1,concat(0x7e,(select version()),0x7e)) and ' 发现没问题 (2)爆库:' and extractvalue(1,concat(0x7e,(select database()),0x7e)) a

百度UE编辑器打开报错

这种情况一般出现在第二次打开的时候,因为百度UE编辑器每一次打开都需要销毁之前的容器,所以这时候我们需要使用 UE.getEditor("editor").destroy(); 但是,当你使用后会发现,第二次及之后请求不会报错,但是第一次请求当时候报错了.这是因为第一次清理容器时,UE容器不存在,那这样我们就需要判断UE容器是否存在,查看文档发现里面有一个属性isReady,判断UE是否准备好开始工作 if(UE.getEditor('editor').isReady){ UE.get

nginx关闭php报错页面显示

默认情况下nginx是会显示php的报错的,如果要关闭报错显示,需要在php-fpm.ini文件里面设置,貌似默认情况下在php.ini关闭没效果, 如下设置就可以了: ;php_flag[display_errors] = off php_admin_value[error_log] = /data/www/log/error.log php_admin_flag[log_errors] = on 如果没有生效,查看下phpinfo()输出的结果中,display_errors,error_l

node.js 框架express关于报错页面的配置

1.声明报错的方法,以及相对应的页面 //把数据库的调用方法配置到请求中 server.use((req, res, next) => { //把数据库存入req中 req.db = db; //把报错方法存入res中 res.showError = code => { switch (code) { case 404: res.status(code).render('404', {}); break; case 500: res.status(code).render('500', {})

项目中出现一个红x,但是项目里面又没有找到报错的地方,解决方法!

找到项目D:\workspace\KonkaDireckLink\.settings下面的xml文件删除一行类似myeclipse的代码.操作以后xml文件里面还剩下代码如下: <?xml version="1.0" encoding="UTF-8"?><faceted-project> <fixed facet="jst.web"/> <fixed facet="java"/>

利用yum安装时,报错 [Errno 256] No more mirrors to try.

问题: [[email protected] ~]# yum install -y perl-DBD-MySQL  Loaded plugins: product-id, refresh-packagekit, security, subscription-managerThis system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.Set