Categorie
SEO Webmaster Wordpress

Ottimizzazioni Cron del tuo Hosting per la SEO su WordPress

Salve a tuttə e bentrovati; quest’oggi vorrei parlarvi di un noto strumento Unix e di come utilizzarlo per dare una mano alla SEO del vostro sito WordPress.

WP-Cron

Intanto spendiamo due parole su WP-Cron: è demandato a compiere operazioni a intervalli regolari; è una “simulazione” del demone di sistema Unix che porta il nome di Cron.

Se, per esempio, programmate la pubblicazione di un post in WordPress, sarà WP-Cron a farsi carico di quest’incombenza e la stessa cosa avviene per il controllo di nuove versioni dei plugin.

Sembra un’ottima cosa!

C’è un però… WP-Cron ha delle limitazioni rispetto ad un Cron Unix “completo”.

WP-Cron does not run constantly as the system cron does; it is only triggered on page load.

Siccome WP-Cron viene attivato solo al caricamento di una pagina, potreste trovarvi (su siti con poco traffico) ad avere la pianificazione dei post “sballata”.

Disattivare WP-Cron

Una delle tecniche che si utilizzano è la disattivazione del WP-Cron e l’impostazione di un job Cron “vero”; questo è possibile farlo su qualsiasi hosting e VPS (cambiano i metodi a seconda dell’hosting; contattate il vostro fornitore per maggiori informazioni).

Per disattivare il WP-Cron di base dovrete inserire nel file wp-config.php (che trovate normalmente nella root dell’hosting) il seguente settaggio:

define('DISABLE_WP_CRON', true);

Attivare un Cron Job

Contestualmente dovrete settare nel vostro hosting un comando Cron che richiami il WP-Cron agli orari che preferite; normalmente eseguire il comando una volta l’ora va bene.

Se, per esempio, dovessi fare questa operazione sul dominio example.com il comando sarebbe:

wget -q -O - https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1

Questo comando non fa altro che, tramite il comando Unix wget, richiamare WP-Cron dal Cron Unix; se, come scrivevo, lo settiamo a intervalli di un’ora, non avremo più il problema della pubblicazione programmata non funzionante su siti con poco traffico.

Pingare la nostra Sitemap a Google

Penso che non ci sia molto da dire riguardo la Sitemap (dovremmo conoscere tutti la sua importanza).

Recentemente c’è stato un post di John Mueller (che vi riporto sotto) ove si spiega che pingare un ben preciso indirizzo Google con la nostra Sitemap è una buona pratica.

Come possiamo fare cio?

Con un Cron Job, ovviamente 🙂

Per l’esattezza come prima dal pannello del nostro hosting andremo a creare un nuovo Job per Cron (questa volta basta una volta alla settimana, almeno secondo me) con il seguente comando (per un sito all’indirizzo example.com e per una Sitemap all’indirizzo https://example.com/sitemap_index.xml che è anche l’indirizzo predefinito di Yoast, Rank Math e molti altri plugin per la SEO per WordPress).

curl "https://www.google.com/ping?sitemap=https://example.com/sitemap_index.xml" > /dev/null 2>&1

E via codice?

Dopo la pubblicazione del presente articolo ne è uscito un interessante thread su un famoso gruppo italiano su Facebook dedicato a WordPress ove, invece di utilizzare un Cron Job, Ivan Messina, CEO di SupportHost, proponeva di usare un blocco di codice per fare la stessa cosa.

Quindi, per ogni articolo che viene pubblicato, si invia un ping a Google in modo automatico. Questa soluzione tecnica è paragonabile alla precedente se il tuo sito pubblica meno di 2-3 articoli a settimana.

Questo perché il ping non viene inviato troppo spesso, evitando il problema di finire in qualche blacklist di Google. Se il tuo blog pubblica diversi post al giorno ti troveresti a pingare Google diverse volte al giorno e non va bene.

function ping_google( $new_status, $old_status, $post ) {
    if ( $new_status == 'publish' && $old_status != 'publish' )
		file_get_contents('https://www.google.com/ping?sitemap=https://example.com/sitemap_index.xml');
}
add_action('transition_post_status', 'ping_google', 10, 3 );

Nota che è necessario modificare questo codice, cambiando example.com col nome del tuo dominio, in modo da pingare la tua sitemap.

Puoi inserire questa funzione nel tuo sito WordPress in due diversi modi.

Il primo modo è di copiare ed incollare questo codice nel file functions.php del tuo tema. Per precisione devo dire che in questi casi, quando si modifica un tema, è sempre opportuno creare un tema child, in modo che le nostre modifiche non vengano perdute al primo aggiornamento del tema.

Un altro modo è quello di usare un plugin, come ad esempio Code Snippets. Questo plugin ci permette di inserire delle funzioni al nostro sito, gestendo il codice PHP comodamente dal backend del nostro sito.

Conclusioni

Con questi semplici tip possiamo aiutare la nostra SEO e risolvere (anche) il problema della programmazione dei post; vi invito a provare di persona e a farmi sapere 🙂

Di Flavio Albano

Da sempre appassionato di tecnologia non ho mai smesso di credere nell'open-source e nella condivisione della conoscenza. Laureato in ingegneria civile per un errore di gioventù ed utilizzatore di Linux dal 1998 (la prima distribuzione era una Slackware... e la prima non si scorda mai ;) )

Lascia un commento

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.