If you’re reading this, you’re likely tired of the lời khuyên về hiệu suất WordPress tiêu chuẩn. The usual routine—installing WP Rocket, adding an image optimizer plugin, and throwing in an asset manager—often leads to a paradox: bạn cài đặt plugin để tăng tốc trang web, nhưng chính các plugin đó lại làm tăng sự cồng kềnh cho cơ sở dữ liệu, các tác vụ cron chạy ngầm và tải thêm CSS/JS của riêng chúng.
The truth is, WordPress doesn’t need 15 performance plugins to load in under a second. True speed optimization happens at the metal layer—the server, the database, and the core code.
Trong hướng dẫn này, chúng ta sẽ bỏ qua hoàn toàn hệ sinh thái plugin. Chúng ta sẽ tối ưu hóa WordPress bằng cách sử dụng các cấu hình phía máy chủ, wp-config.php điều chỉnh và các functions.php đoạn mã tinh gọn.
1. Nền tảng phía máy chủ (Không yêu cầu PHP)
Trước khi chạm vào một dòng mã WordPress nào, môi trường máy chủ của bạn phải được tối ưu hóa mạnh mẽ. Một máy chủ yếu không thể được khắc phục bằng bộ nhớ đệm phía người dùng.
Nâng cấp lên PHP 8.1+
WordPress chạy trên PHP. Chuyển từ PHP 7.4 sang PHP 8.1 hoặc 8.2 có thể giúp giảm 20-30% thời gian thực thi và giảm đáng kể mức tiêu thụ bộ nhớ. Hành động: Thay đổi điều này trong cPanel, Plesk hoặc qua CLI nếu bạn tự quản lý VPS của mình.
Bật nén cấp máy chủ (Brotli thay vì Gzip)
Mặc dù Gzip là tiêu chuẩn, Brotli (do Google phát triển) cung cấp tỷ lệ nén tốt hơn khoảng 15-20% cho các tệp văn bản (HTML, CSS, JS) với cùng mức tiêu thụ CPU. Hành động (Nginx): Đảm bảo rằng nginx.conf của bạn đã bật Brotli:
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;
Triển khai FastCGI Caching (Nginx) hoặc LiteSpeed Cache
Thay vì sử dụng plugin tạo bộ nhớ đệm dựa trên PHP (vốn vẫn yêu cầu WordPress tải một phần để phục vụ bộ nhớ đệm), hãy tạo bộ nhớ đệm ở cấp máy chủ web. Nginx FastCGI caching lưu trữ HTML đã tạo trong RAM hoặc trên ổ đĩa và phục vụ trực tiếp, bỏ qua hoàn toàn PHP và MySQL đối với khách truy cập ẩn danh.
2. Làm cứng và tinh gọn thông qua wp-config.php
các wp-config.php là phòng điều khiển của bạn. Theo mặc định, WordPress cho phép một số hành vi làm phình cơ sở dữ liệu của bạn theo thời gian.
Thêm các đoạn mã này ngay trước dòng /* That's all, stop editing! Happy publishing. */ line.
Giới hạn bản sửa đổi bài viết
Theo mặc định, WordPress lưu trữ vô số bản sửa đổi bài viết của bạn. Một bài viết được cập nhật 50 lần sẽ có 50 bản sao trong bảng wp_posts cơ sở dữ liệu của bạn, làm chậm đáng kể các truy vấn cơ sở dữ liệu.
// Keep only the last 3 revisions
define( 'WP_POST_REVISIONS', 3 );
Tối ưu hóa khoảng thời gian tự động lưu
WordPress tự động lưu sau mỗi 60 giây. Nếu bạn có nhiều biên tập viên làm việc, điều này sẽ gây áp lực lên cơ sở dữ liệu. Hãy làm chậm nó lại.
// Change autosave from 60 seconds to 5 minutes
define( 'AUTOSAVE_INTERVAL', 300 );
Dọn sạch thùng rác nhanh hơn
Các bài viết và bình luận đã xóa nằm trong cơ sở dữ liệu trong 30 ngày. Hãy giảm thời gian này để giữ cho cơ sở dữ liệu gọn nhẹ.
// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );
3. The “Anti-Bloat” functions.php chống phình to
Cốt lõi của WordPress mặc định chèn một lượng lớn các tập lệnh hỗ trợ cũ, liên kết khám phá và kiểu nội tuyến vào <head> Và <footer> của bạn.
To achieve maximum information gain over competitors, we won’t just tell you to “use a debloat plugin.” Here is the exact code to surgically remove the most common WordPress bloat.
Note: Add this to your Child Theme’s functions.php của Child Theme hoặc một mu-plugin.
/**
* The Ultimate WordPress Debloat Snippet
*/
add_action('init', function() {
// 1. Remove RSD, XMLRPC, and WLW links
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
add_filter('xmlrpc_enabled', '__return_false');
// 2. Remove WordPress version footprint (Security & Speed)
remove_action('wp_head', 'wp_generator');
// 3. Remove Shortlinks and REST API links from header
remove_action('wp_head', 'wp_shortlink_wp_head');
remove_action('wp_head', 'rest_output_link_wp_head');
// 4. Disable native Emojis (Saves 1 JS and 1 CSS HTTP Request)
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_action('admin_print_styles', 'print_emoji_styles');
remove_filter('the_content_feed', 'wp_staticize_emoji');
remove_filter('comment_text_rss', 'wp_staticize_emoji');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
// 5. Disable oEmbeds (If you don't embed external URLs automatically)
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');
add_action('wp_footer', function() { wp_deregister_script('wp-embed'); });
});
/**
* 6. Remove Global Styles (WP 5.9+ Inline CSS Bloat)
*/
add_action('wp_enqueue_scripts', function() {
wp_dequeue_style('global-styles');
wp_dequeue_style('classic-theme-styles');
}, 100);
/**
* 7. Remove jQuery Migrate (If using modern themes/plugins)
*/
add_action('wp_default_scripts', function($scripts) {
if (!is_admin() && isset($scripts->registered['jquery'])) {
$script = $scripts->registered['jquery'];
if ($script->deps) {
$script->deps = array_diff($script->deps, ['jquery-migrate']);
}
}
});
/**
* 8. Throttle the Heartbeat API
* Prevents high CPU usage when leaving the WP Admin open
*/
add_filter('heartbeat_settings', function($settings) {
$settings['interval'] = 60; // Throttle to 60 seconds
return $settings;
});
Chúng ta vừa đạt được điều gì?
Bằng cách thêm mã trên, bạn đã loại bỏ ngay lập tức tới 5-8 yêu cầu HTTP không cần thiết and removed dozens of lines of inline CSS/JS from every single page load—all without installing a single plugin.
4. Tối ưu hóa phương tiện (Cách khó)
Các plugin như Smush hoặc Imagify rất tiện lợi, nhưng chúng chạy xử lý hình ảnh trên máy chủ PHP của bạn, tiêu tốn tài nguyên CPU.
Chuyển đổi WebP/AVIF thủ công
Trước khi tải bất kỳ hình ảnh nào lên WordPress, hãy chạy nó qua một trình nén không mất dữ liệu bên ngoài như Squoosh.app (của Google) hoặc TinyPNG. Tốt hơn nữa, hãy chuyển đổi chúng sang .webp hoặc .avif định dạng cục bộ trước khi tải lên.
Tận dụng tính năng Lazy Loading gốc
Kể từ WordPress 5.5, tính năng lazy loading gốc đã được tích hợp sẵn. WordPress tự động thêm loading="lazy" to your images. You don’t need a JavaScript-based lazy loading plugin. However, ensure your “above the fold” images (like your logo or hero image) DO NOT have this attribute, as it will delay the Largest Contentful Paint (LCP).
Bạn có thể xóa lazy loading cho hình ảnh đầu tiên trên trang thông qua functions.php:
add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
static $is_first_image = true;
if ( $is_first_image ) {
$attr['loading'] = 'eager'; // Force immediate load for LCP
$is_first_image = false;
}
return $attr;
}, 10, 3 );
5. Chống phân mảnh cơ sở dữ liệu thông qua phpMyAdmin
Optimization plugins usually feature a “Clean Database” button. You can do this natively at the database level.
- Đăng nhập vào bảng điều khiển lưu trữ của bạn và mở phpMyAdmin.
- Chọn cơ sở dữ liệu WordPress của bạn.
- Cuộn xuống dưới cùng, chọn Chọn tất cả.
- In the “With selected:” dropdown, choose Tối ưu hóa bảng.
MySQL sẽ xây dựng lại các chỉ mục bảng và thu hồi dung lượng không sử dụng. Hãy thực hiện việc này thủ công mỗi tháng một lần.
Phán quyết
Optimizing WordPress without plugins isn’t just about saving money on premium subscriptions. It is a philosophy of giảm nợ kỹ thuật. Every plugin you don’t install is a security vulnerability you don’t have to patch, a database table you don’t have to clean, and a PHP script your server doesn’t have to execute.
Chuyển khối lượng công việc sang máy chủ (PHP 8.1+, Nginx FastCGI), thực thi kỷ luật trong wp-config.phpcủa bạn, và loại bỏ phần lõi cồng kềnh bằng cách sử dụng functions.phpcủa bạn. Thời gian phản hồi byte đầu tiên (TTFB) và các chỉ số Core Web Vitals của bạn sẽ phản ánh sự khác biệt.



