Jump to content

Problemi SEO con blocklayered


Recommended Posts

Buongiorno,

utilizzando PS 1.6 poco tempo fa ho attivato il modulo blocklayered che mi generato un grave problema di indicizzazione SEO per url duplicati.

Analizzando gli url ho notato che il blocklayered, quando si filtrano i prodotti, modifica gli url generando appunto url duplicati.

 

Dal blog di google webmaster che di seguito riporto: https://webmasters.googleblog.com/2014/02/faceted-navigation-best-and-5-of-worst.html il suggerimento è di usare la coppia ?parametro=valore

 

Qualcuno sa come mantenere il rewrite url standard di Prestashop disattivando quello generato dal blocklayered? Che peraltro altera anche gli url di paginazione.

 

Vorrei ottenere un risultato come il seguente: www.nomesito.it/directory_prodotti?selected_filetrs=colore_bianco-rosso&p=1

dove selected_filters è il parametro usato dal blocklayered e p= ad esempio il numero di pagina

 

Disabilitando totalmente i friendly url invece si otterrebbe un risultato sinile al seguente: www.nomesito.it/index.php?id_category=123&selected_filetrs=colore_bianco-rosso&p=1 perdendo il nome della categoria/prodotto che vorrei invece mantenere

 

Dal BO nella zezione URL-SEO non è possibile eliminare il rewrite

 

Grazie

Edited by andrea71 (see edit history)
Link to comment
Share on other sites

Salve Andrea,

in effetti é un problema che deve essere risolto. La soluzione é dare a Mr. G un "canonical url", quindi penso che sia meglio dotarsi di qualche buon modulo che faccia questa funzione, negli addon ne troverá molti credo.

cmq su github c'é un'antica discussione e c'é qualcuno che aveva sviluppato anche un modulo, ma non so se é affidabile :

 

https://www.prestashop.com/forums/topic/420750-canonical-url-how-to-implement-in-16/page-2

 

Saluti

Link to comment
Share on other sites

Ciao Fabry,

grazie della risposta. Purtroppo il "canonical url" è utile ma Mr. G se ne frega abbastanza. E' come dirgli "guarda che ho un sacco di pagine uguali a questa"...e quindi "duplicate"....

L'unica soluzione sarebbe impostare tra i parametri url nella search control il parametro selected_filters.

A dire che pensavo fosse semplice. In teoria basterebbe eliminare il # dall'url perchè funzioni esattamente come servirebbe. Cancellandolo manualmente funziona.

Edited by andrea71 (see edit history)
Link to comment
Share on other sites

Per quello che ho letto e só Google suggerisce e anzi consiglia proprio per gli e-commerce l'uso del canonical url....ma come e dove??

L'url canonico deve essere impostato nella root della categoria dove figura il prodotto ex:

 

www.tuosito.it/categoria-1

 

ma c'é un'altra cosa che si puó fare ossia usare hash tags # e mi risulta che PS lo aggiunge giustamente!!! e tu vuoi toglierlo? l'hash tag dice a Google di ignorare tutto quello che viene dopo il # e quindi non essere indicizzato....es:

 

www.tuosito.it/categoria-1/nome-prodotto.html#/size-29

 

e se hai due prodotti identici?..../prodotto-a/xxx e prodotto-a/yyy...anche questo lo risolvi col canonical determinando quale é la versione default del prodotto.

 

mi sto perdendo qualcosa?:-)

 

Interessanti questi confronti di idee ,speriamo che qualche esperto seo dica la sua!.

 

ciao

Link to comment
Share on other sites

Provo a dettagliare meglio il problema riscontrato.

 

Attualmente già uso i canonical url e Google li consiglia. Fin qui tutto bene.

 

Per quanto riguarda l'eliminazione del # intendevo dire che eliminando il simbolo dal link manualmente dall'url viene generato un link che ha la parte parteprecedente al # generata con il metodo standard di rewrite di Prestashop (www.nomesito.it/nome_categoria) e la parte successiva senza la rescrittura da parte del modulo blocklayered (?selected_filters=123) creando appunto un link tipo www.nomesito.it/nome_categoria?selected_filters=123 che sarebbe corretto e pulito per l'indicizzazione.

 

