{"id":17519,"date":"2019-05-03T11:21:38","date_gmt":"2019-05-03T11:21:38","guid":{"rendered":"https:\/\/www.hostinger.com\/tutorials\/?p=17519"},"modified":"2025-12-02T15:35:23","modified_gmt":"2025-12-02T15:35:23","slug":"wordpress-heartbeat","status":"publish","type":"post","link":"\/ca\/tutorials\/wordpress-heartbeat","title":{"rendered":"What is WordPress Heartbeat API and how to manage it"},"content":{"rendered":"<p>In 2013, WordPress introduced Heartbeat API &ndash; a feature that allows your browser to communicate automatically with the server. However, there are a couple of drawbacks to this feature.<\/p><p>If you use a shared hosting plan, you need to take a closer look at the <a href=\"https:\/\/www.freecodecamp.org\/news\/what-is-cpu-meaning-definition-and-what-cpu-stands-for\/\" target=\"_blank\" rel=\"noreferrer noopener\">CPU<\/a> usage of your server, because some hosting companies might suspend your account when you exceed the limit.<\/p><p>Here, we&rsquo;ll talk about why WordPress Heartbeat API is the usual suspect that causes the issue.<\/p><p class=\"has-text-align-center\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Mega-WordPress-Cheat-EN.pdf\" target=\"_blank\" rel=\"noopener\">Download all-in-one WordPress cheat sheet<\/a><\/p><h2 class=\"wp-block-heading\" id=\"h-what-is-wordpress-heartbeat-api\">What is WordPress Heartbeat API?<\/h2><p>WordPress Heartbeat API provides a communication protocol, using <a href=\"\/ca\/tutorials\/what-is-ajax\" target=\"_blank\" rel=\"noreferrer noopener\">AJAX<\/a> calls, between the browser and the server.<\/p><p>As the name implies, the API will send continuous pulses and trigger events (or callbacks) upon receiving data. This function helps sync all the data between the server and the WordPress dashboard.<\/p><p>The idea behind Heartbeat API is quite compelling. For example, when you create\/edit a post from the editor, it provides a function to autosave the post periodically.<\/p><p>In a collaborative WordPress site, it has a post-locking function to prevent you from editing a post that&rsquo;s being worked on by another user. If you use an eCommerce plugin, this API will also help to display sales on your site.<\/p><h2 class=\"wp-block-heading\" id=\"h-why-limit-wordpress-heartbeat-api\">Why limit WordPress Heartbeat API?<\/h2><p>While having an autosave function and real-time data notification features can be beneficial, they can also be harmful in a specific situation.<\/p><p>Heartbeat API sends AJAX requests (POST requests) using the <strong>\/wp-admin\/admin-ajax.php<\/strong> file. Each request that executes a PHP file equals CPU time on the server.<\/p><p>This can cause a large number of requests to be sent to the hosting server, which results in high CPU utilization.<\/p><p>As we noted earlier, this can be a problem for a webmaster with a shared hosting plan. As you reach your quota limit, high CPU usage can eventually lead to account suspension. So be sure to check <a href=\"\/ca\/tutorials\/how-to-fix-admin-ajax-file\" target=\"_blank\" rel=\"noreferrer noopener\">how to fix spikes in your admin ajax file<\/a>. <\/p><h2 class=\"wp-block-heading\" id=\"h-things-to-consider-before-stopping-heartbeat-api\">Things to consider before stopping Heartbeat API<\/h2><p>If you&rsquo;re thinking of completely stopping Heartbeat API, you need to think twice. It&rsquo;s not because you can&rsquo;t do that, it&rsquo;s just not practical.<\/p><p>Without WordPress Heartbeat API, all the changes you made in the post will be lost should you ever forget to click the <strong>Save Draft<\/strong> button. And you will no longer have access to the <a href=\"https:\/\/wordpress.org\/support\/article\/revisions\/#description\" target=\"_blank\" rel=\"noreferrer noopener\">Revisions feature in WordPress<\/a>.<\/p><p>If you install <a href=\"\/ca\/tutorials\/best-wordpress-plugins\" target=\"_blank\" rel=\"noreferrer noopener\">WordPress plugins<\/a> that use Heartbeat API, you also can&rsquo;t display the real-time notifications and information features on your site.<\/p><p>But if you&rsquo;re working alone and all of these functions do not matter to you, you can then proceed to stop WordPress Heartbeat API.<\/p><p>Otherwise, you might consider controlling the API instead.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-completely-stop-heartbeat-api\">How to completely stop Heartbeat API?<\/h2><p>You can stop Heartbeat API by adding this code snippet to your active theme&rsquo;s <strong>functions.php<\/strong> file.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">add_action( 'init', 'stop_heartbeat', 1 );\nfunction stop_heartbeat() {\nwp_deregister_script('heartbeat');\n}<\/pre><p>Remember, you should do this if you&rsquo;re the only person working with the website, and you don&rsquo;t need to install additional plugins that use this API.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"629\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2019\/05\/edit-the-functions-php-file-1024x629.png\" alt=\"Edit the function.php file to disable WordPress heartbeat\" class=\"wp-image-17524\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><p>From your WordPress Dashboard, go to <strong>Appearance -&gt; Theme Editor<\/strong>. Make sure you&rsquo;re editing the active theme of your site. Click <strong>Theme Functions (functions.php)<\/strong> from the right-hand navigation menu. Paste the code snippet above right after the opening <strong>&lt;?php<\/strong> tag and click <strong>Update<\/strong>.<\/p><p>That&rsquo;s it, and now you&rsquo;ve successfully disabled WordPress Heartbeat API on your site.<\/p><?xml encoding=\"utf-8\" ?><figure class=\"wp-block-image size-large\"><a class=\"hgr-tutorials-cta hgr-tutorials-cta-wordpress-hosting\" href=\"\/ca\/wordpress-hosting\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2024\/06\/New-WP_in-text-banner-1024x300.png\" alt=\"\" class=\"wp-image-111781\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2><p>You&rsquo;ve learned about <a href=\"\/ca\/tutorials\/what-is-wordpress\">WordPress<\/a> Heartbeat API and the functionality it gives to your site. Although it&rsquo;s undoubtedly beneficial, in a shared hosting environment, it can cause quite a problem should you not handle it well.<\/p><p>To reduce the CPU usage on your server, you can either control the API or completely disable it. Also, you can do it by adding code to the <strong>functions.php<\/strong> file.<\/p><p><div class=\"protip\">\n                    <h4 class=\"title\">Learn Other Expert WordPress Techniques<\/h4>\n                    <p><a href=\"\/ca\/tutorials\/wordpress-pagination\">WordPress Pagination Guide<\/a><br>\n<a href=\"\/ca\/tutorials\/how-to-setup-and-manage-a-wordpress-cron-job\">How to Setup and Manage a WordPress Cron Job<\/a><br>\n<a href=\"\/ca\/tutorials\/best-wordpress-frameworks\">12 Best WordPress Frameworks to Design Themes<\/a><br>\n<a href=\"\/ca\/tutorials\/remove-query-strings-static-resources\">How to Remove Query Strings From Static Resources<\/a><br>\n<a href=\"\/ca\/tutorials\/what-are-wordpress-hooks\/\">What Are WordPress Hooks? <\/a><br>\n<a href=\"\/ca\/tutorials\/activate-wordpress-multisite\">WordPress Multisite: What It Is, How to Activate and Manage It<\/a><\/p>\n                <\/div>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In 2013, WordPress introduced Heartbeat API &ndash; a feature that allows your browser to communicate automatically with the server. However, there are a couple of drawbacks to this feature. If you use a shared hosting plan, you need to take a closer look at the CPU usage of your server, because some hosting companies might [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/ca\/tutorials\/wordpress-heartbeat\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":100,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"WordPress Heartbeat API: What it is and How to Manage it","rank_math_description":"WordPress Heartbeat API can affect the CPU usage on the server. Learn how to limit or stop WordPress Heartbeat.","rank_math_focus_keyword":"wordpress heartbeat","footnotes":""},"categories":[22698,22692],"tags":[],"class_list":["post-17519","post","type-post","status-publish","format-standard","hentry","category-advanced","category-wordpress"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/wordpress-heartbeat","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/wordpress-heartbeat","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/wordpress-heartbeat","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/wordpress-heartbeat","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/wordpress-heartbeat","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/wordpress-heartbeat","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/wordpress-heartbeat","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/wordpress-heartbeat","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/posts\/17519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/users\/100"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/comments?post=17519"}],"version-history":[{"count":23,"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/posts\/17519\/revisions"}],"predecessor-version":[{"id":138907,"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/posts\/17519\/revisions\/138907"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/media?parent=17519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/categories?post=17519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/ca\/tutorials\/wp-json\/wp\/v2\/tags?post=17519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}