缩短服务器响应时间

Lighthouse 报告的“优化”部分会报告服务器响应时间,即发出请求后,用户的浏览器收到网页内容的第一个字节所需的时间:

“Lighthouse 服务器响应时间偏短”审核结果的屏幕截图

服务器响应时间缓慢会影响性能

如果浏览器等待服务器响应主文档请求的时间超过 600 毫秒,此审核将会失败。用户不喜欢网页加载时间过长。服务器响应时间缓慢是导致网页加载时间过长的一个可能原因。

当用户在网络浏览器中导航到某个网址时,浏览器会发出网络请求以提取相应内容。您的服务器会收到请求并返回网页内容。

服务器可能需要执行大量工作,才能返回包含用户所需的所有内容的网页。例如,如果用户查看其订单记录,服务器需要从数据库中提取每位用户的记录,然后将这些内容插入到网页中。优化服务器以尽快执行此类工作,是缩短用户等待网页加载时间的一种方法。

即使服务器不需要执行大量工作,客户端和服务器之间的网络延迟时间也可能会导致服务器响应时间缓慢。

如何缩短服务器响应时间

若要缩短服务器响应时间,第一步是确定服务器必须完成哪些核心概念任务才能返回网页内容,然后测量每项任务所需的时间。确定最长时间的任务后,请寻找加速这些任务的方法。

导致服务器响应缓慢的原因有很多,因此有许多可能的改进方法:

  • 优化服务器的应用逻辑,以加快网页准备速度。如果您使用的是服务器框架,该框架中可能会包含具体操作建议。
  • 优化服务器查询数据库的方式,或迁移到更快的数据库系统。
  • 升级服务器硬件,以增加内存或 CPU。

使用 CDN 缩短网络延迟时间。如果文档可以缓存在 CDN 边缘节点,这种方法尤为有效。

如需了解详情,请参阅优化 TTFB 指南。

针对特定堆栈的指南

Drupal

使用一个或多个 Drupal 缓存模块(例如 Internal Page CacheInternal Dynamic Page CacheBigPipe)分流流量。将这些功能与 CDN 搭配使用,可进一步缩短响应时间。您的托管服务器应使用 PHP OPcache。考虑使用内存缓存(例如 Redis 或 Memcached)来缩短数据库查询时间。最后,使用高性能主题、模块和更快的服务器来缩短服务器响应时间。

Magento

使用 Magento 的 Varnish 集成

回应

如果您在服务器端呈现任何 React 组件,不妨使用 renderToNodeStream()renderToStaticNodeStream() 来允许客户端接收并合成标记的各个不同部分,而不是一次性接收整个标记。

WordPress

选择轻量主题(最好是区块主题),并实现全页缓存或静态网站解决方案。停用不必要的插件,以最大限度地减少服务器开销。

请考虑将您的托管服务升级为代管式服务或专用服务。

资源