Come gestire l'API Heartbeat di WordPress

Pubblicato: 2023-01-31

L'API Heartbeat di WordPress esiste da quasi un decennio. Ha fornito una comunicazione in tempo reale senza soluzione di continuità tra la dashboard di WordPress e il server host. Integrata nel core di WordPress, l'API Heartbeat offre potenti funzionalità che possono migliorare significativamente l'esperienza di amministrazione del sito web.

Questo potere, tuttavia, ha un prezzo. È il numero di risorse del server necessarie per mantenere la comunicazione senza intoppi. L'esecuzione di siti Web ad alta intensità di risorse o il fatto che il tuo provider di hosting imponga limiti rigorosi alla memoria e al tempo della CPU può portare a un notevole degrado delle prestazioni in cui l'API Heartbeat può svolgere un ruolo.

In questa guida, scopriremo il potenziale dell'API di WordPress Heartbeat e il suo ruolo nell'ecosistema di WordPress. Imparerai come funziona l'API Heartbeat. Scoprirai anche perché potresti dover considerare di limitare la sua attività sul tuo sito WordPress. Questo ti aiuterà a ottenere prestazioni migliori senza dover aggiornare il tuo piano di hosting.

Cos'è l'API Heartbeat di WordPress?

L'API di WordPress Heartbeat è un'interfaccia integrata nel core di WordPress che consente la comunicazione in tempo reale tra il server e la dashboard di WordPress. L'API Heartbeat è stata introdotta per la prima volta nel 2013 con il rilascio di WordPress 3.6. Ha fornito importanti miglioramenti alla gestione dei contenuti e ad altre aree chiave dell'amministrazione del sito web.

API del battito cardiaco di WordPress

Perché l'API Heartbeat è così importante?

La dashboard di WordPress è in gran parte un'applicazione lato client. Ciò significa che la maggior parte dell'azione si svolge nel browser dell'utente. In quanto applicazione front-end, l'area di amministrazione di WordPress non ha accesso diretto al database di WordPress, dove sono archiviati i contenuti del sito Web e altre informazioni chiave.

Per funzionare correttamente, la dashboard di WordPress deve essere in grado di comunicare con il server per inviare e ricevere dati. Le API (Application Programming Interface) come l'API Heartbeat di WordPress consentono di ricevere aggiornamenti in tempo reale senza dover ricaricare l'intera pagina per visualizzare nuove informazioni.

Per fornire un'esperienza utente senza soluzione di continuità, la dashboard di WordPress invia richieste al server dietro le quinte abbastanza frequentemente da eliminare eventuali ritardi di aggiornamento per gli utenti di WordPress che hanno effettuato l'accesso e lavorano sul sito web. L'API Heartbeat invierà richieste al server e chiamate API ogni 15-120 secondi.

Tre caratteristiche chiave Poteri dell'API Heartbeat di WordPress

L'API di WordPress Heartbeat alimenta tre funzionalità chiave che rendono l'amministrazione del sito Web più semplice e conveniente. Queste funzionalità sono il salvataggio automatico, il blocco dei contenuti e le notifiche del dashboard in tempo reale. Sono particolarmente importanti per i siti Web modificati dalla comunità o in modo collaborativo in cui più utenti hanno effettuato l'accesso e sono attivi contemporaneamente.

1. Salvataggi automatici e revisioni

I salvataggi automatici e le revisioni sono una delle funzionalità chiave fornite dall'API Heartbeat di WordPress. Ogni volta che un utente lavora nell'editor dei blocchi, WordPress esegue il salvataggio automatico dei contenuti ogni 60 secondi. Ciò garantisce che nessuna modifica venga lasciata non salvata. Inviando richieste al server ogni minuto, l'API Heartbeat di WordPress salva una copia funzionante di un post o di una pagina nel suo database che verrà memorizzato lì fino a quando non viene eseguito un nuovo salvataggio automatico.

I salvataggi automatici di WordPress basati sull'API Heartbeat sono estremamente utili. Possono prevenire la perdita di dati in caso di arresto anomalo del browser o problemi di connessione. I salvataggi automatici non sostituiscono le revisioni create dall'utente e non si accumulano nel database.

2. Blocco dei contenuti

