Độ trễ khi yêu cầu tài liệu

Adam Raine
Adam Raine

Ngày phát hành: 27 tháng 3 năm 2025

Yêu cầu tài liệu ban đầu cho trang là quan trọng nhất vì tất cả các yêu cầu mạng và nội dung trang đều phụ thuộc vào yêu cầu đó. Việc tối ưu hoá yêu cầu tài liệu ban đầu sẽ giúp cải thiện hiệu suất.

Nội dung mà thông tin chi tiết kiểm tra

Thông tin chi tiết này kiểm tra xem có điều kiện nào sau đây ảnh hưởng đến yêu cầu giấy tờ ban đầu hay không:

  • Yêu cầu điều hướng đã được chuyển hướng một hoặc nhiều lần.
  • Máy chủ mất hơn 600 mili giây để phản hồi yêu cầu.
  • Phản hồi không được nén.
Công cụ dành cho nhà phát triển báo cáo rằng độ trễ của tài liệu có thể giảm bằng cách loại bỏ các lệnh chuyển hướng
Devtools báo cáo rằng bạn có thể giảm độ trễ của tài liệu bằng cách loại bỏ các lệnh chuyển hướng

Tránh chuyển hướng

Lượt chuyển hướng làm chậm tốc độ tải trang. Khi một trình duyệt yêu cầu một tài nguyên đã được chuyển hướng, máy chủ thường trả về một phản hồi HTTP như sau:

HTTP/1.1 301 Moved Permanently
Location: /path/to/new/location

Sau đó, trình duyệt phải tạo một yêu cầu HTTP khác tại vị trí mới để truy xuất tài nguyên. Lượt truy cập bổ sung này trên mạng có thể làm chậm quá trình tải tài nguyên.

Đảm bảo các đường liên kết trỏ đến vị trí hiện tại của tài nguyên. Nếu bạn đang sử dụng lệnh chuyển hướng để chuyển hướng người dùng thiết bị di động đến phiên bản trang dành cho thiết bị di động, hãy cân nhắc thiết kế lại trang web của bạn để sử dụng thiết kế thích ứng.

Giảm thời gian phản hồi của máy chủ

Bước đầu tiên để cải thiện thời gian phản hồi của máy chủ là xác định các tác vụ khái niệm cốt lõi mà máy chủ của bạn phải hoàn thành để trả về nội dung trang, sau đó đo lường thời gian thực hiện từng tác vụ này. Sau khi xác định được những tác vụ lâu nhất, hãy tìm cách tăng tốc cho các tác vụ đó.

Có nhiều nguyên nhân có thể khiến máy chủ phản hồi chậm và nhiều cách có thể cải thiện vấn đề này:

  • Tối ưu hoá logic ứng dụng của máy chủ để chuẩn bị trang nhanh hơn. Nếu bạn sử dụng khung máy chủ, thì khung đó có thể có các đề xuất về cách thực hiện việc này.
  • Tối ưu hoá cách máy chủ truy vấn cơ sở dữ liệu hoặc di chuyển sang các hệ thống cơ sở dữ liệu nhanh hơn.
  • Nâng cấp phần cứng máy chủ để có thêm bộ nhớ hoặc CPU.
  • Sử dụng CDN để giảm độ trễ mạng. Điều này đặc biệt hiệu quả nếu tài liệu có thể được lưu vào bộ nhớ đệm tại nút cạnh CDN.

Hãy xem hướng dẫn Tối ưu hoá TTFB để biết thêm thông tin.

Bật nén

Tính năng nén văn bản có thể giảm kích thước tổng thể của tài liệu HTML ban đầu. Khi yêu cầu một tài nguyên, trình duyệt sẽ sử dụng tiêu đề yêu cầu HTTP Accept-Encoding để cho biết những thuật toán nén mà trình duyệt hỗ trợ.

Accept-Encoding: gzip, compress, br, zstd

Xem thêm phần Tối ưu hoá kích thước chuyển và mã hoá của các thành phần dựa trên văn bản.

Máy chủ của bạn phải trả về tiêu đề phản hồi HTTP Content-Encoding để cho biết thuật toán nén mà máy chủ đã sử dụng.

Công cụ dành cho nhà phát triển báo cáo rằng yêu cầu tài liệu đang sử dụng tính năng nén gzip
Devtools báo cáo rằng yêu cầu tài liệu đang sử dụng phương thức nén gzip

Hướng dẫn dành riêng cho ngăn xếp

WordPress

  • Bật tính năng nén văn bản trong cấu hình máy chủ web.
  • Chọn một giao diện gọn nhẹ (tốt nhất là giao diện khối) và triển khai tính năng lưu vào bộ nhớ đệm toàn trang hoặc giải pháp trang web tĩnh. Tắt các trình bổ trợ không cần thiết để giảm thiểu mức hao tổn máy chủ.
  • Hãy cân nhắc nâng cấp dịch vụ lưu trữ lên dịch vụ được quản lý hoặc dịch vụ chuyên dụng.

Drupal

  • Nếu bạn đã cài đặt mô-đun Chuyển hướng, hãy xem xét và xoá các lượt chuyển hướng không cần thiết.
  • Giảm tải lưu lượng truy cập bằng một hoặc nhiều mô-đun lưu vào bộ nhớ đệm Drupal như Internal Page Cache, Internal Dynamic Page CacheBigPipe. Hãy kết hợp các mô-đun này với CDN để cải thiện thêm thời gian phản hồi. Máy chủ lưu trữ của bạn nên tận dụng PHP OPcache.
  • Hãy cân nhắc dùng khả năng lưu vào bộ nhớ đệm của bộ nhớ, như lưu vào Redis hoặc Memcache, để giảm số lần truy vấn cơ sở dữ liệu.
  • Sử dụng giao diện, mô-đun và máy chủ nhanh hơn, có hiệu suất cao để giảm thời gian phản hồi của máy chủ.

Phản ứng

  • Nếu bạn đang dùng React Router, hãy giảm thiểu mức sử dụng thành phần <Redirect> để định tuyến.
  • Nếu bạn đang hiển thị bất kỳ thành phần React nào ở phía máy chủ, hãy cân nhắc dùng renderToNodeStream() hoặc renderToStaticNodeStream() để cho phép ứng dụng nhận và nhập những phần khác nhau của mục đánh dấu thay vì tất cả cùng lúc.

Joomla

  • Bật chế độ cài đặt Nén trang Gzip (System > Global configuration > Server (Hệ thống > Cấu hình chung > Máy chủ)).
  • Mẫu, tiện ích và thông số máy chủ đều tác động đến thời gian phản hồi của máy chủ. Hãy cân nhắc tìm một mẫu được tối ưu hoá hơn, lựa chọn cẩn thận tiện ích tối ưu hoá hoặc nâng cấp máy chủ.

Magento

Tài nguyên