WordPress 博客提速最有效的方法是花钱

更新       分类       49评论

自己搭建 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 和 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 ,无需任何配置即可轻松超越。

扫描二维码,分享本文到微信朋友圈

Derek Yang(戴睿可)来自湘西农村,毕业于北京大学,曾在广东中山电视台、北京盛唐传扬公关公司、迪思传媒集团工作,2012 年底移居美国首都华盛顿特区。博客主要是个人经历,因访客逐渐增多,很多实用的经验已迁移至新站「美国攻略」,以帮助更多刚来美国的人。最近我在试验一个帮助农村高年级学生规划人生的「眼界计划」,欢迎转发扩散。添加微信请参见这里

49 条评论
Comments

  1. https://blog.jing.do ,自己还是挺自信的。欢迎点评

    天堂 2017-11-15 06:29:03 # Reply
    1. 是很快。

      Derek Yang 2017-11-15 20:13:28 # Reply
      1. 之前也研究了很久,WP自身是全局PHP读取,如果不加缓存的话基本上都是服务器压力。如果这个相同的话,对比的就是前端的优化了,减少JS CSS 加上GZIP压缩什么的。之前发现有些out source的JS非常不稳定而且不能压缩,所以基本上都放本地了,然后加了CDN,JS和CSS都上去。这样基本上前端就非常快了,剩下的后端不加cache也没问题。

        天堂 2017-11-15 21:02:19 # Reply
  2. 已分享你的计划,感谢!

    立悟 2017-07-03 06:09:36 # Reply
    1. 谢谢你。

      Derek Yang 2017-07-03 17:03:29 # Reply
  3. 可是我还是感觉用 阿里云的国际版的挺不错,不过你的钱花的也值的。 美国攻略速度确实快

    筑楼 2017-05-25 12:08:28 # Reply
  4. 其实可以用一下国际版阿里云hk节点(8刀/月),对于vps建议使用lnmp一键安装包,特别推荐两个①https://lnmp.org/ ②https://oneinstack.com/ 之前在用前者,后来在用oneinstack一键安装包 nginx+php7+zendopcache 顺便提供一下测试站点 http://www.hudabai.com (国内) http://www.learnote.cn(国外)

    jian 2017-04-24 09:50:44 # Reply
    1. 没时间学习。 learnote.cn 在我这里访问速度很快。

      Derek Yang 2017-04-25 02:56:40 # Reply
  5. 首次加载速度不算很快 但好像打开过的会缓存 浏览体验还是很不错

    黑暗游侠 2017-02-28 00:22:19 # Reply
  6. 喜欢这种攻略型的review,谢谢

    老金@金博客 2017-02-20 12:02:19 # Reply
  7. hello,你可以把主题里面的百度统计代码去掉哦。

    Ray 2017-02-07 09:58:30 # Reply
    1. 收到,谢谢!

      Derek Yang 2017-02-07 14:50:31 # Reply
  8. 博主你好!请问你的美国攻略网站用的是什么Theme?

    Martin 2017-01-23 08:49:43 # Reply
    1. https://themebetter.com/theme/dux

      Derek Yang 2017-01-23 12:38:00 # Reply
  9. 挺好的,感谢博主的分享。

    凯哥自媒体 2017-01-04 03:31:06 # Reply
  10. 我的在GTMetrix测试的速度是1.2s,PageSpeed Score (100%) :A,YSlow Score(93%) :A。
    还在可接受之内,就这样吧,我用的是VPS。

    佐仔 2017-01-04 01:44:57 # Reply
    1. 你网站在我这里访问速度也很快。VPS 我没时间和精力折腾。

      这个主题本身似乎也挺快。我删除了部分 JS,原因是会导致 Addthis 无法正确加载;删除之后速度似乎略微慢了一些。

      Derek Yang 2017-01-04 02:51:46 # Reply
      1. 删除了部份JS反而会变慢?我是把所有的CSS、JS文件本地化。

        佐仔 2017-01-04 02:56:14 # Reply
        1. 有些 JS 可以提高(切换页面的)加载速度。我不懂 JS,但猜测主题自带预先加载页面的功能(类似 InstantClick),因此切换页面速度更快,但同时导致网页的 URL 工作不正常。

          具体到我的网站来说,从网页A点击打开页面B,addthis 分享的信息和 URL 还是停留在网页A,需要手动刷新才会切换到网页B。我不知道如何修复,因此删除了一个 JS,这导致预加载功能失效、页面打开速度略微降低。

          Derek Yang 2017-01-04 16:48:38 # Reply
  11. 从我访问的情况来看,日记比攻略那个站打开速度要快很多~,看来,钱真的没有白花的!

    胡德杰 2016-12-12 10:10:14 # Reply
  12. 博主说的是至理呀!确实,有那个时间折腾,不如多花点钱来得直接,而且,效果也更好!年轻时觉得钱重要,时间无所谓;现在情愿花点钱,省出点时间,就算是休息也是好的!

    胡德杰 2016-12-11 16:32:03 # Reply
  13. 钱钱钱

    春熙路 2016-11-30 05:22:36 # Reply
  14. 有些人也乐于折腾,喜欢通过自己的手动操作,创造出满意的结果。

    yearliny 2016-10-28 05:23:52 # Reply
  15. 一切优化都是基于IP少,带宽小,缺钱~

    淘福利博客 2016-09-25 02:38:43 # Reply
  16. 花钱能解决的问题都不是问题,哈哈

    木瓜园 2016-09-23 13:40:10 # Reply
  17. 除了花钱,技术也得花点才行……

    老杨 2016-07-23 09:36:53 # Reply
  18. 是的,那个Facebook的分享按钮虽然是显示出来了,但其实是加载失败的。

    北京时间的早上网络都比较通畅,早上打开美国攻略还是很快的,图片都很快显示完毕了。看来我之前说的加载慢在北京时间的晚上特别明显,可能是网络拥堵吧。

    现在没有发现图片加载失败的情况,以后再遇见可以截图给你。

    弈兰 2016-07-22 01:19:14 # Reply
    1. 好了,我这里 Gravatar 也缓存到本地了,哈哈。

      Facebook 分享按钮是没办法修改的,我又不能造一个能绕过 GFW 的 Facebook。好在我的读者大多在美国,何况就算对于中国的读者来说,按钮加载失败了也不影响阅读。

      Derek Yang 2016-07-22 03:13:54 # Reply
      1. 呃,好像快了很多,我把缓存删除后,网站打开速度感觉上与香港的服务器不相上下啊,看来网站的确优化的很好,之前比较慢应该主要是头像的原因了。

        弈兰 2016-07-22 03:29:41 # Reply
      2. 已经有加载失败的截图了,如何发给你?

        弈兰 2016-07-23 02:08:46 # Reply
        1. 给我邮件吧 dy@zaq.us 谢谢啦!

          Derek Yang 2016-07-24 01:38:52 # Reply
  19. 唯一的问题是不清楚这两个数据中心与中国大陆是不是直连,如果绕道的话就吃亏了。

    弈兰 2016-07-19 14:24:17 # Reply
  20. 我看到Flywheel有东京和新加坡数据中心,请问对中国来说哪一个更合适呢?或者说哪一个比较快?

    弈兰 2016-07-19 13:15:11 # Reply
    1. Flywheel 和 MaxCDN 合作;MaxCDN 在新加坡有数据中心;因此理论上来说使用东京的 Flywheel 数据中心 + MaxCDN 应该在亚太区有更好的表现。

      Derek Yang 2016-07-19 13:53:31 # Reply
      1. Flywheel现在已经不能申请东京的服务器了,而新加坡的是Digital Ocean的数据中心,中国大陆的Ping普遍400左右,完全不能用。对Flywheel另一个不满意的是技术支持不是24小时的,出了问题不好解决,刚好他们上班时东八区这里的人该睡觉了,沟通起来很麻烦,一点问题来来回回要几天。

        Flywheel最让我满意的一点是他们的服务态度,积极热情并且有耐心,申请退款也十分顺利。

        弈兰 2016-07-21 15:02:37 # Reply
        1. 你在中国?访问 http://cn.derekyang.ushttps://zaq.us 速度如何?

          Derek Yang 2016-07-21 15:22:30 # Reply
          1. 美国日记速度还算不错,一般1~2秒,可能是图片比较少,但是Facebook和Gravatar的链接都加载失败了,如果能移除加载失败的链接,速度会更快。

            美国攻略网页加载速度和美国日记差不多,但图片加载时间较长,通常是文字显示完毕了但图片长时间加载不出,很多时候图片直接加载失败。

            比较奇怪的是,在我的网站上Gravatar头像都是很快加载出来的,土木坛子的头像也可以加载出来,但你这里基本都加载失败了。

            弈兰 2016-07-21 15:46:50 #
          2. 土木坛子是把 Gravatar 缓存到了本地。我之前懒得弄,不过也可以改进一下。我这里没有 Facebook 的服务,你说的是分享按钮?那是 Addthis 的。

            美国攻略图片设置了延迟加载,但是加载失败比较奇怪,能否发给截屏给我看看?

            Derek Yang 2016-07-21 16:24:58 #
          3. 速度不快不慢 可以接受

            GitHua 2017-07-11 10:45:30 #
  21. 土豪

    JustYY.com 小赖子的英国生活和资讯。 2016-06-29 19:44:46 # Reply
    1. 到了我们这个年纪,时间和精力远远比一个月几十美元重要。不值得在虚拟空间上继续折腾了。VPS 我又玩不明白。

      我是因为以前没试过、不知道,要不然早就搬了。

      Derek Yang 2016-06-29 20:56:57 # Reply
  22. 从Jekyll跳出来啦?我还在享受着Github的服务呢…

    LanternD 2016-06-28 20:18:34 # Reply
    1. 我原来是建在本地的 Jekyll,生成之后上传到空间。页面加载速度确实快得没法说,但是维护太麻烦了,尤其是因为我经常修改以前的文章 + 使用多台电脑。

      好在如今用 Managed VPS 发现速度其实也挺快……

      Derek Yang 2016-06-29 01:33:14 # Reply
      1. 用 GitHub Pages、GitLab CI 還有 Travis CI 之類的服務也可以做到類似與動態網站的體驗(直接用網頁就能寫博客,提交後自動部署)... 而且不要錢,就是初期配置比較麻煩,之後就輕鬆了。

        KayMW 2017-04-22 08:44:06 # Reply
        1. 不会。。。

          Derek Yang 2017-04-22 21:59:34 # Reply
          1. 查一下 Travis CI 部署 Jekyll 等等靜態站程序相關的文章就行了,不是很難(官方也有文檔)
            也可以考慮下 Ghost 之類的程序,比 WP 輕量多了,而且 Node.js 的運行效率也比一般的 php 高(大概)

            KayMW 2017-04-22 23:05:45 #
  23. Good to know. Thanks.

    Yao 2016-06-25 20:51:15 # Reply
  24. 钱能解决一切问题

    路易大叔 2016-06-23 16:14:26 # Reply
    1. 「一切」有点夸张。99% 应该是有的。

      Derek Yang 2016-06-24 02:04:40 # Reply