如何让我的网站在1.29秒内加载
我们听说了一段时间,SEO可能会受到页面加载时间的影响——所以最近我们开始进行了密集的训练,让我们的网站以尽可能短的时间加载。我们的信念是,当前在GTMetrix中的加载速度和评分相对较好:85%的PageSpeed,95%的YSlow评分,加载时间为1.29秒,所以我们想分享我们是怎样做到这一点的。其中一些是Joomla!特定的,但一般概念适用于任何内容管理系统和任何网站。
开始之前:通过GTMetrix运行你的网站。注意你的当前等级,然后观察它的改善。好事是GTMetrix还跟踪你的历史,这样你就可以看到你的改进的图表了!
第0步:进行完整的备份 - 以下一些推荐可能会破坏你的网站。在做出任何更改之前,请频繁进行完整的备份。
第1步:为自己设定一个雄心勃勃的目标,并专注于它,直到你完成
这是绝对必要的。如果你没有目标,那么你不太可能继续努力。你必须为自己设定一个雄心勃勃的目标,并在开始优化之前努力实现它。对我们来说,我们的目标是将首页的加载时间减少到1.5秒以下,并且至少在Pagespeed和YSlow上获得85%。
我们的最终结果是1.29秒的加载时间,总页面大小为149KB,总请求数量为28。还不错:)
接下来是细节...
第2步:启用默认的Joomla缓存
这很简单,但效果非常显著。主要是因为它不是反复在数据库上运行相同的查询,而是缓存页面的副本,并从临时文件中提供服务。这减轻了服务器的负载,并提高了服务器的一般加载时间。要启用您的缓存,请执行以下操作
系统 > 全局配置 > 系统
开启渐进式缓存,并将缓存过期时间设置为60分钟,尤其是如果您的内容不太经常更改的话。
步骤3:启用系统 - 缓存插件
此插件缓存您网站上每个完整的页面,并可选地向浏览器推荐,这个页面应该被缓存一段时间。浏览器端缓存非常有意义,特别是您不需要反复下载某些图像和文件。浏览器将使用本地副本,因此需要传输的数据更少,从而您的页面加载速度更快。这对于像您的网站上的CSS和图像这样的内容尤其有效。这同样是Joomla的标准功能,可以通过以下方式启用
扩展 > 插件管理器,搜索缓存,并启用系统 - 缓存插件。您还应转到插件的“基本选项”,并将其设置为“是”。
步骤4:在服务器级别利用浏览器缓存
这与步骤3非常相似,并且严格与浏览器缓存相关。然而,这是在服务器级别完成的。基本上,您需要建议浏览器缓存某些文件类型一段时间。Google PageSpeed建议至少一个月。为此,您需要编辑以下内容的 .htaccess 文件。max age 的值是1个月(秒)。
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
您可能还想考虑的其他值
1 年
Header set Cache-Control "max-age=29030400, public"
1 周
Header set Cache-Control "max-age=604800, public"
您还可以选择缓存更少或更多的文件类型,但上述是最常见的静态文件,可以也应该被缓存。
步骤5:启用GZIP压缩
此步骤确保在发送之前压缩您生成的内容。逻辑非常简单,压缩和解压缩内容比传输未压缩内容要快得多。这也可以很容易地在Joomla 3中完成,如下所示
系统 > 全局配置 > 服务器
将GZIP压缩切换到“是”。
步骤6:安装JCH_Optimizer
JCH Optimizer 包含了PageSpeed推荐的大量内容,从而显著提高了您的PageSpeed等级。您可能遇到的问题可能是,这可能会破坏您网站上的一些功能。在启用选项时要小心。对于我们的网站,我们成功启用了几乎所有优化,只有少数例外 - 但对于您的网站,您可能需要一段时间来找到最佳设置。描述JCH Optimizer超出了本文的范围,但请相信我们,安装并启用此插件。您不会后悔的。
以下为插件的官方描述的一部分
"此插件将您的外部JavaScript和CSS文件合并为一个,以最小化昂贵的http请求。这些文件可以压缩和gzip以减少带宽并进一步优化下载时间。"
步骤7:压缩您网站的内容 - 给您的网站一个“减肥”
这非常重要。确保您的网站尽可能精简。这是您应该花最多时间的。我们仅在这一点上就花费了 数周 的时间。
注意:在此处要小心。在删除核心Joomla组件、模块和插件之前,请进行完整备份
一直做到你筋疲力尽为止。真的,要这么做。移除所有你不再使用的物品。即使是默认的,但你也不需要的东西,比如你永远不会再使用的默认模板,你可能不会使用的网页链接组件,如果你不使用它们,新闻源组件,以及你永远不会使用的所有插件。卸载它们,而不仅仅是禁用。痴迷于关注你不需要的东西,移除所有额外组件,并在可能的情况下合并模块和插件。例如,对于社交按钮,使用1个插件处理所有功能。
如果你有自定义HTML,尽可能将其放入单个模块中。删除额外的论坛类别,并尽可能减少菜单中的项目数量。删除旧用户和旧内容。根据需要合并和组合部分、类别、菜单等。你的目标应该是将事物减少到维持网站运行所必需的绝对最小值。为此痴迷几周。进行删除狂潮,切割和移除,禁用和卸载。专注于使你的网站尽可能精简,同时不破坏任何东西。
不幸的是,我们没有记录我们移除的东西。
步骤8:最小化请求总数和请求大小
移除多余的图片。托管从外部网站提供的任何图片的版本,并将链接到网站上的一份数据(这将减少你的客户端浏览器需要执行的DNS查找次数,因为这对你的网站页面速度有严重影响)。使用GTMetrix或Pingdom性能工具详细分析请求。
GTMetrix还有一个很酷的功能,可以优化所有图片的大小。保存已优化的版本,并在你的网站上使用这些优化后的版本。
步骤9:通过CDN提供内容
内容交付网络是缓存你的网站静态部分副本的服务器,可以比你的服务器更快地提供最优服务。这将给你的页面速度带来另一个巨大的提升。如果你负担不起CDN,像Cloudflare这样的网站提供免费计划,可以满足大多数小型网站的需求。
步骤10:遵循PageSpeed和YSlow上的每项建议
PageSpeed和YSlow都有许多详细的建议,例如指定默认字符集,并确保你已经指定了图片尺寸(指定你网站上每个图片的宽度和高度)。对于你网站上托管的所有内容,严格遵循这些建议。如果你不知道该怎么做,谷歌是你的朋友,阅读有关内容,理解并付诸实践在你的网站上。避免不良请求,即确保没有图片或文件错误链接。有些事情可能相当困难,除非你真的知道你在做什么(例如CSS精灵——我们从未能使其工作)。异步加载第三方脚本,如Facebook、Twitter、AdSense和Google Analytics。有许多相当容易的优化可以执行。
PS. 对于你无法控制的托管在外部的内容,可能会有一些建议你不能遵循。例如,AdSense、Facebook和其他脚本都可以进行一些优化。你对这些内容没有太多控制权。好消息是,你的CDN也可能对第三方内容进行优化。如果没有,不要过于担心它们。
如果你不断迭代优化,最终你的网站应该会变得非常快。
你使用上述建议取得了良好的效果吗?请在下面的评论中与我们分享你的经验!
在 Joomla 社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能与 Joomla 项目的官方立场不一致。
通过接受,您将访问 https://magazine.joomla.net.cn/ 外部第三方提供的服务
评论