Il blocco dei contenuti è un'altra caratteristica che l'API Heartbeat di WordPress consente di fornire una migliore esperienza di modifica per i proprietari di siti Web WordPress. Se un articolo o una pagina è attualmente in fase di modifica, WordPress lo bloccherà per impedire ad altri utenti di apportarvi modifiche. L'API di WordPress Heartbeat invierà richieste al server ogni 15 secondi. Mostrerà una notifica se un altro utente apre il contenuto bloccato per la modifica.

3. Notifiche dashboard in tempo reale

L'API di WordPress Heartbeat alimenta le notifiche della dashboard in tempo reale, comprese quelle inviate dai plug-in. L'affidabilità della comunicazione client-server fornita da Heartbeat API ha portato migliaia di sviluppatori di plug-in di WordPress a integrarla nelle loro applicazioni.

L'intervallo predefinito per le chiamate API di WordPress Heartbeat nell'area di amministrazione del sito Web è di 15 secondi. Gli sviluppatori di plug-in che desiderano utilizzare la funzionalità API possono configurare intervalli personalizzati per lo scambio di dati tra l'applicazione client e il server.

Come funziona l'API Heartbeat di WordPress?

L'API Heartbeat di WordPress utilizza AJAX (Asynchronous JavaScript And XML) per comunicare con il server dalla dashboard di amministrazione. L'interfaccia di programmazione dell'applicazione raccoglie i dati e li invia tramite il cosiddetto evento jQuery. Un gestore admin-ajax riceve i dati e li elabora lato server, preparando e restituendo successivamente una risposta in formato JSON.

Quando viene caricata la dashboard di WordPress, il codice lato client imposta un intervallo, noto anche come segno di spunta, da eseguire ogni 15-120 secondi, a seconda dell'attività. Il codice dell'API Heartbeat ha il compito di raccogliere i dati sul lato client e di comunicarli al server per ricevere gli aggiornamenti.

Il numero totale di chiamate API Heartbeat dipende dal numero di utenti attivi che lavorano contemporaneamente sul sito web. Questo è lo stesso del numero di istanze del dashboard di WordPress caricate. Avere l'area di amministrazione di WordPress aperta in più finestre del browser crea lo stesso numero di chiamate API Heartbeat come se più utenti fossero connessi al back-end del sito Web e svolgessero attività contemporaneamente.

Perché limitare le chiamate API di WordPress Heartbeat?

Limitare le chiamate API di WordPress Heartbeat può aiutare a velocizzare i siti WordPress che hanno un pool molto limitato di risorse del server allocate, soprattutto quando si tratta di tempo di CPU. Sebbene l'API Heartbeat non sia probabilmente il problema principale dietro le scarse prestazioni del sito Web, è sicuramente qualcosa da prendere in considerazione.

Ogni volta che l'API Heartbeat comunica con il server, viene effettuata una richiesta HTTP POST al file admin-ajax.php in wp-admin. Poiché le chiamate API Heartbeat vengono inviate al server ogni 15-120 secondi e il numero aumenta se è presente più di un utente amministratore attivo, l'API può sovraccaricare il server, con conseguente utilizzo elevato della CPU e della memoria di sistema.

Alcuni proprietari di siti Web WordPress possono persino scambiare l'attività dell'API Heartbeat per un attacco DDOS in corso. Le richieste API di WordPress Heartbeat non possono essere memorizzate nella cache, quindi ogni chiamata utilizzerà una certa quantità di risorse del server. Se il server utilizza attivamente le sue risorse per gestire le chiamate API, i tuoi clienti possono riscontrare ritardi nel rendering dei contenuti durante la navigazione nel tuo sito web.

Tre cose da considerare prima di disabilitare l'API Heartbeat

Disabilitare completamente l'API Heartbeat raramente è una buona idea. La dashboard di WordPress perderà la sua capacità di comunicare con il server in tempo reale per la maggior parte. Con l'API Heartbeat disabilitata, non sarai più in grado di ricevere notifiche. Inoltre, non sarai in grado di sfruttare il blocco dei contenuti, i salvataggi automatici e le revisioni.

