Tutti ci affidiamo a plugin e tool per generare le sitemap dei nostri siti in WordPress. Può capitare però di avere l’esigenza di creare una sitemap personalizzata secondo alcuni parametri personalizzabili.
In questa guida vedremo:
- Cosa è una sitemap e a cosa serve
- Come generalmente si può generare una sitemap
- Creare Sitemap con plugin
- Sitemap presonalizzata su wordpress attraverso uno script PHP custom
Cosa è e a cosa serve una sitemap?
Una Sitemap è un file (principalmente in formato .xml) in cui sono presenti informazioni (link) su pagine, video e file presenti sul sito. Oltre ciò sono presenti una serie di informazioni sulla correlazione tra i vari elementi.
Google legge questo file per eseguire una scansione più veloce, facile ed efficiente del sito e creare una mappa di tutti i contenuti.
La Sitemap indica a Google le pagine e i file del sito che hai scelto e fornisce anche informazioni importanti come ad esempio la data dell’ultimo aggiornamento della pagina e la presenza di versioni in altre lingue.
Sitemap di esempio:
Il vantaggio di avere una sitemap è migliorare la possibilità di crawling. I crawler (piccoli programmi che “guardano” nei siti web per capirne il contenuto e posizionarli su google) dei motori di ricerca come Googlebot leggono questi file per scansionare in modo più intelligente ed efficace un sito wordpress e non.
I vantaggi di avere una sitemap in wordpress in sintesi:
- Priorità di scansione: la sitemap permette a Google di dare priorità alla scansione di alcune pagine del sito attraverso metadati.
- Scansione migliorata e tempi ridotti: la sitemap può aiutare i robot dei motori di ricerca a scansionare i contenuti più velocemente di quanto farebbero senza. Questo può far sì che i vostri contenuti siano indicizzati più velocemente.
- Contenuti multimediali: se sono presenti molti media come video e immagini, Google può prendere in considerazione le informazioni dalle sitemaps per la ricerca.
Oltre alla possibilità di crawling, le sitemap possono essere usate per dare informazioni utili anche in altri modi.
Se inviate la vostra sitemap a Google Search Console, avete la possibilità di far leggere completamente il vostro sito a Google in pochissimo tempo.
Una sitemap è sicura o potrebbe essere una falla di sicurezza?
No! Non preoccupatevi di questo.
Creare una sitemap XML non farà mai male ad un sito wordpress.
Come creare una sitemap
Per creare una sitemap ci sono diverse strade ma fondamentalmente potremmo dividerle in due principali tipologie:
Manuale
Ovvero scrivere manualmente un file in formato testuale o XML e caricarlo all’interno della root (cartella principale del sito ad esempio https://www.animuslab.it/sitemap.xml) del nostro sito. Per fare ciò possiamo appoggiarci alle linee guida indicate qui
PRO:
La sitemap è completamente gestibile in tutte le sue parti e particolarità
CONTRO:
La sitemap va aggiornata manualmente ad ogni modifica o aggiunta di contenuti.
la scrittura è lenta e macchinosa ed è facile incappare in errori
Automatica
Per questa modalità possiamo affidarci a dei plugin o degli script di codice. Questa procedura ci consente di creare una o più sitemap automaticamente, secondo alcuni parametri personalizzabili.
Il vantaggio di avere una sitemap aggiornata è quella di avere sempre disponibile una sitemap per dare modo a google di indicizzare più velocemente le nuove pagine o articoli creati.
Creare una Sitemap XML per WordPress con un Plugin
Abbiamo appurato cos’è una sitemap e come può aiutare un sito wordpress.
Il modo più semplice per creare una sitemap è usare Yoast SEO, uno dei plugin per la SEO on page più utilizzati.
Per creare una sitemap per WordPress con Yoast SEO, in realtà c’è veramente poco da fare, infatti basterà installare e attivare il plugin gratuito Yoast SEO. Di default, Yoast SEO creerà una sitemap al link:
yoursite.com/sitemap_index.xml
Per verificare che la sitemap sia attiva su Yoast SEO controllate in:
Yoast SEO > Generale > Funzionalità > Sitemaps XML (su on)
Sitemap WordPress con plugin:
PRO:
La sitemap wordpress si aggiorna ad ogni modifica, eliminazione o aggiunta di post, pagine, prodotti o contenuti.
La sitemap è generata automaticamente tramite dei plugin verificati e testati in tutte le loro parti.
CONTRO:
Non sempre si ha un controllo del 100% dei contenuti inseriti nella sitemap.
Sitemap personalizzata su wordpress attraverso uno script PHP custom
Vediamo come creare una sitemap in WordPress manualmente:
Quindi hai scelto di creare una sitemap personalizzata tramite codice per il tuo sito wordpress, vediamo come fare:
Una sitemap, per quanto utile, non è esattamente un semplice script di codice. Ma è semplicissimo seguendo i pochi passaggi di questa guida.
1. Apri il file functions.php del tema
Il file functions.php è il punto in cui incorporare delle funzioni specifiche del tuo tema WordPress. Può essere utilizzato per integrarsi con le funzioni principali di WordPress, rendendo il tema più flessibile, estensibile ed efficiente. Quindi, per iniziare, apri functions.php dalla cartella del tuo tema (wp-content/themes/your theme folder/functions.php) nel tuo editor di testo.
Nella barra laterale destra, fai clic su Functions.php
2. Copia e incolla il codice qui sotto nel file functions.php del tuo tema.
/* ------------------------------------------------------------------------- *
* WordPress Dynamic XML Sitemap
* Codes By Gianluca Occhiuzzi - AnimusLAB
/* ------------------------------------------------------------------------- */
add_action("publish_post", "create_sitemap");
add_action("publish_page", "create_sitemap");
add_action( "save_post", "create_sitemap" );
add_action( "delete_post", "create_sitemap" );
function create_sitemap()
{
$post_sitemap = get_posts(array(
'numberposts' => -1,
'orderby' => 'modified',
'post_type' => array('post', 'page'),
'post_status' => 'publish',
'order' => 'DESC',
));
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>';
$sitemap .= '<?xml-stylesheet type="text/xsl" href="sitemap-style.XSL"?>';
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach ($post_sitemap as $post) {
setup_postdata($post);
$postdate = explode(" ", $post->post_modified);
$sitemap .= '<url>' .
'<loc>' . get_permalink($post->ID) . '</loc>' .
'<priority>1</priority>' .
'<lastmod>' . $postdate[0] . '</lastmod>' .
'<changefreq>daily</changefreq>' .
'</url>';
}
$sitemap .= '</urlset>';
$sitemap_file = fopen(ABSPATH . "sitemap_custom.xml", 'w');
fwrite($sitemap_file, $sitemap);
fclose($sitemap_file);
}
Per personalizzare i contenuti di questa sitemap basterà agire sulla query get_posts() che può essere utilizzata per filtrare specifici contenuti come Custom Post Type, traduzioni (Per polylang basterà usare ‘lang’ => ‘it’ dove “it” sta per lo slug della lingua)
ATTENZIONE per usare questa sitemap con woocomerce dobbiamo sostituire ‘post_type’ => array(‘post’, ‘page’) con ‘post_type’ => array(‘post’, ‘page’, ‘product’)
Per maggiori informazioni basterà consultare il codex di wordpress al seguente link
3. Ora crea un file chiamato sitemap-style.XSL
Questo servirà a dare lo stile e la formattazione alla nostra sitemap.
Questo file andrà scompattato (unzippato) e caricato nella root del nostro sito web.
4. IMPORTANTE! Crea un nuovo post o aggiornane uno esistente.
Per far partire la generazione della sitemap devi aggiornare, aggiungere o eliminare un articolo/pagina/CPT dal tuo sito wordpress (non serve modificare il contenuto).
Controlla la sitemap su www.mydomain.com/sitemap_custom.xml, dove troverai la tua sitemap personalizzata.