Google Pagespeed bảo tôi tận dụng bộ nhớ đệm trình duyệt khi bộ đệm đã được bật


8

Google Pagespeed Insights vẫn nói với tôi rằng tôi phải kích hoạt bộ nhớ đệm trình duyệt, nhưng tôi không hiểu những gì tôi đang thiếu. Tôi đang sử dụng cloudflare với kích hoạt tối ưu hóa. Tôi thấy tiêu đề HTTP này trong các công cụ phát triển chrome:

kiểm soát bộ đệm: công khai, tuổi tối đa = 86400

vì vậy bộ nhớ đệm dường như đã được kích hoạt! Tôi cũng đã thêm

<staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>

trong tập tin web.config của tôi.

Tôi không biết phải làm gì khác. Đây là lỗi mà Google đưa ra cho tôi:

nhập mô tả hình ảnh ở đây


2
Bạn cần làm ~ 8 ngày cho hết hạn để vượt qua quy tắc đó.
dhaupin

Câu trả lời:


6

24 giờ là quá ít để đủ để kiểm soát bộ nhớ cache :) Về lý thuyết, hình ảnh không bao giờ thay đổi mà tên của chúng cũng thay đổi, vì vậy bạn có thể dễ dàng đặt nó trong một năm (hoặc một tháng nếu bạn cảm thấy thoải mái hơn với điều đó).

Nếu bạn thay thế một hình ảnh bằng một hình ảnh mới, nó có một tên mới. picture-of-cat-on-18th-birthday.jpgsẽ không đột nhiên là một hình ảnh khác có cùng tên tệp. Vì lý do này, tên tệp nên được phần nào cụ thể cho nội dung của chúng.

Đối với các loại tài nguyên khác như CSS và JS, bạn có thể muốn chọn một chiến thuật khác. Bạn có (thường xuyên) thay đổi tệp và không bao giờ / hầu như không thay đổi, bạn muốn phân chia độ dài bộ đệm của chúng:

  • không bao giờ thay đổi -> bộ nhớ cache rất dài
  • thay đổi -> bộ nhớ cache thấp

Điều này là không thể làm được. Bạn có thể làm cả hai hoặc không, .htaccess thấy một kiểu tệp.
Vì điều này, bạn đặt nó vào bộ đệm dài và sử dụng một hậu tố để buộc tải xuống mới nếu nó thay đổi:

<script src="static.js" />  
<script src="changing.js?last_update=150422" />

Bằng cách này, người dùng chỉ phải tải lại nếu bạn thực sự đã thay đổi.
Kỹ thuật này hoạt động trên tất cả các nguồn lực. Luôn luôn nhắm đến thời gian lưu trữ cao nhất.


cảm ơn bạn! Đã giải quyết vấn đề. vâng, nó quá ngắn, kéo dài tất cả mọi thứ đến 8 ngày nên nó sẽ không gửi cho tôi tin nhắn nữa. vấn đề là các vật dụng! những thứ như purechat và kudobuzz, plugin facebook và google +. họ đang làm chậm trang web của tôi và không lưu trữ tốt ...
euge9522

connect.facebook.net/en_US/all.js (20 phút) connect.facebook.net/it_IT/sdk.js (20 phút) apis.google.com/js/api.js (30 phút) oauth.googleusercontent.com Phần mềm e: rpc: shindig.random: shindig.sha1.js? C = 2 (60 phút) google-analytics.com/analytics.js (2 giờ)
euge9522

Bạn có thể đặt bộ đệm lớn trên các tệp CSS và JS miễn là bạn truy vấn dấu thời gian của chuỗi src ... mà bạn có thể thực hiện một cách linh hoạt filemtime(). Sau đó, nếu tệp được sửa đổi, một uri mới sẽ được tạo, buộc phải mua lại tài sản mà không xóa bộ nhớ cache và mọi thứ. Có thể làm điều tương tự với hình ảnh hoặc bất cứ điều gì quá. Và tôi nghĩ rằng Google thích thời gian lưu trữ bộ nhớ cache của một cái gì đó như tối thiểu 8 ngày để vượt qua tốc độ trang.
dhaupin

4

Tôi thấy rằng câu trả lời trước đó nói rằng 24 giờ là không đủ. Nhưng nhìn vào tài liệu của Google: https://developers.google.com/web/fundamentals/performance/optimizing-content-effic/http-caching#defining-optimal-cache-control-policy nó nói rằng các hình ảnh được lưu trong 1 ngày cho bộ nhớ đệm tối ưu.

Bộ nhớ đệm hình ảnh trong thời gian ngắn có ý nghĩa, bởi vì để cải thiện SEO, tốt hơn là không lấy dấu vân tay của hình ảnh. Vì vậy, đó là một sự đánh đổi tốt nếu bạn muốn thay đổi hình ảnh.

Ngoài ra, không phải sau 24 giờ hình ảnh sẽ được tải lại (khi bạn đặt điều khiển bộ đệm thành 1 ngày), sau đó nó sẽ sử dụng thẻ điện tử và so sánh các hình ảnh bằng cách tạo một máy chủ làm tròn và thu hồi.

Vì vậy, câu hỏi vẫn là tại sao công cụ hiểu biết sâu sắc về trang không tôn trọng khuyến nghị của chính Google.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.