Heartbeat: come velocizzare il caricamento delle pagine WordPress (compresa la sezione admin)

wordpress hosting

Avete mai fatto una verifica della velocità delle pagine di WordPress (del vostro blog)? Nel caso non l’abbiate fatto, potete farlo subito cliccando qui. Il tool è offerto da una delle ditte più famose in questo campo (credo che la conosciate tutti se siete arrivati qui). Quasi sicuramente noterete quanto tempo ci mette a caricare la pagina “admin-ajax.php”. Ebbene, dopo giorni di studio, sono arrivato ad una semplice considerazione: si tratta della “WordPress Heartbeat API” e permette a WordPress (dalla 3.6 in poi) di comunicare tra il browser e il server. Tutto ciò a che serve? Serve a funzioni come l’auto salvataggio, il tracking delle revisioni e altro. Può sembrare figo, certo, ma tutto ciò comporta un livello d’uso della CPU molto elevato rispetto al reale utilizzo che ne si fa.

How-to-disable-WordPress-heartbeat-API-to-reduce-CPU-usage

VEDI ANCHE: Wordfence: come proteggere WordPress e velocizzarlo in un colpo solo

Come velocizzare il blog WordPress con W3 Total Cache: le migliori impostazioni (Cloudflare tips)

Dunque se notate uno strano rallentamento del vostro sito e, dopo aver fatto la verifica, un eccessivo ammontare di richieste da parte di “admin-ajax.php”, allora potete procedere a disabilitare le “WordPress Heartbeat API”.

[su_label type=”warning”]ATTENZIONE[/su_label]: questo metodo è altamente sconsigliato se non sapete quello che state facendo!

functions.php

Prima di tutto localizzate il file functions.php, che si trova sotto la cartella principale del vostro tema, ad esempio:

/home/userna5/public_html/wp-content/themes/twentyfourteen/functions.php

Fai un backup di questo file!

Disabilitare Heartbeat

– Su tutto il sito. Aggiungi queste righe a functions.php (all’inizio, dopo il richiamo del tema):

add_action( 'init', 'stop_heartbeat', 1 );

function stop_heartbeat() {
        wp_deregister_script('heartbeat');
}

– Solo sulla Dashboard. Aggiungi queste righe a functions.php (all’inizio, dopo il richiamo del tema):

add_action( 'init', 'stop_heartbeat', 1 );

function stop_heartbeat() {
        global $pagenow;

        if ( $pagenow == 'index.php'  )
        wp_deregister_script('heartbeat');
}

Con la variabile “$pagenow” potete selezionare e specificare su quale pagina disabilitare Heartbeat API, insieme alla specifica “if”.

– Su tutto il sito tranne post.php e post-new.php. Aggiungi queste righe a functions.php (all’inizio, dopo il richiamo del tema):

add_action( 'init', 'stop_heartbeat', 1 );

function stop_heartbeat() {
        global $pagenow;

        if ( $pagenow != 'post.php' && $pagenow != 'post-new.php' )
        wp_deregister_script('heartbeat');
}

Ora potete semplicemente salvare il file functions.php.

Ritardare le richieste di Heartbeat

Se invece non volete perdere le funzionalità date da queste API, potete semplicemente ritardare le richieste.

Prima di tutto fate una copia di questo file:

/home/userna5/public_html/wp-includes/js/heartbeat.min.js

Poi dovrete individuare tre tipi di richieste: quelle da 15, 30 e infine 60 secondi. Vi consiglio di utilizzare la funzione ricerca del vostro browser (CTRL+F o CMD+F).

I numeri indicano ovviamente i secondi della richiesta, mentre i indicano semplicemente che nel mezzo c’è altro codice.

– Richieste da 15 sec.

Sostituite:

B.mainInterval<15?B.mainInterval=15:...case 15:

Con:

B.mainInterval<120?B.mainInterval=120:...case 120:

– Richieste da 30 sec.

Sostituite:

case 30:...30,b=1>b||b>30?30:

Con:

case 300:...300,b=1>b||b>300?300:

– Richieste da 60 sec.

Sostituite:

B.mainInterval>60&&(B.mainInterval=60))...case 60:...mainInterval:60

Con:

B.mainInterval>600&&(B.mainInterval=600))...case 600:...mainInterval:600

 

Arrivato a questo punto non ti resta che confrontare il risultato tra prima e dopo aver applicato questo “stratagemma”.

La guida è una adattamento in italiano dell’originale che potete trovare qui.

Pubblicato in

Reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.