DNS Lookup
120 msISP resolver, chưa cache
Trình duyệt hỏi DNS resolver: domain này trỏ về IP nào.
Fix ở đâu: DNS prefetch/preconnect + dùng resolver nhanh (Cloudflare 1.1.1.1).
Nhấn ▶ Chạy để xem từng bước một trang WordPress thật sự tải: từ DNS lookup tới khi người dùng bấm được nút đầu tiên. Bật Đã tối ưu để thấy chính xác bước nào nhanh hơn — và tại sao.
120 msISP resolver, chưa cache
Trình duyệt hỏi DNS resolver: domain này trỏ về IP nào.
Fix ở đâu: DNS prefetch/preconnect + dùng resolver nhanh (Cloudflare 1.1.1.1).
5 đoạn cấu hình thật, copy về là chạy được — nhớ đổi placeholder (domain, host…) theo dự án của bạn.
Trình duyệt (và CDN) giữ ảnh/CSS/JS lâu dài, khỏi tải lại ở lần ghé sau.
location ~* \.(css|js|jpg|jpeg|png|webp|svg|woff2?)$ {
expires 30d;
add_header Cache-Control "public, no-transform, immutable";
}Đổi đường dẫn / danh sách đuôi file theo cấu trúc theme của bạn.
Giảm 60-80% dung lượng HTML/CSS/JS truyền qua mạng, TTFB nhanh hơn.
gzip on;
gzip_comp_level 5;
gzip_types text/plain text/css application/javascript application/json
application/xml image/svg+xml;
# Nếu module Brotli đã cài:
brotli on;
brotli_comp_level 5;
brotli_types text/plain text/css application/javascript application/json;Brotli cần module ngx_brotli — cài thêm nếu server chưa có.
DB query giảm từ hàng trăm xuống chỉ vài chục — chính là bước "DB Queries" trong mô phỏng.
// wp-config.php — cần plugin object-cache (vd: Redis Object Cache) đã cài
define( 'WP_REDIS_HOST', 'your-redis-host' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_TIMEOUT', 1 );
define( 'WP_CACHE_KEY_SALT', 'example.com:' );your-redis-host là placeholder — trỏ về Redis instance thật của bạn.
Bỏ chặn render: trang vẽ ra ngay, script chạy sau khi HTML đã parse xong.
<!-- Font/CSS quan trọng: mách trước cho trình duyệt -->
<link rel="preload" href="/fonts/main.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/critical.css" as="style">
<!-- Script không cần chạy ngay: không chặn parser -->
<script src="/assets/app.js" defer></script>Chỉ preload thứ thực sự dùng ở above-the-fold — preload thừa lại phản tác dụng.
HTML được trả thẳng từ edge (CDN HIT) thay vì chạm origin mỗi request.
Rule name: Cache HTML for example.com
When incoming requests match:
Hostname equals "example.com"
Then:
Cache eligibility: Eligible for cache
Edge TTL: 2 hours
Browser TTL: 30 minutesCấu hình qua Cloudflare Dashboard → Caching → Cache Rules. Đổi domain theo dự án.
Khi bạn gõ một URL và nhấn Enter, "thời gian tải trang" thực chất là tổng của rất nhiều bước nhỏ nối tiếp nhau: phân giải DNS, bắt tay TCP/TLS, server xử lý PHP và truy vấn database, rồi trình duyệt tải, parse và vẽ ra màn hình. Mỗi bước có thể nhanh hoặc chậm độc lập — và một bước chậm (ví dụ database chưa cache) có thể kéo dài toàn bộ chuỗi phía sau nó.
Công cụ này mô phỏng lại đúng chuỗi đó theo 2 kịch bản: một website WordPress điển hình chưa được tối ưu, và cùng website đó sau khi tối ưu đúng cách. Con số dùng trong mô phỏng dựa trên các case thực tế phổ biến — không phải dữ liệu real-time của website bạn (muốn đo thật, dùng PageSpeed Checker).
defer/preload
buộc trình duyệt chờ tải xong mới được vẽ bất kỳ pixel nào.
Mỗi stage-card đều có mục "Fix ở đâu" — trỏ thẳng tới lớp hạ tầng cần sửa (Nginx, wp-config.php, HTML head, hoặc Cloudflare). Phần Starter pack bên dưới gom sẵn 5 đoạn cấu hình thật tương ứng, copy về là áp dụng được ngay — chỉ cần đổi placeholder theo dự án của bạn.
D-Solutions tối ưu tốc độ WordPress/WooCommerce: cache, database, CDN, Core Web Vitals — đo được, chứng minh được bằng số liệu thật.