Xóa plugin WordPress: cách dọn sạch cả DB còn sót lại sau khi xóa trên màn hình quản trị

Xóa plugin WordPress chỉ cần một nút trên màn hình quản trị, nhưng bảng và thiết lập mà plugin tạo ra thường vẫn còn nguyên trong cơ sở dữ liệu. Website này cũng vẫn còn 8 bảng và 38 dòng tùy chọn của hai plugin quảng cáo và bình luận đã xóa từ trước, tính đến 2026-10-09.
Bài viết tổng hợp lần lượt từ cách xóa plugin trên màn hình quản trị đến cách dọn shortcode, thư mục và DB còn sót lại.
1️⃣ Xóa plugin trên màn hình quản trị
Trong [Plugins] > [Plugin đã cài đặt], trước tiên nhấn [Vô hiệu hóa], rồi nhấn [Xóa] xuất hiện trên cùng dòng đó.

Nếu plugin có mã dọn dẹp, mã này sẽ chạy cùng lúc đó; nếu không có, chỉ các tệp bị xóa còn dữ liệu vẫn ở lại.
2️⃣ Vì sao xóa rồi dữ liệu vẫn còn
Khi xóa một plugin, WordPress chạy tệp [uninstall.php] của plugin đó hoặc hàm đã đăng ký bằng [register_uninstall_hook]. Việc xóa dữ liệu được giao cho đoạn mã này, nên plugin không có mã đó, hoặc có mã nhưng chỉ xóa một phần, sẽ để lại bảng và tùy chọn.
Cũng có trường hợp nhà phát triển cố ý để lại dữ liệu, để khi cài lại thì thiết lập được khôi phục nguyên như cũ. Có những plugin như Wordfence đặt sẵn tùy chọn xóa cả dữ liệu trong màn hình cài đặt, và plugin đa ngôn ngữ Polylang cũng cung cấp tùy chọn tương tự.

3️⃣ Ảnh hưởng của dữ liệu còn sót lại đến website
Trong số các tùy chọn còn sót lại, những dòng bật [autoload] được nạp vào bộ nhớ cùng các thiết lập khác mỗi khi mở trang. Trên website này, [wc_options] (15KB) của wpDiscuz và [advanced-ads-ab-module] (14KB) của Advanced Ads là những dòng như vậy.
Tuy nhiên, tổng autoload của website này khoảng 392KB, trong đó các dòng còn sót lại chỉ khoảng 39KB, nên không tạo ra khác biệt tốc độ đáng kể. Màn hình [Tình trạng website] của WordPress hiển thị cảnh báo khi tổng autoload vượt quá 800KB.
Sau khi tắt autoload cho 23 dòng còn sót lại, [Autoload size] của Advanced Database Cleaner giảm từ 391.52KB xuống 353.36KB.


Bình thường thì điều này không thành vấn đề. Khách truy cập nhận trang đã được cache thì không đi qua PHP, nên chỉ những yêu cầu không qua cache như màn hình quản trị, lượt truy cập đầu tiên ngay sau khi xóa cache hoặc bot mới nạp gói autoload. Khi những yêu cầu như vậy dồn đến cùng lúc, gói autoload sẽ được bung vào bộ nhớ bằng đúng số yêu cầu, nên website có autoload càng lớn thì tải server càng tăng nhanh.
Các tùy chọn đã tắt autoload và các bảng còn sót lại sẽ không được đọc khi không còn plugin đó, nên không liên quan đến tốc độ; chúng chỉ làm tăng dung lượng cơ sở dữ liệu và kích thước bản sao lưu.
4️⃣ Xóa những dấu vết còn lại
Trước khi động vào cơ sở dữ liệu, hãy sao lưu toàn bộ trước.
🔲 Shortcode
Shortcode mà plugin chèn vào bài viết sẽ lộ ra trong nội dung nguyên dạng chữ trong dấu ngoặc vuông khi plugin bị xóa. Cho đến khi sửa xong từng bài, hãy thêm dòng dưới đây vào [functions.php] của theme để shortcode đó không xuất ra gì.
add_shortcode( 'pluginshortcode', '__return_false' );Website này cũng từng dùng khoảng 10 shortcode của một plugin bảng; khi xóa plugin đó vì vấn đề bảo mật, shortcode và bảng đã được dọn từng cái một, và từ đó website không dùng shortcode nữa.
🔲 Thư mục plugin
Thư mục nào không xóa được từ màn hình quản trị thì hãy xóa trực tiếp trong [wp-content/plugins] qua FTP, cPanel hoặc SSH.
🔲 Bảng · hàng trong DB (phpMyAdmin)
Hầu hết các hosting đều cung cấp phpMyAdmin.

Với các bảng còn sót lại, hãy tìm bảng có tên plugin trong tab [Cấu trúc] rồi xóa. Dưới đây là màn hình lấy Yoast SEO làm ví dụ.

Với các hàng như tùy chọn, hãy tìm trong tab [Tìm kiếm] bằng cách thêm ký tự đại diện [%], chẳng hạn [%yoast%].


Lọc thêm một lần nữa bằng ô [Số hàng] (Filter rows) để kiểm tra xem các hàng đó có chỉ liên quan đến Yoast SEO hay không.

Các hàng chủ yếu còn lại trong [wp_options], [wp_postmeta] và [wp_usermeta], và tiền tố [wp_] ở đầu tên bảng có thể khác nhau tùy website. Nếu chỉ nhìn tên mà xóa, bạn có thể xóa luôn cả những dòng mà plugin khác đang dùng, nên chỉ xóa những dòng đã xác nhận được là của plugin nào.
5️⃣ Plugin dọn dẹp DB
Nếu muốn dọn dẹp ngay trên màn hình quản trị thay vì dùng phpMyAdmin, hãy dùng Advanced Database Cleaner. Website này cũng đang dùng plugin này; vì nó cho biết mỗi tùy chọn và mỗi bảng thuộc plugin nào qua [Belongs to], bạn có thể lọc ra những dòng có thể xóa.
Những dòng có [Belongs to] là [Not scanned yet] không phải là dòng không dùng đến, mà là dòng chưa xác định được chủ. Trên website này, nhiều cái tên lạ hóa ra là giấy phép và thiết lập của các plugin đang bật như Kadence Blocks Pro và WP Ghost; xóa những dòng như vậy sẽ khiến giấy phép bị hủy kích hoạt hoặc thiết lập bị đặt lại.
Vì vậy, kể cả là dòng của plugin đã xóa, đừng xóa ngay mà hãy tắt autoload trước. Giá trị vẫn được giữ nguyên nên có thể khôi phục bất cứ lúc nào, và nếu website không gặp vấn đề gì trong vài ngày thì khi đó mới xóa.


WP-Optimize cũng có thể xóa các bảng còn sót lại ngay trong bản miễn phí.


🔢 FAQ & nội dung đề xuất
Cài đặt
2 cách bỏ yêu cầu thông tin đăng nhập FTP
Hai cách loại bỏ hộp nhập FTP xuất hiện mỗi khi cài đặt hoặc cập nhật plugin.
Tối ưu hóa
Đánh giá & hướng dẫn Perfmatters
Cách cài đặt tối ưu hiệu năng được tổng hợp qua 5 năm sử dụng.
Hiệu suất
Tắt WP-Cron và dùng cron hệ thống
Cách tắt wp-cron.php vốn chạy mỗi khi mở trang và chuyển sang cron của server.
ℹ️ 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á.