众所周知,网站速度对于SEO和用户体验来说至关重要。更快的网站访问速度能获得更高的搜索引擎排名,这就意味着更多的用户点击访问,也就代表了更高的用户转化率。简而言之,对于- l& F& s/ `; w6 d- [ j) U
2 |! ~1 f9 J+ F; V" kSEOER来说,提高网站的访问速度和原创优质的网站内容一样重要。+ L5 U R z) f! l; M0 @
( Q& z6 K- m- }/ l6 W. I/ Kseoer可以通过很多网页分析工具来对自己的网站做个“诊断”,诊断结果往往会显示加载每个要素花费的时间,那么究竟哪些要素在影响着网站速度呢?) o3 N M, P& N7 g6 Y; `! Q
, B) _! A/ d5 f! y; Y( r
1.DNS
9 w+ l+ e4 F* _4 D! p+ U+ |. Z/ b: |, C8 w: U0 k$ U
在浏览器和服务器对话之前,他必须先通过dns查找来把一个主机地址转化为ip地址。这一步骤,SEOER只能听之任之,不能做出什么优化改进,幸运的是,并不是所有的请求都需要有dns查找7 D* `7 V# r, U! j- P+ r
3 V$ s) A. |2 t! I' L
这一步骤。
( i5 q8 ?( u& j8 E: r6 Q) k8 W0 O. p9 Y# g" S9 q" q
2.首次链接
% F/ z# n# b4 P" `7 g( q, G& B2 H! J1 F4 ^
在浏览器发送请求之前,他必须创建一个TCP连接。这个基本上只会在最初的几个访问请求中发生,否则,将是个运行问题。
; n d+ V" B5 {0 w$ p+ s, o6 I: |6 k6 {" @# g
3.SSL/TLS
! e: k. C( k. x* Q2 J. g+ _2 e) `$ Z; K5 z6 ]. A# @ P& P3 q9 d/ O
如果你的网页正在通过SSL/TLS安全加载一些资源,那么浏览器也需要时间来设立SSL/TLS连接。搜索引擎现在把http当作排名影响因子,SSL/TLS协议就越来越普遍了。
: F' ]% y" E( w: ] T+ M% }
7 B$ S! Y- H7 m% V, f0 ]4.TTFB(首字节响应时间)- W. n& y1 V- Q. I( L( ^ O: s
! @' G Z: x7 } Z- j1 cTTFB指的是从请求从浏览器送达服务器,服务器处理,到服务器回复到浏览器的首字节,这个过程所耗费的时间。通过TTFB这个时间,可以看出网站服务器是不是动力不足,不能满足需要,
# j2 `( j( n _3 W; \: ^6 `7 Q* |6 ^; m+ ^% |$ S
或者,需要使用一个CDN(contentdeliverynetwork内容分发网络) q1 \5 D4 M) i9 ?9 |
9 a z. _! y- O0 h: x5.下载速度
0 \) ?5 V' L; k: F4 p: G. C: P7 O: }& ]: w; {5 v, W
0 o( G, V( X2 s" `7 a这个下载速度指的是浏览器下载服务器的应答所耗费的时间。时间越长,说明资源越大。你可以通过优化你的内容多少,来控制这部分的速度。7 M6 w3 \9 a. e* w
& w h: q, e* r! f+ M6.首次加载页面时间1 r% r$ p. z4 g) q* i, a+ V
) x# g. l2 s; w. V
在加载网页开始之前,用户看到的都是空白的页面。加载时间越长,用户的耐性就越小。
* z# o3 \) H0 d/ [大致了解了这些影响因素之后,我们将逐项来分析如何从中提高网站速度。
. N- d6 |' S6 R' l
X: t: n, p! L- M, z% d2 i1.首次链接% M J9 f% g+ b0 }# M
% c# X7 O5 c0 x5 I2 T* M就算是访问特别的主机地址,也只有在最初的2到6个请求需要创建一个TCP连接,一旦连接确定,就可以重复使用这个连接。如果IC时间很长,代表你的连接并不持续连贯。一旦保证连接的持
3 l% _/ T7 ^( v# M3 }
0 b7 H }8 `3 ]; G# O2 ^& B* E续和连贯,这部分的时间可以缩短一半以上。: b& M( F1 d+ R: @+ ~ u# b0 A
k6 ~7 y2 o1 y: b/ M% e0 `
2.SSL/TLSNegotiation(SSL/TLS协议)1 t* s$ G, y& P1 q w8 s3 N
- a1 E9 y* g) y
TLS优化和没优化的时间差距能达到8倍甚至更多。如何合理配置TLS,也是一项很重要的优化工作。+ s" m [& o- @/ L% O
, v! E- t* C: I1 |' y! q
3.TTFB(首字节响应时间)
% R) q* f9 P- [$ R( a
. U, j) h; x/ i9 f基本上,浏览器都是在等待服务器发送的响应内容。因为往往花费80或者90毫秒在等待,只需要1毫秒就完成加载这些内容。最节约时间的方式就是转移你的静止内容,如图片。把他们转移到
0 i) _" J% X( d5 P- N5 R _& u$ d- ?- v2 }
离用户更近的CDN。3 Q/ _, s& |! P- ?7 S, Z
' V4 a: y1 [$ @6 ^' L
4.下载速度2 ?$ B0 L8 `# C& d! X
% z# H' E- n8 P2 T: e7 P2 ]5 L下载时间越长,说明资源越大。加快速度的方法就是减少发送到服务器的数据数量。不妨试试http压缩,http缩小或者图片优化。值得一提的是,图片的大小往往影响着下载速度。* r1 k2 V! S' B: T$ p1 q
4 d# t3 Y7 U- d5.减少发送的请求4 q( f" E: ]6 b5 J4 K
% Q' k b4 a$ C% j ^8 I* O一旦浏览器花时间在向服务器发送大量请求,那网站速度就会变得很慢。减少请求数量最好的方式就是重新检查一遍你的页面,看看你是不是真的需要他们。带着这三个问题来检查你的网页4 d& Z6 {3 X+ ~
$ o+ V( M6 `# R$ { u6 s& a( J
:8 P2 \+ C) L- [' M2 C* M9 k/ \$ j
5 L; l& a1 s& \) s3 Y k2 P
a是否有大量的CSS或者JS文件?
0 I+ E% @, q+ L: h3 j2 V如果你的站点正在加载大量独立的CSS或者JS文件,你可以试着在创建过程中用CMS插件把他们组合起来,从而达到减少请求数量提升整体页面速度的目的。( D8 e2 K, [1 H7 w+ s1 Y
: M G6 t5 ^2 O5 Y5 _b是否有大量小于2kb的CSS或者JS小文件?0 b- I0 D1 Y& r5 R6 e- o2 Y
如果是的话,可以考虑通过内联,,or标签在你的html里。' y& ~0 x0 D4 U: p7 g
' `* J* P! @9 Q8 p
c是否有大量的302跳转?) i9 l8 f/ k% w2 p* T6 G' u
大量302跳转意味这有很多过时或者错误的链接。这些无意义的跳转会影响网站速度,去除或者纠正这些链接即可。
, @9 u$ H s4 Z/ G7 J8 g9 }' h. W1 g( k1 F
6.首次加载页面时间8 ~: D9 @# O4 E5 T9 N ?9 p
3 W' Q3 A$ j5 O5 D开始递交时间代表着用户最先看到的页面内容所花费的时间。如果这个时间长于1.5秒,就需要优化你的网页了。从以下三方面去考虑:
; ^$ n. P7 {7 ]3 R: W! W/ C6 |1 d# Y
a是否有加载JSLibraries的请求?
U9 O5 j2 O- o+ B- T页面含有JS会阻拦网页递交,如果可能的话,将JS移到页面的底端。% j" }; I! `5 m" g; f' ?! y3 z: P
7 m# F; t/ z5 o. `- o
! l& q+ p( ^( z: I4 k. e& Yb是否有很多分离CSS项目的请求?
u! y% ?) o; p$ Y$ j K9 q浏览器会等待所有的CSS项目都下载完成了才开始递交这个页面。试着组合或者内联这些CSS文件。- X* v2 e0 E! u
) ]3 |% a; ]& _5 k2 c4 T
c是否使用外部的字体?
# f4 `! `$ U1 v$ Y( a! _6 K4 j4 W当使用外部的字体时,浏览器在字体全部下载完成前不会给出任何显示。如果可能的话,尽量避免使用外部加载的字体,如果必须使用的话,请保证已经清除了加载字体时所有不必要的302跳
/ Q; [9 J8 ` C4 v( i( V4 [7 |( G* O/ n- Y0 c4 E% d
转,或者直接在本地服务器备份该字体,这是更优的解决方法。
9 W9 j' i2 h& V, x! v! G7 Y2 b. Y: j
$ @% ~" T( L f以上,可能需要和开发者、设计者进行沟通,无论如何,这样的改进是必须的,因为,没有人愿意总盯着空白的页面等待。
. Z8 w' J) d" I0 ?( i
- E4 b8 ], i! m0 ?7.其他因素
6 ~- f6 p+ A6 C' |
3 J) `4 m9 v9 m" o! r2 [a服务器够快吗?
( D) X; S) Y% K, t ]' r首字节加载速度(TTFB)优化是搜索引擎排名的重要指标之一。如果TTFB超过500毫秒,你的服务器可能需要改进了。
3 e: `& h/ l F* p$ e5 a! i! u- a6 B ]( F6 ?5 W8 j6 j1 @
b需要CDN吗?
$ {' S/ ~* n" X+ MCDN通过镜像你的网站的静态固定内容(图片、CSS、JS文件等等)来提升你的网站的响应速度。对于静态的内容来说,服务器不需要对相关请求做出任何真正意义上的处理。因此TTFB这个指
" e1 Q* z. x- q: H: w2 [9 V1 x
! {2 ?/ [4 e7 G$ H& L5 q标就明确反映了从访问者到用户这一个回合所需要的时间。如果类似的回合请求数量过高,那说明你的内容离访问者还远着呢。7 I/ [3 u% }& f& {3 i
! a |6 ?6 z: N( J! \4 p+ m决定是否需要需要CDN,首先你应该知道你的服务器在哪儿。其次,使用网页分析工具测试一下离服务器最远的地方速度如何。如果你的服务器在广州,试试从黑龙江访问,查看TTFB的值,如* G7 e& s) M1 P- l; i
; M" o: V7 C- y
果超过150毫秒,你可以考虑使用CDN。1 V# I" c* \ A ?' z4 N7 u
' Y3 ?7 L" _# s7 B% [: i: O
总结
6 m _, s( ]0 V7 j" ~, A s5 Z对于提升网站速度来说,今天的讨论也许只是皮毛而已。但是这对于SEOER的日常优化工作来说,是个很好的开始。通过优化内容或者减少请求数,都可以达到提升网站速度的目的。9 m7 k6 v T/ B% y+ |+ |
笔趣阁www . ebiquge . com整理' f6 |+ @" s2 R6 a6 f
{5 `# C5 o L- {6 w
; ^2 S4 u* g1 f. t& O
|