WordPress Heartbeat API sınırlandırma, WordPress yönetim panelinde arka planda çalışan admin-ajax.php isteklerinin sıklığını azaltarak CPU tüketimini düşürme işlemidir. Özellikle paylaşımlı hosting, yoğun WooCommerce mağazaları ve çok yazarlı bloglarda Heartbeat API her 15-60 saniyede bir sunucuya istek gönderebilir; bu da gereksiz CPU kullanımı, yavaş yönetim paneli ve kaynak limiti uyarılarına yol açabilir. Çözüm, API’yi tamamen kapatmak yerine sayfaya göre 60-120 saniyeye çekmek, yalnızca gerekli alanlarda açık bırakmak ve sonuçları hosting paneli ile ölçmektir.
Bu rehberde Heartbeat API’nin ne işe yaradığını, ne zaman sorun oluşturduğunu, hangi ayarların güvenli olduğunu ve WordPress sitenizde CPU tüketimini pratik şekilde nasıl azaltacağınızı adım adım anlatacağız. Amaç, otomatik kayıt ve oturum kontrolü gibi faydalı özellikleri bozmadan gereksiz arka plan trafiğini sınırlamaktır. Eğer siteniz sık sık 508 Resource Limit, 503 Service Unavailable veya yavaş WordPress admin paneli sorunları yaşıyorsa, bu ayarlar ilk kontrol etmeniz gereken optimizasyonlardan biridir.
WordPress Heartbeat API Nedir?
WordPress Heartbeat API, tarayıcı ile sunucu arasında düzenli aralıklarla iletişim kuran bir WordPress mekanizmasıdır. Bu iletişim genellikle /wp-admin/admin-ajax.php dosyası üzerinden gerçekleşir. WordPress, bu sistem sayesinde editör ekranında otomatik taslak kaydı yapar, başka bir kullanıcının aynı yazıyı düzenlediğini bildirir, oturum süresini kontrol eder ve bazı eklentilerin gerçek zamanlı bildirimlerini çalıştırır.
Basit bir örnek verelim: Bir editör yazı ekranında çalışırken WordPress, taslağın kaybolmaması için belirli aralıklarla sunucuya küçük bir istek gönderir. Bu istek tek başına ağır değildir. Fakat aynı anda 8 editör, 2 yönetici ve WooCommerce panelini açık tutan bir ekip varsa istek sayısı hızla artar. 10 açık yönetim oturumu, 30 saniyelik aralıkla saatte yaklaşık 1.200 Heartbeat isteği oluşturabilir. Eklentiler bu isteklere ek veri bindirirse CPU kullanımı beklenenden çok daha yüksek olabilir.
Bu nedenle Heartbeat API kötü bir özellik değildir; yanlış aralıklarla, gereksiz sayfalarda veya ağır eklentilerle birlikte çalıştığında performans sorununa dönüşür. İyi yapılandırılmış bir sitede API açık kalır fakat frekansı kontrol altına alınır.
Heartbeat API Neden CPU Tüketimini Artırır?
CPU tüketimi, sunucunun PHP işlemlerini çalıştırmak için harcadığı işlem gücünü ifade eder. WordPress dinamik bir içerik yönetim sistemi olduğu için her PHP isteğinde tema, eklenti, veritabanı ve WordPress çekirdeği belirli ölçüde çalışır. Heartbeat istekleri de küçük görünmesine rağmen PHP sürecini tetikler.
CPU artışının en yaygın nedenleri şunlardır:
- Çok sık istek aralığı: Bazı ekranlarda Heartbeat 15 saniyeye kadar inebilir. Bu, tek kullanıcıda bile saatte 240 istek anlamına gelir.
- Birden fazla açık sekme: Kullanıcı WordPress panelinde 4 farklı sekme açık bırakırsa her sekme ayrı Heartbeat trafiği üretebilir.
- Ağır eklentiler: Güvenlik, istatistik, yedekleme, sayfa oluşturucu ve WooCommerce eklentileri Heartbeat verisine ek yük bindirebilir.
- Düşük kaynaklı hosting: CPU limiti dar olan paketlerde küçük arka plan istekleri bile yoğun saatlerde limiti doldurabilir.
- Bot ve gerçek kullanıcı trafiğiyle çakışma: Ön yüzde ziyaretçi trafiği varken yönetim panelindeki arka plan istekleri aynı kaynakları kullanır.
Özellikle admin-ajax.php erişimlerinin access log dosyasında sık tekrar ettiğini görüyorsanız Heartbeat trafiği incelenmelidir. Hostragons altyapısında kaynak kullanımı grafikleriyle CPU dalgalanmalarını takip edebilir, WordPress sitenizin ihtiyaçlarına göre daha uygun bir paket için WordPress hosting seçeneklerini değerlendirebilirsiniz.
Heartbeat API’yi Tamamen Kapatmak Doğru mu?
Genel cevap: Hayır, çoğu site için tamamen kapatmak önerilmez. Heartbeat API’yi tamamen devre dışı bırakmak kısa vadede CPU’yu düşürebilir, ancak yazı otomatik kaydı, içerik kilitleme, oturum yenileme ve bazı eklenti bildirimleri bozulabilir. Özellikle çok yazarlı bloglarda aynı yazının iki kişi tarafından düzenlenmesi içerik kaybına yol açabilir.
Daha güvenli yaklaşım, API’yi ihtiyaç duyulan alanlarda açık bırakmak ve aralığını uzatmaktır. Örneğin yazı düzenleme ekranında 60 saniye, genel yönetim panelinde 120 saniye, ön yüzde ise tamamen kapalı bir yapı çoğu kurumsal site için dengeli sonuç verir. WooCommerce mağazalarında sipariş ekranları ve stok yönetimi gibi bölümlerde daha dikkatli test yapılmalıdır.
Önerilen Heartbeat API Ayarları Tablosu
| Senaryo | Önerilen Ayar | Beklenen Etki | Dikkat Edilecek Nokta |
|---|---|---|---|
| Tek yazarlı blog | Admin 120 sn, editör 60 sn, ön yüz kapalı | Admin-ajax istekleri belirgin azalır | Otomatik kayıt aralığı test edilmeli |
| Çok yazarlı yayın sitesi | Editör 60 sn, admin 90-120 sn | CPU düşer, içerik kilidi korunur | Yazarların açık sekme sayısı izlenmeli |
| WooCommerce mağazası | Admin 60-90 sn, ön yüz dikkatli kapatma | Panel yükü azalır | Sepet, ödeme ve stok eklentileri test edilmeli |
| Kurumsal tanıtım sitesi | Admin 120 sn, ön yüz kapalı | En güvenli hafifletme | Form ve güvenlik eklentileri kontrol edilmeli |
| Kaynak limiti uyarısı alan site | Önce 60 sn, sonra 120 sn test | CPU pikleri azalabilir | Log ve hosting grafikleriyle ölçüm şart |
Bu tablo başlangıç noktasıdır. En iyi ayar; kullanıcı sayısı, eklenti yapısı, tema ağırlığı ve hosting kaynaklarına göre değişir. Ölçmeden yapılan değişiklikler bazen CPU sorununu gizler ama ana nedeni çözmez.
WordPress Heartbeat API Sınırlandırma Nasıl Yapılır?
WordPress Heartbeat API sınırlandırma için üç pratik yöntem vardır: eklenti kullanmak, tema fonksiyon dosyasına kod eklemek veya performans eklentilerinin yerleşik ayarlarından yararlanmak. Teknik bilginiz azsa eklenti yöntemi daha güvenlidir. Geliştiriciyseniz küçük bir kod parçasıyla daha kontrollü ayar yapabilirsiniz.
1. Yöntem: Heartbeat Control Eklentisi ile Sınırlandırma
En kolay yöntem, Heartbeat trafiğini yönetmek için geliştirilmiş bir eklenti kullanmaktır. WP Rocket tarafından sunulan Heartbeat Control veya benzer güvenilir eklentilerle farklı alanlar için ayrı kurallar tanımlayabilirsiniz.
Adımlar:
- WordPress yönetim panelinde Eklentiler > Yeni Ekle bölümüne gidin.
- Heartbeat Control araması yapın ve güvenilir, güncel eklentiyi kurun.
- Eklentiyi etkinleştirdikten sonra ayarlar ekranına girin.
- Dashboard veya yönetim paneli için frekansı 60 ya da 120 saniye olarak belirleyin.
- Post editor alanında tamamen kapatmak yerine 60 saniye seçin.
- Frontend için Heartbeat’i kapatın veya en uzun aralığa alın.
- Değişiklikleri kaydedin ve 24 saat CPU grafiğini izleyin.
Bu yöntemin avantajı hızlı geri alınabilir olmasıdır. Bir sorun yaşarsanız eklentiyi pasifleştirerek varsayılan WordPress davranışına dönebilirsiniz. Dezavantajı ise sitenize ek bir eklenti daha eklemesidir. Eklenti sayısını düşük tutmak istiyorsanız kod yöntemi daha uygundur.
2. Yöntem: functions.php ile Heartbeat Aralığını Değiştirme
Kodla sınırlandırma yapmak istiyorsanız değişikliği doğrudan ana tema dosyasına değil, mümkünse child theme içindeki functions.php dosyasına veya siteye özel küçük bir eklentiye ekleyin. Böylece tema güncellemesinde ayarlarınız kaybolmaz.
Aşağıdaki örnek, Heartbeat aralığını 60 saniyeye çıkarır:
add_filter('heartbeat_settings', 'hostragons_heartbeat_interval'); function hostragons_heartbeat_interval($settings) { $settings['interval'] = 60; return $settings; }
Bu kod, varsayılan daha kısa aralıkları 60 saniyeye yaklaştırarak istek sayısını azaltır. 15 saniyelik bir aralıktan 60 saniyeye çıkmak, teorik olarak Heartbeat isteği sayısını yüzde 75 azaltabilir. Örneğin 5 yönetici oturumunda saatte 1.200 istek yerine yaklaşık 300 istek oluşur. Gerçek kazanç, eklentilerin bu isteklere ne kadar işlem eklediğine bağlıdır.
Daha agresif bir yapı istiyorsanız ön yüzde Heartbeat’i kapatabilir, yönetim panelinde açık bırakabilirsiniz:
add_action('init', 'hostragons_disable_heartbeat_frontend', 1); function hostragons_disable_heartbeat_frontend() { if (!is_admin()) { wp_deregister_script('heartbeat'); } }
Bu kod ön yüzde Heartbeat scriptini devre dışı bırakır. Ancak üyelik, canlı bildirim, sepet güncelleme veya frontend editör kullanan sitelerde mutlaka test edilmelidir. WooCommerce ödeme, sepet ve hesabım sayfalarında davranış bozuluyorsa bu kod yerine eklentiyle sayfa bazlı ayar yapmak daha güvenlidir.
3. Yöntem: WP Rocket veya Performans Eklentileriyle Yönetme
Bazı cache ve performans eklentileri Heartbeat kontrolünü kendi ayarları içinde sunar. WP Rocket gibi araçlarda Heartbeat sekmesi üzerinden admin paneli, yazı editörü ve frontend için farklı seviyeler seçebilirsiniz. Bu yöntem, zaten performans eklentisi kullanan sitelerde ek eklenti ihtiyacını azaltır.
Performans eklentisi kullanırken aynı işlevi yapan iki farklı modülü aynı anda açmamaya dikkat edin. Örneğin hem WP Rocket Heartbeat ayarını hem de ayrı bir Heartbeat Control eklentisini aktif etmek çakışmaya veya beklenmeyen davranışa neden olabilir. WordPress optimizasyonunda temel kural şudur: Aynı görevi yapan tek araç kullanın, sonucu ölçün, sonra yeni değişiklik ekleyin.
CPU Tüketimini Ölçerek Doğru Ayarı Bulma
Heartbeat ayarı yapmadan önce ve sonra ölçüm almak, profesyonel optimizasyonun en önemli parçasıdır. Sadece yönetim panelinin daha hızlı hissettirmesi yeterli kanıt değildir. CPU kullanım grafiği, PHP işlem sayısı, access log ve hata logları birlikte değerlendirilmelidir.
Önerilen test planı:
- Başlangıç ölçümü alın: Değişiklik yapmadan önce 24 saatlik CPU ve RAM grafiğini kaydedin.
- Access log inceleyin:
admin-ajax.phpisteklerinin saatlik yoğunluğunu kontrol edin. - İlk ayarı uygulayın: Heartbeat aralığını 60 saniyeye çıkarın, ön yüzde kapatın.
- 24-48 saat bekleyin: Aynı trafik koşullarında CPU dalgalanmasını izleyin.
- Gerekirse 120 saniye deneyin: Özellikle kurumsal sitelerde daha uzun aralık sorun çıkarmayabilir.
- Kritik işlevleri test edin: Yazı otomatik kaydı, WooCommerce sepeti, sipariş yönetimi ve üyelik akışlarını kontrol edin.
Örneğin bir kurumsal WordPress sitesinde yönetim paneli açık kaldığında CPU kullanımı yüzde 80-90 seviyelerine çıkıyorsa, Heartbeat aralığını 15 saniyeden 60 saniyeye almak CPU piklerini yüzde 20-40 azaltabilir. Fakat aynı sitede yedekleme eklentisi her saat başı tam tarama yapıyorsa, Heartbeat optimizasyonu tek başına yeterli olmayacaktır. Bu durumda WordPress hız optimizasyonu ve hosting kaynak kullanımı konuları birlikte ele alınmalıdır.
admin-ajax.php Her Zaman Heartbeat Kaynaklı mı?

