Un tema interesante para un proyecto web es el SEO, y en prestashop, las URL canónicas pueden ayudarte a posicionar mejor, o dicho de otra manera, evita que los buscadores te penalicen por productos duplicados.
Hace mucho tiempo que no escribo, y qué mejor momento éste en el que alcanzo las 250 visitas.
Como digo, el tema elegido es un apartado de SEO para prestashop.
Existen módulos específicos para el tema de las URL canónicas, pero con esta pequeña modificación, podemos evitar la inclusión de módulos extra.
Para el que no sepa muy bien la necesidad del uso de URL canónicas, la explicación es sencilla, en prestashop, se crea una URL para cada producto y cada categoría, por lo que si un producto está en varias categorías, éste se multiplica por el número de categorías en el que se incluya. Por ejemplo, 50 productos, 25 en 2 categorías y otros 25 en 3 categorías, haría un total de 150 entradas, si eso lo escalamos a más productos, como se puede imaginar, el problema es mayor.
Una imagen vale más que 1000 palabras, podemos visualizar el uso de URL canonicas de la siguiente manera:
Y es un problema porque para el SEO es contraproducente el hecho de tener contenido repetido, y en este caso tendríamos cada producto repetido por tantas categorías como esté incluido.
Buscando información al respecto, encontré la siguiente web del foro de prestashop, en el que explica cómo hacer las modificaciones necesarias en nuestro código para resolver el problema.
Básicamente, hay que ir al fichero header.tpl, que podremos encontrar en:
[base.dir]/themes/[tema]/header.tpl
Dentro de las etiquetas header hay que añadir el siguiente código:
<!-- canonical --> {if $page_name == 'index' or $page_name == 'search'} <linkrel="canonical"href="{$base_dir}"/> {elseif $page_name == 'category' or $page_name == 'best-sales' or $page_name == 'cart' or $page_name == 'discount' or $page_name == 'manufacturer' or $page_name == 'new-products' or $page_name == 'prices-drop'} <linkrel="canonical" href="{$base_dir}{$request_uri|substr:1|regex_replace:'//(.*)/': ''|regex_replace:'/?(.*)/':''}"/> {else} <linkrel="canonical"href="{$base_dir}{$request_uri|substr:1}"/> {/if} <!-- /canonical -->
Y con ésto, conseguiremos evitar que los buscadores indexen los productos en exceso.
Espero que os haya ayudado.
Os animo a dejar comentarios 😉
Hola,
gracias por la aportación. Una pregunta, entiendo que es código vale para categorías, nuevos productos… etc., pero no vale para un mismo producto en varias categorías. ¿es correcto? Si es así, sabes si hay algún módulo
Muy bien explicado todo, asi da gusto, gracias!
Muchas gracias por la info, las otras paginas en las que busque no lo explicaban nada bien.
De nada 😉 a mi también me costó encontrar la información de forma clara.
Aun así..creo que es mejorable e intentaré revisarlo cuando encuentre tiempo.
Eso intentaba, dejarlo de manera clara.
Saludos.
Correcto, toma una única categoría, piensa que si estamos tomando una URL canónica para los buscadores no queremos que indexe el artículo más de una vez, porque correremos el riesgo de contenido duplicado.
Sobre posibles módulos, hay módulos para hacer los canonical…pero de pago.
Teóricamente en Prestashop 1.5.6 hay una opción que dice que activa las URL canónicas…si el tema lo permite, pero yo no he visto que funcione, no sé si con Prestashop 1.6 cambiará la cosa, aún no he probado.
Saludos.
Mi pregunta es si tengo instalado el modulos de canonical, debo de activar tambien en preferencia seo, osea marcarlo como SI..