E' vero che google li ignora la parte successiva al # degli url (considerandolo un filtro del browser) quindi un url tipo www.nomesito.it/nome_categoria#/colore_rosso lo ignora indicizzando solo il link www.nomesito.it/nome_categoria però non so per quale motivo, e qui un esperto seo che conosce prestashop ,ci potrebbe aiutare vengono indicizzate un'infinità di pagine del tipo: https://www.nomesito.it/nome_categoria?amp%2525252525253Bselected_filters=%253Fp%253D6&p=3 ed è questo a creare problemi. Perche per il crawler il paramentro "amp%2525252525253Bselected_filters" è diverso da "amp%253Bselected_filters" e ancora diverso da "selected_filters" quindi le considera pagine con contenuti differenti.

 

E' come se Mr. G non indicizzasse l'url ma "qualcosa" che viene passato nella generazione dei parametri dell'url. ....ma non so cosa e come...

Link to comment
Share on other sites

amp??...ma tu parli di questo plugin per caso?

 

https://productforums.google.com/forum/#!topic/webmasters/DzKHxQZe4H0;context-place=topicsearchin/webmasters/category$3Aaccelerated-mobile-pages-amp%7Csort:relevance%7Cspell:false

 

hai installato qualche addon tipo questo che facilita il caricamento su dispositivi mobile?:

 

https://addons.prestashop.com/it/dispositivi-mobili/24736-amp.html

Link to comment
Share on other sites

No, non ho installato alcun plugin che faciliti il caricamento su dispositivi mobile. Ma a seguito del tuo post (di cui ti ringrazio) sembra che il parametro amp sia generato dal file classes/controller/FrontController.php e paradossalmente per "pulire" l'URL e classes/controller/Link.php fa qualche altra operazione (che non ho capito bene) dello stesso tipo per la visualizzazione dei caratteri "e commerciale" & (&) e del "punto e virgola" ; (%3B)

Infine anche il file classes/module/Module.php sembra che lavori su questi caratteri speciali (ma il file Module.php penso non c'entri nulla)

Sarebbe interessante capire a questo punto se è questo a creare problemi.

 

La cosa peggiore è che l'url spuro non viene visualizzato ma sembra sia rilevato solo dal crawler di G.

 

Ho trovato anche questo post in cui è già stato evidenziato il problema ma non c'è una soluzione:

https://www.prestashop.com/forums/topic/448726-strange-parameter-in-url-causing-duplicate-content-dc/

 

 

Riporto la riga 1154 (PS 1.6.1.4) del FrontController.php:

 

// Remove the page parameter in order to get a clean URL for the pagination template
        $current_url = preg_replace('/(\?)?(&)?p=\d+/', '$1', Tools::htmlentitiesUTF8($_SERVER['REQUEST_URI']));

 

-------------------------

Link.php riga 480:

 

            // @FIXME html_entity_decode has been added due to '&' => '%3B' ...
            $request = html_entity_decode($request);
            if ($request_url_encode) {
                $request = urlencode($request);
            }
            parse_str($request, $request);

 

-------------------------

Module.php riga 2460:

 

<module>
    <name>'.$this->name.'</name>
    <displayName><![CDATA['.str_replace('&', '&', Tools::htmlentitiesUTF8($this->displayName)).']]></displayName>
    <version><![CDATA['.$this->version.']]></version>
    <description><![CDATA['.str_replace('&', '&', Tools::htmlentitiesUTF8($this->description)).']]></description>
    <author><![CDATA['.str_replace('&', '&', Tools::htmlentitiesUTF8($this->author)).']]></author>'
    .$author_uri.'
    <tab><![CDATA['.Tools::htmlentitiesUTF8($this->tab).']]></tab>'.(isset($this->confirmUninstall) ? "\n\t".'<confirmUninstall><![CDATA['.$this->confirmUninstall.']]></confirmUninstall>' : '').'
    <is_configurable>'.(isset($this->is_configurable) ? (int)$this->is_configurable : 0).'</is_configurable>
    <need_instance>'.(int)$this->need_instance.'</need_instance>'.(isset($this->limited_countries) ? "\n\t".'<limited_countries>'.(count($this->limited_countries) == 1 ? $this->limited_countries[0] : '').'</limited_countries>' : '').'
</module>';


 

Edited by andrea71 (see edit history)
Link to comment
Share on other sites

Per il momento ho disabilitato il modulo blocklayerd ed eseguo una redirect da .htaccess ma sarebbe utile capire come personalizzare l'url rewrite che blocklayered crea. 

Inoltre altera anche il parametro di numero pagina modificando l'url da "?p=x" a "/page-x" e questo lo rende incompatibile con la configurazione dei parametri di google webmaster penalizzando inutilmente (ed enormemente) il sito.

 

In sintesi è un ottimo ed indispensabile modulo, ma inutilizzabile senza la possibilità di personalizzare il rewrite url.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...