FavoriteLoading
0

怎样做才能使你的 WordPress 站点速度加快?

几个月前,我做了一个实验,看看在 2 小时内我可以为自己的网站提升多少速度。在安装了几个 WordPress 插件和修复了一些简单的错误后,我把网站的载入速度从 1.61 秒提升到了 583 毫秒。这可是足足 70.39% 的速度提升,且无需对网站的视觉做出任何更改。

根据 Akamai 在 2009 年的研究,47% 的访客希望页面在 2 秒内加载完,并且有 57% 的访客会在页面加载超过 3 秒后离开。除了这项研究,也有不少案例表明加载时间会影响销售。

在 2016 年,亚马逊报告指出,网页载入时间每提升 100 毫秒能带来 1% 的收入增长。仅仅几年后,Google 在一篇博客文章中宣布 考虑将网站速度加入到网站排名的算法中。

下面的 5 条快速提升的方法将极大的改善你的网站加载时间。

1. 找出正在拖慢你网站的插件
P3 是我最喜欢的诊断插件之一,因为它会显示给你其他插件对网页载入时间的影响。这使得找出正在拖慢你的网站的插件变得十分简单。

一个常见的罪魁祸首是社交分享插件,其中大部分会导致页面载入时间肿胀,而且可以轻松的使用嵌入式社交按钮代替添加到主题源代码中。一旦你知道了是哪个插件在拖慢你的网站,你可以根据情况决定保留他们、替换他们或者完全删除他们。

2. 压缩你的网站

当你在电脑上压缩文件为 ZIP 格式,文件的总大小会减少,这使得发送给别人会更加容易和快速。Gzip 有着完全一样的工作方式,只不过压缩的是你的网页文件。一旦安装完毕,Gzip 会自动压缩你的网站的文件为 ZIP 文件,节省带宽并加速页面载入时间。当一个用户访问你的网站,他们的浏览器会自动解压文件并显示其中的内容。这种从服务器传输内容到浏览器的方法更加有效和节省大量时间。

如何加速你的 WordPress 站点?
安装 Gzip 几乎没有负面影响,而提升的速度却可能是相当的显著。正如上面的截图所示,MusicLawContracts.com 在安装 Gzip 后从原来的 68 KB 减少为了仅 13KB。

虽然有些插件只需点一个按钮就能自动添加 Gzip 到你的网站,不过手动安装也是十分简单。打开你的 .htaccess 文件(在你的服务器根目录可以找到),并添加以下代码:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

一旦你添加了这段代码到 .htaccess 文件,通过运行 Check Gzip Compression 来测试 Gzip 是否开始工作。如果由于某种原因以上的代码不工作,尝试下 Patrick Sexton 在他的文章「启用 Gzip」中介绍的另一种方法。

3. 压缩图片

图片占用了绝大多数网站的大部分带宽。WP Smush.it 是另一个强大的插件,当你上传图片到媒体库时会自动压缩图片。所有的压缩都是「无损」的,这意味着你无须担心图片的质量会有任何变化。

WP Smush.it 有一个不错的地方在于它可以回溯工作。如果已经有上千张的图片保存在你的媒体库,你可以通过插件压缩所有图片来获得一个更易于管理的大小。

4. 利用浏览器缓存
浏览器缓存是一个棘手的问题。有不少强大的插件可以使用,但是如果设置错误,他们会导致弊大于利。

Expires headers (过期头信息) 告诉浏览器是否从服务器或浏览器缓存中请求一个特定文件。当然,这只在用户已经有一个版本的网页文件存储在缓存中时工作;所以,这项技术只会为那些已经访问过你的网站的人提升网站速度。

从 2 个方面加速网站。首先,他们减少了访客从你的服务器二次下载相同文件。其次,他们减少了产生的 HTTP 请求数。

要用插件做到这一点,我推荐使用 WP Super Cache。不过,强烈推荐你根据安装指南来确保正确的设置它。或者,你也可以通过添加以下代码到你的 .htaccess 文件来添加 Expires headers:

#
# associate .js with “text/javascript” type (if not present in mime.conf)
#
AddType text/javascript .js

#
# configure mod_expires
#
# URL: http://httpd.apache.org/docs/2.2/mod/mod_expires.html
#

ExpiresActive On
ExpiresDefault “access plus 1 seconds”
ExpiresByType image/x-icon “access plus 2692000 seconds”
ExpiresByType image/jpeg “access plus 2692000 seconds”
ExpiresByType image/png “access plus 2692000 seconds”
ExpiresByType image/gif “access plus 2692000 seconds”
ExpiresByType application/x-shockwave-flash “access plus 2692000 seconds”
ExpiresByType text/css “access plus 2692000 seconds”
ExpiresByType text/javascript “access plus 2692000 seconds”
ExpiresByType application/x-javascript “access plus 2692000 seconds”
ExpiresByType text/html “access plus 600 seconds”
ExpiresByType application/xhtml+xml “access plus 600 seconds”

#
# configure mod_headers
#
# URL: http://httpd.apache.org/docs/2.2/mod/mod_headers.html
#

Header set Cache-Control “max-age=2692000, public”

Header set Cache-Control “max-age=600, private, must-revalidate”

Header unset ETag
Header unset Last-Modified

5. 清理数据库
我是一个经常使用 WordPress 自动保存功能的粉丝,但缺点是你的数据库会很快被上千的文章修订版、引用通知 (trackbacks, pingbacks)、待审评论和回收站项目填满。

这个的解决方案是一个名为 WP-Optimize 的神奇插件,它会定期清理你的数据库垃圾,保持数据库高效并只保存那些需要存储的数据。当然,在你对数据库进行任何操作前,务必先备份。