最后更新时间为 2018年6月7日
WordPress其实本身运行起来并不臃肿,很多人觉得运行起来臃肿、慢的原因很大一定程度上是因为主题或者服务器的配置问题,不过更多的就是通过一些基本措施来让站点相对的更加流畅。
这些基本措施对于老手来说都是司空见惯的,但是对于新手来说可能你还不知道,那么这里我就简单的介绍一下几个步骤:
- 启用动态缓存
- 启用GZIP压缩
- 使用CDN
- 优化你的图片
- 缩小你的JavaScript和CSS文件
- 利用浏览器缓存
- 优化你的WordPress数据库
启用动态缓存
WordPress本身是基于PHP开发的,所以你会看到很多文章都是标题为《WordPress伪静态教程》等等,为什么是伪静态,因为其实质是动态的,只不过通过一些方法将能静态化的东西静态化了,然后文章地址加上一个.html后缀,让人感觉是静态的页面,通过配合一个缓存插件,例如WP-Super-Cache来完成部分静态化。同样的,想要开启动态缓存的话,可以尝试使用WordPress官方推荐的插件:WP-Super-Cache来进行动态化缓存:
启用启用GZIP压缩
其实使用了上面的插件之后,基本这个功能也就是实现了,只需要勾选一个选项就可以了,如下图:
但是当你的文章到达一定的数量之后,一般是以万为单位的时候,使用这个插件或许会适得其反,这个插件的目的是降低服务器的负担,但是当文章数量多了,访问人群多了,就会频繁是访问某些文件或者压缩某些文件,虽然可以通过设置有效时间来简单的解决这个问题,但是更多的可以考虑提高服务器配置以及使用redis类的内存缓存来实现访问加速等等,当然这些都是后话了,对于新手的你,这个插件基本可以陪伴你2-3年吧。
使用CDN
CDN其实很多人都听过,但是能够好好试用或者有效使用的人并不多。我这边尝试过很多类型的CDN,反正不是这个有问题就是那个有问题,真正完美的可能就是阿里云的收费CDN了,其次比较喜欢蓝汛的CDN,缓存效果确实是很不错的。那么CDN到底是什么呢?你可以这么理解,就是你要去喝奶茶或者吃过早,你选择的一个店面如果是连锁店的话,那么这个店面可能就是CDN的一个节点,你会选择就近的早餐店进行过早,而不是跑到很远的早餐店吃。CDN也是同理,厂商在全国各地都布有他们自己的服务器,用来缓存就近用户访问你站点时对应你设置的文件,可能这个比较复杂,再简单一点就是,你在武汉,如果武汉人访问了你的站点,那么厂商在武汉附近的CDN服务器就会将你站点的相关数据缓存到他们的服务器去,这样的话,如果又有武汉人访问你的站点,就会直接从该厂商的CDN节点服务器调取数据,而不是你的站点调取,那么好处就是调取文件的速度比你站点的快而有效,缺点就是如果有人通过该节点不断访问你站点并不存在的文件,那么CDN服务器就会对你的站点不断进行请求,最坏的情况就是导致站点访问异常慢乃至崩溃。
CDN很复杂,想要好好利用还有很多需要了解,这里就不再多说了。目前国内比较有名的CDN免费提供商就是七牛、又拍云、百度云、360等等,大家可以自行一个个去尝试一下。
优化你的图片
图片的优化无非就是减小体积,大图进行切割等等操作,更多的就是上面的,使用CDN缓存,提高加载速度了,这里没有上面更多的说明了。
缩小你的JavaScript和CSS文件
关于JS和CSS方面,我一直觉得就是能够合并的就合并,CSS部分能够压缩精简的就精简,没有用的属性都删除。那么如果你是小白,不懂的话,这里就推荐一个插件,名为:Autoptimize,直接在插件库中搜索并安装即可么,如果你不知道如何设置,那么默认设置即可:
利用浏览器缓存
同样的,浏览器缓存方面依然可以通过最开始介绍的WP-Super-Cache来完成,所以很多新手喜欢使用这个插件是有原因的,确实可以一个插件解决很多问题,但是如果你不喜欢通过插件来解决问题,那么下面的代码直接添加在你站点根目录的.htaccess文件最末尾即可:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
## LEVERAGE BROWSER CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg “access 1 year”
ExpiresByType image/jpeg “access 1 year”
ExpiresByType image/gif “access 1 year”
ExpiresByType image/png “access 1 year”
ExpiresByType text/css “access 1 month”
ExpiresByType application/pdf “access 1 month”
ExpiresByType application/x–javascript “access 1 month”
ExpiresByType application/javascript “access 1 month”
ExpiresByType application/x–shockwave–flash “access 1 month”
ExpiresByType image/x–icon “access 1 year”
ExpiresDefault “access 2 days”
</IfModule>
## LEVERAGE BROWSER CACHING ##
|
更多的可以自行百度一下了解,毕竟这方面的知识太广泛了,我个人发面也是略懂皮毛。
优化你的WordPress数据库
数据库方面可能是目前很多人忽略的一点,并不是通过插件简单的清理一下就可以了,那些清理仅仅是简单的清理多余的文章,更多的你看不到的只能通过手动查询筛选后删除,不过如果你先要从根本上面清理数据库的话,没有相关知识我个人不建议直接进行操作。对于数据库方面,我个人觉得遵从一下几点即可:
- 能用代码解决的问题尽量不用插件
- 不写入数据的插件安装起来优于代码安装
- 自定义栏目尽量不要创建太多
- 功能方面能不需要的尽量不需要