Cách tối ưu hóa tốc độ WordPress mà không cần plugin (Hướng dẫn chỉ dùng mã)

Xuất bản vào | Qua
đọc 6 phút

If you’re reading this, you’re likely tired of the standard WordPress performance advice. 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 các plugin để tăng tốc trang web của mình, nhưng bản thân các plugin sẽ làm tăng thêm tình trạng phình to cơ sở dữ liệu, các công việc định kỳ nền và tải trọng CSS/JS của riêng chúng.

Sự thật là WordPress không cần 15 plugin hiệu suất để tải trong chưa đầy một giây. Tối ưu hóa tốc độ thực sự xảy ra ở lớp kim loại—máy chủ, cơ sở dữ liệu và mã lõi.

Trong hướng dẫn này, chúng tôi sẽ bỏ qua hoàn toàn hệ sinh thái plugin. Chúng tôi sẽ tối ưu hóa WordPress bằng cách sử dụng cấu hình phía máy chủ, wp-config.php điều chỉnh và phẫu thuật functions.php đoạn trích.


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, môi trường máy chủ của bạn phải được tối ưu hóa mạnh mẽ. Không thể khắc phục máy chủ yếu bằng bộ nhớ đệm ngoại vi.

Nâng cấp lên PHP 8.1+

WordPress chạy trên PHP. Việc 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 mức tiêu thụ bộ nhớ đáng kể. Hoạt động: Thay đổi điều này trong cPanel, Plesk hoặc qua CLI nếu bạn quản lý VPS của riêng mình.

Kích hoạt nén cấp máy chủ (Brotli qua 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 chi phí CPU. Hành động (Nginx): Đảm bảo của bạn nginx.conf đã kích hoạt Brotli:

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;

Triển khai bộ nhớ đệm FastCGI (Nginx) hoặc LiteSpeed ​​Cache

Thay vì sử dụng plugin bộ đệm ẩn dựa trên PHP (vẫn yêu cầu WordPress tải một phần để phục vụ bộ đệm), bộ đệm ở cấp máy chủ web. Bộ nhớ đệm Nginx FastCGI lưu trữ HTML được 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 cho khách truy cập ẩn danh.


2. Làm cứng và làm mỏng thông qua wp-config.php

các wp-config.php tập tin 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 nhất định làm tăng 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 /* That's all, stop editing! Happy publishing. */ đường kẻ.

Giới hạn bài sửa đổi

Theo mặc định, WordPress lưu trữ vô số bản sửa đổi bài đăng của bạn. Một bài viết được cập nhật 50 lần sẽ có 50 bản trong wp_posts bảng cơ sở dữ liệu, 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 trình soạn thảo đang hoạt động, điều này sẽ ảnh hưởng đến cơ sở dữ liệu. 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 đăng và nhận xét đã xóa sẽ nằm trong cơ sở dữ liệu trong 30 ngày. Hãy giảm mức này để giữ cho cơ sở dữ liệu gọn gàng.

// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

3. “Chống sưng tấy” functions.php Đoạn trích chính

Lõi WordPress đưa một lượng lớn tập lệnh hỗ trợ kế thừa, liên kết khám phá và kiểu nội tuyến vào  Và 

 theo mặc định.

Để đạt được mức thu thập thông tin tối đa so với các đối thủ cạnh tranh, chúng tôi sẽ không chỉ yêu cầu bạn “sử dụng plugin gỡ lỗi”. Đây là mã chính xác để phẫu thuật loại bỏ sự phình to phổ biến nhất của WordPress.

Lưu ý: Thêm phần này vào Chủ đề con của bạn functions.php hoặc một mu-plugin thả vào.

/**
 * 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 đa 5-8 yêu cầu HTTP không cần thiết và xóa hàng chục dòng CSS/JS nội tuyến khỏi mỗi lần tải trang—tất cả đều không cần cài đặt một plugin nào.


4. Tối ưu hóa phương tiện truyền thông (Một cách khó khăn)

Các plugin như Smush hoặc Imagify rất tiện lợi nhưng chúng chạy quá trình 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 (bởi Google) hoặc TinyPNG. Tốt hơn hết, hãy chuyển đổi chúng thành .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 tải lười biếng gốc

Kể từ WordPress 5.5, tính năng tải chậm tự nhiên đã được tích hợp sẵn. WordPress tự động thêm loading="lazy" vào hình ảnh của bạn. Bạn không cần plugin tải từng phần dựa trên JavaScript. Tuy nhiên, hãy đảm bảo hình ảnh “trong màn hình đầu tiên” của bạn (như biểu trưng hoặc hình ảnh anh hùng) KHÔNG có thuộc tính này, vì nó sẽ trì hoãn Thời gian hiển thị nội dung lớn nhất (LCP).

Bạn có thể loại bỏ tải chậm cho hình ảnh đầu tiên trên một 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 qua phpMyAdmin

Các plugin tối ưu hóa thường có nút “Làm sạch cơ sở dữ liệu”. Bạn có thể thực hiện việc này một cách tự nhiên ở cấp cơ sở dữ liệu.

  1. Đăng nhập vào bảng lưu trữ của bạn và mở phpMyAdmin.
  2. Chọn cơ sở dữ liệu WordPress của bạn.
  3. Kéo xuống phía dưới, kiểm tra Kiểm tra tất cả.
  4. Trong danh sách thả xuống “Với đã chọn:”, hãy chọn Bảng tối ưu hóa.

MySQL sẽ xây dựng lại các chỉ mục bảng và lấy lại không gian chưa sử dụng. Làm điều này một cách thủ công mỗi tháng một lần.


Bản án

Tối ưu hóa WordPress mà không cần plugin không chỉ giúp tiết kiệm tiền khi đăng ký trả phí. Đó là một triết lý của giảm nợ kỹ thuật. Mọi plugin bạn không cài đặt đều là một lỗ hổng bảo mật mà bạn không cần phải vá, bảng cơ sở dữ liệu bạn không cần phải dọn dẹp và tập lệnh PHP mà máy chủ của bạn không phải thực thi.

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.phpvà cắt bỏ phần lõi phình to bằng cách sử dụng functions.php. Thời gian đạt đến Byte đầu tiên (TTFB) và Các chỉ số quan trọng về trang web cốt lõi của bạn sẽ phản ánh sự khác biệt.

Chia sẻ bài đăng này

Ajay Malik

Ajay Malik là nhà phát triển WordPress và Elite Freelancer với hơn 8 năm kinh nghiệm.