Hayır. admin-ajax.php WordPress’te birçok farklı işlem tarafından kullanılır. Heartbeat API bunlardan yalnızca biridir. Form eklentileri, filtreleme özellikleri, canlı arama, güvenlik taramaları, e-ticaret sepet güncellemeleri ve bazı tema özellikleri de aynı dosyaya istek gönderebilir.
Bu nedenle sadece admin-ajax.php trafiği görüp Heartbeat’i kapatmak doğru teşhis olmayabilir. Tarayıcı geliştirici araçlarında Network sekmesini açarak isteğin payload kısmında action=heartbeat olup olmadığını kontrol edebilirsiniz. Eğer action değeri farklıysa sorun başka bir eklentiden geliyor olabilir.
Sunucu tarafında da access log analizi yapılabilir. Yoğun isteklerin hangi IP’den, hangi saatlerde ve hangi referer sayfalarından geldiğini incelemek gerekir. Eğer trafik bot kaynaklıysa güvenlik duvarı, rate limit veya bot koruması daha doğru çözüm olabilir. Güvenli bağlantı ve doğru sertifika yapılandırması için SSL sertifikası sayfanızı da güncel tutmanız performans ve güven sinyalleri açısından önemlidir.
Heartbeat Sınırlandırırken Yapılan Yaygın Hatalar
WordPress performans sorunlarında hızlı çözüm ararken bazı hatalar site işleyişini bozabilir. Aşağıdaki maddeler özellikle canlı sitelerde önemlidir:
- API’yi her yerde tamamen kapatmak: Otomatik kayıt ve içerik kilidi devre dışı kalabilir.
- Canlı sitede test yapmadan kod eklemek: Syntax hatası beyaz ekran sorununa neden olabilir.
- WooCommerce ödeme akışını kontrol etmemek: Sepet ve sipariş süreçlerinde beklenmeyen sonuçlar oluşabilir.
- Birden fazla performans eklentisini aynı anda kullanmak: Çakışmalar ölçümü zorlaştırır.
- CPU sorununu sadece Heartbeat’e bağlamak: Ağır sorgular, bot trafiği veya cron görevleri asıl neden olabilir.
- Yedek almadan değişiklik yapmak: Basit bir kod hatasında geri dönüş süresi uzar.
Değişikliklerden önce dosya ve veritabanı yedeği almak en sağlıklı yaklaşımdır. Alan adı, hosting ve site yönetimini tek panelden takip etmek istiyorsanız domain sorgulama ve web hosting hizmetleriyle altyapınızı daha düzenli yönetebilirsiniz.
Heartbeat API Dışında CPU Tüketimini Azaltan Ek Önlemler
Heartbeat sınırlandırma etkili bir adımdır, ancak WordPress CPU optimizasyonu daha geniş bir süreçtir. Kalıcı performans için aşağıdaki önlemleri de uygulamak gerekir:
Cache Kullanımı
Sayfa önbellekleme, ziyaretçi isteklerinde PHP ve veritabanı yükünü ciddi şekilde azaltır. Statik sayfalarda cache etkinleştirildiğinde her ziyaret için WordPress çekirdeğinin baştan çalışması gerekmez. Bu, CPU tüketimini azaltmanın en etkili yollarından biridir.
Gereksiz Eklentileri Kaldırma
Kullanılmayan eklentiler pasif olsa bile bazı durumlarda veritabanında yük bırakabilir. Aktif eklentilerin sayısını değil, çalışma ağırlığını değerlendirin. Özellikle istatistik, güvenlik, sayfa oluşturucu ve yedekleme eklentilerini düzenli gözden geçirin.
WP-Cron Kontrolü
WordPress cron sistemi her ziyaretle tetiklenebilir. Trafiği yüksek sitelerde bu durum CPU kullanımını artırır. Sistem cron ile planlı çalıştırma yapmak daha kontrollü bir yapıdır. Bu konu Heartbeat’ten farklıdır ancak benzer şekilde arka plan yükünü azaltır.
Veritabanı Optimizasyonu
Revizyonlar, geçici veriler, spam yorumlar ve eski transients kayıtları veritabanını şişirebilir. Düzenli temizlik sorgu sürelerini kısaltır. Özellikle WooCommerce sitelerinde sipariş, oturum ve log tabloları büyüdükçe optimizasyon daha önemli hale gelir.
PHP Sürümü ve Hosting Kaynakları
Güncel PHP sürümleri genellikle daha iyi performans sağlar. PHP 8.x uyumlu tema ve eklenti yapısı, aynı trafik altında daha düşük CPU kullanımı sağlayabilir. Yine de yazılım optimizasyonu doğru hosting altyapısıyla desteklenmelidir. Trafiğiniz büyüdüyse VPS sunucu veya ölçeklenebilir WordPress hosting seçeneklerini değerlendirmek mantıklı olabilir.
Güvenli Uygulama İçin Önerilen Yol Haritası
Canlı bir WordPress sitesinde Heartbeat API sınırlandırma yaparken aşağıdaki sırayı izlemek güvenli ve ölçülebilir sonuç verir:
- Önce tam yedek alın.
- Mevcut CPU, RAM ve admin-ajax.php trafiğini kaydedin.
- Heartbeat’in gerçekten yoğun istek oluşturduğunu doğrulayın.
- Ön yüzde Heartbeat’i kapatın veya en uzun aralığa alın.
- Yazı editöründe 60 saniyenin altına inmeyin.
- Yönetim panelinde 90-120 saniye aralığını test edin.
- WooCommerce, üyelik ve form işlevlerini elle test edin.
- 24-48 saatlik kaynak kullanımını karşılaştırın.
- Sonuç yeterli değilse eklenti, tema ve cron kaynaklı yükleri analiz edin.
Bu yaklaşım, tek bir ayara güvenmek yerine veriye dayalı optimizasyon yapmanızı sağlar. Profesyonel WordPress bakımında amaç sadece CPU değerini düşürmek değil, site kararlılığını ve kullanıcı deneyimini birlikte korumaktır.
Sonuç: Heartbeat’i Kapatmayın, Akıllıca Sınırlandırın
WordPress Heartbeat API sınırlandırma, doğru uygulandığında CPU tüketimini azaltan, yönetim panelini rahatlatan ve hosting kaynaklarını daha verimli kullanmanızı sağlayan pratik bir optimizasyondur. En sağlıklı yöntem, API’yi tamamen kapatmak yerine ön yüzde sınırlamak, yazı editöründe güvenli aralık bırakmak ve yönetim panelinde 60-120 saniye aralığını test etmektir.
CPU sorununuz devam ediyorsa Heartbeat yalnızca başlangıç noktası olabilir; cache, eklenti yükü, WP-Cron, veritabanı ve hosting paketi birlikte değerlendirilmelidir. Hostragons üzerinde WordPress siteniz için daha kararlı bir altyapı arıyorsanız WordPress hosting çözümlerini inceleyebilir, mevcut sitenizin kaynak ihtiyaçlarına göre yumuşak bir yükseltme planı oluşturabilirsiniz.
Sıkça Sorulan Sorular
WordPress Heartbeat API tamamen kapatılmalı mı?
Çoğu site için tamamen kapatılmamalıdır. Otomatik kayıt, içerik kilitleme ve oturum kontrolü gibi işlevler etkilenebilir. Daha güvenli çözüm, ön yüzde kapatıp yönetim paneli ve editörde aralığı 60-120 saniyeye çıkarmaktır.
Heartbeat API CPU tüketimini ne kadar azaltır?
Bu, site yapısına bağlıdır. 15 saniyelik aralığı 60 saniyeye çıkarmak Heartbeat istek sayısını teorik olarak yüzde 75 azaltabilir. Gerçek CPU kazancı eklenti yüküne, kullanıcı sayısına ve hosting kaynaklarına göre değişir.
admin-ajax.php yüksek kullanımı her zaman Heartbeat kaynaklı mıdır?
Hayır. Formlar, WooCommerce, canlı arama, güvenlik eklentileri ve tema özellikleri de admin-ajax.php kullanabilir. İsteğin Heartbeat kaynaklı olup olmadığını Network sekmesinde action=heartbeat değerini kontrol ederek anlayabilirsiniz.
WooCommerce sitelerinde Heartbeat sınırlandırma güvenli mi?
Güvenlidir ancak dikkatli test gerekir. Sepet, ödeme, sipariş yönetimi, stok güncelleme ve üyelik sayfaları kontrol edilmelidir. WooCommerce sitelerinde tamamen kapatmak yerine aralığı uzatmak genellikle daha sağlıklıdır.
Heartbeat ayarından sonra ne kadar süre test yapılmalı?
En az 24-48 saat test önerilir. Bu sürede CPU grafikleri, PHP işlem sayısı, admin-ajax.php istekleri ve kritik site işlevleri izlenmelidir. Trafik yoğunluğu hafta içi ve hafta sonu değişiyorsa daha uzun ölçüm yapılabilir.