标签: 网站优化

  • 如何减少WordPress网站的HTTP请求数量

    如何减少WordPress网站的HTTP请求数量

    您网站的HTTP请求越多,加载速度就越慢。因此,如果您可以减少HTTP请求的数量并优化它们的加载方式,您就可以提高网站的性能

    在这篇文章中,我们将带您了解有关如何减少WordPress上的HTTP请求的所有信息。

    我们将从HTTP请求的基本介绍、它们的重要性以及如何分析WordPress站点的请求开始。

    然后,我们将分享一些技巧和策略,您可以实施这些技巧和策略来减少站点的请求。除了帮助您处理GTmetrix中的“减少HTTP请求”消息外,这些策略还有助于处理Google PageSpeed Insights中的“避免链接关键请求”消息。

    1. 什么是HTTP请求?
    2. 为什么减少HTTP请求很重要?
    3. 如何查看和分析您网站的HTTP请求
    4. 如何在WordPress中优化和减少HTTP请求
    5. 减少HTTP请求的最佳WordPress插件

    什么是HTTP请求?

    当你建立一个网站时,它有很多不同的部分。您有在页面上使用的不同图像文件、控制内容外观的CSS样式表、添加所有酷功能的JavaScript文件,等等。

    当有人访问您的网站时,他们的浏览器需要一种方法来从您的服务器下载该页面所需的所有资源。为此,它为每个单独的资源向服务器发出HTTP请求

    例如,它可能会说,“嘿服务器,我需要那个coolimage.png文件”和“嘿服务器,我还需要该联系表单插件的CSS样式表”。然后服务器用相关文件响应这些请求。

    一旦网络浏览器获得这些文件,它就可以为您的访问者组装网页。当然,它比那要复杂一些,但这是基本思想。

    HTTP是超文本传输​​协议的缩写,是这些计算机(访问者的浏览器和您的网络服务器)进行通信的方式。

    需要理解的一件重要事情是每个单独的元素都是一个单独的HTTP请求。例如,如果网页上有五个图像文件,浏览器需要发出五个单独的HTTP请求,每个图像一个。

    同样,如果您使用四个WordPress插件并且每个插件都添加了自己的CSS样式表,那么访问者的浏览器将需要发出四个单独的HTTP请求,每个插件的样式表一个。

    为什么减少HTTP请求很重要?

    减少HTTP请求的重要性

    一般来说,您网站的HTTP请求越多,加载速度就越慢。因此,如果您想让您的网站加载速度更快,您需要优化并减少您的网站所需的HTTP请求数量。

    虽然这有点过于简单化,但基本思想是,Web浏览器只会在完成所有HTTP请求下载后才向您的访问者显示该网站(尽管有一些策略告诉浏览器可以等待某些文件)。

    因此,如果一个网站在显示页面之前必须发出70个HTTP请求,这将比它必须发出40个HTTP请求需要更长的时间。

    此外,某些HTTP请求会“阻塞”其他HTTP请求,这意味着浏览器在下载完之前的HTTP请求之前无法开始下载某些HTTP请求。

    底线是:当您发出更少的HTTP请求时,您的网站加载速度会更快。

    如何查看和分析您网站的HTTP请求

    上面,您了解到在所有条件相同的情况下,减少HTTP请求的数量将加快您的网站速度。然而,所有HTTP请求并不总是“相等”的。一些HTTP请求比其他请求大。有些比其他的慢。

    例如,请求一个巨大的3MB图像文件将比请求一个微小的20KB图像花费更长的时间。

    如果您想对您的网站进行最大的改进,首先关注大的、加载缓慢的HTTP请求将获得最大的投资回报。

    要分析您站点的HTTP请求,您可以使用称为Waterfall analysis的东西。

    大多数速度测试工具都提供了这一点,但GTMetrixPingdom的接口非常方便。您还可以使用浏览器的开发人员工具。但是,我们将使用GTmetrix作为本次测试的示范。

    插入URL后,您将在顶部看到一个基本摘要框。这会显示您的站点有多少HTTP请求,但它不会分解单个请求:

    GTMetrix检测网站HTTP请求数量

    要分析您的个人请求,请转到下面的Waterfall选项卡。

    在这里,您将看到站点上每个单独的HTTP请求的列表以及有关该HTTP请求下载所需时间的信息:

    GTMetrix测速工具瀑布图

    您可以看到并非所有HTTP请求都是相同的。例如,839.3 KB的图像需要1.12秒,而57.6 KB的图像仅需要87.5毫秒:

    不同体积相同文件HTTP请求时长

    您还可以通过在服务器上搜索该插件文件夹的名称来查找来自您正在使用的不同WordPress插件的HTTP请求。例如,您可以看到WooCommerce添加了七个自己的HTTP请求:

    WooCommerce插件HTTP请求数量

    通过这种方式,您可以查看您使用的任何插件是否添加了大量HTTP请求(尤其是加载缓慢的请求)。

    如何在WordPress中优化和减少HTTP请求

    概括地说,有两种广泛的策略可以减少HTTP请求:

    • 删除HTTP请求。如果可能,您应该完全删除所有不必要的HTTP请求。例如,如果您有一个插件没有为您的网站增加任何价值,并且正在加载自己的CSS和JavaScript,只需完全删除该插件即可摆脱其所有HTTP请求。
    • 合并HTTP请求。如果您有绝对必须加载的HTTP请求,您可以将它们合并到一个文件中。例如,代替六个小的CSS文件,您可以将它们组合成一个更大的CSS文件,它仍然会加载得更快,因为浏览器需要发出更少的请求(HTTP/2并不总是如此,我们将下面讨论)。

    我们将从专注于删除HTTP请求的策略开始,然后我们将讨论如何组合剩余的HTTP请求。基本思想是去除你能去除的东西,然后组合剩下的东西。

    1. 删除不必要的WordPress插件

    首先,您需要使用瀑布分析从插件中提取所有请求。您可以通过搜索“插件”来实现这一点,这将提取来自wp-content/plugins文件夹的每个HTTP请求。

    如果您将鼠标悬停在文件名上,您可以看到它来自哪个插件。例如,在这里您可以看到来自您可能正在使用的滑块插件的请求。

    进一步挖掘会发现Slider Revolution添加了三个自己的HTTP请求,即使这个测试页面不包含任何滑块:

    如何查看HTTP请求来自哪里

    如何查看HTTP请求来自哪里

    如果您将 Slider Revolution 用于关键滑块,那么您可能需要保留它。但是,如果您安装它来测试它,然后删除了滑块,而您现在并没有真正使用它……那么您应该删除它以摆脱那些HTTP请求。

    基本上,您想浏览整个列表并问问自己每个插件是否真的为您的网站增加了价值。如果插件不是(但正在添加HTTP请求),那么最好将其删除。

    2. 用更轻量级的插件替换重型插件

    修剪掉任何不必要的插件后,下一步是查看是否可以用更轻量级的替代品替换您正在使用的任何插件。

    例如,假设您想向您的网站添加社交分享按钮。这是一个很好的功能,但一些社交分享插件可以添加很多HTTP请求。

    例如,流行的AddThis插件添加了六个自己的HTTP请求(包括一些外部请求——稍后会详细介绍):

    AddThis插件HTTP请求数量

    您可以通过使用更优化的替代方案(例如NovaShareGrow by MediaVine )来减少大量请求。

    3. 有条件地加载全站不需要的脚本

    此时,您应该已经删除了站点上任何地方不需要的所有插件。然而,还有一类插件可能会导致问题——仅在您网站的特定部分需要的插件,但在任何地方都加载了它们的脚本。

    例如,以流行的Contact Form 7 插件为例。您可能只需要在几个页面上使用此插件(例如您的“联系我们”页面)。但是,Contact Form 7会在您网站的每个页面上加载其脚本。因此,例如,即使您的博客文章没有任何联系表单,Contact Form 7仍在向您的博客文章添加一些HTTP请求。

    另一个例子可能是WooCommerce,如果您仅将其用作支付处理器。WooCommerce仍然会在任何地方加载它的脚本,即使你真的只需要在这个用例的购物车和结账页面上使用它们。

    这里的高级策略是仅在需要时有条件地加载插件。例如,您可以让Contact Form 7加载到您的“联系我们”页面,但在其他地方禁用它。

    如果您不是开发人员,则可以使用Asset CleanUpPerfmatters等插件无需代码即可完成此操作。使用Perfmatters,您首先需要启用脚本管理器。然后,您可以打开脚本管理器以查看页面上加载的所有脚本并禁用任何不需要的脚本:

    Perfmatters插件中的脚本管理器

    Perfmatters插件中的脚本管理器

    请小心,因为如果您不小心禁用了真正需要的脚本,可能会导致问题。虽然这是一种有用的策略,但它也是一种高级策略。

    如果您没有信心,您可能只想跳过此步骤或聘请开发人员来帮助您。

    4. 删除不必要的图像(并优化其余图像)

    使用得当,图像使您的网站更加用户友好和吸引人。它们为您的网站增加了价值。

    但是,您站点上的每个图像都是一个单独的HTTP请求。因此,如果您的图像没有增加价值,最好将其删除以消除这些HTTP请求。

    例如,那个有趣的GIF值得吗?可能是……但也可能不是——每当您向内容添加更多图像时,您都需要考虑权衡。

    最后,确保调整大小并压缩剩余的图像。虽然这本身不会减少HTTP请求的数量,但会减少这些HTTP请求的大小,从而使它们加载得更快。

    5. 对图片和视频使用延迟加载

    使用延迟加载,您的站点将等待加载首屏图像、视频和iframe,直到用户开始向下滚动。

    由于这些资源不会立即加载,因此无需为初始页面加载发出HTTP请求。

    从WordPress 5.5开始,WordPress现在包含使用HTML加载属性的图像原生延迟加载。对于其他一些实现延迟加载的方法(包括视频文件),您可以查看我们的WordPress延迟加载完整指南

    6. 限制自定义字体的使用和/或使用系统字体(图标字体相同)

    自定义字体非常适合改善您网站的设计和用户体验。但是,您需要注意如何使用它们,因为您使用的每个自定义字体类型都会添加另一个HTTP请求。

    如果您打算使用自定义字体,请确保使用少量字体。您真的需要为帖子标题和帖子正文使用不同的字体吗?或者你可以使用相同的字体吗?你真的需要所有五种字体权重吗?或者你可以只选择两个?

    这同样适用于Font Awesome和IcoMoon等图标字体。图标字体可能很有用,但您可能不需要加载多个图标字体库。最好只选择一个图标字体库并坚持下去。

    最后,如果您想更进一步,完全消除与您站点字体相关的HTTP请求,您可以考虑使用系统字体堆栈。虽然这会降低您在设计方面的灵活性,但这也意味着您的访问者不必加载任何字体文件来呈现您的网站。

    7. 禁用WordPress表情符号

    默认情况下,WordPress添加自己的表情符号HTTP请求。虽然它只是一个5.1KB的HTTP请求,但这个文件长期以来一直是WordPress性能爱好者的眼中钉。查看如何禁用WordPress表情符号的教程

    最简单的选择是安装并激活free Disable Emojis(GDPR友好)插件。但是,您可以阅读我们的完整指南以了解其他一些选项。

    执行此操作后,您的HTTP请求数将减少1,您仍然可以使用表情符号 。

    8. 减少/消除第三方HTTP请求

    到目前为止,我们主要关注减少对WordPress站点服务器上文件的HTTP请求。但是,访问者的浏览器可能还需要从第三方服务器请求文件。

    这些请求可能会更加麻烦,因为您的站点受这些第三方服务器速度的支配。

    一些例子:

    • Google Analytics – 跟踪脚本托管在 Google 的服务器上,但访问者的浏览器仍需要下载该文件。
    • 嵌入的YouTube视频– 您会看到很多对YouTube服务器的HTTP请求。
    • 第三方广告服务– 您会看到大量与投放您的广告相关的第三方请求。
    • Google Fonts(在 Google 的 CDN 上)——您会看到第三方请求Google服务器加载您的字体文件。

    您可以将上面的许多相同策略应用于这些第三方HTTP请求。

    例如,如果一个插件添加了它自己的第三方请求(就像上面的AddThis插件那样),你可以删除它并使用更优化的东西。

    对于YouTube视频,您可以延迟加载它们并用图像缩略图替换初始页面加载。这将延迟添加这些HTTP请求,直到访问者想要播放视频。

    对于必要的第三方脚本,例如Google Analytics或Facebook Pixel,您可以尝试在本地托管这些脚本。

    WP Rocket具有内置的附加组件来在本地托管Google Analytics和Facebook Pixel,或者您可以使用像CAOS(完整分析优化套件)这样的插件。

    我们还有一些指南可能会有所帮助:

    9. 将图像与CSS Sprite结合

    此时,您应该希望能够从您的站点发出更少的HTTP请求。现在,是时候研究如何组合剩余的HTTP请求了,从图像开始。

    优化站点上图像的另一种方法是将单独的图像合并为一个图像文件。然后,您可以使用CSS在需要的地方仅显示该图像文件的一部分。这是一种称为CSS sprites的策略。

    CSS sprites最适合装饰图像,例如徽标变体或图标。您不应该将CSS sprites用于信息图像(如博客文章正文中的图像),因为有两个大缺点:

    • SEO – 因为您将图像组合成一个图像文件,所以您无法在Google搜索中对单个图像进行排名。
    • 可访问性——因为你不能给图像添加替代文本,使用屏幕阅读器的人将无法理解加载了CSS sprites的图像(尽管有一些策略可以解决这个问题)。

    如果您仍然对这个主题感到困惑,这里有一个Amazon的CSS sprite文件示例——您可以看到它是如何包含一堆徽标变体以及一些图标的。亚马逊使用CSS来确保在每个位置只显示该图像文件的相关“部分”:

    Amazon的CSS sprite文件示例

    来自亚马逊的CSS sprites示例。您可以使用 CSS 来“定位”组合图像的特定部分。

    不幸的是,没有用于CSS sprites的“设置并忘记它”的WordPress插件。但是,您可以找到提供帮助的工具,例如CSS Sprite Tool

    1. 将要合并的图像上传到该工具。
    2. 然后,该工具将为您提供一个组合图像文件,以及您上传的每个图像的一些CSS代码。
    3. 将合并的图像文件上传到您的WordPress网站。
    4. 使用CSS代码在您的内容中显示图像。提供的CSS将自动仅选择组合图像文件的适当部分。

    10. 合并CSS和JavaScript文件

    在您的WordPress主题和插件之间,您的站点可能会加载多个CSS样式表和JavaScript文件,这意味着多个HTTP请求仅用于浏览器下载呈现页面所需的CSS和JavaScript。

    为了减少所有这些单独的请求,您可以将这些单独的文件/样式表合并到一个文件/样式表中。这称为文件组合文件串联,具体取决于您使用的工具。

    许多WordPress缓存插件包括合并CSS和JavaScript文件的功能。

    转到WP Rocket设置中的File Optimization选项卡。然后,启用缩小,然后合并文件:

    如何在WP Rocket中结合CSS和JavaScript

    如何在WP Rocket中结合CSS和JavaScript

    如需更详细的外观,请查看我们完整的WP Rocket教程

    您还可以使用Autooptimize合并CSS和JavaScript文件。要合并文件,请转至Settings → Autoptimize并选择以下选项:

    • Aggregate JS-files
    • Aggregate CSS-files

    如需更详细的外观,请查看我们完整的Autoptimize教程

    文件合并并不适合于HTTP/2服务器,HTTP/2旨在更有效地传输多个小文件,这意味着一个大的CSS/JS文件和多个小文件之间的差异较小。

    基本上,如果是HTTP/2服务器您可能不需要执行此步骤来改进页面加载时间。我们建议您仍然对其进行测试,因为它仍然对某些网站有益,但您也可能不会注意到实际页面加载时间的任何差异。

    但是,许多性能测试工具如GTmetrix仍然无法识别HTTP/2,因此GTmetrix可能仍会显示“减少HTTP请求”消息并降低您的分数。但请记住,分数并不像实际页面加载时间那样重要

    11. 延迟渲染阻止JavaScript

    推迟渲染阻止JavaScript本身并不能消除HTTP请求。但是,它正在优化它们的加载方式,这会对您网站的感知加载时间产生相同的影响。

    它还可以帮助处理Google PageSpeed Insights/Lighthouse中的“避免链接关键请求”消息。

    通过推迟对某些文件的请求或异步加载它们,您可以防止某些不重要的资源“阻塞”快速加载站点可见部分所需的资源。

    有关为什么会发生这种情况的更多信息,您可以阅读我们关于理解网页关键渲染路径的指南。

    然后,您可以按照我们的详细指南来消除WordPress上的渲染阻塞资源

    减少HTTP请求的最佳WordPress插件

    如果您正在寻找一些“一体式”WordPress插件来减少HTTP请求,我们推荐上面教程中的两个插件:

    虽然您仍然需要手动评估您的主题和插件以查看它们是否发出了过多的HTTP请求,但这两个插件都可以帮助您在完成清理后优化网站上剩余的所有内容。

    小结

    您站点上的每个单独资源都会添加一个HTTP请求。一张图片是一个HTTP请求,一个CSS样式表是一个HTTP请求,一个字体文件是一个HTTP请求,依此类推。

    如果您使用WordPress,您的主题肯定会添加自己的HTTP请求,许多插件也会添加自己的HTTP请求。您还将收到来自您使用的任何图像和您添加的第三方脚本(例如分析工具)的HTTP请求。

    更多和/或更大的HTTP请求将导致网站速度变慢。这就是为什么当您使用GTmetrix或PageSpeed Insights等速度测试工具时,您通常会看到“减少HTTP请求”或“优化HTTP请求”或“避免链接关键请求”之类的消息。

    要减少您网站上的HTTP请求数量,您可以按照我们上面详述的步骤进行操作。

  • 为什么WordPress慢?让我们弄清楚问题的根源!

    为什么WordPress慢?让我们弄清楚问题的根源!

    弄清楚WordPress速度慢的原因可能具有挑战性。WordPress网站涉及许多部分,从其Web服务器和相关设置到各种主题和插件。这也可能是由于未优化的内容,例如图像、视频和嵌入。

    但是你怎么能找出导致性能问题的原因呢?很难马上说问题出在哪里——有多种可能性,我们将在这篇文章中探讨它们。

    我们不会仅仅停留在找出您的WordPress网站运行缓慢的原因。您还将学习许多加快慢速WordPress网站的方法。

    1. 为什么WordPress慢?
    2. 确定WordPress网站是否运行缓慢的4个步骤
    3. 改善WordPress网站速度的17种方法

    为什么WordPress慢?

    一些Web开发人员完全忽略了WordPress,理由是它有多慢。虽然以前可能是这种情况,但现在已经有一段时间了,这并不是一个准确的说法。如今,许多大品牌都使用WordPress来托管他们的网站。

    但是,许多因素会影响您的WordPress网站的性能。一些最常见的包括:

    • 您网站的网络托管服务提供商
    • 服务器端优化(PHP版本、缓存、压缩等)
    • 缓慢的WordPress主题
    • 缓慢的WordPress插件
    • 未优化的内容(主要是图片)
    • 外部HTTP请求过多
    • 不使用专用资源来提供内容(CDN、视频托管等)

    典型WordPress网站的各种元素

    典型WordPress网站的各种元素

    除了由您的网络托管服务提供商实施的适当的服务器优化之外,您还可以进行许多优化以确保您的网站超快。我们将在本文后面讨论这些,但首先,让我们弄清楚是什么让您的网站变慢。

    确定WordPress网站是否运行缓慢的4个步骤

    1. 第 1 步:运行页面加载速度测试
    2. 第 2 步:对网站进行负载测试
    3. 第 3 步:查看您的WordPress主题和插件
    4. 第 4 步:使用应用程序性能监控 (APM) 工具

    在您的网站上运行测试是确定是什么导致您的网站变慢的好方法 – 无论是您的网络托管服务提供商、网站本身,还是两者兼而有之?让我们来看看您可以运行的一些网站测试。

    第 1 步:运行页面加载速度测试

    您的网站加载速度有多快?任何加载时间超过两秒的网页都不利于用户体验。理想情况下,您的目标应该是加载时间低于1秒——介于两者之间的任何时间都可以,但您应该始终考虑进一步优化它。

    您可以为此目的使用不同的网站速度测试工具 ——GTmetrix、Pingdom Tools、Google PageSpeed Insights和WebPageTest都是不错的选择。

    我将使用GTmetrixPingdom工具 来演示此步骤。

    首先,让我们启动GTmetrix并测试一个网页。选择离您(或您网站的访问者)最近的服务器位置以获得更好的结果(提示: 注册一个免费的GTmetrix帐户以获得更多服务器位置选项)。

    GTmetrix主页

    GTmetrix主页

    在这里,我们正在测试WordPress网站的主页,因为这是大多数用户会访问的地方。此外,主页包含大量内容,因此非常适合测试。

    测试完成后,您将看到如下GTmetrix性能报告。

    GTmetrix报告示例

    GTmetrix报告示例

    GTmetrix根据许多指标对网页进行评分。它还提供了测试期间页面加载方式的可视化时间线。要详细了解它,您必须向下滚动。

    GTmetrix报告的“Summary”选项卡

    GTmetrix报告的“Summary”选项卡

    Summary选项卡突出显示了影响您网站性能的所有主要问题。在这种情况下,最重要的问题是服务器的响应时间。这几乎总是意味着考虑升级您的托管计划或迁移到更好的主机。但是,在你得出这个结论之前,最好先解决所有其他问题并重新审视这一点。

    下一个主要问题是“避免过多的DOM大小”——这是使用页面构建器时的常见问题。另一个问题——“避免大的布局变化”——也可能与页面构建器或主题有关。

    “避免巨大的网络负载”是指负载重的资产,例如图像、脚本和CSS文件。Page Details部分对此进行了快速概述 。在这里,您可以看到总页面大小和页面请求数非常高。

    不使用CDN在降低WordPress网站速度方面起着另一个关键作用。

    单击“Performance 选项卡将为您提供更多由浏览器和Lighthouse性能报告的指标。

    GTmetrix报告的Performance选项卡

    GTmetrix报告的Performance选项卡

    正如你所看到的,这个测试网页没有什么好做的。转到报告的StructureWaterfall选项卡将为您提供更多见解。

    接下来是Pingdom Tools,另一个流行的速度测试工具。我们将在这里再次测试同一个站点的主页。

    Pingdom Tools网站速度测试工具

    Pingdom Tools网站速度测试工具

    Pingdom Tools使用自己的算法来测试网页。这个网站的结果看起来也不是很好。

    Pingdom Tools速度测试结果

    Pingdom Tools速度测试结果

    进一步向下滚动将向您展示如何提高网站的性能。扩展每条建议将为您提供有关可以改进的地方和方式的更多详细信息。

    Pingdom的性能改进建议

    Pingdom的性能改进建议

    由于每个速度测试工具都有自己的性能指标,因此您无法直接将一个速度测试的结果与另一个进行比较。所以,无论你选择什么,最好还是坚持一个。

    最后,您还应该考虑网站的感知性能和实际性能之间的差异。阅读我们关于运行网站速度测试的深入文章以获取更多信息。

    第 2 步:对网站进行负载测试

    对您的网站进行负载测试将揭示有关它在现实世界中的速度的新信息。我们将为此使用k6  ,这是一个免费的开源负载测试工具,可以在您的系统上本地运行。

    k6 FOSS速度测试工具

    k6 FOSS速度测试工具

    使用免费的k6版本 需要一些命令行知识,但是一旦你开始使用它就会非常强大。(注: 或者,您可以使用k6的高级云解决方案或更简单的基于云的负载测试工具,如Loader.io

    结合其出色的k6 Reporter扩展,您可以运行负载测试并在HTML中获得精确的结果:

    k6负载测试结果——请求指标

    k6负载测试结果——请求指标

    以上结果是针对同一站点进行10分钟的负载测试,最多50个虚拟用户。仪表板还包括其他有用的统计信息:

    k6负载测试结果 - 其他统计信息

    k6负载测试结果 – 其他统计信息

    请注意,大多数请求都失败了,可能表明服务器无法处理它们。

    您还可以在k6脚本中设置阈值和检查(例如,页面加载时间低于1.5秒,用户能否登录等)。这些指标也将整齐地显示在仪表板中。

    下图显示了使用确切条件的另一个站点的负载测试结果,以便为您提供更清晰的画面。

    k6负载测试结果 - 第2轮

    k6负载测试结果 – 第2轮

    有28个失败的请求可能看起来很糟糕,但考虑到请求的总数,情况并非如此。这只是我本地机器发出的所有请求的0.25%。这里的结果表明该站点的网络托管服务提供商可以为相当数量的并发用户提供服务。

    第 3 步:查看您的WordPress主题和插件

    测试您的WordPress网站的主题和插件应该是发现任何主要性能问题的下一个主要步骤。这里有很多种类 – 您经常会发现某些主题和插件比其他主题和插件优化得更好。

    在速度测试部分的前面,我们讨论了在报告中发现有问题的主题或插件。但是还有另一种直接的方法——一次禁用一个主题或插件,然后查看站点的性能(在速度测试、负载测试或两者中)。

    如果性能问题仍然存在,请再禁用一个主题或插件并重新运行测试。继续这样做,直到找到罪魁祸首。

    但是,这种方法不适用于生产站点。拥有一个临时站点在这里真的很有帮助。您可以使用它通过添加、更改或删除特定功能来测试生产站点的各种迭代。

    大多数网络托管服务提供商,尤其是便宜的共享托管计划,默认情况下不提供此功能。因此,您必须手动设置登台站点或使用WordPress登台插件(如WP StagecoachWP Staging)。

    这个登台站点实际上是您的生产站点的精确副本,包括其服务器和服务器端配置。您可以使用它来修补和测试您的网站,而不会影响其实时版本。

    第 4 步:使用应用程序性能监控 (APM) 工具

    APM工具与速度和负载测试工具相结合可以增强您的网站诊断能力。

    无需设置临时站点并逐个猜测要禁用哪个插件或主题,一个称职的APM工具可以帮助您确定性能缓慢的根源——而无需更改站点上的任何内容。它跟踪和分析缓慢的事务、数据库查询、外部请求、WordPress钩子、插件等。

    Kinsta APM

    Kinsta APM

    通常,使用APM工具对初学者并不友好。即使是专业的开发人员也需要一些关于如何有效使用它的培训。另外,总是有额外的成本因素,因为它们中的大多数都需要许可证才能运行。

    最简单直接的方法是,使用免费的Query Monitor WordPress插件

    您可以禁用WP-Cron并将其替换为系统cron以提高站点的性能。

    利用APM工具,您会找到最慢的WordPress插件和钩子。

    APM的“WordPress”标签

    APM的“WordPress”标签

    如果您在此处发现任何不必要的插件,或具有重复功能的插件,您可以将它们从您的WordPress站点中删除。例如,我可以在这里看到两个联系表单插件,以及一个本网站可以不用的投资组合插件。

    向下滚动此选项卡将显示最慢的WordPress钩子。

    显示最慢的WordPress钩子

    显示最慢的WordPress钩子

    跟踪最慢的WordPress钩子是APM最有用的功能之一。您可以单击挂钩项目以查看其事务样本。

    查看慢钩子的事务样本

    查看慢钩子的事务样本

    通过准确了解哪个插件、主题或钩子是性能瓶颈,您可以提高网站性能并减少页面加载时间。

    加速WordPress网站的17种方法

    知道是成功的一半!根据这些知识采取行动,您将看到结果。您已经执行了上述所有测试。现在,让我们探索可以加速WordPress网站的潜在领域。

    您可以使用以下有用的链接跳转到任何部分:

    1. 保持您的WordPress网站更新
    2. 优化您网站的图片
    3. 谨慎使用插件(仅在必要时)
    4. 选择一个快速的WordPress主题
    5. 配置缓存以优化您的网站
    6. 减少外部HTTP请求(和API调用)
    7. 缩小您网站的脚本和样式表
    8. 在每个页面加载时仅加载必要的脚本
    9. 加快您缓慢的WordPress管理仪表板
    10. 服务器位置和配置事项
    11. 使用内容交付网络 (CDN)
    12. 删除不必要的URL重定向
    13. 修复WordPress混合内容警告(HTTPS/SSL错误)
    14. 定期优化您的WordPress数据库
    15. 选择基于云的WordPress安全服务
    16. 升级到最新的PHP版本
    17. 切换到受信任的托管WordPress主机

    1. 保持您的WordPress网站更新

    维护WordPress网站的一个重要方面是保持更新。这似乎是最明显的做法,但仍然值得提醒。

    WordPress更新包括安全补丁、最新功能和性能修复。

    您可以在其wp-config.php文件中为您的站点启用自动更新。我们始终建议更新到最新的WordPress版本以确保您的网站安全。

    同样,您还应该更新所有活动的插件和主题。如果您在您的网站上发现任何超过一年未更新的插件或主题,那么是时候重新考虑其替代品了。

    2.优化您网站的图片

    根据HTTP存档 (2022年3月1日),WordPress网站的中位页面重量为2408KB,其中图像几乎占1117KB(占总页面重量的46.38%)。

    WordPress:图像状态

    WordPress:图像状态。(来源:HTTP存档)

    难怪大图像会减慢您的网站速度,从而产生不太理想的用户体验。因此,手动或使用插件优化图像可以大大加快页面加载时间。

    优化图像时,您可以使用有损或无损图像压缩方法。大多数图像编辑器在保存图像的同时提供质量调整以实现最佳图像压缩。有损压缩几乎总是在保留图像细节和拥有更小的文件大小之间达到完美的平衡点。

    选择正确的图像文件格式至关重要。PNG非常适合计算机生成的图形,而JPEG则更适合照片。还有更多的图像格式,例如GIF、SVG、JPEG XR和WebP。有些浏览器普遍支持,有些则不支持,因此您必须在选择它们之前仔细研究。

    WordPress媒体设置 -> 图像大小。

    WordPress默认支持响应式图片。您可以设置您喜欢的图像大小,让WordPress处理其余的。但是如果你想节省磁盘空间,你可以使用像Imsanity这样的免费WordPress插件来自动将大图像缩小到配置的大小。

    至于WordPress图像优化插件,ImagifyShortPixel 是一些流行的选项。我们在关于优化网络图像的详细文章中列出了更多选项。

    3. 谨慎使用插件(仅在必要时)

    插件是WordPress及其社区的生命。WordPress.org上列出了令人印象深刻的54,000多个免费插件库 ,以及其他地方列出的数千个插件,您可以在安装WordPress插件时陷入困境。

    未优化的WordPress插件会降低您网站的性能,增加页面加载时间。

    尽管如此,您可以在不损害网站性能的情况下安装数十个WordPress插件,但您还必须确保这些插件编码良好并针对性能进行了优化。更重要的是,插件开发人员应该对它们进行优化以使其相互配合。

    WordPress插件推荐列表

    WordPress插件推荐列表

    您可以浏览我们为各种用例精心挑选的最佳WordPress插件列表。无论是SEO插件社交媒体插件联系表单插件还是电子商务插件,您一定会在那里找到有用的东西。

    无论您安装了多少插件,您都可以随时参考本文中的第 3 步和/或第 4 步来确定您是否有任何有问题的插件。

    4. 选择一个快速的WordPress主题

    选择一个快速的WordPress主题对于您的网站性能和用户体验至关重要。主题的功能,如布局、导航菜单、调色板、字体和图像放置,是访问者首先会注意到的。

    如果这些功能没有得到很好的优化,你的网站可能很漂亮,但速度也很慢。

    Hello Elementor是一个流行的WordPress主题

    Hello Elementor是一个流行的WordPress主题

    在选择WordPress主题之前,请列出您想要在您的网站上使用的所有功能。然后研究并记下符合您要求的主题。

    始终寻找具有高评级和出色客户支持的值得信赖的开发人员。我们还建议您避免使用不经常更新的主题。

    无论是免费主题还是高级主题,请选择能够实现您网站目标的主题。为了方便您,我们测试了数十个WordPress主题,包括WooCommerce主题,并列出了表现最佳的主题:

    选择具有重点“主题”的主题, 因为我们经常发现它们简单而轻量级。您可以找到大量实用且美观的主题,而不会产生不必要的臃肿(例如,避免使用半生不熟的页面构建器插件的主题)。

    如果您已经有一个实时的WordPress站点,我们建议您设置一个临时站点并在发布之前测试主题。

    5.配置缓存以优化您的网站

    各种网站缓存的插图

    各种网站缓存的插图

    缓存是一种具有多层的复杂技术。我们有一篇专门的文章来解释什么是缓存。快速总结一下,它是存储和调用经常提供的数据以加快网站速度的过程。

    WordPress在PHP和MySQL上运行,如果您不使用缓存,这两者都会变得臃肿。因此,您的网站速度是您、您的主机和缓存之间的共同努力。

    大多数托管WordPress主机都负责服务器级别的缓存,因此您不必自己实现它。但是,如果他们不这样做,您可以随时使用免费的WordPress缓存插件 (例如WP Super Cache、  W3 Total Cache)。

    缓存和不缓存站点对比

    缓存和不缓存站点对比

    即使没有启用缓存,上述站点的性能也非常出色,因为它经过了合理的优化。但是,启用缓存后,它的性能提高了23%。如果您要为成千上万的唯一访问者提供服务,那么这些加载时间就会加起来。

    6. 减少外部HTTP请求(和API调用)

    您的WordPress网站的主题和插件可能包括对各种资源的外部请求。通常,这些请求用于加载外部托管的文件,例如样式表、字体、脚本等。

    CSS可以是一个渲染阻塞资源

    CSS可以是一个渲染阻塞资源

    有时,它们用于添加分析、社交媒体共享等功能。

    使用其中的一些是可以的,但太多会降低您的网站速度。如果您可以减少HTTP请求的数量并优化它们的加载方式,您就可以加速您的网站。

    有关详细指南,您可以参考我们关于如何减少HTTP请求的文章。

    7. 缩小网站的脚本和样式表

    代码缩小是从代码中删除不必要元素的过程。对于WordPress网站,主要包括缩小JS脚本 和CSS样式表。

    这些元素是代码的一部分,因为它很容易被人类(或Web开发人员)阅读。这种元素的一个简单示例是代码注释。但是,机器(或网络浏览器)不需要这些元素。

    通过缩小您的网站代码,您可以拥有更小的JavaScript和CSS文件。它们不仅加载速度更快,而且浏览器解析它们的速度也更快。它们一起可以极大地提高您的页面加载速度。

    大多数WordPress性能插件 将帮助您毫不费力地做到这一点。一个流行的选项是免费的Autoptimize插件,在撰写本文时,它的活跃安装量已超过1万。

    这种minify发生在Cloudflare 的边缘网络上。它甚至也缓存在那里。由于Cloudflare负责最终缩小代码并将这些文件从最近的边缘服务器提供给访问者,因此它可以释放您的服务器资源。

    8.在每次页面加载时只加载必要的脚本

    大多数WordPress主题和插件资源经常在所有页面上加载和运行,即使在某些页面上不需要它们。例如,联系表单插件可以在每个页面上加载其资产,而不仅仅是在具有联系表单的页面(例如联系页面)上。

    缩小和组合这些脚本可能会稍微提高您的网站性能,但最好首先阻止这些脚本和样式加载。

    我们建议 为此任务使用免费的 Asset Cleanup插件。它将扫描页面上加载的所有资产。然后,您可以选择此特定页面上不需要的CSS和JS文件,从而减少臃肿。

    使用“ Asset Cleanup”插件

    使用“ Asset Cleanup”插件

    资产清理与缓存结合使用效果最佳,因为优化的页面不必由Web服务器重复生成。

    9. 加速你缓慢的WordPress管理仪表板

    通常,后端优化从优化前端开始,因为加速前端几乎总是能解决后端的性能问题。

    如果您的WordPress管理员反应迟缓,您可以反过来做同样的事情——修复后端性能问题可能有助于加快您的网站访问速度。

    在这种情况下,使用服务器级APM工具总是很方便,因为安装额外的插件可能会进一步降低您的网站速度。

    使用Kinsta APM查找最慢的事务

    使用Kinsta APM查找最慢的事务

    高Admin-Ajax使用率是WordPress网站中常见的性能瓶颈。然而,缓慢的WordPress管理员也可能是由于后台WordPress任务,例如WordPress备份、WP-Cron等(如我们之前的示例中所示)。或者它可能是一个臃肿的插件,它在您的管理仪表板中添加了太多的横幅。

    10. 服务器位置和配置事项

    您的Web服务器的位置及其配置会对您网站的速度产生重大影响。

    例如,如果您的网络服务器在美国,您的网站对来自欧洲或印度的访问者的加载速度将比对来自美国的访问者的加载速度慢。

    您可以使用以下方法缓解这种情况:

    • 离您和您网站的大多数访问者最近的网络服务器。
    • 具有广泛全球覆盖范围的CDN 。

    11. 使用内容交付网络 (CDN)

    加快网站速度的最简单方法之一是使用快速可靠的CDN。

    CDN通过直接向您的访问者提供内容来减轻您的Web服务器的负载。这些是一个服务器网络(也称为POP),旨在托管和交付站点内容的副本,例如图像、样式表、字体、脚本和视频。

    Cloudflare CDN

    Cloudflare CDN

    我们建议每个网站至少使用某种类型的CDN来加快其性能。

    提示:如果您的网站使用任何流行的开源JavaScript库(例如 jQuery、D3.js、three.js、Web Font Loader),您可以使用Google Hosted Libraries CDN来加快其交付速度。

    12. 删除不必要的URL重定向

    如果您要使用新帖子和页面更新网站,您的URL结构可能会发生变化。在这种情况下,URL重定向是一件好事。但是,如果您不遵循WordPress 重定向最佳实践,您可能会对您网站的用户体验和搜索引擎优化 (SEO)产生负面影响。

    配置不当的URL重定向最常见的问题是导致重定向链。在某些情况下,这个链是一个无限重定向循环。这种重定向链通常会导致页面加载时间增加。

    有时,错误配置的URL重定向也可能导致错误404“找不到页面” 错误。如果您的网站生成大量404错误,它也会影响您的网站性能,因为这些响应通常不会被缓存。

    我们的蜘蛛分析插件,可帮助您查看重定向和404错误的确切数量。

    蜘蛛统计插件日志列表的404错误和30x重定向故障

    蜘蛛统计插件日志列表的404错误和30x重定向故障

    您可以设计一个有创意的404错误页面来摆脱它,但从长远来看,这对您没有帮助。

    闪电博的错误 404“找不到页面”页面

    闪电博的错误 404“找不到页面”页面

    以下是避免创建不必要的重定向的方法:

    • 使用正确的URL前缀(HTTP或HTTPS)。
    • 保留或删除URL中的“www”子域(不要混淆)。
    • 不要在URL中使用帖子和页面ID 。
    • 包括整个URL路径。
    • 确保您的顶级域 (TLD)在一个重定向中解析(理想情况下,应该没有重定向)。

    WordPress包括许多设置重定向的方法。其中之一是John Godley的免费且流行的重定向插件

    使用免费的WordPress '重定向'插件

    使用免费的WordPress ‘重定向’插件

    如果您的网站通过宝塔面板管理,您还可以从宝塔面板仪表板管理重定向。此工具是设置重定向的更好方法,因为规则是在服务器级别实现的。这也意味着您需要少安装一个第三方插件。

    在宝塔面板中添加重定向规则

    在宝塔面板中添加重定向规则

    转到您要管理的站点,点击设置,然后单击“重定向”选项卡。然后通过单击大的“添加重定向”按钮添加新的重定向。

    如果您的网络主机使用Apache服务器,您需要编辑其.htaccess 文件以设置重定向。对于这种情况,您可以使用.htaccess Generator站点为您的站点生成正确的重定向规则。

    13. 修复WordPress混合内容警告(HTTPS/SSL错误)

    今天必须通过HTTPS协议运行您的WordPress网站。但是,在从HTTP迁移到HTTPS时,您可能会遇到几个问题——最常见的一个是“混合内容警告”警报

    当页面包含HTTP和HTTPS内容时,会出现混合内容警告。不安全地加载资源不仅是一个安全问题,也是一个潜在的性能问题。

    如果您在您的网站上遇到混合内容错误,您可以使用免费工具(如Why No Padlock  )向您显示哪些资源被不安全地加载。

    然后,您可以执行快速搜索和替换以修复所有潜在原因。免费的Better Search Replace插件是解决此问题的一种方法。

    一个简单的搜索和替换应该可以解决您所有的混合内容警告。但如果没有,您可能需要查找并手动更新一些硬编码脚本。或者聘请可以为您做到这一点的开发人员。

    14. 定期优化你的WordPress数据库

    WordPress站点的数据库存储其所有关键信息。但是如果没有定期维护,它可能会降低您的网站速度。

    例如,当您启动网站时,WordPress数据库仍然可以保存多年前的信息。这包括帖子和页面修订、草稿、已删除的评论和已删除的帖子。虽然它们可能有助于编辑和发布最近的帖子,但随着时间的推移,数据库会积累大量不必要的数据并变得臃肿。

    因此,优化您的WordPress数据库对于改善和维护您网站的性能是必要的。

    此外,一些插件和主题将数据添加到wp_options表 中,以便更轻松地配置它们并自动加载设置。但是自动加载过多的数据会减慢页面响应时间。

    您可以使用各种技术来优化WordPress数据库。一种方法是使用phpMyAdmin或Adminer手动清除过时的数据库项目。或者您可以使用WordPress数据库优化插件 ,例如WP-OptimizeWP-SweepAdvanced Database Cleaner

    使用“高级数据库清理器”插件

    使用“高级数据库清理器”插件

    15. 选择基于云的WordPress安全服务

    每天都有成千上万的WordPress网站被黑客入侵。因此,安全性对于WordPress网站来说是一个关键问题,您需要时刻掌握它。

    您有两种使用防火墙保护WordPress站点的主要方法:

    1. 选择具有 良好记录的安全网络托管服务
    2. 使用专门的第三方安全服务来保护您的网站

    第一个选项是明确的。可靠的WordPress托管服务提供商将为您处理大部分网站安全措施。

    但是,如果您必须选择第二个选项,您还有另外两个选择:

    1. 选择WordPress安全插件(例如Wordfence)
    2. 选择DNS防火墙(例如Cloudflare)

    WordPress安全插件因其始终在线和定期扫描要求而耗尽了您网站的资源。

    相反,您可以使用Cloudflare等基于云的安全解决方案。它们还提供针对机器人、DDoS攻击和代理流量的额外保护。

    此外,我们支持双因素身份验证 (2FA) 和IP地理位置阻止。我们还会在一分钟内禁止登录尝试失败六次的IP。此外,我们强制实施完全加密的连接(SFTP、SSH、HTTPS),在所有新的WordPress安装上要求使用强密码,并提供黑客修复保证。

    16. 升级到最新的PHP版本

    WordPress主要由服务器端编程语言PHP提供支持。甚至它的主题和插件也主要是用PHP编写的。

    通常,较新的PHP版本比较旧的版本更快。它们提供了许多性能改进,也更安全。

    年度PHP基准测试发现WordPress在PHP 8.1上比PHP 8.0快47.10% 。与PHP 7.2相比,它更快, 每秒处理超过50%的请求。

    WordPress 5.9-RC2 PHP基准测试

    WordPress 5.9-RC2 PHP基准测试

    在撰写本文时,大多数WordPress插件、主题和开发工具尚不支持PHP 8.1。如果您计划将生产站点的环境升级到PHP 8.1,我们建议您在暂存环境中对其进行彻底测试,以确保它不会中断。

    不过,如果您的服务器仍在PHP 7.x版本上,您可以更新到PHP 8.0并获得大部分相同的好处。

    因此您可以在升级之前在其上彻底测试您的网站。如果您的主机没有让您选择更新到最新的PHP版本,那么是时候重新考虑您的主机提供商了。

    17. 切换到受信任的WordPress主机

    如果您已经尝试了上述所有步骤,但仍然卡在缓慢的WordPress网站上,那么剩下的唯一选择就是切换到可靠的WordPress托管服务提供商。

    通常,WordPress托管具有多种功能,可帮助WordPress网站高效、安全、快速地运行。所有技术知识都留给专家,让您专注于经营业务。

    WordPress托管的计划通常高于共享托管或DIY VPS托管,但您得到的是您所支付的费用。一些流行的托管WordPress主机是Kinsta、WP Engine、Flywheel、Pressable和Pagely。

    无论您最终与谁托管您的网站,都要正确地进行研究并确保它符合您网站的要求。大多数托管WordPress主机还提供免费迁移 ,因此您可以轻松地将当前站点迁移到新主机,而无需任何停机时间。

    小结

    修复缓慢的WordPress网站涉及许多步骤,但您可以做到。拥有一个快速的网站有助于提升您的SEO、用户体验和转化率。另外,每个人都喜欢快速的网站!