Os compartirmos un fragmento de código que mejora el comportamiento de las etiquetas canonical en Prestashop.

La etiqueta canonical se utiliza para indicar a los motores de búsqueda cuál es la URL preferida o principal para una página específica, ayudando a evitar problemas de contenido duplicado.

Por defecto, Prestashop indica como canonical la misma página en la que está el usuario. Esta práctica puede generar problemas o dificultar nuestro SEO, especialmente en situaciones como la paginación, donde varias páginas pueden mostrar contenido similar.

Con nuestro código establecemos como canonical la primera página, ya sea de categorías o de marcas, para concentrar todo el valor SEO en la URL sin los parámetros de paginación o filtros.

Para implementar esta mejora es necesario editar el archivo themes>TU_TEMA>templates>_partials>head.tpl

Busca el siguiente código en tu archivo:

  {if $page.canonical}
    <link rel="canonical" href="{$page.canonical}">
  {/if}

Solo tendrás que sustituirlo por nuestro código con las canonical mejoradas:

<!-- CANONICAL -->
	{if $page_name == 'index'}
		<link rel="canonical" href="{$link->getPageLink('index', 'true', $id_lang)}" />    
	{/if}

	{if $page_name == 'category'}
		<link rel="canonical" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang, null, null )}" />    
	{/if}

	{if $page_name == 'cms' && $smarty.get.id_cms > 0}
		<link rel="canonical" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $id_lang)}" />
	{/if}

	{if $page_name == 'manufacturer'}
		{assign var='manufacturerId' value=$smarty.get.id_manufacturer}
		{if isset($manufacturerId) && $manufacturerId}
			{assign var='manufacturer' value=Manufacturer::getNameById($manufacturerId)}
			{if isset($manufacturer) && $manufacturer}
			  <link rel="canonical" href="{$link->getManufacturerLink($manufacturerId, Tools::link_rewrite($manufacturer), $id_lang)}" />
			{/if}
		{/if}
	{/if}
<!-- ./CANONICAL -->

Si tienes activada la caché deberás ir a la administración de tu Prestashop, a Parámetros avanzadazos>Rendimiento y borrar la caché en el botón ubicado arriba a la derecha.

Después actualiza la página y comprueba en el código fuente que las canonicals cargan correctamente según la página en la que estás.

Si tienes alguna duda, sugerencia o te hemos ayudado, puedes dejarnos un comentario.

Compartir en

Comentarios
Deja tu comentario
Tu dirección de correo electrónico no será publicada. Todos los campos son obligatorios.
       Es necesario aceptar la política de privacidad para comentar.

Relacionados


23/02/2024
Añadir campo personalizado a email de WooCommerce

Si utilizas Advanced Custom Fields en WordPress con WooCommerce, es muy posible que utilices algún campo personalizado en cada producto. Si quieres que ese campo […]

6 consejos sencillos para proteger tu WordPress

Proteger WordPress es crucial para mejorar la seguridad de tu sitio web. Aquí hay algunos consejos sencillos que puedes implementar: Recuerda que la prevención es […]

Activar svg wordpress
Permitir archivos SVG en WordPress

Aunque WordPress no admite SVG de forma nativa en todos los casos, podemos superar esta limitación mediante la adición de código personalizado en el archivo […]