- Home
- Categorie
- Coding e Sistemistica
- Joomla!
- [VirtueMart] Paginazione SEO in catalogo prodotti con Rel next e prev
-
[VirtueMart] Paginazione SEO in catalogo prodotti con Rel next e prev
Come ogni e-commerce anche VirtueMart prevede la possibilità di mostrare i prodotti del catalogo su più pagine, siano essi appartenenti ad una o più categorie o comunque filtrati, ad esempio per produttore.
Da questo punto di vista la paginazione è simile a quella dei blog che mostrano un numero limitato e fisso di post in ogni pagina.Nell'installazione standard di VirtueMart 2 (attualmente compatibile con Joomla 2.5) la paginazione è prevista - nel senso di sistema di link per muoversi tra le pagine di prodotti - ma non viene implementato il link rel="next" e "prev" nell'head della singola pagina, così come dovrebbe avvenire per una corretta configurazione SEO.
Faccio un esempio. Se un catalogo prodotti contiene 25 articoli e ne vengono mostrati 9 per pagina, dovremmo avere la seguente situazione:
- pagina 1, url: dominio.com/shop/categoria?limitstart=0, mostra i primi 9 articoli
- pagina 2, url: dominio.com/shop/categoria?limitstart=9, mostra gli articoli dal 10° al 18°
- pagina 3, url: dominio.com/shop/categoria?limitstart=18, mostra gli articoli dal 19° al 25°
Con riferimento al "rel next e prev", nell'head delle tre pagine dovrebbe apparire rispettivamente:
<link href="shop/categoria?limitstart=9" rel="next" />
* ``` <link href="shop/categoria?limitstart=0" rel="prev" /> <link href="shop/categoria?limitstart=18" rel="next" />
<link href="shop/categoria?limitstart=9" rel="prev" />
Purtroppo né Joomla né VirtueMart sono attrezzati già nel core per ottenere questo risultato. Per quanto riguarda la paginazione SEO delle normali categorie di Joomla (quindi non parliamo di VirtueMart), la procedura da seguire è descritta in questo topic del Forum GT: giorgiotave.it/forum/joomla/216299-risolto-problema-paginazione-blog-joomla.html Una procedura analoga può essere seguita per implementare il "*rel next e prev*" nel catalogo prodotti di VirtueMart 2 tramite override, il tutto scegliendo il giusto file da modificare e inserendo un codice quasi identico a quello riportato nel topic sopra. Come accade sempre con Joomla, il file da modificare dipende dal template. Il mio test l'ho eseguito su Joomla 2.5.16 con VirtueMart 2.0.24 e template Horme (*Ygk_horme*, free). Con questa configurazione i file da modificare si trovano nella directory: *templates/ygk_horme/html/com_virtuemart/category* , dove ovviamente *ygk_horme* va sostituita con la cartella del template in uso qualora questo sia diverso. All'interno di questa cartella si possono trovare diversi file php, ciascuno relativo ad un diverso *Category Layout* così come spiegato in questo topic: giorgiotave.it/forum/componenti-per-joomla/209951-visualizzare-tutti-i-prodotti-di-virtuamart.html Nel mio caso ho *default.php* e *list.php*: se voglio essere sicuro che la paginazione SEO sia implementata correttamente in tutti i layout, allora modificherò entrambi i file. La **procedura** è la seguente: * Accedere via FTP alla cartella *root di Joomla/templates/tuotemplateVM/html/com_virtuemart/category* * Salvare una copia di backup dei file della cartella * Aprire uno alla volta i file *default.php* e *list.php* per copiare in coda il seguente:
<?php
$doc =& JFactory::getDocument();
$pagdata = $this->vmPagination->getData();
if($pagdata->next->link){$doc->addHeadLink(JRoute::($pagdata->next->link), 'next', 'rel');}
if($pagdata->previous->link){$doc->addHeadLink(JRoute::($pagdata->previous->link), 'prev', 'rel');}
?>* Salvare sullo spazio web i file modificati, accedere via frontend a una pagina in cui è richiesta la paginazione del catalogo prodotti e verificare che nel sorgente si legga nell'head qualcosa come:
<link href="shop/categoria?limitstart=0" rel="prev" />
<link href="shop/categoria?limitstart=18" rel="next" />**Note** * Se nei file trovate *div *inserite il codice prima della chiusura dell'ultimo di questi e non fuori. * Le paginazioni di Joomla e di VirtueMart sono diverse e quindi, se volete implementarle tutte e due, dovete eseguire entrambe le procedure (quella di questo post e quella dell'altro post ispirato da serjo). * In alcuni template i file da modificare vanno "cercati", cioè non sono quelli presenti nel percorso indicato. * I due codici, per Joomla e per VirtueMart, non sono identici: nel primo c'è *pagination*, nel secondo *vmPagination*. Se li invertite vi salta il sito. * Abbiamo soltanto aggiunto "*rel next e prev*", l'ottimizzazione non è finita. Qui altre info: [www.giorgiotave.it/guide-webmaster/guida-seo-joomla/](http://www.giorgiotave.it/guide-webmaster/guida-seo-joomla/) Buon override. :smile5: *Francesco*