当你的网站排名靠后,没有太多流量的时候,网站的速度问题其实影响不大;当你的网站每天有百万千万用户访问的时候,一些很小的问题都足以引起重视。越往高处,需要考虑的问题就会越多。在解决问题时,要学会站在上帝视角去思考问题。

公司关于 G 提出的让专业的团队来优化网站页面加载速度的建议,以节省我们在这件事上花费的时间,从而腾出更多时间从事更具战略意义的任务。下面我将详细讲述对于这项建议我是如何思考和决策的(是否采纳)。

首先,我并不会因为建议是谁提的,这个人可能在某些方面更具权威或者职位更高,而直接采纳(如果你潜意识有这样的想法或行动,背后的原因,可能是因为你害怕犯错,而不敢提出不同的意见,长期来说,这并不利于个人成长)。本着对事情负责的态度,我需要更系统地思考可行性后,才能做出更准确的判断。

下面是我听到这项建议后,提出的疑问(这些疑问有些是马上想到的,有些是在沟通思考过程想到的):


1. 聘请专业公司优化速度这项服务的报价如何?

显然,聘请就一定会涉及金钱的交易,所以我需要先了解这项服务的价格是否在我们能够接受的范围内。

A friend (and client) of mine engaged a company to optimise his page speed. His pages are now VERY fast, and he was very pleased with their service. He recommended them to me. I contacted them, and they quoted AUD $150 to do the job. May end up costing a little more, but still, that’s a great price. He said: “Sonny tells me it looks quite straight forward, so we will be ok running with a 5 hour sprint to begin with, and test again after that. We provide detailed before and afters of speed stats etc, and a statement of whether we believe more can or should be done. 5 hours comes to $150 AUD + GST.”

G said.

对于这项信息,我初步分析,优化速度这项服务的价格在我们的可接受范围内,不要问我怎么判断价格可接受的,日常工作常涉及花钱翻译、花钱买图片版权、买软件等等,所以这是直觉?,假如当我感觉价格过于昂贵时,我会向上级咨询和确认,咨询的同时我也会说出自己的想法和决定,以节省和上司沟通的时间,他只需要在我思考的基础上做最终的确认即可,而不是直接帮我思考。确认价格没有问题后,就可以进入下一步的思考了。


2. 他们通过优化一些什么东西来达到速度的提升?

这个问题很关键,这将很大程度让我决定他们的服务对我们来说是具有价值的。

“We are using a premium WordPress caching plugin to optimize the site. Upon checking the site will need to have the CSS and JS minified and combined, they also have two youtube videos embedded on the homepage which drags the scores down. Preferably we will need a staging site where we can do the pagespeed optimization without messing up the live site.”

这是 G 初步联系这家公司所获知的一些信息

从回复来看,说明这个问题非常有意义,他们所提到的优化方式,我曾经尝试过,但最终并没有实施下来。我之前曾尝试过利用 WordPress 的一些优化速度插件(尝试了几个插件,具体不记得了),将 css 和 js 进行压缩和合并,这种优化方式是通过减少服务器请求数量和文件加载的大小,以达到页面加载速度的提升。但是在压缩后,测试出来个别页面的功能出现了一些问题。这其实说明,通过插件自动化压缩处理,可能会造成一些不好的结果(假如我们后期又有新的文件添加,然后它再次自动压缩… 我们无法控制)。

如果我手动去修改和压缩这些文件,也就失去了使用插件压缩的意义,所以我并没有进一步的去研究这些插件。但因为当时已经了解到可以通过压缩和合并一些 css 和 js 以达到速度的提升,所以,我们后期在做页面的开优化时,我们都会刻意地将一些代码进行合并(不少的 js 我们都集成到了一个文件里面)以及格式的压缩(代码编辑器有针对不同的代码进行格式压缩的功能)。

到这里,其实让我想起我的上司曾经提到的一件事:“Google 这家公司,搜索首页有上亿的访问量,为了速度的提升,变态到连一个空格都去掉了”。这个例子的背后也反应出了一件事情:一家伟大的公司,是如何将细节处理做到极致的。这也反应出一种对待工作追求极致的态度(极致比完美更贴切)。

