WordPress Heartbeat API là một API được giới thiệu từ WordPress 3.6, giúp trình duyệt và máy chủ giao tiếp theo thời gian thực. Nó hoạt động bằng cách gửi các yêu cầu AJAX định kỳ để đồng bộ dữ liệu giữa trình duyệt và máy chủ.
Bạn hiểu giống như bạn chơi facebook nó ai bình luận vào bài viết của bạn, nó sẽ hiển thị thông báo cho bạn ngay mà bạn không cần phải reset lại ứng dụng mới nhận được thông báo đó.
Facebook là mạng xã hội và máy chủ của họ rất mạnh mẽ còn mình chỉ là website WordPress nhu cầu cơ bản thì đôi khi tính năng này lại là tác hại cho máy chủ của bạn đặc biệt là bạn đang sử dụng share hosting.
Chức năng chính WordPress Heartbeat API:
- Giao tiếp theo thời gian thực:
- Heartbeat API sử dụng công nghệ AJAX để gửi các yêu cầu liên tục từ trình duyệt đến máy chủ.
- Điều này cho phép WordPress cập nhật thông tin và thực hiện các hành động mà không cần tải lại toàn bộ trang.
- Các tính năng nổi bật:
- Tự động lưu bài viết: Khi bạn đang viết hoặc chỉnh sửa bài viết, Heartbeat API sẽ tự động lưu bản nháp định kỳ, giúp tránh mất dữ liệu.
- Thông báo theo thời gian thực: Hiển thị thông báo cho người dùng khi có người khác đang chỉnh sửa cùng một bài viết hoặc khi có cập nhật mới.
- Tương tác plugin: Các plugin WordPress có thể sử dụng Heartbeat API để tạo các tính năng tương tác thời gian thực, chẳng hạn như trò chuyện trực tiếp hoặc cập nhật bảng điều khiển.
Cách hoạt động WordPress Heartbeat API:
- Heartbeat API gửi các yêu cầu POST đến tệp
/wp-admin/admin-ajax.php
- Máy chủ xử lý các yêu cầu này và trả về dữ liệu cho trình duyệt.
- Trình duyệt cập nhật giao diện người dùng dựa trên dữ liệu nhận được.
Tác động tiêu cực của Heartbeat API:
- Heartbeat API gửi các yêu cầu AJAX liên tục đến máy chủ, ngay cả khi người dùng không thực hiện bất kỳ hành động nào.
- Điều này có thể dẫn đến việc sử dụng CPU và tài nguyên máy chủ cao, đặc biệt là trên các website có nhiều người dùng hoạt động cùng lúc.
- Đối với các website sử dụng shared hosting, điều này có thể gây ra tình trạng quá tải và làm chậm website.
Cách kiểm soát và Tối ưu API Heartbeat :
- Bạn có thể sử dụng các plugin như “Heartbeat Control” để điều chỉnh tần suất gửi yêu cầu hoặc tắt hoàn toàn Heartbeat API nếu cần thiết.
- Việc kiểm soát được Heartbeat API sẽ giúp cho website WordPress của bạn hoạt động mượt mà hơn. Ví dụ: tắt trên trang admin dashboard nhưng giữ lại trong trình chỉnh sửa bài viết.
Tối ưu WordPress Heartbeat API bằng code
Nếu bạn muốn kiểm soát Heartbeat API mà không cần cài plugin, có thể chỉnh sửa file functions.php
của theme hoặc childtheme đang sử dụng:
1. Giảm tần suất Heartbeat API
Mặc định, WordPress gửi request mỗi 15-60 giây. Bạn có thể tăng khoảng cách giữa các request lên 120 giây hoặc hơn:
function optimize_heartbeat_settings( $settings ) { $settings['interval'] = 120; // Tăng thời gian giữa các request lên 120 giây return $settings; } add_filter( 'heartbeat_settings', 'optimize_heartbeat_settings' );
2. Tắt Heartbeat API trên Dashboard nhưng giữ lại trên trình chỉnh sửa bài viết
function disable_heartbeat_control( $locations ) { unset( $locations['dashboard'] ); // Tắt trên Dashboard return $locations; } add_filter( 'heartbeat_settings', 'disable_heartbeat_control' );
3. Tắt hoàn toàn WordPress Heartbeat API
Nếu không sử dụng tính năng tự động lưu nháp hoặc đồng bộ thời gian thực, bạn có thể tắt hoàn toàn Heartbeat API bằng cách:
function stop_heartbeat_completely() { wp_deregister_script('heartbeat'); } add_action('init', 'stop_heartbeat_completely', 1);
Tối ưu WordPress Heartbeat API bằng plugin
Nếu không muốn chỉnh sửa code, bạn có thể sử dụng plugin miễn phí để kiểm soát Heartbeat API dễ dàng hơn.
Plugin gợi ý: Heartbeat Control by WP Rocket hoặc Admin and Site Enhancements (ASE)
(nếu bạn đang sử dụng plugin WP Rocket đã được tích hợp sẵn)
Cách sử dụng:
- Cài đặt plugin từ WordPress: Plugins → Add New → tìm “Heartbeat Control”.
- Kích hoạt plugin và vào Settings → Heartbeat Control.
- Chọn khu vực muốn kiểm soát:
- Disable Heartbeat (Tắt hoàn toàn).
- Modify Heartbeat (Chỉnh sửa tần suất request).
- Allow Heartbeat (Giữ nguyên như ban đầu).

Tối ưu WordPress Heartbeat API bằng plugin
- Nhấn Save Changes để áp dụng.
- Kiểm tra lại sau khi tối ưu
Sau khi thực hiện tối ưu, bạn nên kiểm tra lại bằng Chrome DevTools (F12 → Network → XHR) để đảm bảo rằng tần suất request giảm xuống hoặc Heartbeat API đã bị vô hiệu hóa theo mong muốn.
Kết luận
- Nếu cần giữ tính năng tự động lưu nháp → giảm tần suất Heartbeat API.
- Nếu không dùng nhiều tính năng liên quan → tắt trên Dashboard nhưng giữ trên trình chỉnh sửa bài viết.
- Nếu muốn tối ưu hoàn toàn → tắt hoàn toàn Heartbeat API bằng code hoặc plugin.
Chúc các bạn thành công!