La Sitemap di prestashop è essenziale ai fini della indicizzazione del sito web perchè è una lista di tutte le pagine (URL) del sito.
La sitemap è un file XML usato dai motori di ricerca per avere una panoramica del contenuto disponibile e per comprendere meglio l’intera struttura del sito, si capisce quindi l’importanza di avere all’interno della sitemap quanto più elementi possibili utili ai motori di ricerca per conoscere il sito.
Normalmente il crawler di Google è affidabile quando si tratta di trovare dei contenuti. Le sitemap aiutano però i motori di ricerca a trovarli, scansionarli e comprenderli meglio. Si tratta di un elemento utile soprattutto per siti molto grandi, e può permettere agli utenti di orientarsi meglio.
Molti dei moduli gratuiti o che comunque costano poco per generare la sitemap di prestashop lavorano benissimo ma non inseriscono autotaticamente i contenuti di un eventuale blog installato sul sito.
Alcuni moduli a pagamento per i blog hanno al loro interno la possibilità di generare una sitemap specifica per i loro contenuti, come ad esempio il modulo Prestablog per la versione 1.6 di prestashop, ma la stragrande maggioranza degli altri moduli non ha questa opzione quindi è necessario capire se è possibile , dopo aver installato un modulo per il blog e dopo aver installato ad esempio il modulo gratuito di google (gsitemap) per generare la sitemap di prestashop, inserire nel file XML generato anche gli articoli del Blog.
La risposta è Sì, vediamo adesso come procedere prendendo come esempio il modulo gratuito di google per generare la sitempa di prestashop e il modulo Simple Blog che non prevede la generazione di una sua mappa.
La prima cosa da fare è installare questi 2 moduli, poi bisogna andare sul database e vedere come si chiamano nomi e campi delle tabelle creare per il blog ed inoltre controllare, inserendo un articolo di blog, come viene strutturato l’url per l’articolo.
Nel caso specifico di Simple Blog, l’url viene strutturato in questo modo:
https://www.miosito.com/blog/nomecategoria/nomearticolo
mentre le tabelle interessate sono: simpleblog_post, simpleblog_post_lang, simpleblog_category, simpleblog_category_lang
e i campi interessati: id_simpleblog_post, id_simpleblog_category, link_rewrite, active, id_lang e id_simpleblog_category
Fatto questo andiamo a modificare il file /httpdocs/modules/gsitemap/gsitemap.php del modulo Google Sitemap inserendo all’interno della funzione getCmsLink prima di return true; il seguente codice:
$blogfolder=’https://www.miosito.com/blog/’;
$posts_id = Db::getInstance()->ExecuteS(‘SELECT post.`id_simpleblog_post`, post.`id_simpleblog_category`, postlang.link_rewrite as link ‘.
‘FROM `’._DB_PREFIX_.’simpleblog_post` post, ‘._DB_PREFIX_.’simpleblog_post_lang postlang ‘.
‘WHERE post.active=1 and post.id_simpleblog_post=postlang.id_simpleblog_post ‘.
‘and postlang.id_lang=’.(int)$lang[‘id_lang’].’ order by id_simpleblog_post asc’);
if (is_array($posts_id)) {
foreach ($posts_id as $post_id) {
$cats_id = Db::getInstance()->ExecuteS(‘SELECT post.`id_simpleblog_category`, postlang.link_rewrite as link ‘.
‘FROM `’._DB_PREFIX_.’simpleblog_category` post, ‘._DB_PREFIX_.’simpleblog_category_lang postlang ‘.
‘WHERE post.id_simpleblog_category=postlang.id_simpleblog_category ‘.
‘and post.id_simpleblog_category=’.(int)$post_id[‘id_simpleblog_category’].’ and postlang.id_lang=’.(int)$lang[‘id_lang’].’ ‘);
if (is_array($cats_id)) {
foreach ($cats_id as $cat_id) {
$url = $blogfolder.$cat_id[‘link’].”/”.$post_id[‘link’];
}
}
if (!$this->addLinkToSitemap($link_sitemap, array(
‘type’ => ‘blog’,
‘page’ => ‘blog’,
‘link’ => $url,
‘image’ => false,
), $lang[‘iso_code’], $index, $i, $post_id[‘id_simpleblog_post’])) {
return false;
}
}
}
Sicuramente esistono dei modi diversi così come esistono dei moduli per generare sitemap di prestashop direttamente dal blog e che quindi pagando ci risparmiamo questo lavoro ma in ogni caso è sempre utile sapere che esiste un’alternativa.