如何让我的网站在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!的核心组件、模块和插件之前,请先进行完整备份。
一直做到你筋疲力尽。真的,这么做。移除所有你不再使用的物品。即使是默认的物品,如果你不需要,也要移除,例如你永远不会再次使用的默认模板,你可能不使用的网页链接组件,如果你不使用它们的话,新闻源组件,以及你永远不会使用的所有插件。卸载它们,而不仅仅是禁用它们。对不需要的物品过度关注,移除所有额外组件,并在可能的情况下组合模块和插件。例如,对于社交按钮,使用一个插件来处理所有内容。
如果你有自定义的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/之外的第三方提供的服务
评论