|
首先,我们通过分析网站日志要达到什么目的?: }4 W! ^( k6 N3 K: Q) ]* U$ C" p
8 d; i, a9 N. c% @3 H: v- k
1、我们希望重要的频道(大量流量着陆页面,高转化率,用户直接交易页面等)有更多的爬虫来抓取;
% S6 N0 Q) X( y& I$ K% c q" }2、我们希望在爬虫一定的抓取时间内,尽量少花精力放在一些无用的噪音页面上(重复页面,低质量页面,空内容页面,404页面,不排名页面,低转化页面等);/ U0 w3 o& ]+ w- b2 ~8 b
3、我们希望爬虫在抓取页面的时候,尽量增加抓取的有效性,而不是重复抓取几篇相同的页面;+ C$ P9 a5 y# w0 `
4、我们希望爬虫不会被繁杂的URL参数所扰,不会进入无休止的爬虫陷阱中;! y6 B; P u) Y0 ~9 `" L0 l6 g4 C
5、我们希望每个页面的下载时间足够的快,这样,可以让爬虫在时间一定的基础上能够更多的抓取页面;
) h8 V( q$ w( F* }6、我们希望爬虫都能够完整的抓到我们想让他抓的页面,不要抓到我们的隐私页面;
& k- ? E, f3 P7、我们希望日志中不要有太多的404,不要有无理由的跳转,不要有很多的500(服务器错误),这样的情况出现;: w# A+ a$ t' B# l
8、我们希望那些更新频繁但是价值很低的页面不要吸引太多的爬虫精力;
5 J" L; C( h9 k% s9、我们希望我们所有的产品,所有的品类,所有一切有用的东西都要被爬虫完整爬到并且快速遍历;
8 O9 X( Q4 T) N5 R: Y2 a- C6 w* [10、我们希望能用碰到真正的爬虫,而不是一些模拟爬虫的机器人;
. v( i6 F. k) A% ?11、我们希望爬虫能够完整的下载到我们的robots.txt;# l' J% U! ^ d* U7 v2 ~" c
12、我们希望爬虫可以根据我们入口的调整,robots.txt的限制引导,JS的设计等按照我们的要求进行爬取;1 Q, v4 T. Y$ s# C+ H7 J
13、我们希望爬虫越多越好。。。对我们的兴趣越大越好,当然,一切是在我们自身信任度和重要度增加的基础上。
: y( f( a+ s& H7 m& {- k) E! |- H
8 s; t4 a0 A7 B+ L接着,我列举一个网站日志的案例:3 L) k V4 h6 {) _; r' W
1 P* C8 L' l$ I s/ g
这个网站日志我已经拆分过了,至于怎么拆分日志大家可以在网上找教程,日志里的含义,可以大家看下网站日志中各个数据都代表什么意思,总之这个例子是记录的一天过来的所有百度爬虫的行为。
, \3 s+ C3 o/ a) Q* u' X- P: ^: x' g
当我们拿到这么一个网站日志,我们就可以审视我们的日志,并且把日志和我们的流量期望结合起来,为最后订单的目标而努力,接下来,我一个一个说说。3 ^! Y }% l3 y0 Y; }: s
1 Y F- m- V- L
首先,我先看看第二点,我先把整个日志里面的噪音行为搞清楚。为什么会出现这些行为,不管这些噪音占比大还是小,都会影响到爬虫抓取的精力,都会是隐患,都是我们不能忽视的。% J/ M" A& \* b& t' _
- i1 W' ?8 G$ G" t) ]5 N9 L$ O这里我还要说一下,不通过日志做SEO,不通过数据做SEO,不通过用户做SEO,不通过价值做SEO,是伪SEO。我们只有通过日志,才能够清晰的看到我们从外表看不到的内部原因。对于一定的网站权重,爬虫的抓取策略及时间是有一定规律的。
# Y( ~ U* e& V8 O, I 0 L z6 h; ~ @) O
我们先来看看这篇日志样例:& N, Q! n* o# h9 j9 N* u$ F. e/ @
6 \" l N+ c% S7 g6 w W大家看看,在这一天,我的这个样例网站,百度过来抓取了多少词,8000多次是吧。这个对于一个日UV上万的网站来说,对于几个拥有几万产品和几百万页面的的网站来说,这个次数不算多。为什么爬虫来的不多呢,会不会是我们更新不及时,时效性不够,外部权重不高,内容价值不彪悍,用户行为不好,服务器不稳定?SEO,一定是精益化SEO,才能取得真正的效果。2 u+ H' U! l1 M4 E3 N" [# o% Y
: o' K' }8 r/ x6 j8 h
我们就来看看这8000多次抓取吧,先看看有哪些噪音行为。我们最害怕的是404,般404怎么产生的呢?* a% k( g w( D) `6 s( J0 N
1、死链 B! G$ f1 I% W8 \' u. |9 v
2、页面被删除2 r% e/ ~) ?7 [+ M* j7 E& Z
3、服务器不稳定,页面打不开
: r* d/ m* r6 C: ~$ t4、技术人员人为设置- ]4 H4 X) l' K ^2 Q
基本就这样几种情况,其中,特别是死链,是SeO的大敌,你的网站中如果存在大量的死链。那么,会降低搜索引擎对你的评价。
9 f4 r1 N! s; x% k3 L / k. v3 m' @) y: ]: i
我们第一件事,心里很忐忑。看看,我们的404页面多吗?我搜索看看:
8 Y2 D; `" U' V* z& {
2 y5 } k, N- O) D- y s5 ]& j4 T4 | N( A
通过404的特征码进行搜索,得出的结果只有68个。但是,就是这68个,我们都不能忽视,里面可能蕴藏着不健康的技术人员的开发习惯,可能蕴藏着不健康的产品经理的SEO意识,还可能蕴藏着一些隐患。所以,我们分析一下网站日志,这68个,都是什么内容,为什么会有404?做SEO,一定要做到粒级。就是一粒因素我都不愿意放过,可大可小,才行。那么我来看看这68个404,我给大家截图。
* H' Z0 z, Q9 ] B
5 ~1 e9 J5 N: H* I1 e; z
) |! D% M A" K4 e
大部分的404都来自于产品详情的页面,这个页面为什么会出现404?原来,是运营那边有一个逻辑,当一个产品下架的时候,会删除这个产品页面。我默默的祷告了一下,开始和运营沟通,以后再有下架的产品,保留这个页面吧,写上待上架或者到货通知一类。毕竟,这部分流量,我还是要的。万一你以后再上架呢,流量又不是续接。解决了这个问题,我非常感激的看了运营一眼。重新分析了网站日志。
" ~% x+ X ^0 Q$ t% @ 5 ?6 i. q- p' Q5 Q; X/ K
“1、我们希望重要的频道(大量流量着陆页面,高转化率,用户直接交易页面等)有更多的爬虫来抓取。”我们来完整这个KPI,希望更多的爬虫来抓取更重要的页面。换句话说,希望更多的爬虫来抓取我们认为重要的页面。产品频道是我们希望重点抓取的。心里说,爬虫,多抓一些产品频道吧,缩短遍历周期,多更新一些新品,这样,我会多一些流量机会。
r z: B4 V7 U" _6 j# S
# E, \+ d7 i5 `& W. ]8 g% ^& T* l好的爬虫纠偏至少会增长30~50%的流量上不封顶?我们继续来看看我们这段日志,究竟这8000次爬虫,有多少抓了产品详情页面呢?
: g! S1 _+ J' u c; d
9 N5 L9 I3 r4 h$ D4 M2 h“GET /product/”这个是产品详情页面的特征码:- J- s% Y* E. `: g" v: r4 L
% W( X' J) @! Y# e9 P& T1 l0 k' M
3 F2 n4 P7 ~! R& Q B, X& u; Y. k3 u% X
拆分一下,才有1000次的抓取。这么重要的页面,爬虫竟然只用了10%多一点的精力,我一共30000个产品,就算爬虫这1000次抓取的都是不重复的页面,也要30天遍历一遍!所以,我的一个主要的SEO的行为,就是要爬虫纠偏,让爬虫花更多的精力放在我的产品详情页面上。这里,我们忽略到一个现实,产品列表,品牌列表,品牌专区页面都很重要,为了说明问题,我们都把他们忽略吧。就认为这个网站唯一重要的是产品详情页面,家要记住这个前提,好了,我们怎么做?来给爬虫纠偏。前面说了,纠偏之后,最少能增长30~50的流量。搜索我们要知道,剩下80%的爬虫都去了哪里了?我们通过拆分发现,抓JS竟然抓了2000次!看看CSS,只有419次。JS和CSS加起来也要有2200多次了,一个大头找到了。那在SEO代码优化中对于JS和CSS应该如何处理,直接用robots.txt把JS和CSS屏蔽掉吗?
9 a; }- A& b9 S, X- n: C& Y9 s" n" d; E! x3 `7 h
我是不赞成这样做的。屏蔽掉JS和CSS会影响到整个网站的SEO表现,搜索引擎也很难去理解布局,查明作弊。那么不屏蔽,我们应该怎么做呢,。JS该合并的合并,该减少的减少,该外调的外调,CSS该精简的精简,CSS为了加快网页性能,还能使用图片精灵,这个是拓展阅读。至于什么事图片精灵,大家问度娘。经过一番折腾,JS的抓取退回到正常范围内了,看看还有那些比较大的耗费爬虫精力的因素。- F5 u9 V& O) j9 {8 B
( f' \4 R. I$ W8 p" `, c/ {1 b
这里,我一定要插一句话,爬虫纠偏,一定要在完善目标页面的质量的基础上去纠偏,不然,你即使“逼迫”爬虫转向,爬虫也可能会因为你的目标页面质量不高,更新不及时,而放弃抓取,从而会降低对你网站的爬虫策略,减少爬虫数量。这个大家要理解呢。不能盲目纠偏,次序不能错。那么,我们接着看看,还有那些,影响到爬虫精力了。0 s( P( e) C4 |- L! h; W
5 H. ?4 v4 ~" J- v
通过搜索,我发现,爬虫竟然有3000多次,抓取了站内搜索的搜索结果页面。于是,我又要开始了去评定站内搜搜页面内容价值以及评判是否爬虫需要放这么大精力在这个频道的工作。# k d: R6 n) Q/ G
/ B6 ` M& J# g( b, n% c刚才,我们通过了对404,301这些特征返回码的分析,找到了一个关于产品逻辑的错误,这个不赘述了。
5 X0 |2 T7 t- G8 Q" C. G# ?/ I2 f 5 |3 m( K L) q* E2 Y
第二个,我们通过对爬虫抓取偏好的分析,找到了我们重要的页面却不受爬虫青睐的原因,并且找到了哪些牵扯爬虫精力的页面都有哪些,应该如何解决。
* P* y3 Z- T$ c q
6 s$ [, F; G/ i Y- m9 J9 `3 r接下来,我要说一下话题。关于返回码的。我们一定要熟知,除了熟知各个返回码的含义外,还要清楚的知道,百度看到这些返回码,都会有相应的什么反应,这是非常重要的,我们接下来就说说,比如404页面。0 P0 V! G( z) L* l5 |
5 K. ?& v' x5 S6 x! |5 b2 s很多人的404设置,是页面上是404,但是返回码是200。这就适得其反了。搜索引擎还会认为是有效页面,从而抓取并且造成大量重复页面。页面404不仅仅是页面本身写上404几个字,还需要在http返回码中返回404,是不是发送不过去?当百度看到我们的页面返回404的时候,他会有什么反应呢?他的反应是,会认为这个页面已经不存在了,会在数据库中删除,并且短期内再看到这个URL就不会抓取了。所以说,别乱设置404.特别是下架商品,你设置了404,再上线,再生成,再让百度抓取,就很麻烦了。
' n# u4 ^7 n; B5 p( p
s8 [, M* a% ?6 R如果我们碰上了503呢,百度会认为网页暂时不可访问。会在隔断时间内再来访问几次,如果再是无效的,则会删除数据库。一般,网站临时关闭,会设置成503。如果是403呢,返回码是403呢,是基于隐私禁止访问。这种情况,如果是一个新的URL,百度呢,不会收录,如果是老的URL,百度也不会删除,仍在在隔一段时间继续访问几次,如果再无效,就删除了。
! o; Q) [& X& g; C5 s
; [; Z) ^4 j _4 D! b如果是301呢,301代表永久跳转。A网页301到B网页,百度会认为A网页不存在了,直接把一切权重都给了B网页,B网页作为A网页的继承者,集成了A网页的权重。百度就会通过301的指示,把权重传递过去,但是还是要说一下,百度301处理的会有点慢。那么,知道这些常用返回码的百度反应,我们就有了一些最基本的常识,比如说:网站改版了,就用301跳转。网站暂时关闭了,可别用404,用503吧。网页新页面基于隐私不能范文,返回403肯定是没错的。网页一切没有问题,就200啦,这样说下来,大家也许会返回码有了个初步的了解。我们通过分析日志的返回码。也可以和我们的期望对照一下,看看是不是返回了我们不愿意看到的返回码,同时,赶快做出调整。这是非常重要的。" e. G9 ]2 j: {' h7 z' C
* w6 w% Z2 P* w, ~
好的,返回码的讲述完成了,我们接着讲那13点。第1,2,3,4我们都讲了,关于爬虫纠偏,处理噪音页面,减少抓取重复性,简化URL参数,我们在前面都有过提及,接下来,我们说第五点。& D3 l; I. @1 T6 d2 `
3 W" m7 z& h9 E1 {
第五点,这是一个提高网页性能的话题。让爬虫多时间抓取有效页面是肯定的思路,如果能够减少爬虫的单页面抓取时间,那么毕竟多出来时间抓取其他页面。给大家一个工作,咱们可以对网页性能做个判断,火狐的插件。顺便说一下,做SEO的,火狐浏览器是必备的。
2 g4 Q& n7 b+ }% S9 T4 `
, ^1 X2 N( K9 a, j+ l" y+ R0 o. E! g/ K/ l0 g/ _
这是火狐浏览器中firebug的插件,大家回去装一下。+ l+ n6 i7 g7 p; @; ], u: H9 e5 x. j5 t
, `7 E) S- O- d0 J/ |2 \这个插件里,可以看到加载这个页面所有经过的元素,以及每个页面元素经历的时间。很清楚,剩下的,我们只需要一个一个解决就好了。 n! H9 i' M9 P2 s! Q- N) X
% T+ t" {" P1 A6 o4 m5 Y1 k0 |' p4 k" F
这个截图中,我们看到了有一个经历时间最长的元素,他影响了整个时间,这个时间是本地网络测试的。我们就看一下,究竟这个元素是什么,是从哪里来的,为什么影响时间。我们看了一下,哦。原来,是来源于苏宁的图片服务器,应该是一个广告位吧。很拉时间,怎么处理,那就自己去斟酌了,取和舍都可以,按照实际业务需求来。
/ L& L, v0 b7 T7 S4 K( E9 U 7 |: p& r9 B8 T c1 N
我们通过这个工作,经常会发现一些状况,常见的是,GA拖慢的速度,一些外部广告服务器拖慢了速度,JS失效,服务器相应过慢等等,都可以一一处理。好了。第一步,我们看完了。第二部,我们继续通过百度站长的优化建议来提升网站性能。这个是百度给的官方建议,主要的是代码方面的一些建议,根据这个建议,咱们可以进一步提升页面性能。看看诊断。163竟然可以做到100分,一会我看看,是不是百度有错误了。是的,网页性能,现在在说前端。9 G( G/ V% m1 Z% O; D
0 `9 A% U. ]1 ~" R+ U7 e) k第三点,看完百度建议后,我们还怎么提升网页性能呢?精简代码,这是必须的。剩下的,就去问问技术人员吧,还怎么提升,他们是清楚的。通常,提升网页性能是我必做的一部。通过这样的优化,可以让爬虫抓取更多的页面。这点,在日志中,是有反应的。
; A! F: E* o% B7 W - w3 M- i, F4 T9 t/ z. i+ E2 v2 y- p
@% O4 ~7 o9 @9 c5 t% A0 u
: T, v3 n% f \4 n' h+ Q, p
0 n' F- w2 C1 K; n& R/ u3 ]4 Z5 O$ b4 m. | }1 H. X! ~
+ e! S, G/ U4 l0 b) P3 N" P# r$ a4 _% D5 ?2 Y9 e
第六点,爬虫是疯狂的,他会“诚实”的遵守robots协议来抓取。所以,当我们有一些页面不希望他们抓取的时候,我们需要在robots中进行规范。规范robots一个重要的手段,就是robots.txt。这里,我要说,一般,什么样的页面的不希望爬虫抓到的?我给大家做个大概的总结。% j! U$ Q1 z& c6 R1 f" C
J3 B+ g4 A+ G' `) w6 |. z
我们继续看一下淘宝的robots.txt 把我们的回忆带到那个拉仇恨的年代,是的,我们就是通过这样的小文件,进行了一场大的杀戮。那么,什么样的内容我们需要禁止掉呢,我来一一打字出来。' Y8 Q$ j# ]9 U3 ]. p7 `
1、网站后台的一些文件
3 v. V' G, b7 ^2、一些带有参数又不得不展示的重复或者相似页面
6 r; {$ K$ I* p- b' t ]+ d4 s3、无排名价值的批量页面& F4 s6 u3 j" O5 P
4、基于隐私,不能公开的页面(比如,个人电话信息等页面)
' z: v) s$ n6 [- q# R) E9 f5、一些过期但是现在还在抓取的页面8 d* g% r& }6 C/ p2 L
6、一些重复页面和相似页面,第2点重点强调的是带有参数的,特别是广告跟踪参数的页面7 @3 n' a; r$ v Q
7、一些没有用的图片,识别码
. }9 ]6 S/ l) v8 F8、符合中国人的习惯,总要说一句,其他的你不想展示的页面
* N+ y* J/ ?: U: }( l
4 d& a9 u- g2 V- \6 ]) X6 |$ H% E+ r/ x q
那么这里,我要说很重要的两点:$ s1 l3 D8 M( X8 G# o9 I, V$ e
一、JS和CSS页面不能轻易屏蔽,会影响到网站的SEO表现。3 s$ [6 W% R" m) h1 j- j& o8 H
二、如果你建立了一个robots.txt。这个页面没有被爬虫顺利访问,也就是没有被爬虫下载下来浏览,你猜猜,爬虫会怎么办?爬虫不会继续跳过这个页面继续访问其他网站内容,而是会默默的转头回去,放弃抓取。所以,各位兄弟们,如果你没有什么需要屏蔽的,就不要画蛇添足的整个robotx.txt了。上面写个allow: / 就大大增加了爬虫的风险。
0 w4 C% }% x% \( ?2 a0 m6 d
+ ~/ E. @5 O& x5 D7 C有时候,我们看到一些爬虫的抓取行为有点奇怪,抓了一些我们不愿意让他们抓的页面,但是识别码上也看到是baidu的字样。碰到抓取异常的时候,我们就要多想想,这个爬虫,是真的百度爬虫,还是假的百度爬虫。怎么识别搜索引擎的爬虫呢,大家可以看下如何判断和识别百度蜘蛛的真假和如何识别谷歌蜘蛛的真假。" U7 S) b7 h# h% a3 w
8 V" p! ]3 v2 F6 B最后,上面说了那么都,现在,我做一个总结,关于日志对SEO的影响:
' y; b' q8 w a w1、无拆分,不真相。我们需要拆分各个特征码,来探寻更细节的爬虫行为- e5 e u( e( H5 o+ y
2、爬虫纠偏,是很重要的一个SEO工作,我们需要把爬虫的真正精力放在值得它消耗的地方
& O5 v: X, O. }4 @- u$ f3、细节的噪音行为,我们不能视而不见,比如出现了几个404,哪怕是1个,我们都要弄明白是怎么回事,不能马虎! {. `. n% Z; Q8 }+ ?6 ]! t, }
4、对于URL参数,网站性能,返回码含义及处理,robots.txt设置和响应时间,等等这些细节的SEO常识,我们要熟记于心,高悬于顶
# A$ W1 W2 V, n5、我们要让爬虫更多的抓取不重复的独立页面,而不是看着热闹,而其实抓不了什么有用的东西,这个我们需要注意
' U8 L' h0 R/ Y* l0 k1 u6、多看看爬虫的来源。看看是什么类型的爬虫来抓你的网页
/ t* [9 s/ D# S9 P7、一定要记住,更新活跃,层级扁平的页面会获得爬虫的青睐,但是这种青睐,也许不是你想要的。你想要的那些页面,你看看,是否是太久不更新了9 c5 g0 p5 e8 a! h
8、爬虫是有均衡性的,一大段时间内,爬虫就抓取一种类型的页面,不是个好现象
! l* `# W: C1 a9、网站日志分析在网站SEO技术修正期间,希望天天进行或者隔天进行,在网站常规SEO期间,也要一个星期观测一次,并且进行统计记录分析
7 i. {6 u5 U( w9 N2 e10、其他# X" p; g" P5 B D
0 c/ _7 Q+ b4 @' _: @
) {0 @. g, i% e- G5 t0 w |
|