Le tre cose fondamentali da considerare prima di disabilitare l'API Heartbeat o limitarne l'attività sono:

  • Ospitando. Verifica quanto tempo di CPU e memoria di sistema sono assegnati al tuo sito web. C'è un limite al numero di processi che il tuo sito web può creare?
  • Tempo dedicato all'amministrazione del sito web. Quanto tempo dedichi all'amministrazione e alla pubblicazione dei contenuti? Quanti utenti attivi lavorano spesso contemporaneamente nella dashboard di WordPress e nelle interfacce di back-end?
  • Traffico giornaliero ricevuto. Quanti visitatori giornalieri riceve il tuo sito Web WordPress? Sono disponibili soluzioni di memorizzazione nella cache per alleggerire il carico sul server?

A seconda del tipo di sito Web e dell'attuale configurazione di hosting, la limitazione del numero di chiamate API di WordPress Heartbeat avrà un impatto diverso sulle prestazioni complessive. Se stai eseguendo un sito WordPress ad alta intensità di risorse con più utenti che eseguono la manutenzione regolare e pubblicano contenuti, ridurre il numero di chiamate API Heartbeat può essere molto utile. Può anche aiutarti a evitare di aumentare i costi di hosting nel tentativo di far fronte a quantità crescenti di traffico.

Come gestire l'API Heartbeat di WordPress con un plug-in

Il modo più semplice per gestire le richieste API di WordPress Heartbeat è utilizzare un plug-in di WordPress progettato per questo. Ci sono diverse soluzioni di cui puoi approfittare. Heartbeat Control, sviluppato da WP Rocket, è uno dei migliori e più popolari.

Controllo del battito cardiaco

Installa e attiva il plug-in Heartbeat Control dalla dashboard di WordPress. Passare a Impostazioni > Controllo battito cardiaco per aprire la configurazione del plug-in. Heartbeat Control ti consente di gestire l'attività dell'Heartbeat API sul frontend del sito Web, sulla dashboard di WordPress e nell'editor di blocchi utilizzando le seguenti opzioni:

  • Consenti battito cardiaco. Se questa opzione è abilitata, il plugin non limiterà in alcun modo le chiamate API Heartbeat.
  • Disattiva battito cardiaco. La disabilitazione di Heartbeat bloccherà tutte le chiamate API nelle aree scelte del tuo sito Web WordPress.
  • Modifica battito cardiaco. Puoi impostare un intervallo personalizzato per le chiamate API di WordPress Heartbeat, che vanno da 15 a 300 secondi.
Controllo del battito cardiaco

La maggior parte delle volte, la configurazione di un intervallo più ampio per le chiamate API di WordPress Heartbeat è la migliore linea d'azione. Ad esempio, limitare il numero di chiamate API a una ogni cinque minuti in tutte e tre le aree del tuo sito Web avrà lo stesso effetto sulle prestazioni complessive della disattivazione completa dell'API Heartbeat.

Tieni presente che limitare l'attività dell'API Heartbeat nell'editor dei blocchi potrebbe richiedere di salvare le revisioni più spesso per evitare di perdere eventuali modifiche al contenuto che stai modificando. Se non fai affidamento sui salvataggi automatici e non hai bisogno del blocco dei contenuti, puoi disabilitare completamente l'API Heartbeat di WordPress in Gutenberg.

Come limitare le chiamate all'API Heartbeat di WordPress senza un plug-in

Puoi limitare le chiamate API di WordPress Heartbeat senza un plug-in utilizzando gli hook di WordPress. L'aggiunta di poche righe di codice al file functions.php del tema attivo del tuo sito Web può aiutarti a disabilitare l'API Heartbeat o specificare un intervallo personalizzato per le chiamate API.

WordPress viene fornito con l'editor di temi integrato che ti consente di modificare functions.php dalla dashboard di amministrazione. Tuttavia, la maggior parte dei plugin di sicurezza di WordPress, come iThemes Security Pro, disabilita questa funzionalità per proteggere il tuo sito Web nel caso in cui venga compromesso.

Puoi modificare il file utilizzando l'interfaccia del file manager fornita dal pannello di controllo del tuo hosting o collegandoti ai file del tuo sito Web tramite FTP o SSH. Se Kadence WP è il tuo tema di blocco WordPress preferito, puoi trovare il file functions.php nella cartella Kadence all'interno della directory dei contenuti di WordPress.

