Lighthouse 报告的“优化”部分会报告服务器响应时间,即发出请求后,用户的浏览器收到网页内容的第一个字节所需的时间:
![“Lighthouse 服务器响应时间偏短”审核结果的屏幕截图](https://developer.chrome.google.cn/static/docs/lighthouse/performance/server-response-time/image/a-screenshot-the-lightho-dee8ff91ad494.png?authuser=8&hl=da)
服务器响应缓慢会影响性能
如果浏览器等待服务器响应主文档请求的时间超过 600 毫秒,此审核就会失败。用户不喜欢加载时间过长的页面。服务器响应速度缓慢是导致网页加载时间过长的原因之一。
当用户导航到其网络浏览器中的某个网址时,浏览器会发出网络请求以提取该内容。您的服务器收到请求并返回网页内容。
服务器可能需要执行大量操作,才能返回包含用户需要的所有内容的网页。例如,如果用户正在查看其订单历史记录,则服务器需要从数据库中提取每个用户的历史记录,然后将相应内容插入到页面中。尽可能快地优化服务器,可以缩短用户等待页面加载的时间。
即使服务器不需要执行大量工作,客户端与服务器之间的网络延迟也可能会导致服务器响应用时较长。
如何缩短服务器响应时间
缩短服务器响应时间的第一步是确定您的服务器为返回网页内容而必须完成的核心概念性任务,然后测量其中每项任务所花的时间。确定用时最长的任务后,设法加快这些任务的速度。
导致服务器响应缓慢的原因可能有很多,因此,改善方法有很多:
- 优化服务器的应用逻辑,以更快地准备页面。如果您使用服务器框架,该框架可能会提供有关如何执行此操作的建议。
- 优化服务器查询数据库的方式,或迁移到速度更快的数据库系统。
- 升级服务器硬件,以便拥有更多内存或 CPU。
使用 CDN 减少网络延迟。如果文档可以在 CDN 边缘节点上缓存,这种做法尤其有效。
如需了解详情,请参阅优化 TTFB 指南。
针对特定堆栈的指南
Drupal
主题、模块和服务器规格都会影响服务器响应用时。建议您查找更优化的主题、仔细选择优化模块,或升级您的服务器。您的托管服务器应使用 PHP 操作码缓存、Memcached 或 Redis 等内存缓存系统来缩短数据库查询时间,以及优化应用逻辑以更快地准备页面。
Magento
使用 Magento 的 Varnish 集成。
回应
如果您在服务器端渲染任何 React 组件,不妨考虑使用 renderToNodeStream()
或 renderToStaticNodeStream()
,以允许客户端接收和水化标记的不同部分,而不是一次性接收所有标记。
WordPress
选择一个轻量级主题(理想情况下为块状主题),并实现全页缓存或静态网站解决方案。停用不必要的插件以最大限度地减少服务器开销。
请考虑将您的托管服务升级为代管式服务或专用服务。