Cache là một trong những yếu tố quan trọng nhất để tối ưu tốc độ Sitecore.
Sitecore có rất nhiều tầng cache khác nhau — từ HTML caching đến item caching — nếu hiểu rõ bạn sẽ dễ dàng tăng tốc trang web lên gấp 5–10 lần.
Sitecore là CMS chạy dựa trên:
Databases (Master, Web)
Rendering pipeline
Layout engine
Rule engine
Rendering MVC
Các quá trình này nếu không cache sẽ tốn nhiều CPU, xử lý lâu → web chậm.
Cache giúp:
✔ Giảm số query đến SQL
✔ Giảm số pipeline chạy lại
✔ Tăng tốc rendering của từng component
✔ Giảm tải cho server CD
Sitecore hỗ trợ nhiều tầng cache:
Lưu các Item đã load từ database để không phải query SQL mỗi lần.
Ví dụ:
Bạn load item /sitecore/content/Home 20 lần → chỉ query SQL 1 lần.
Kiểm tra trong log:
Lưu dữ liệu đã được xử lý sau item load, bao gồm:
Standard values
Field values đã parse
Layout field đã phân tích
Loại cache quan trọng nhất để render nhanh cho khách hàng CD.
Mỗi Rendering có thể bật HTML Cache trong Rendering Properties:
📝 HTML Cache lưu HTML đã render → request tiếp theo trả về ngay lập tức.
Dùng với WebForms, bây giờ phần lớn Sitecore SXA/Headless không dùng nữa.
Cache file media đã resize, crop, optimize.
File được lưu trong thư mục:
Khi Sitecore khởi động, nó load các item quan trọng vào bộ nhớ để tăng tốc.
Sitecore cũng có thể dùng output caching nhưng hạn chế.
Truy cập:
Hoặc trong Experience Editor:
🛠 Thiết lập:
✔ Cacheable = True
✔ Vary By Data = True (rất quan trọng)
✔ Vary By Parameters = True (nếu component có params)
✔ Vary By QueryString (nếu search)
✔ Vary By Device (nếu mobile)
❌ Vary By User (thường không dùng, trừ profile cá nhân)
Không cache nếu:
❌ Component có dữ liệu thay đổi theo user login (cart, profile, đánh giá SP)
❌ Component hiển thị thời gian thực (giờ hệ thống, thời tiết, real-time)
❌ Component sai khi dùng chung cho nhiều người
“Vary By” quyết định khi nào rendering cache được dùng lại.
| Vary by | Khi nào dùng |
|---|---|
| Data | Component lấy datasource item |
| Parameters | Component có rendering params |
| Query String | Component search hoặc filter |
| Device | Website nhiều layout mobile/desktop |
| Login | Component chỉ hiển thị nếu login |
Bạn có thể clear:
HTML Cache
Item Cache
Data Cache
Prefetch Cache
Media Cache
Hoặc:
Nếu muốn sử dụng Redis Cache cho HTML Cache:
Bật cache cho một Rendering (Banner). Kiểm tra xem HTML Cache đã tạo chưa.
Log lại thời gian render có cache vs không cache.
Tạo một component có Vary By Parameters và test giá trị cache khác nhau.