Cache Header Inspector
Kiểm tra các header HTTP như Cache-Control, ETag, Last-Modified để đánh giá chiến lược lưu cache.
Cache Header Inspector là gì?
Cache Header Inspector là công cụ kiểm tra các header HTTP trả về từ máy chủ khi trình duyệt hoặc bot (như Googlebot) yêu cầu một trang web. Công cụ này tập trung vào ba header quan trọng nhất liên quan đến lưu trữ tạm thời (cache): Cache-Control, ETag và Last-Modified. Nó giúp người quản trị website xác định xem nội dung có đang được lưu cache đúng cách hay không — từ đó ảnh hưởng trực tiếp đến tốc độ tải trang, mức độ crawl hiệu quả của công cụ tìm kiếm và trải nghiệm người dùng.
Tại sao quan trọng trong SEO?
Chiến lược cache tốt giúp giảm tải cho máy chủ, tăng tốc độ hiển thị trang và cải thiện chỉ số Core Web Vitals như Largest Contentful Paint (LCP) và Time to First Byte (TTFB). Google xếp hạng cao hơn với trang tải nhanh và ổn định. Ngược lại, cấu hình cache sai có thể dẫn đến:
- Bot Google crawl quá nhiều lần cùng một tài nguyên → lãng phí crawl budget
- Người dùng thấy nội dung cũ sau khi cập nhật → tổn hại độ tin cậy
- Trang bị cache quá lâu ở CDN hoặc trình duyệt → thay đổi không phản ánh kịp thời
- Mất kiểm soát đối với tài nguyên nhạy cảm (ví dụ: trang thanh toán, tài khoản cá nhân)
Theo tài liệu chính thức của Google, bot ưu tiên các trang có TTFB dưới 200ms và LCP dưới 2,5 giây — cả hai đều chịu ảnh hưởng mạnh bởi cấu hình cache.
Cách hoạt động
Cache Header Inspector gửi một yêu cầu HTTP HEAD hoặc GET tới URL cần kiểm tra, sau đó phân tích phần header của phản hồi. Nó không tải toàn bộ nội dung trang nên rất nhanh và an toàn. Công cụ đọc từng trường header, so sánh giá trị với tiêu chuẩn RFC 7234 (HTTP/1.1 Caching), rồi đưa ra đánh giá ngắn gọn về mức độ phù hợp với mục đích sử dụng (static asset, HTML, API…).
Một số phiên bản nâng cao còn hỗ trợ kiểm tra theo nhiều user-agent (ví dụ: Googlebot, Bingbot, Mobile Chrome) để phát hiện khác biệt trong xử lý cache giữa các client.
Hướng dẫn thực hiện
- Nhập URL đầy đủ: bao gồm giao thức (
https://) và tên miền chính xác (ví dụ:https://example.com/blog/tin-tuc.html) - Chọn phương thức kiểm tra: thường là
HEAD(nhanh, chỉ lấy header) hoặcGET(đầy đủ hơn, nhưng có thể kích hoạt log server) - Chọn user-agent (tuỳ chọn): nếu muốn mô phỏng hành vi bot hoặc thiết bị cụ thể
- Chạy kiểm tra: nhấn nút “Kiểm tra” hoặc “Inspect”
- Đọc kết quả: chú ý vào các dòng
Cache-Control,ETag,Last-Modified,ExpiresvàVary - So sánh với khuyến nghị: ví dụ: file CSS/JS nên có
Cache-Control: public, max-age=31536000; trang HTML nên cóCache-Control: no-cache, must-revalidatehoặcmax-age=3600tuỳ chiến lược
Lỗi thường gặp
| Lỗi | Dấu hiệu nhận biết | Cách khắc phục |
|---|---|---|
| Cache-Control thiếu hoặc rỗng | Header không xuất hiện, hoặc giá trị là no-store cho tài nguyên tĩnh |
Thêm quy tắc trên web server: Apache (mod_headers), Nginx (add_header), hoặc qua CDN (Cloudflare Page Rules) |
| max-age quá cao cho trang HTML | Cache-Control: public, max-age=31536000 trên trang tin tức |
Giảm max-age xuống 3600–7200 giây; dùng must-revalidate để buộc kiểm tra lại với server trước khi phục vụ cache |
| ETag và Last-Modified mâu thuẫn | Cả hai header đều có, nhưng giá trị không đồng bộ (ví dụ: Last-Modified thay đổi nhưng ETag không đổi) |
Vô hiệu hoá một trong hai nếu không cần thiết; ưu tiên ETag cho hệ thống phức tạp, Last-Modified cho file đơn giản |
| Thiếu header Vary khi dùng nén hoặc phiên bản mobile | Server trả về nội dung nén (gzip/brotli) nhưng không có Vary: Accept-Encoding |
Thêm Vary: Accept-Encoding và Vary: User-Agent nếu phân biệt mobile/desktop — tùy trường hợp |
Ví dụ thực tế
Một website tin tức Việt Nam kiểm tra trang chủ https://baobinhduong.vn/ bằng Cache Header Inspector và nhận được kết quả:
Cache-Control: public, max-age=1800
ETag: "abc123def456"
Last-Modified: Wed, 10 Apr 2024 08:22:15 GMT
Vary: Accept-Encoding, User-Agent
Kết luận: cấu hình hợp lý cho trang động — cache 30 phút giúp giảm tải server, Vary đảm bảo đúng phiên bản mobile/desktop được phục vụ, và ETag hỗ trợ kiểm tra thay đổi hiệu quả. Sau khi tối ưu, thời gian TTFB giảm từ 680ms xuống còn 210ms, và số lượt crawl của Googlebot tăng 12% trong 7 ngày — không phải do tăng tần suất, mà do mỗi lần crawl thu được nhiều trang hơn nhờ cache hiệu quả.
Câu hỏi thường gặp
Cache Header Inspector có thể kiểm tra HTTPS và HTTP cùng lúc không?
Không. Mỗi lần kiểm tra chỉ áp dụng với một giao thức và một URL cụ thể. Nếu website hỗ trợ cả hai, bạn cần chạy riêng từng URL: http://example.com và https://example.com. Lưu ý: Google ưu tiên index phiên bản HTTPS, nên luôn kiểm tra phiên bản này trước.
Công cụ có đọc được cache ở CDN không?
Có, nhưng chỉ khi CDN trả lại header gốc hoặc header đã được chỉnh sửa rõ ràng. Một số CDN (như Cloudflare) thêm header như CF-Cache-Status hoặc X-Cache — các công cụ nâng cao sẽ hiển thị chúng. Tuy nhiên, giá trị Cache-Control cuối cùng phụ thuộc vào thứ tự ưu tiên: CDN → reverse proxy → web server → ứng dụng. Thứ tự này có thể thay đổi tuỳ cấu hình.
Tại sao một số trang không trả về ETag dù đã bật?
ETag có thể bị vô hiệu bởi cấu hình server (ví dụ: FileETag None trên Apache), hoặc bị loại bỏ bởi CDN để tăng tốc. Ngoài ra, một số framework (như Next.js ở chế độ static export) không sinh ETag mặc định. Việc thiếu ETag không phải lỗi — miễn là Last-Modified hoặc Cache-Control đủ mạnh để điều khiển cache hiệu quả.