Plugin Perfmatters là công cụ nhẹ nhưng mạnh trong số các plugin tối ưu WordPress. Plugin giúp dễ dàng kiểm soát script và tài nguyên không cần thiết để cải thiện tốc độ tải trang và giảm tải cho server. Điều tôi cảm nhận sau hơn 5 năm sử dụng là plugin không chỉ đơn thuần tăng tốc độ mà còn nâng cao độ ổn định và sự tiện lợi khi quản lý toàn bộ website.
Hiện tại tôi dùng plugin WP Rocket Cache cùng với Perfmatters. Trong bài này, với trường hợp chỉ áp dụng riêng Perfmatters, tôi chia sẻ cách thiết lập cơ bản và lý do chọn từng mục, và kết quả tối ưu.
Nhưng khi vận hành website, bạn sẽ thêm nhiều plugin để cải thiện trải nghiệm người truy cập hoặc mở rộng tính năng. Vấn đề là trong quá trình đó, script và tài nguyên không cần thiết tăng lên, nên lại thường xảy ra tình trạng tốc độ tải trang giảm.
Chính tôi cũng trải qua điều tương tự khi dùng WP Rocket, và dù có thể do kinh nghiệm và kiến thức của tôi còn hạn chế, tôi đi đến kết luận rằng plugin cache khác không phải là lựa chọn tốt hơn.
1️⃣ So sánh các plugin tối ưu
So với clearfy, Autoptimize và Asset CleanUp, lý do tôi chọn Perfmatters là giao diện trực quan nhất và phần giải thích chi tiết cho từng thiết lập, nên gần như không cần tìm trên Google thêm.
Perfmattersđã chọn
Giao diện trực quan nhất, mỗi thiết lập đều có giải thích chi tiết.
Nhập mã vào [Enter a discount code] ở màn hình thanh toán để được giảm 20%.
Ⅱ. Hướng dẫn thiết lập cơ bản Perfmatters
Trong WordPress, các tệp CSS và JS được tải toàn cục, nên mã liên quan vẫn xuất hiện cả ở những trang không dùng đến, và website thường bị chậm đi vì thế. Perfmatters cung cấp đầy đủ các tính năng mà một plugin tối ưu WordPress cần có: loại bỏ mã, kiểm soát tài nguyên và giảm số yêu cầu.
Cách làm này giảm tận gốc vấn đề ‘lãng phí tài nguyên’ mà chỉ plugin cache thì không giải quyết được, nhờ vậy bạn có được tốc độ tải trang tốt hơn và tải server thấp hơn cùng một lúc.
Bắt đầu từ thiết lập chung của Perfmatters, bài viết đi qua tính năng tối ưu cơ bản cho Database và tối ưu tài nguyên; Script Manager được thiết lập bằng cách vào xem website từ trang quản trị. Hướng dẫn bắt đầu từ thiết lập chung, còn Script Manager sẽ được giải thích lại sau.
Perfmatters là plugin chuyên tối ưu, không có tính năng cache. Chỉ riêng các tính năng tối ưu ở tab General cũng đủ cải thiện hiệu năng website đáng kể.
Tính năng emoji mặc định của WordPress tải một tệp JavaScript riêng (wp-emoji-release.min.js) nên phát sinh yêu cầu không cần thiết; nếu đánh dấu, script này sẽ không được tải.
Emoji thông thường trong bài viết do trình duyệt tự vẽ nên không bị ảnh hưởng. Tuy nhiên, nếu chèn emoji trực tiếp vào header hoặc footer, một số theme có thể bị lỗi hiển thị.
XML-RPC dễ bị tấn công brute force và các kiểu khác, nên đánh dấu để tắt. Chỉ giữ bật khi có plugin dùng XML-RPC như JetPack.
Remove jQuery Migrate
Đây là mã cho phép mã cũ và mã mới giao tiếp với nhau; thực tế không cần thiết nên đánh dấu để gỡ bỏ.
Hide WP Version
Nếu phiên bản WordPress bị lộ thì lỗ hổng dễ bị tìm ra hơn, nên đánh dấu để gỡ bỏ.
Remove RSD Link
RSD Link chỉ cần cho các client và ứng dụng di động kết nối qua XML-RPC, nên đánh dấu để gỡ bỏ.
Remove Shortlink
Permalink đã được dùng thì không cần giữ shortlink nữa, nên đánh dấu để gỡ bỏ.
Phân loại
Ví dụ
Mô tả
Shortlink
[https://domain.com/?p=123]
Liên kết mặc định dựa trên ID bài viết. Dạng mặc định của WordPress phiên bản cũ.
Permalink
[https://domain.com/post-name/]
Dạng dễ đọc với con người. Tiêu chuẩn của hầu hết website hiện nay.
Disable RSS Feeds
Nếu không cung cấp RSS feed cho website khác, hãy đánh dấu để tắt.
Remove RSS Feed Links
Chỉ xóa liên kết khi đã đánh dấu Disable RSS Feeds.
Disable Self Pingbacks
Khi đặt liên kết nội bộ từ website của bạn sang chính website của bạn, Self Pingbacks sẽ được tạo ra, nên đánh dấu để tắt. Pingbacks tạo ra backlink trong bình luận, không giúp nhiều cho SEO.
Disable REST API
REST API là cửa giao tiếp qua đó ứng dụng, website, plugin, dịch vụ bên ngoài trao đổi dữ liệu bên trong WordPress theo định dạng JSON.
Tình huống
Mô tả
✅ REST API đang bật
Khi ứng dụng hoặc plugin bên ngoài truy cập địa chỉ [https://domain.com/wp-json/wp/v2/posts], có thể nhận dữ liệu danh sách bài viết blog dưới dạng JSON
⚙️ Ví dụ sử dụng REST API
Dùng khi ứng dụng di động tải danh sách bài viết WordPress, hoặc khi công cụ bên ngoài (ví dụ: Rank Math, Elementor) tự động cập nhật dữ liệu website
❌ Khi tắt REST API
Truy cập địa chỉ trên sẽ bị chặn dữ liệu và yêu cầu từ bên ngoài bị từ chối
Nếu để công khai, ai cũng có thể lấy thông tin cơ bản của website, và nhiều plugin kể cả Rank Math chỉ dùng REST API trong môi trường quản trị đã đăng nhập.
Vì vậy, chỉ tắt với người dùng chưa đăng nhập (đã đăng xuất) là an toàn nhất, và có tác động tích cực đến bảo mật hơn là tốc độ.
Nếu tự vận hành một mình, chọn [Disable for Non-Admins]; nếu có người viết khác, chọn [Disable When Logged Out].
Khi đang áp dụng Disable REST API (Logged Out), lỗi vẫn có thể xảy ra dù kết nối AI như Claude đã được chấp thuận.
Nếu gặp lỗi khi kết nối Claude MCP, hãy thêm thiết lập bên dưới vào code snippet.
Script đo độ mạnh mật khẩu vốn chỉ được tải ở màn hình đăng ký, đổi mật khẩu, sửa hồ sơ người dùng thôi, nhưng nếu theme hoặc plugin chèn form như popup đăng nhập vào mọi trang thì [zxcvbn.min.js] sẽ được tải trên toàn website.
/wp-includes/js/zxcvbn.min.js
/wp-admin/js/password-strength-meter.min.js
Đánh dấu để tắt. Thực tế bạn hầu như không cần xem tệp này.
Disable Comments
Nếu website WordPress không dùng bình luận, hãy đánh dấu để tắt tính năng bình luận.
Add Blank Favicon
WordPress mới cài không có tệp [/favicon.ico], nên khi kiểm tra hiệu năng sẽ hiện lỗi 404; tùy chọn này là tính năng dành cho nhà phát triển theme và plugin để loại bỏ lỗi đó. Website WordPress đã thêm favicon thì không cần tùy chọn này.
Remove Global Styles
Từ WordPress 5.9, core tự động chèn CSS inline [global-styles-inline-css] vào [<head>]. Đây là 150~200 dòng CSS inline dành cho theme FSE, nhưng các theme cổ điển như Kadence · GeneratePress vẫn bị chèn dù không dùng FSE, làm HTML nặng hơn và FCP/LCP giảm nhẹ.
Trên màn hình bản 2.6.8, nút gạt [Separate Block Styles] cũ đã đổi thành hộp chọn [Block Style Behavior]. Giá trị mặc định [Separate Styles Inline (Default)] là cách tải tách riêng theo từng block.
WordPress có CSS riêng cho từng block (đoạn văn, hình ảnh, thư viện ảnh, nút, v.v.), và ở trạng thái mặc định, ngay cả CSS của block không dùng cũng được gộp vào stylesheet toàn cục rồi tải. Nếu tách theo block, chỉ CSS của block có trên trang được tải.
Mức dùng CSS giảm tối đa 17%
Ở một số website một trang, LCP cải thiện khoảng 30~50ms
TBT (Total Blocking Time) giảm không đáng kể, nhưng tải phân tích CSS giảm đi
Phân loại
Cách hoạt động
Kết quả tải
❌ Trước đây (mặc định)
Tải toàn bộ CSS của block cùng lúc
Chứa nhiều CSS không cần thiết
Block Style Behavior
Chỉ tải CSS của block có trên trang
Số tệp CSS tăng nhẹ, nhưng tổng dung lượng CSS giảm
Được hỗ trợ chính thức từ WordPress core 6.2, nên các theme · plugin như Kadence, Spectra, GeneratePress không gặp vấn đề. Tuy nhiên, nếu theme hoặc plugin có logic tải CSS riêng hoặc cấu trúc dựa trên FSE (lấy theme.json làm trung tâm) thì có thể xảy ra xung đột style.
Tính năng này dùng filter của WordPress core [should_load_separate_core_block_assets]. Lưu ý rằng CSS được chèn inline vào body chứ không phải head của website, nên công cụ kiểm tra W3C có thể hiện cảnh báo.
Tham khảo: tài liệu perfmatters
Loại
Ví dụ
Lý do
❌ Theme dựa trên FSE
Twenty Twenty-Four, Blockbase, v.v.
Style toàn cục (theme.json) phụ thuộc vào CSS này
⚠️ Theme kiểu builder đời cũ
Avada, WPBakery, Jupiter X, v.v.
Tải trùng giữa cấu trúc CSS riêng và CSS của core
⚠️ Plugin block dựa trên CSS cũ
Ultimate Blocks bản cũ, Stackable (bản cũ), v.v.
Mặc định coi CSS dùng chung của block được tải toàn cục
Disable Heartbeat & Revisions
[Heartbeat] của WordPress là tín hiệu kiểm tra server và website có còn kết nối không; trên trang quản trị, cứ 15 giây nó gửi một yêu cầu POST tới /wp-admin/admin-ajax.php. Chỉ cho phép khi chỉnh sửa bài viết và trang, và đặt tần suất 60 giây để giảm tải cho server.
Heartbeat
Chỉ cho phép với bài viết và trang
Nếu để số bản sửa đổi (Revisions) ở mặc định, chúng sẽ tích tụ mãi trong cơ sở dữ liệu và làm chậm website, nên chỉ cho phép tối đa 3 bản.
Khoảng thời gian tự động lưu bài viết mặc định là 1 phút; ở đây đặt thành 10 phút.
Nếu việc viết bài trong trang quản trị dùng nhiều CPU của server, trang mà người truy cập xem có thể chậm đi dù bạn dùng plugin cache nào. Nếu không dùng Perfmatters, bạn có thể đặt trực tiếp các thiết lập trên trong wp-config.php.
General › Login URL
1 / 2
Tên mục
Check / Uncheck
Mô tả ngắn
Thiết lập Login URL
Thay thế plugin ẩn URL đăng nhập khác
Thiết lập URL đăng nhập
Trang quản trị WordPress mặc định nằm ở yourdomain.com/wp-admin, một cấu trúc dễ bị tấn công về mặt bảo mật. Thay vì plugin khác để ẩn trang quản trị, bạn có thể dùng tính năng mà Perfmatters cung cấp.
JavaScript Defer trì hoãn việc tải để JavaScript chạy sau khi tài liệu HTML được phân tích và hiển thị trước — đây là tính năng ngăn chặn việc chặn hiển thị. DOMContentLoaded đến sớm hơn, nhờ đó FCP và LCP được cải thiện.
Include Inline Scripts
Tùy chọn này trì hoãn cả những đoạn JavaScript ngắn viết trực tiếp trong tài liệu HTML (<script>…</script>). Script inline thường cần cho các thao tác ban đầu như bật tắt menu, nên hãy để tắt nếu không có lý do đặc biệt.
Include jQuery
Nhiều plugin và theme phụ thuộc vào jQuery, nên nếu đưa jQuery vào diện tải chậm, một số phần của website như bật tắt menu, slider, popup có thể bị hỏng. Giữ ở trạng thái tắt và chỉ bật sau khi đã kiểm tra, khi thật cần.
Excluded from Deferral
Nếu nhập đường dẫn tệp của các script không chạy đúng khi bị trì hoãn (slider, kiểm tra form, menu, v.v.), các script đó sẽ được loại khỏi Defer và tải ngay.
↳ Trì hoãn thực thi JavaScript (Delay JavaScript execution)
Sau khi trang tải xong, tùy chọn này dừng việc thực thi JavaScript cho đến khi có tương tác của người dùng (cuộn, nhấp, chạm, v.v.), nhờ đó hoãn các JavaScript không thiết yếu như quảng cáo · phân tích · script theo dõi bên ngoài, giúp cải thiện LCP (Largest Contentful Paint) và FCP.
Nếu [Defer] là chạy sau khi phân tích HTML thì [Delay] hoãn chính việc thực thi cho đến khi người dùng có hành động. Với script cần chạy ngay như tự động phát hay popup ban đầu, hãy đặt ngoại lệ.
Delay JavaScript: nếu bật, nên bật cả 3 tùy chọn con.
Tùy chọn
Trạng thái khuyến nghị
Mô tả
Delay Behavior
Chỉ trì hoãn ‘script không thiết yếu’, không phải toàn bộ JS Khuyến nghị: [Only Delay Specified Scripts (Default)]
Delay Timeout
Tự động chạy sau một khoảng thời gian dù người dùng không làm gì (cho quảng cáo và thống kê, mặc định 15 giây)
Nếu trì hoãn mọi tệp, một số plugin hoặc theme có thể gặp vấn đề; hãy chọn plugin và theme đã cài trong [Quick Exclusions] để loại trừ. Nếu không có trong danh sách, hãy nhập trực tiếp vào [Excluded from Delay].
Delay Timeout
Dù người dùng không thao tác gì (nhấp, cuộn, v.v.), sau một khoảng thời gian nhất định, JavaScript bị trì hoãn sẽ tự động chạy. Mặc định là 15 giây.
Ở trạng thái trì hoãn thực thi, người dùng phải nhấp vào gì đó thì JS mới tải, rồi thao tác vừa nhấp (mở menu, bấm nút, v.v.) mới chạy, nên phản hồi sau khi nhấp có thể hơi chậm. Tùy chọn này là tính năng loại bỏ độ trễ phản hồi đó.
Tình huống
Trạng thái Delay JS mặc định
Khi bật Disable Click Delay
Người dùng nhấp
Sự kiện nhấp chạy sau khi tải JS → có độ trễ nhỏ
JS chạy ngay → phản hồi nhấp nhanh
Enable FastClick
Khi bật trì hoãn thực thi, có thể phải nhấp hai lần mới chạy; hiện tượng này xảy ra với mọi plugin cache và tối ưu. Tùy chọn này khắc phục điều đó.
JavaScript › Minify
↳ Thu nhỏ JavaScript (Minify JavaScript)
Loại bỏ các ký tự không cần thiết (khoảng trắng, xuống dòng, chú thích, v.v.) khỏi tệp JavaScript, tức là tính năng thu nhỏ tối đa kích thước tệp, nhờ đó giảm cả dung lượng truyền tải lẫn thời gian phân tích cú pháp (Parsing).
Tệp đã được thu nhỏ có đuôi [.min.js]. Nếu Google PageSpeed Insights hoặc Lighthouse hiện cảnh báo [Minify JavaScript], hãy bật tùy chọn này để nén cả những script chưa được thu nhỏ.
CSS › Unused
Thiết lập CSS có 2 cách: loại bỏ CSS không dùng và thu nhỏ CSS.
↳ Loại bỏ CSS không dùng (Remove Unused CSS)
Tính năng tìm và loại bỏ mã CSS thực sự không được dùng trên trang. Theme và plugin WordPress tải tệp CSS dùng chung ở hầu hết các trang, nên CSS không dùng làm tăng kích thước tệp và thời gian chặn hiển thị, ảnh hưởng xấu đến LCP và FCP.
Khi bật, tùy chọn sẽ chỉ trích xuất CSS thực sự cần cho từng trang rồi chèn vào, và rất hiệu quả với website dùng theme lớn (Elementor, Divi, Avada, v.v.) hoặc nhiều plugin. Nếu một số style bị thiếu, như với slider hay trình tạo form, hãy thêm vào [Excluded Stylesheets].
Used CSS Method
CSS đang dùng có thể được chèn dạng inline hoặc tách thành tệp riêng để tải.
Inline (mặc định): Chèn trực tiếp CSS cần thiết vào tài liệu HTML. Không có yêu cầu CSS bên ngoài nên có lợi cho FCP và LCP, nhưng HTML của mỗi trang nặng hơn. Khuyên dùng cho website dạng blog có ít CSS.
File: Tạo CSS đang dùng thành tệp .css riêng rồi tải. Có thể tận dụng cache trình duyệt nhưng thêm một yêu cầu bên ngoài. Khuyên dùng cho website lớn hoặc trang dạng builder có nhiều CSS.
Stylesheet Behavior
Tùy chọn Stylesheet Behavior là thiết lập quyết định cách xử lý các tệp CSS không cần thiết.
Cài đặt
Cách hoạt động
Đặc điểm
🕒Delay (Default)
Tải stylesheet hơi trễ một chút.
Là thiết lập mặc định, chạy ổn định trên hầu hết website và có lợi cho hiển thị ban đầu (FCP · LCP).
Nhập CDN thông dụng như KeyCDN hoặc Bunny CDN để phân phối tệp CSS qua CDN. Cloudflare tự động cache mọi tài nguyên được gửi ở cấp DNS, nên không cần thêm vào mục này.
CSS › Minify
↳ Thu nhỏ tệp CSS (Minify CSS)
Loại bỏ khoảng trắng và chú thích trong tệp CSS để giảm kích thước tệp. Nếu tính năng của plugin bị lỗi hoặc không hiện trên trang người truy cập, hãy thêm tệp CSS đó.
Preloading › Preload
Đây là tính năng tải trước tài nguyên để tăng tốc hiển thị, giúp cải thiện hiển thị màn hình đầu (LCP) và tốc độ chuyển trang. Gồm 3 phần: các mục tải trước cơ bản, tải suy đoán và kết nối sớm (Preconnect, DNS Prefetch).
Hạng mục
Ảnh hưởng đến tải server
Ảnh hưởng đến Core Web Vitals (LCP / FCP / TTFB)
Preload
🔸 Tăng nhẹ
✅ Cải thiện LCP / ⚠️ TTFB không đổi
Speculative Loading
🔺 Trung bình~cao
⚡ Cải thiện LCP · FCP của trang tiếp theo / ⛔ Ảnh hưởng không đáng kể đến trang hiện tại
Preconnect
🔹 Rất nhỏ
✅ Cải thiện FCP · LCP (giảm độ trễ kết nối tới tài nguyên bên ngoài)
DNS Prefetch
⚪ Gần như không có
⚪ Có thể cải thiện FCP chút ít (tác động gián tiếp)
Preload Critical Images
Tải trước ảnh quan trọng để rút ngắn thời gian LCP (Largest Contentful Paint).
Chrome xử lý ảnh tải trước với mức ưu tiên cao tối đa chỉ 2 ảnh, nên chỉ định 2~3 ảnh thôi. Nếu chỉ định quá nhiều, server sẽ bị tải và ảnh có thể hiện trước CSS, làm điểm CLS (Cumulative Layout Shift) xấu đi.
Preload
Tải trước các tài nguyên như phông chữ để cải thiện Largest Contentful Paint (LCP).
Tìm đối tượng trong tab Network của Google PageSpeed hoặc Chrome DevTools. Tải trước quá nhiều tài nguyên có thể làm tăng total blocking time (TBT).
Cloudflare Early Hints
Early Hints (HTTP 103): tính năng cho phép trình duyệt bắt đầu tải tài nguyên trước khi server tạo xong HTML, tương tự preload nhưng chạy sớm hơn. Hãy đánh dấu nếu bạn dùng Cloudflare.
Trình duyệt dùng thuộc tính HTML quy định thứ tự tải tài nguyên, ví dụ [<img fetchpriority="”high”">] hoặc [“low”]. Preload là bắt buộc, Fetch Priority chỉ là khuyến nghị, nên trình duyệt vẫn có quyền tự quyết.
Tên class của ảnh thường được ngăn bằng dấu gạch nối (-) hoặc gạch dưới (_), nhưng nếu Chrome DevTools hiển thị không có gạch nối thì hãy nhập đúng như hiển thị.
Disable Core Fetch
Từ WordPress 6.3, core tự động gắn thuộc tính [<img fetchpriority="”high”">] cho ảnh trên cùng, nhưng không phải lúc nào cũng nhận diện đúng LCP (nội dung lớn nhất). Khi bật tùy chọn này, thiết lập tự động của core bị chặn và trong Perfmatters chỉ áp dụng giá trị fetchpriority do bạn tự đặt.
Preloading › Speculative Loading
Tải suy đoán hỗ trợ 4 chế độ Auto(Default), Prefetch, Prerender và Disabled; 3 chế độ ngoài Disabled lại có thể chọn mức tự động (mặc định), thận trọng, vừa phải hoặc chủ động.
Chế độ
Mô tả
Đặc điểm
Auto (Default)
Core WordPress tự động điều khiển tải suy đoán
Chạy ở mức Conservative mặc định và ổn định
Prefetch
Tải trước tài nguyên của trang tiếp theo (không hiển thị)
Tải nhẹ và có tác dụng tăng tốc
Prerender
Hiển thị trước trang đích của liên kết ở chế độ nền
Chuyển trang nhanh nhất nhưng tải server lớn
Disabled
Tắt hoàn toàn tải suy đoán
Gỡ toàn bộ mã liên quan; phù hợp với server chậm hoặc shared hosting
Speculative Loading
└─ Chế độ: Auto(Default),Prefetch,Eagerness
├─ Thiết lập Eagerness
│ ├─ Auto (mặc định)
│ ├─ Conservative
│ ├─ Moderate
│ └─ Eager
│
└─ Disabled
Mức Eagerness
Mô tả
Đặc điểm
Auto (mặc định)
Core WordPress tự chọn mức phù hợp
Mặc định chạy ở mức Conservative
Conservative
Chỉ tải trước khi ý định nhấp đã rõ
Ổn định nhất, tiết kiệm tài nguyên
Moderate
Tải trước khi rê chuột (khoảng 200ms)
Cân bằng tốt giữa tốc độ và hiệu quả
Eager
Tải trước ngay cả khi tín hiệu còn yếu
Nhanh nhất nhưng dùng nhiều tài nguyên nhất
Hãy thiết lập có tính đến việc nó có thể dùng nhiều CPU của server hoặc làm chậm toàn bộ website.
[Tải trước liên kết] (Instant Page / Prefetch) của plugin cache là tính năng tải trước trang khi rê chuột lên liên kết. Tải suy đoán hiệu quả hơn với server, nên chỉ dùng một trong hai; nếu dùng tải suy đoán, hãy tắt tải trước liên kết của plugin cache.
Phân loại
Instant Page (Prefetch)
Speculative Loading
Cách thức kỹ thuật
Dùng JavaScript để fetch trước khi rê chuột lên thẻ [<a>]
Dựa trên Speculation Rules API có sẵn trong trình duyệt
Thời điểm chạy
Khi người dùng rê chuột lên liên kết
Trình duyệt tự dự đoán ‘khả năng chuyển trang’ (rê chuột, nhấp, chạm và nhiều tín hiệu khác)
Phạm vi tải
Chỉ tải trước HTML của trang được liên kết
Có thể cả Prefetch (chỉ tài nguyên) lẫn Prerender (cả hiển thị)
Mức áp dụng
Mức fetch đơn (dựa trên JavaScript)
Tối ưu ở cấp mạng · hiển thị bên trong trình duyệt
WordPress Tích hợp
Dựa trên script bên ngoài (instant.page)
Tích hợp vào core WordPress 6.8
Hiệu quả hiệu năng
Nhanh nhưng trình duyệt không kiểm soát được
Nhanh và ổn định hơn, tiết kiệm tài nguyên
Preloading › Connection
Đây là tính năng, trước khi yêu cầu tài nguyên bên ngoài, chuẩn bị sẵn kết nối mạng.
Hạng mục
Mô tả
Preconnect
Tạo sẵn kết nối mạng tới tài nguyên bên ngoài (phông chữ, CDN, script phân tích, v.v.). Trình duyệt thiết lập kết nối sớm trước yêu cầu HTTP nên loại bỏ được độ trễ khứ hồi.
DNS Prefetch
Phân giải tên miền trước khi người dùng nhấp. Dùng khi muốn rút ngắn thêm chút thời gian tra cứu DNS.
Preconnect Áp dụng cho mọi mục sẽ gây tải cho tài nguyên server, nên chỉ đặt khoảng 2~3 mục.
//encrypted-tbn1.gstatic.com
//encrypted-tbn2.gstatic.com
//ep1.adtrafficquality.google
//fundingchoicesmessages.google.com
//pagead2.googlesyndication.com
//tpc.googlesyndication.com
//www.googleadservices.com
//googleads.g.doubleclick.net
//www.google.co.kr
//www.googletagservices.com
//www.youtube.com
//analytics.google.com
//www.google-analytics.com
Hầu hết plugin cache đều có tính năng Preconnect / Prefetch nên nếu dùng cùng plugin cache, hãy tắt hai tính năng này.
Preconnect/DNS Prefetch
Áp dụng
Perfmatters dùng riêng
Khi dùng cùng plugin cache
Lazy Loading › Images
Nếu Preload là các tệp hiển thị ngay trên màn hình thì Lazy Load là các ảnh hiển thị sau khi cuộn. Việc tải được trì hoãn cho đến khi người dùng cuộn xuống và thực sự cần xem ảnh.
Tùy chọn này áp dụng cách [Trì hoãn tải ảnh ngoài màn hình] mà Google PageSpeed khuyến nghị, nên không ảnh hưởng đến SEO.
Images
Tính năng Preload Critical Images đã tải trước 2 ảnh trên cùng và tự loại chúng khỏi LazyLoad, nên đặt thêm Exclude Leading Images có thể gây lãng phí tài nguyên do xử lý trùng.
Tải chậm không áp dụng cho ảnh nền.
iFrames and Videos
Tính năng trì hoãn tải iframe và video; áp dụng cho nội dung nhúng như YouTube, Vimeo, SoundCloud, Google Maps và video chèn bằng thẻ [<video>].
Nếu có video YouTube, hãy bật tính năng ảnh thu nhỏ xem trước. Thay cho iframe thật, trang hiển thị ảnh thu nhỏ nhẹ và biểu tượng phát SVG, và chỉ tải iframe khi được nhấp, nhờ đó giảm TBT (Total Blocking Time).
Exclude from Lazy Loading
Nếu trì hoãn những ảnh cần hiện ngay khi trang vừa mở, như ảnh đại diện hay logo, màn hình trông trống hoặc bị nhấp nháy, và nếu ảnh đó tính vào LCP thì điểm số xấu đi. Hãy nhập đường dẫn tệp (example.png) hoặc tên class (class=”example”) của ảnh muốn loại trừ.
Nếu đang dùng theme GeneratePress, để loại trừ logo chỉ cần nhập class [is-logo-image].
Để loại trừ ảnh đại diện (thumbnail) của bài viết blog, hãy nhập [class=”attachment-full size-full”].
ShortPixel hoặc Imagify và các plugin cung cấp ảnh WebP tương tự sẽ xuất ảnh trong thẻ [<picture>]. Nếu nhập cả thẻ thì mọi ảnh trên website đều bị loại trừ, nên nếu được, hãy chỉ định class hoặc đường dẫn cụ thể.
picture
.is-logo-image
.featured-image
/uploads/header/
Exclude by Parent Selector
Khi thẻ ảnh không có class riêng, như ảnh đại diện hay thư viện ảnh, tùy chọn này loại trừ bằng class của container cha.
Ví dụ, nếu bộ chọn cha như sau,
<div class=”featured-gallery”>
<img src=”image1.jpg”>
</div>
hãy nhập như bên dưới.
featured-gallery
Threshold
Điều chỉnh ngưỡng (Threshold) để ảnh được tải trước một chút trước khi hiện trên màn hình.
Giá trị mặc định là 0px; để giảm cảm giác ảnh đột ngột hiện ra khi cuộn, hãy tăng nhẹ lên 100px hoặc 200px. Website có nhiều script quảng cáo như Mediavine, AdThrive nên đặt tối thiểu 300px.
DOM Monitoring
Đây là tính năng phát hiện khi có phần tử mới được thêm vào trang và tự động áp dụng LazyLoad cho ảnh, iframe… mới thêm vào. Cần thiết cho website có tab, cuộn vô hạn, slider, phân trang AJAX và tương tự, tức là website có nội dung động.
DOMContentLoaded là thời điểm DOM ban đầu hoàn tất, còn DOM Monitoring phát hiện các thay đổi sau đó.
Add Image Dimensions
Thêm chiều rộng và chiều cao còn thiếu cho ảnh.
Fade In
Ảnh hiện ra đột ngột: tính năng bổ trợ hình ảnh biến điều đó thành hiệu ứng chuyển mượt mà.
⚙️Thiết lập Lazy Loading khuyến nghị
Các thiết lập khuyến nghị đã giải thích ở phần Lazy Loading như sau.
Tùy chọn
Trạng thái khuyến nghị
Mô tả
Images
Áp dụng Lazy Load cho mọi ảnh
Exclude Leading Images
⚙️ 0 (Default)
Nếu đã đặt số ảnh trong PreLoad, giữ ở 0
iFrames and Videos
Trì hoãn tải YouTube và video nhúng
YouTube Preview Thumbnails
Chỉ tải ảnh thu nhỏ trước, tải video khi được nhấp
Exclude from Lazy Loading
⛔ Để trống
Tự chỉ định khi cần loại trừ tệp cụ thể
Exclude by Parent Selector
⛔ Để trống
Tự chỉ định khi cần loại trừ container cụ thể
Threshold
📏 300
Bắt đầu tải trước khi gần viewport
DOM Monitoring
Giữ Lazy Load khi DOM thay đổi động
Add Image Dimensions
Ngăn CLS (tự thêm width/height)
Fade In
Hiệu ứng hiện dần mượt mà (UX tốt hơn)
Lazy Loading › CSS Background Images
CSS Background Images
Có thể trì hoãn tải ảnh nền trong stylesheet CSS.
Trong ô background selector, nhập ID hoặc class cụ thể tìm thấy ở container chứa ảnh nền hoặc container cha. Nhập mỗi dòng một mục, không kèm tiền tố ([.], [#]).
Exclude Leading loại một số container ảnh nền nhất định, tính từ cái được tải đầu tiên, ra khỏi tải chậm. Hãy dùng tính năng Exclude Leading nếu bạn dùng nhiều ảnh nền.
Tùy chọn
Trạng thái khuyến nghị
Mô tả
Background Images
Trì hoãn tải thuộc tính CSS [background-image:]. (ví dụ: nền phần Hero)
Background Selectors
⛔ Để trống
Chỉ nhập khi chỉ định class nền cụ thể (.div-background-class)
Exclude Leading
⚙️ 0 (Default)
Ảnh nền đầu tiên tải ngay (Hero chính, v.v.)
Lazy Loading › Lazy Elements
Lazy Elements
Bật trì hoãn phần tử trong DOM.
DOM (Document Object Model) là cấu trúc cây phần tử do trình duyệt tạo ra khi phân tích tài liệu HTML; DOM càng lớn thì chi phí cho mức dùng bộ nhớ, thời gian tính style, tính toán lại bố cục (Reflow) càng tăng.
Phân loại
Số node trong body
Trạng thái
Bình thường
800 trở xuống
🟢 Bình thường
Cảnh báo
Hơn khoảng 800
🟠 Chú ý
Lỗi
Hơn khoảng 1.400
🔴 Cảnh báo
Hầu hết plugin cache không có tính năng này, nên hãy bật cả khi dùng cùng plugin cache. Bạn cũng có thể chỉ định phần tử và container cha cụ thể.
Tùy chọn
Trạng thái khuyến nghị
Mô tả
Elements
Trì hoãn tải chính các phần tử HTML (giảm kích thước DOM, giảm tải hiển thị ban đầu)
Element Selectors
⛔ Để trống
Chỉ nhập khi muốn trì hoãn phần tử trong container hoặc phần cụ thể
Fonts
Chức năng chính của tab Fonts chia làm hai: tải Google Fonts cục bộ hoặc tắt Google Fonts.
Local Google Fonts so với tắt Google Fonts
Local Google Fonts
Khi dùng Local Google Fonts, hãy tắt tính năng tương tự ở theme hoặc plugin cache khác.
Tắt Google Fonts
Khi host Google Fonts cục bộ, phông không được tải từ bên ngoài (server của Google) mà được lưu trên website và tự host, nên số yêu cầu mạng giảm và LCP cũng được cải thiện.
Tắt Google Fonts chặn hoàn toàn Google Fonts và thay bằng phông mặc định của trình duyệt (ví dụ: Arial, Helvetica, sans-serif). Số yêu cầu mạng ít nhất, nhưng tính nhất quán của thiết kế có thể bị phá vỡ.
Display Swap
Ngay cả trước khi web font được tải, trình duyệt hiển thị văn bản trước bằng phông mặc định của hệ thống, nên người dùng có thể đọc nội dung ngay, và LCP cùng tốc độ cảm nhận được cải thiện. Không có tác dụng cải thiện CLS.
Print Method
Cách xuất stylesheet cục bộ mặc định là tệp (File); nếu đổi sang inline (Inline), CSS được chèn trực tiếp vào HTML, giúp giảm chặn hiển thị và cải thiện FCP, LCP. Đổi lại, dung lượng trang tăng nhẹ.
Limit Subsets
Chỉ tải các bộ ký tự cần thiết để giảm dung lượng tệp phông. Ký tự của ngôn ngữ không được chọn có thể không hiển thị, nên thiết lập thông thường là Latin(Default) cộng thêm một ngôn ngữ của nước mình.
Plugin đa ngôn ngữ: nếu đang dùng, lựa chọn tốt hơn là plugin cache xử lý toàn bộ Google Fonts và Display Swap trong cache.
CDN URL
Nếu dùng CDN thông thường không phải Cloudflare CDN, hãy nhập URL để phân phối phông cục bộ qua CDN.
Xóa phông cục bộ
Xóa phông cục bộ khi bạn đổi theme, chọn phông khác hoặc chọn phông khác trong plugin cache.
⤵️ Thiết lập Fonts khuyến nghị
Hạng mục
Trạng thái khuyến nghị
Mô tả
Local Google Fonts
Tự host Google Fonts trên website thay vì tải từ bên ngoài (server của Google). Yêu cầu mạng và độ trễ tải phông giảm, giúp cải thiện LCP.
Display Swap
Hiển thị phông mặc định của hệ thống trước khi tải web font để giảm hiện tượng chữ nhấp nháy (FOUT) khi tải trang.Cải thiện LCP và tốc độ tải cảm nhận, nhưng không cải thiện CLS.
Print Method
Mặc định là kiểu File; khi chọn Inline, CSS được chèn vào HTML, có lợi cho giảm tối đa việc chặn hiển thị và cải thiện FCP/LCP. Tuy nhiên, dung lượng HTML có thể tăng nhẹ.
Limit Subsets
Chỉ tải các bộ ký tự cần thiết để giảm dung lượng phông và tăng tốc độ tải. Ví dụ: chọn [Latin(Default)] + [Korean]. Tiếng Tây Ban Nha đã nằm trong Latin nên không cần thêm. Tiếng Ấn Độ cần subset riêng (Devanagari, v.v.). Nên giữ cả khi dùng plugin đa ngôn ngữ.
CDN URL
⚙️ Tùy chọn
Nếu dùng CDN riêng ngoài Cloudflare thì có thể chỉ định đường dẫn. Thường để trống.
Clear Local Fonts
🔁 Chạy khi cần
Khi đổi theme, thay phông hoặc đổi plugin cache, phông cục bộ cũ sẽ bị xóa và cache mới được tạo.
Google Fonts tắt
Chặn hoàn toàn Google Fonts thì yêu cầu bên ngoài biến mất, nhưng mọi phông do theme chỉ định đều bị gỡ và thay bằng phông mặc định (Arial, v.v.) một cách tự động. Tính nhất quán của thiết kế có thể bị phá vỡ, nên khuyến nghị giữ trạng thái tắt khi dùng Local Google Fonts.
CDN
CDN URL rewrite hoạt động bằng cách nhập URL rồi thêm các thư mục cần đưa vào. Khi đặt cả wp-content và wp-includes, mọi ảnh, CSS, JS và phông đều được gửi qua CDN, và có thể loại trừ các tệp không muốn đưa lên CDN.
Analytics
Do Google tạo ra: Site Kit và các plugin tương tự có thể kết nối Google Analytics. Tuy nhiên, chỉ cần chạy kiểm tra Google PageSpeed Insights sau khi cài Site Kit là đã thấy hiệu năng giảm. Hãy bật nếu bạn muốn kết nối Google Analytics bằng thiết lập cục bộ để tăng tốc.
Nếu thiết lập Google Analytics riêng ở cả plugin SEO, kể cả Site Kit, như Yoast và RankMath, số yêu cầu HTTP sẽ tăng từ 1 lên 2, nên chỉ chọn dùng ở một bên.
Code › Snippets
Nơi đăng ký các đoạn mã PHP · CSS · JS · HTML và bật tắt chúng. Thêm bằng [New Snippet].
Đoạn snippet chặn lỗi kết nối Claude MCP được thiết lập như bên dưới.
<> Code
All Snippets / MCP REST API exception
ActiveSave Snippet④
Name②
MCP REST API exception
Location
Everywhere⌄
Type
PHPJSCSSHTML
Code③
<?php
1// Let WP Rocket MCP (OAuth) requests through the Perfmatters REST API restriction
②Nhập tên, giữ nguyên [Location] là [Everywhere] và [Type] là [PHP].
③Lấy mã bằng [Copy] trên màn hình này rồi dán vào ô mã bên dưới dòng [<?php].
④Bật công tắc sang [Active] rồi bấm [Save Snippet].
Code › Global Scripts
Ô để viết mã chèn vào header · body · footer của toàn website. Dùng cho mã phải có ở mọi trang như thẻ phân tích hoặc thẻ xác minh.
Code › Settings
Có xuất · nhập đoạn mã, theme của trình soạn thảo và Safe Mode. Nếu website không mở được vì một đoạn mã, bạn có thể vào qua Recovery URL để tắt nó.
Tools › Plugin
Các tính năng khác ở tab Tools là tùy chọn, chỉ xem hình bên dưới là đủ hiểu. Có hai thứ cần bật: Script Manager và các tùy chọn nâng cao trong số những thiết lập đã giải thích.
Tools › Settings
Database
Nếu plugin cache không có tối ưu DB thì có thể dùng tính năng của Perfmatters; dùng bên nào tiện hơn cũng được.
Ⅲ. Cách dùng Perfmatters Script Manager
Script Manager của Perfmatters dùng được sau khi bấm nút ‘Xem website’ trên trang quản trị. Bố cục trang quản trị có thể khác tùy theme và plugin đang dùng, và có thể ngăn script không cần thiết tải bằng cách tắt nút bật của mục đó.
Ví dụ, nếu giữ lại Dashicons — vốn có thể tắt trong thiết lập chung của Perfmatters — rồi cần tắt chỉ ở một số trang, bạn có thể làm việc đó trong Script Manager.
Ⅳ. Kết luận & FAQ
Perfmatters không chỉ là một [plugin tăng tốc] loại bỏ script và tài nguyên, mà là công cụ kiểm soát sự kém hiệu quả trong toàn bộ cấu trúc WordPress để nâng cao cả độ ổn định lẫn hiệu quả quản lý website.
Điều quan trọng không phải là [bật mọi tính năng], mà là hiểu đặc điểm của website và cấu trúc plugin rồi áp dụng có chọn lọc.
Perfmatters là plugin làm nhẹ chính cấu trúc website bằng cách kiểm soát mã và yêu cầu không cần thiết. Plugin kiểm soát cách tải CSS · JS · phông chữ · hình ảnh để nâng điểm Core Web Vitals và giảm tải server.
Perfmatters [dùng để nâng hiệu năng toàn website], còn Asset CleanUp [dùng để kiểm soát từng tài nguyên riêng lẻ].
Với người vận hành WordPress thông thường, Perfmatters là lựa chọn thực tế và ổn định hơn.
Kết hợp hiệu quả nhất là WP Rocket + Perfmatters.
WP Rocket đảm nhận tối ưu tĩnh như cache · nén · tải trước, còn Perfmatters đảm nhận tối ưu động bằng cách kiểm soát mã · tài nguyên · yêu cầu, nên hai plugin không chồng chéo nhau.
🧭Bài viết liên quan đến WP Rocket · Perfmatters15 bài viết · 3 công cụ
🗂️ WordPress là gì?
📋 Hướng dẫn cài đặt WP Rocket📄 Hướng dẫn Perfmatters📄 WP Rocket With Perfmatters📄 WP Rocket MCP Server📄 WP Rocket với URL tiếng Hàn📄 nginx njs📄 Bộ nhớ đệm đa ngôn ngữ của WP Rocket📄 Bộ nhớ đệm và gclid
📄 Kiểm tra tốc độ WP Rocket📝 Plugin cache · tối ưu hóa📝 Ví dụ cải thiện tốc độ
📋 Cache: định nghĩa và mọi lĩnh vực📄 Cache website & cache phía server
📋 BEST hosting TOP 7📄 Hosting nhanh 2026
🛠️ Phát hiện WordPress🛠️ Tra cứu tên miền WHOIS🛠️ Kiểm tra IP của tôi
ℹ️ Thông báo tiếp thị liên kết Nội dung trên trang này có chứa liên kết affiliate (tiếp thị liên kết). Khi khách truy cập mua sản phẩm hoặc dịch vụ qua các liên kết này, trang sẽ nhận hoa hồng từ bên bán. Trong quá trình đó, số tiền người mua phải trả (sẽ giảm khi có chương trình khuyến mãi ↓) không hề tăng lên. Giá, khuyến mãi và tình trạng hàng được đăng theo thời điểm viết bài và có thể khác với thực tế, vì vậy hãy kiểm tra lại lần cuối với bên bán trước khi mua. Việc chọn và đánh giá sản phẩm dựa trên tiêu chí riêng của trang; việc có nhận hoa hồng hay không không ảnh hưởng đến thứ tự giới thiệu hay nội dung đánh giá.