Tieni presente che qualsiasi codice aggiunto al file functions.php verrà probabilmente sovrascritto dal prossimo aggiornamento del tema. Pertanto, potrebbe essere meglio gestire l'API Heartbeat di WordPress utilizzando un plug-in. Se usi un tema figlio, puoi modificare il suo file functions.php senza il rischio che venga sovrascritto quando il tema genitore viene aggiornato.

Non dimenticare di salvare prima un backup del tuo sito WordPress

Il salvataggio dei backup è una parte importante dell'amministrazione del sito web. Ciò ti consentirà di recuperare da eventuali errori e ripristinare rapidamente il tuo sito Web in caso di emergenza. Assicurati di eseguire il backup del tuo sito Web prima di modificare qualsiasi file del core o del tema di WordPress.

L'utilizzo di un plug-in di backup di WordPress ti aiuta a creare una solida strategia di backup. Avrai una copia funzionante del tuo sito web ogni volta che ne avrai bisogno. Archivia i backup del tuo sito Web in una posizione remota e sfrutta le pianificazioni di backup personalizzate e i ripristini con un clic con BackupBuddy.

Disabilita l'API Heartbeat

L'aggiunta dell'azione seguente consente di arrestare l'API Heartbeat, disabilitando di fatto tutte le chiamate API. Per ottenere ciò, aggiungi lo snippet di codice qui sotto in fondo a functions.php.

function wb_stop_heartbeat() {
 wp_deregister_script('heartbeat');
}
add_action('init', 'wb_stop_heartbeat', 1);

Puoi disabilitare una funzione specifica nell'API Heartbeat di WordPress allo stesso modo.

function disable_autosave() {
 wp_deregister_script('autosave');
}
add_action('admin_init', 'disable_autosave');

Configura un intervallo personalizzato per le chiamate API Heartbeat

Per limitare le chiamate API di WordPress Heartbeat, puoi specificare un filtro che configurerà un intervallo personalizzato per le richieste API. Il seguente frammento di codice limita le chiamate API Heartbeat a una richiesta al minuto.

function wb_set_heartbeat_time_interval($settings) {
 $settings['interval']=60;
 return $settings;
}
add_filter('heartbeat_settings', 'wb_set_heartbeat_time_interval');

Configura un intervallo personalizzato per i salvataggi automatici di WordPress

WordPress ti consente di configurare un intervallo personalizzato per i salvataggi automatici ridefinendo la costante AUTOSAVE_INTERVAL. Simile ad altre costanti, puoi assegnargli un nuovo valore aggiungendo la seguente riga al tuo file di configurazione principale di WordPress:

define('AUTOSAVE_INTERVAL', 300);

Puoi assegnare all'intervallo un valore più grande, come 3600, che è un'ora, per disabilitare del tutto i salvataggi automatici di WordPress. Le costanti di WordPress configurate in wp-config.php non vengono modificate durante gli aggiornamenti di WordPress. Non dovrai ridefinirli in seguito.

Avvolgendo

L'API Heartbeat di WordPress è una delle funzionalità chiave integrate nel core di WordPress che consente la comunicazione client-server in tempo reale utilizzando chiamate AJAX. L'interfaccia di programmazione dell'applicazione consente a WordPress di scambiare dati tra il server e la dashboard di WordPress per fornire una migliore esperienza di amministrazione.

L'API Heartbeat invia richieste al server più volte al minuto. Ciò può comportare un aumento del carico sul server e prestazioni ridotte. Puoi limitare le chiamate API Heartbeat utilizzando un plug-in, aggiungendo hook di WordPress o definendo costanti di WordPress.

Le solide prestazioni del sito Web sono fondamentali, ma lo è anche la sicurezza. iThemes ti aiuterà a proteggere tutte le aree del tuo sito Web WordPress, in modo che la tua attività rimanga online, qualunque cosa accada. Scopri come proteggere la tua presenza online, inclusa l'autenticazione a più fattori, il monitoraggio delle modifiche ai file e la scansione delle vulnerabilità, con iThemes Security Pro.