众所周知,网站速度对于SEO和用户体验来说至关重要。更快的网站访问速度能获得更高的搜索引擎排名,这就意味着更多的用户点击访问,也就代表了更高的用户转化率。简而言之,对于
- x8 g6 T2 T; b4 B" `- }5 K. V# V9 A4 k/ h+ e
SEOER来说,提高网站的访问速度和原创优质的网站内容一样重要。( P4 Q9 U' n( ~3 P$ w
* A( A6 I" m* \* |seoer可以通过很多网页分析工具来对自己的网站做个“诊断”,诊断结果往往会显示加载每个要素花费的时间,那么究竟哪些要素在影响着网站速度呢?
; J& L# n; w+ u" n3 y
$ [9 \6 U% L- Q& m) V! L/ I) }6 Z( }1.DNS! u6 ], L0 U) d
6 H, J( U: D. _0 k8 E3 {% R在浏览器和服务器对话之前,他必须先通过dns查找来把一个主机地址转化为ip地址。这一步骤,SEOER只能听之任之,不能做出什么优化改进,幸运的是,并不是所有的请求都需要有dns查找7 X3 m- i1 a) o0 h) [ a1 B0 Z
/ ?" @0 ^; |3 z2 ?) u" p/ `这一步骤。/ S1 u4 Y6 J4 C* T/ _5 {; \3 P+ T
+ v: k g- o$ O
2.首次链接
0 i& O# c, ^2 A8 ^3 T. e
0 T# `7 S6 a- G) Y4 n# ?在浏览器发送请求之前,他必须创建一个TCP连接。这个基本上只会在最初的几个访问请求中发生,否则,将是个运行问题。
" U& Q( Z9 c0 B% n, o" s; T9 Q# V' e0 m
3.SSL/TLS1 _+ P/ \ L% s; X6 E% j6 T
. J* Q- k; @" K. ^$ p) N
如果你的网页正在通过SSL/TLS安全加载一些资源,那么浏览器也需要时间来设立SSL/TLS连接。搜索引擎现在把http当作排名影响因子,SSL/TLS协议就越来越普遍了。) `% k% H- {/ L4 e
: E! b k) s% n+ A. m3 n# b
4.TTFB(首字节响应时间) G ^' I* z* s# R5 l( r
3 n h6 {5 R2 a% z" NTTFB指的是从请求从浏览器送达服务器,服务器处理,到服务器回复到浏览器的首字节,这个过程所耗费的时间。通过TTFB这个时间,可以看出网站服务器是不是动力不足,不能满足需要,) P" t4 W/ d! }9 r% v2 C; \7 R8 o
; L7 g% f8 G; _5 A0 Z
或者,需要使用一个CDN(contentdeliverynetwork内容分发网络)# ~* g6 C6 j. h* S$ m
4 y/ g5 H" U8 u% O8 _
5.下载速度
8 \$ w8 K" o, ~
; |& H g3 C" h+ @' Z, X: B7 u) b- i6 ]
这个下载速度指的是浏览器下载服务器的应答所耗费的时间。时间越长,说明资源越大。你可以通过优化你的内容多少,来控制这部分的速度。
& q* j( ]4 M1 U1 p) q6 k7 K, a, b8 l. F3 h* B8 }
6.首次加载页面时间
; r4 K$ @! o' P" U) d& V4 w* b! k( N/ m
在加载网页开始之前,用户看到的都是空白的页面。加载时间越长,用户的耐性就越小。
+ I7 L0 P# W" t3 ^- X7 Y: e大致了解了这些影响因素之后,我们将逐项来分析如何从中提高网站速度。 ^- G$ _: v/ s+ f3 Q4 C
8 {) X- E! f: f* C+ B) F+ g( f' K1.首次链接$ ^$ P2 o: Y, K6 G
0 k! P) Y: X! a' ?: n. {* O. W* ?
就算是访问特别的主机地址,也只有在最初的2到6个请求需要创建一个TCP连接,一旦连接确定,就可以重复使用这个连接。如果IC时间很长,代表你的连接并不持续连贯。一旦保证连接的持- U9 f o; f8 A
0 Z$ X1 Q/ ^0 j
续和连贯,这部分的时间可以缩短一半以上。' h" c7 Z. C- ?' R, H+ A
* a5 z K. J6 }7 l( A( i2.SSL/TLSNegotiation(SSL/TLS协议)
( L; r3 C- n) |6 f! C. m' s. T9 f& k# H- g
TLS优化和没优化的时间差距能达到8倍甚至更多。如何合理配置TLS,也是一项很重要的优化工作。
( E5 M/ i* E5 n' [+ N, x
3 l! \; K1 R: {: I3.TTFB(首字节响应时间)
2 s; ~) U2 s0 r } Q* L( H0 r. Q- d* `* ^* f" A# d5 q
基本上,浏览器都是在等待服务器发送的响应内容。因为往往花费80或者90毫秒在等待,只需要1毫秒就完成加载这些内容。最节约时间的方式就是转移你的静止内容,如图片。把他们转移到
/ t( ~; J' q0 Y! W# v/ \1 Y
, |% O4 B4 \9 M离用户更近的CDN。) M- T! K" }/ ~5 @0 h
. X8 x( o5 t3 f+ h4.下载速度4 c1 q* [ o9 `: ~' _
2 t, |% H- M6 O3 y9 d
下载时间越长,说明资源越大。加快速度的方法就是减少发送到服务器的数据数量。不妨试试http压缩,http缩小或者图片优化。值得一提的是,图片的大小往往影响着下载速度。& E" Z1 a7 P! d4 O! z4 t
, n6 `% @! [2 h/ f# K( d
5.减少发送的请求
5 V, |) b5 V7 ?4 J1 n2 N
5 X# S' b! I T. t# o一旦浏览器花时间在向服务器发送大量请求,那网站速度就会变得很慢。减少请求数量最好的方式就是重新检查一遍你的页面,看看你是不是真的需要他们。带着这三个问题来检查你的网页0 Z2 e8 j# x( ~ V# ?
: F4 J" Q. E4 P) M
:
7 l0 K* u6 r0 v& k# r" L0 y4 E) m, J
3 s0 i' P. z( F+ w4 ba是否有大量的CSS或者JS文件?. A/ m: _4 [4 P- e4 R/ y2 F) Y
如果你的站点正在加载大量独立的CSS或者JS文件,你可以试着在创建过程中用CMS插件把他们组合起来,从而达到减少请求数量提升整体页面速度的目的。9 O" ?/ p2 | L1 J! M1 ?. h7 h! ^, D6 l
8 }* s: W+ }1 r# Z% D
b是否有大量小于2kb的CSS或者JS小文件?
- }* U8 F( O8 k# s如果是的话,可以考虑通过内联,,or标签在你的html里。
7 ]' L# G& n2 j0 ]+ C, ^7 n2 f$ F. Y8 i* O5 _* e
c是否有大量的302跳转?
0 U8 U3 B7 D# A大量302跳转意味这有很多过时或者错误的链接。这些无意义的跳转会影响网站速度,去除或者纠正这些链接即可。4 x4 J- V& c- k) o1 E7 `
. r0 m8 m& a9 t: g) P [6.首次加载页面时间1 w8 v" B3 s6 Q, j! K
1 P" Q8 }$ z% {2 `
开始递交时间代表着用户最先看到的页面内容所花费的时间。如果这个时间长于1.5秒,就需要优化你的网页了。从以下三方面去考虑:/ X+ i/ N- `/ K5 s. \
, X$ a t" x- x/ q( C4 d3 ]0 ?. Ea是否有加载JSLibraries的请求?2 j+ j9 j! G) P
页面含有JS会阻拦网页递交,如果可能的话,将JS移到页面的底端。
( q% @9 J- N. _9 x4 j8 \1 U/ B1 j$ U* G% V. p# Q* o; T6 q( _
7 V+ R% ^; e8 l- ~9 x
b是否有很多分离CSS项目的请求?
2 g3 o$ k) h F. G2 J, |浏览器会等待所有的CSS项目都下载完成了才开始递交这个页面。试着组合或者内联这些CSS文件。
7 i$ [5 }4 {; p/ ]- c, c$ f v/ k' w: w8 O
c是否使用外部的字体?
$ u a5 h C/ r1 F% S; {( j) N% I当使用外部的字体时,浏览器在字体全部下载完成前不会给出任何显示。如果可能的话,尽量避免使用外部加载的字体,如果必须使用的话,请保证已经清除了加载字体时所有不必要的302跳; U& n2 }- R/ J1 {4 m& q1 G6 D
# c6 I1 a1 C- a
转,或者直接在本地服务器备份该字体,这是更优的解决方法。0 ^" N- t" ]9 q! M9 o
^8 J5 N4 O( \以上,可能需要和开发者、设计者进行沟通,无论如何,这样的改进是必须的,因为,没有人愿意总盯着空白的页面等待。
5 [! f2 E0 @4 Q* K
' X# y& x4 @6 X4 A# {7.其他因素
" E1 J$ G4 ?1 d; S9 M- F# g6 b2 ]8 M1 W T& x$ T' f( b2 n
a服务器够快吗?
{' X8 B+ z6 q5 U: ?2 Y% G! z首字节加载速度(TTFB)优化是搜索引擎排名的重要指标之一。如果TTFB超过500毫秒,你的服务器可能需要改进了。
, G3 @/ w! i I, V- H* Y
" ~' E& T0 U: y& ab需要CDN吗?
( a5 @' Z9 [7 y2 s( g/ N- M9 wCDN通过镜像你的网站的静态固定内容(图片、CSS、JS文件等等)来提升你的网站的响应速度。对于静态的内容来说,服务器不需要对相关请求做出任何真正意义上的处理。因此TTFB这个指
4 }* l6 _+ i, R- G# p
1 W e s* i$ k% ^7 C标就明确反映了从访问者到用户这一个回合所需要的时间。如果类似的回合请求数量过高,那说明你的内容离访问者还远着呢。1 h+ X k1 [' ]- I m. f9 [$ l
# Z1 v3 w* f/ K' S( g$ v2 X
决定是否需要需要CDN,首先你应该知道你的服务器在哪儿。其次,使用网页分析工具测试一下离服务器最远的地方速度如何。如果你的服务器在广州,试试从黑龙江访问,查看TTFB的值,如0 q* l A b3 [- D% \* @" K
! @8 l- v; c! g+ j! x
果超过150毫秒,你可以考虑使用CDN。
* v3 B; g' ?1 v1 U( A
5 L* Q3 i# a# v3 ]5 z) ?& E! F总结" O) u, Q L( C7 P' Q U1 B
对于提升网站速度来说,今天的讨论也许只是皮毛而已。但是这对于SEOER的日常优化工作来说,是个很好的开始。通过优化内容或者减少请求数,都可以达到提升网站速度的目的。
d/ U/ x2 ^6 a1 X/ ~笔趣阁www . ebiquge . com整理
) |: T3 \: Z2 n: @6 C$ q' }# I5 G B1 T" Y5 P5 R
( `/ F# m5 a! p+ h8 _- ^ |