感受一下他们首页的源码是下图这样的(输入地址敲回车后,再查看源码,确认不要访问到本地的首页了):

没有多余的空格,没有换行,没有外部加载……

针对他们的回复,我又想到了另外的问题:

– 这些文件的压缩,是实时动态的吗?

如果压缩的形式是实时动态的,那么,我们很难保证,在这个动态的压缩过程中,页面的一些功能或者页面的显示,是否会出现一些问题,我们网站页面的更新频率是比较高的,很难保证在这些更新频繁的过程中,一切依然运行正常。如果不是实时动态的,那么,它们将文件缓存在了哪里?假如我们这些文件有更新,我们该如何更新这些缓存,以让用户看到最新的效果,假如我们更新缓存后,之前做过的压缩是否就失效了。

– 是否会影响到实际的文件内容格式?

我为什么会想到这个问题?因为前面提到,我们现在是尽可能地手动进行压缩。但是,保持良好的代码格式,在页面实现/开发过程中,非常有利于工作效率的提高,所以我们所使用的手动压缩是建立在良好代码格式这个基础之上的。如果使用的是插件自动压缩,我不能确定是否会受到影响,或者,直观地说,我觉得这并不可取。


3. 他们是否能提供优化过的站点的案例?

这个问题,将进一步帮助我去判断和验证他们的这项服务质量如何。因为这是 G 的朋友向他推荐的,他的朋友对这家公司优化后的结果非常满意。所以他直接将结果报告发给我了。

案例网站:www.baysidepsychotherapy.com.au

因为已经了解到这是他们优化过的站点,所以我对反馈回来的结果做了两件事情:

  • 查看了这个网站的代码结构以及加载的一些文件的内容结构。
    我留意到,站点所加载的一些文件,内容形式确实采用的是全面压缩的形式,保证了加载文件尽可能的小。
  • 直接使用 PageSpeed 进行了测试。
    我测试了这个站点的首页以及其他一些页面、桌面和移动端的速度得分,但是,我看到有些页面的得分其实并不理想。

于是我向 G 反应了这一情况,并进一步提出了疑问。

“他们对速度的优化指的是针对整个站点(所有页面)吗?同时包括移动端和桌面端的速度优化吗?”

经过确认,这项服务确实是会对整个站点、所有页面、包括移动和桌面设备进行测试优化的。对于一些页面出现了速度得分不理想的情况,反馈是这样的:

Adam said site has slowed down since we added online booking (IFrame from booking provider, Halaxy)

G said.

这背后反应出一个问题,这相当于优化是一次性的,也就意味着,假如我们后期依然有更新和一些功能上线,速度得分将有很大可能恢复低分(当然,可能会比之前稍好一些)。那么,届时,我们是需要继续花钱请专业团队再次进行优化吗?这似乎有悖我们一直秉承的系统性设计原则。那么,这将引出最后一个问题?。


4. 如果他们使用的优化方式是我们熟悉的/不熟悉的,由我们自己做是否更好?

就我个人观点而言,我希望经过这一次的速度优化之后,后期,我不希望再看到速度过慢的这种问题继续发生。鉴于问题 3 ,如果采纳建议,其实也就代表着,我们后面依然很大可能会继续面临速度过慢这种问题重复发生。

那么,这其实意味着,我们的团队,需要具备这种速度优化方面的知识和技能,并且,我们很可能从这次的优化中,提炼出某些东西(经验)将其做为后期功能或页面实现必经的一个工作流程。这都可以很大程度上,帮助我们去避免日后这种问题继续发生的可能。


综上所述,聘请专业团队去帮助我们优化网站速度这个建议,我觉得对我们的意义,并没有由我们亲自执行这项任务来得有价值。但是,这同时也为我们打开了新的思路!我们在优化网站速度的时候,可以了解一下,速度优化这方面的专家,他们是如何做的。