网站稍稍提速

这网站先前的访问速度很慢,原因其实一直很清楚:一是服务器在境外,一到晚上200~300ms的Ping外加10~50%丢包必然快不起来;二是WordPress默认主题使用了Google Web Fonts,而Google服务器出于众所周知的原因间歇性不能访问,所以浏览器可能要等到超时才会继续加载页面。

原因虽然清楚,但解决却一直拖着,主要是由于:

  1. 不想备案,所以不考虑搬回境内。
  2. 同等预算、国内访问速度快的,稳定性会打折扣;速度快、稳定性高的,价格又过高(大约US$20/月起步)。
  3. 虽然搞个国内的CDN不难,但由于决定使用全站HTTPS,所以一定要找个支持HTTPS的CDN(否则浏览器会提示混合内容,并阻止非HTTPS内容,页面完全不像样)。然后又一直以为搞个CDN需要像CloudFlare那样改NS、迁移证书。
  4. 不想折腾WordPress主题,所以一直用默认的。
  5. WP主题基本都是一堆函数写成的,看着就头疼,改动想想就更头疼。

终于决定着手解决这两个问题时,却发现远比想象中简单。


任务一:找个支持HTTPS的国内CDN,且设置不能太复杂

解决方案:七牛云存储CDN + WP Super Cache

Google了一下支持HTTPS的CDN,最后发现普通用户使用的只有七牛。
流程简单来说就是:注册 -> 新建公开空间 -> 设置镜像目标网站 -> 申请绑定 dn-xxxxx.qbox.me 的三级域名 -> WP Super Cache的CDN设置Off-site URL为该域名。
具体的图文教程见:https://tumutanzi.com/archives/12128
需要注意的是,这并不是全站CDN,首页依然从源网站获取,仅仅是加速所有静态文件,但相比先前已经快了很多。
另一个小问题是,WP Super Cache虽然能替换所有绝对路径,但一些相对路径无法加速,除非自己改成绝对路径(例如右边那个Flash时钟目前是加载速度最慢的)。

任务二:让WP默认主题不使用Google Web Font

解决方案:只要把两处on改成off即可(见下)

虽然网上搜到说要 deregister()dequeue(),但翻了下 functions.php 却发现早就有现成的开关。
打开 wp-content/themes/twentythirteen/functions.php,找到

$source_sans_pro = _x( 'on', 'Source Sans Pro font: on or off', 'twentythirteen' );

把第一个 on 改成 off;找到

$bitter = _x( 'off', 'Bitter font: on or off', 'twentythirteen' );

同样把 on 改成 off
最后在WP Super Cache的Contents标签里刷一下缓存,这样就不会再加载这两个网络字体了。
这样做的缺点是字体变成了不太协调的Georgia(标题)和Arial(正文)。

更新

新版WordPress在博客本身的代码中也嵌入了Google Web Font,位置是 wp-includes/script-loader.php 里面的以下这行:

if ( 'off' !== _x( 'on', 'Open Sans font: on or off' ) ) {

同样把 on 改成 off 即可。

全HTTPS的另一个问题是,https://secure.gravatar.com 也会间歇被墙。相关代码在 wp-includes/pluggable.php 里面,但不建议直接改。在 Settings – Discussion 里面禁用头像即可。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注