自己搭建 WordPress 博客,最爱折腾的是主题,其次是优化和提速。
几年来,我从不知名的虚拟空间,到国内博客圈高度认可的 Media Temple,到 Managed WordPress Host;折腾过 W3 Total Cache、WP Super Cache 甚至收费的 WP Rocket 插件,到现在不用任何缓存插件;曾经使用过七牛、Cloudflare 和 MaxCDN 的内容分发。尝试和折腾下来,发现对于我这样的初级用户来说,优化和提速最有效的方法是花钱 — 我早就该升级和迁移了。
页面加载时间和 "Perceived Load Time"
2015年 10 月把实用类信息单独拿出来做了「美国攻略」,用 WordPress 搭建在 Media Temple 的 GRID 空间。从2016年 3 月份开始,随着访问量增加(最高的时候单日 IP 超过 10K),连续两个月收到 GPU 超限的警告。GRID 空间每月租金 $20 美元,可是 GPU 超限居然要支付四五十美元,比月租还贵,于是决定升级,并同时考虑改善访问速度,因为通过 Pingdom 和 GTMetrix 的分析可以看到除了美国之外的地区加载速度较慢。
据我目测,国内做 WordPress 优化最厉害的是「我爱水煮鱼」的 Dennis,我在家里、公司、手机 4 G 上打开他的博客,速度几乎和静态页面一样快。不过,如果用 Pingdom 和 GTmetrix 等第三方服务来测试,他的博客似乎表现很糟糕,用 Pingdom 测试加载时间经常要二三十秒,原因是:
- 这些服务测试的是「完整的加载时间」,包括 JS 文件等。「我爱水煮鱼」博客使用了一些中国的服务,这些 JS 文件从其他国家加载很慢。
- 然而对于真人用户来说,真正重要的是 "Perceived Load Time" 「可视化内容加载时间」。在后台运行的 JS 文件,只要正确设置,并不影响读者阅读。
Dennis 提供 WordPress 性能优化服务,分为两档:
- 基础优化收费 RMB2,000
- 深度优化收费 RMB5,000
我给 Dennis 发邮件咨询,之后考虑了一段时间,最终没有请他,原因:
- 这些优化必须针对 VPS 主机,像 Media Temple GRID 这样的虚拟空间因为权限不够,无法优化。可是对于我这样的初级用户来说,搭建 VPS 是很头痛的事情,我试用了几天 Linode,摸不清头绪。就算他可以帮忙做好初始配置和优化,以后的维护怎么办?我只是想写博客而已,没有时间和精力学习 VPS 的使用和管理。
- RMB5,000 是一笔不小的钱。我虽然愿意花、也花得起,但是上面已经说过了,后续维护怎么办?而且这笔钱用来升级主机的话已经可以大幅度提高网站速度 — 虽然不如「我爱水煮鱼」博客那么快,但是已经很快了。
Managed WordPress VPS 主机
在寻找和比较新主机的过程中接触和试用了 "Managed WordPress VPS",才发现自己这几年错过了多少信息 — 我早就该升级和迁移了!
简单点说,这是针对自建 WordPress 推出的专人托管 VPS 服务:
- 理论上来说拥有 VPS 权限、可以像 Dennis 那样做性能优化;
- 实际上性能优化由服务商提前配置好,用户并不需要(也不能)做什么。
或者可以说,相当于 Dennis 这样的 WordPress 专家把很多 VPS 提前做好性能优化,卖给我这样的用户,并提供后续的维护服务。虽然不如自己的 VPS 那么自由 — 对于我这样的初级用户来说自由没什么卵用,徒增烦恼 — 但是性能比虚拟空间快很多。
我的选择和实际表现
我做了很多比较,包括找了不少英文评测、在线咨询了几家、试用了两三家,最后选择如下:
效果如何,大家应该很容易判断出来。以下是我 2016 年 6 月 22 日通过 Pingdom 和 GTmetrix 测试两个网站首页「可视化内容加载时间」的结果:
首页可视化内容加载时间对比
网站 | 美国攻略 | 美国日记 |
---|---|---|
主机 | Flywheel | WP Engine |
Pingdom 澳大利亚 | 约 0.8 秒 | 约 1.5 秒 |
Pingdom 瑞典 | 约 0.8 秒 | 约 1.0 秒 |
Pingdom 美国达拉斯 | 约 0.6 秒 | 约 0.3 秒 |
GTmetrix | 约 0.7 秒 | 约 0.6 秒 |
这个结果我个人比较满意,毫无疑问完胜 Media Temple 的 GRID 虚拟空间服务。从真实使用体验来说,以前有几位在中国的读者说打开「美国攻略」很慢,迁移之后我特意问了他们,反映是「的确快了很多!」此外,
- Flywheel 和 WP Engine 都是在服务器端做缓存优化,所以「美国攻略」和「美国日记」都没有使用任何缓存插件。
- 「美国攻略」使用了 Flywheel 整合的 MaxCDN 服务,「美国日记」因为图片很少(首页只有一张),甚至连 CDN 都没有用。
2017年12月31日更新
新测试
最近因为启用新站,重新研究和比较了一下 Managed WordPress Hosting。初步搜索之后确定了3家:StudioPress Sites(SPS);Flywheel(FLW);WP Engine(WPE)。
这次采用更科学的方法做对比:
- 三个 GoDaddy .us 域名;同样 name server 设置。
- 同样的主题(Genesis + Sixteen Nine Pro)。
- 都没有 CDN。
- 不额外增加任何插件(StudioPress Sites 按要求使用了 W3 Total Cache Pro 缓存插件;Flywheel 和 WP Engine 如上所述不用缓存插件)。
- 几乎一样的纯文字测试内容(requests 数目相同;page size 接近)。
- 都采用美国的数据中心(SPS 不能选择数据中心;FLW 和 WPE 都有多个数据中心,分别选择的是"纽约"和"美国")。
- 最后,采用 Pingdom (PDM), GTmetrix (GTM) 和 WebPagetest (WPT) 从全世界多个地点测试。美国是重点,WPT 选择了10个州的12个测试点。
测试结果
结果发现,从美国访问,三家 host 的访问速度都很快:
美国平均打开时间(毫秒)
SPS | WPE | FLW | |
---|---|---|---|
PDM | 281 | 366 | 359 |
GTM | 432 | 397 | 418 |
WPT | 679 | 649 | 661 |
即使在欧洲和亚洲,访问速度也不是很慢:
欧洲平均打开时间(毫秒)
SPS | WPE | FLW | |
PDM | 657 | 805 | 729 |
GTM | 700 | 1,000 | 700 |
WPT | 626 | 893 | 635 |
亚洲平均打开时间(毫秒)
SPS | WPE | FLW | |
PDM | 1,200 | 1,020 | 1,520 |
GTM | 1,500 | 1,633 | 1,567 |
WPT | 1,641 | 1,469 | 1,497 |
如果你的读者主要在亚洲(如中国),那么 Flywheel 可选新加坡数据中心,我测试了一下在亚洲国家基本都是秒开,但是从美国访问会略慢一些。
我的结论
这次测试我写了一篇英文博客详尽介绍,点击这里查看全文(英文)。
三大 Managed WordPress Host 对比
FLW | WPE | SPS | |
---|---|---|---|
美国速度 | ★★★★★ | ★★★★★ | ★★★★★ |
欧洲速度* | ★★★★ | ★★★ | ★★★★ |
亚洲速度** | ★★ | ★★ | ★★ |
功能 | ★★★★ | ★★★★★ | ★★ |
易用程度 | ★★★★ | ★★★★ | ★★ |
安全性 | ★★★ | ★★★★★ | ★★★ |
客服质量 | ★★★★★ | ★★★★ | ★★ |
性价比 | ★★★★ | ★★ | ★★★★★ |
*/** 注:选择的是美国的数据中心。若选择欧洲或亚太的数据中心,欧洲和亚太打开速度会变快很多,但是美国访问会变慢。
- 我最推荐的是 Flywheel:速度快、性价比高、易用、客服及时并且很棒。
- 若新建博客访问量很小(月5K),Flywheel 的 Tiny plan 是不二之选。
- 若你的读者主要在中国,Flywheel 可选新加坡数据中心,在亚洲访问更快。
- 若非常担心安全性、且预算充足,WP Engine 是很好的选择。客服也很及时。WP Engine 提供两步验证(Two Factor Authentication),就算有人黑了你的用户名和密码,只要没有你的手机,还是无法登录你的 WP Engine 帐号。Flywheel 和 StudioPress Sites 均没有两步验证功能。
- 若博客访问量挺大、预算紧张;不介意使用 W3 Total Cache;不会经常针对主题、功能做各种改动(不需要使用 "staging" 功能);不介意邮件联系客服以及很慢的反馈速度;那么 StudioPress Sites 可以满足你的要求。
我的选择
- 我有两个站托管在 Flywheel 上:zaq.us 和 gonglue.us。
- 我也有两个站托管在 WP Engine 上: yanjie.us 和 cn.derekyang.us。
- 我受不了 StudioPress Sites。
你可以点击我的这几个网站试试。不管你在哪里,速度应该都不会很慢。
Flywheel 和 WP Engine 的价格和服务对比
Flywheel | WP Engine | ||||
---|---|---|---|---|---|
套餐 | Tiny | 个人 | 专业 | 个人 | 专业 |
价格 | $14 | $28 | $69 | $29 | $99 |
站点 | 1 | 1 | 1 | 1 | 10 |
访问 | 5K | 25K | 100K | 25K | 100K |
CDN | $10 | $10 | 免费 | $20 | 免费 |
硬盘 | 5G | 10G | 20G | 10G | 20G |
带宽 | 250G | 500G | 1TB | 无限 | 无限 |
SSL | 免费 | 免费 | 免费 | 免费 | 免费 |
*注:以上价格和访问人数均为每月(monthly)。
**注:若月访问量超过100K,WP Engine 还有企业(Enterprise)计划,Flywheel 有 customized 计划。Zaq.us 目前使用 Flywheel 的 customized enterprise 计划。
每月不到一百、甚至二三十美元,比租虚拟空间贵一些,但省事方便。
多少人在虚拟空间绞尽脑汁做缓存和提速,浪费时间和精力,效果未必理想。加一点钱升级到 Managed WordPress Host ,无需任何配置即可轻松超越。
2018年6月更新
WP Engine 于2018年6月27日宣布收购 StudioPress,官方新闻稿在这里。
- 我在美国买了枪 - 2020-03-21
- 国会议员 Katie Porter (D-CA) 逼美国疾控中心主任在镜头前承诺为所有可能感染 Covid-19 的人提供免费检测 - 2020-03-14
- 新冠疫情爆发后,为什么美国老百姓急着囤枪? - 2020-03-01
钱能解决一切问题
「一切」有点夸张。99% 应该是有的。
Good to know. Thanks.
从Jekyll跳出来啦?我还在享受着Github的服务呢…
我原来是建在本地的 Jekyll,生成之后上传到空间。页面加载速度确实快得没法说,但是维护太麻烦了,尤其是因为我经常修改以前的文章 + 使用多台电脑。
好在如今用 Managed VPS 发现速度其实也挺快……
用 GitHub Pages、GitLab CI 還有 Travis CI 之類的服務也可以做到類似與動態網站的體驗(直接用網頁就能寫博客,提交後自動部署)… 而且不要錢,就是初期配置比較麻煩,之後就輕鬆了。
不会。。。
查一下 Travis CI 部署 Jekyll 等等靜態站程序相關的文章就行了,不是很難(官方也有文檔)
也可以考慮下 Ghost 之類的程序,比 WP 輕量多了,而且 Node.js 的運行效率也比一般的 php 高(大概)
土豪
到了我们这个年纪,时间和精力远远比一个月几十美元重要。不值得在虚拟空间上继续折腾了。VPS 我又玩不明白。
我是因为以前没试过、不知道,要不然早就搬了。
我看到Flywheel有东京和新加坡数据中心,请问对中国来说哪一个更合适呢?或者说哪一个比较快?
Flywheel 和 MaxCDN 合作;MaxCDN 在新加坡有数据中心;因此理论上来说使用东京的 Flywheel 数据中心 + MaxCDN 应该在亚太区有更好的表现。
Flywheel现在已经不能申请东京的服务器了,而新加坡的是Digital Ocean的数据中心,中国大陆的Ping普遍400左右,完全不能用。对Flywheel另一个不满意的是技术支持不是24小时的,出了问题不好解决,刚好他们上班时东八区这里的人该睡觉了,沟通起来很麻烦,一点问题来来回回要几天。
Flywheel最让我满意的一点是他们的服务态度,积极热情并且有耐心,申请退款也十分顺利。
你在中国?访问 https://cn.derekyang.us 和 https://zaq.us 速度如何?
美国日记速度还算不错,一般1~2秒,可能是图片比较少,但是Facebook和Gravatar的链接都加载失败了,如果能移除加载失败的链接,速度会更快。
美国攻略网页加载速度和美国日记差不多,但图片加载时间较长,通常是文字显示完毕了但图片长时间加载不出,很多时候图片直接加载失败。
比较奇怪的是,在我的网站上Gravatar头像都是很快加载出来的,土木坛子的头像也可以加载出来,但你这里基本都加载失败了。
土木坛子是把 Gravatar 缓存到了本地。我之前懒得弄,不过也可以改进一下。我这里没有 Facebook 的服务,你说的是分享按钮?那是 Addthis 的。
美国攻略图片设置了延迟加载,但是加载失败比较奇怪,能否发给截屏给我看看?
速度不快不慢 可以接受
唯一的问题是不清楚这两个数据中心与中国大陆是不是直连,如果绕道的话就吃亏了。
是的,那个Facebook的分享按钮虽然是显示出来了,但其实是加载失败的。
北京时间的早上网络都比较通畅,早上打开美国攻略还是很快的,图片都很快显示完毕了。看来我之前说的加载慢在北京时间的晚上特别明显,可能是网络拥堵吧。
现在没有发现图片加载失败的情况,以后再遇见可以截图给你。
好了,我这里 Gravatar 也缓存到本地了,哈哈。
Facebook 分享按钮是没办法修改的,我又不能造一个能绕过 GFW 的 Facebook。好在我的读者大多在美国,何况就算对于中国的读者来说,按钮加载失败了也不影响阅读。
呃,好像快了很多,我把缓存删除后,网站打开速度感觉上与香港的服务器不相上下啊,看来网站的确优化的很好,之前比较慢应该主要是头像的原因了。
已经有加载失败的截图了,如何发给你?
给我邮件吧 dy@zaq.us 谢谢啦!
除了花钱,技术也得花点才行……
花钱能解决的问题都不是问题,哈哈
一切优化都是基于IP少,带宽小,缺钱~
有些人也乐于折腾,喜欢通过自己的手动操作,创造出满意的结果。
钱钱钱
博主说的是至理呀!确实,有那个时间折腾,不如多花点钱来得直接,而且,效果也更好!年轻时觉得钱重要,时间无所谓;现在情愿花点钱,省出点时间,就算是休息也是好的!
从我访问的情况来看,日记比攻略那个站打开速度要快很多~,看来,钱真的没有白花的!
我的在GTMetrix测试的速度是1.2s,PageSpeed Score (100%) :A,YSlow Score(93%) :A。
还在可接受之内,就这样吧,我用的是VPS。
你网站在我这里访问速度也很快。VPS 我没时间和精力折腾。
这个主题本身似乎也挺快。我删除了部分 JS,原因是会导致 Addthis 无法正确加载;删除之后速度似乎略微慢了一些。
删除了部份JS反而会变慢?我是把所有的CSS、JS文件本地化。
有些 JS 可以提高(切换页面的)加载速度。我不懂 JS,但猜测主题自带预先加载页面的功能(类似 InstantClick),因此切换页面速度更快,但同时导致网页的 URL 工作不正常。
具体到我的网站来说,从网页A点击打开页面B,addthis 分享的信息和 URL 还是停留在网页A,需要手动刷新才会切换到网页B。我不知道如何修复,因此删除了一个 JS,这导致预加载功能失效、页面打开速度略微降低。
挺好的,感谢博主的分享。
博主你好!请问你的美国攻略网站用的是什么Theme?
https://themebetter.com/theme/dux
hello,你可以把主题里面的百度统计代码去掉哦。
收到,谢谢!
喜欢这种攻略型的review,谢谢
首次加载速度不算很快 但好像打开过的会缓存 浏览体验还是很不错
其实可以用一下国际版阿里云hk节点(8刀/月),对于vps建议使用lnmp一键安装包,特别推荐两个①https://lnmp.org/ ②https://oneinstack.com/ 之前在用前者,后来在用oneinstack一键安装包 nginx+php7+zendopcache 顺便提供一下测试站点 http://www.hudabai.com (国内) http://www.learnote.cn(国外)
没时间学习。 learnote.cn 在我这里访问速度很快。
可是我还是感觉用 阿里云的国际版的挺不错,不过你的钱花的也值的。 美国攻略速度确实快
已分享你的计划,感谢!
谢谢你。
https://blog.jing.do ,自己还是挺自信的。欢迎点评
是很快。
之前也研究了很久,WP自身是全局PHP读取,如果不加缓存的话基本上都是服务器压力。如果这个相同的话,对比的就是前端的优化了,减少JS CSS 加上GZIP压缩什么的。之前发现有些out source的JS非常不稳定而且不能压缩,所以基本上都放本地了,然后加了CDN,JS和CSS都上去。这样基本上前端就非常快了,剩下的后端不加cache也没问题。
看了您的一系列文章,还给您写过信,我决定自己也开网站写博客,但这些个英文把我搞晕了,有没有简单入门级别的可以开个人网站的文章或公司推荐啊。我就是单纯想建一个个人网站,把自己写的文章分享出来,最好可以看访问量 能留言,不想用已经存在的博客公司写博客,因为想建立一个自己的网站,有自己的域名。谢谢
如果你的目标读者在美国(只要不在中国就行), wordpress.com 是最佳选择。用他们的平台和设置,用你自己的域名,绑定即可。
若你的目标读者在中国,wordpress.com 在中国被屏蔽,最好的方法是自己买空间、域名、独立建站。不过从你提供的信息来看,你可能不适合折腾这些东西。
自己买空间 域名 独立建站是您现在网站的构成吗?您这篇文章里讲的这些英文内容,也是在讲独立建站的么?有点思路混乱了现在 呵呵。我现在确实也没这时间学习这些内容,不过先搁浅一下,写文章是首要任务,以后会继续研究学习自己开网站的,麻烦再问下,这样以后再把已经有的wordpress转接过自己的网站容易操作么?
网上有很多 WordPress 建博客的教程: http://bit.ly/2PcGTli
很多都是推广文章,目的是介绍你用他们的空间或域名注册商,并不100%靠谱,但对于初学者来说是很好的参考。
你可以自己 Google 搜索:如何用 wordpress 建博客。
很多「免费教程」其实都是为了向你推广域名注册或空间主机,因此有些信息并不 100% 真实可靠。不过不管做什么事都难免会有这个过程,你自己慢慢琢磨吧。这方面我倒是有一些经验,可是我实在没有时间和精力教你。
嗯嗯 已经帮过我不少了,今天同时收到您的留言回复和邮件回复,感觉很有收获,我会自己再研究一下,主要有这个公司的建议,就有了很好的切入点啦。谢谢您
刚才上SPS网站,首页写着StudioPress Sites is now powered by WP Engine.
另外请问Derek,你的域名是哪家买的呢,Go daddy?谢谢。
是的,StudioPress 最近被 WP Engine 收购了,我记得就是上个月的事情。
#更新# 查了一下,是6月27日宣布收购的,官方新闻稿在这里。
我域名用的是 GoDaddy。
请问贵博客主题是哪一款?感觉非常简洁,比较喜欢
自用主题。