Jump to content
MD85

Canonical en la Home

Recommended Posts

Hola,

He comprobado que Prestashop 1.7 crea urls canonical para el tema de paginación (en categorías)  pero en la home no aparece ninguna canonical, ¿cómo lo podría hacer sin que afecte a la que ya están creadas en las otras páginas?

Quiero que Google sepa que mi web es con https y con www, especificando una canonical.

Espero que me puedan ayudar.

Gracias.

Share this post


Link to post
Share on other sites

Las canonical no son para eso. Las canonical son, cuando un contenido tiene varias URLs diferentes, para indicarle a los buscadores cuál es "la buena".

Por ejemplo, si tienes un producto en las categorías "bazar", "tazas" y "cerámica", pues podrías acceder a él con las URLs "https://misitio.com/bazar/1-taza.html", "https://misitio.com/tazas/1-taza.html" y "https://misitio.com/ceramica/1-taza.html". Lo correcto aquí sería indicarle en la canonical en todas ellas cuál es la URL "buena", que sería aquella que incluyera la categoría por defecto del producto.

La home sólo tiene una URL a través de la cual se pueda acceder, y por eso no necesita canonical. Si tienes activado el HTTPS y has especificado un subdominio www, lo normal es que si intentas entrar de otra forma te haga una redirección, pero la URL en la que terminas al final sería siempre la misma, y por eso no necesita canonical.

Edited by Prestafan33 (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites
On 9/25/2019 at 4:14 PM, Prestafan33 said:

Las canonical no son para eso. Las canonical son, cuando un contenido tiene varias URLs diferentes, para indicarle a los buscadores cuál es "la buena".

Por ejemplo, si tienes un producto en las categorías "bazar", "tazas" y "cerámica", pues podrías acceder a él con las URLs "https://misitio.com/bazar/1-taza.html", "https://misitio.com/tazas/1-taza.html" y "https://misitio.com/ceramica/1-taza.html". Lo correcto aquí sería indicarle en la canonical en todas ellas cuál es la URL "buena", que sería aquella que incluyera la categoría por defecto del producto.

La home sólo tiene una URL a través de la cual se pueda acceder, y por eso no necesita canonical. Si tienes activado el HTTPS y has especificado un subdominio www, lo normal es que si intentas entrar de otra forma te haga una redirección, pero la URL en la que terminas al final sería siempre la misma, y por eso no necesita canonical.

 

Gracias pero me están llegando emails de errores de la propiedad antigua http, y me aconsejan establecer en la home la conocnica: https://www.miweb.es. ¿Me podría decir como hacerlo en Prestashop 1.7?

Gracias.

Share this post


Link to post
Share on other sites

He localizado este código:

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

En las categorías si me aparece, pero en el head de la home no me aparece ninguna canonical, y necesito que se establezca con https://www.miweb.com.

Espero que me podáis ayudar, no encuentro nada al respecto.

Gracias.

Share this post


Link to post
Share on other sites

Insisto en que la canonical no es necesaria en la home, pero si aún así la quieres forzar, tan solo debes editar el archivo /theme/nombre-de-tu-tema/templates/_partials/head.tpl.

Ahí es donde se establece la canonical, debe haber algo similar a esto:

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

Puedes modificarlo así:

{if $page.page_name == 'index'}
	<link rel="canonical" href="https://www.miweb.com">
{elseif $page.canonical}
	<link rel="canonical" href="{$page.canonical}">
{/if}

 

  • Like 1

Share this post


Link to post
Share on other sites
16 minutes ago, Prestafan33 said:

Insisto en que la canonical no es necesaria en la home, pero si aún así la quieres forzar, tan solo debes editar el archivo /theme/nombre-de-tu-tema/templates/_partials/head.tpl.

Ahí es donde se establece la canonical, debe haber algo similar a esto:


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

Puedes modificarlo así:


{if $page.page_name == 'index'}
	<link rel="canonical" href="https://www.miweb.com">
{elseif $page.canonical}
	<link rel="canonical" href="{$page.canonical}">
{/if}

 

Muchas gracias, perdona no es en la home solamente. Me he explicado mal, lo que busco es que en todas las páginas donde no existe paginación la canonical sea la url de la página. 

Muchísimas gracias de nuevo.

Share this post


Link to post
Share on other sites
41 minutes ago, MD85 said:

Muchas gracias, perdona no es en la home solamente. Me he explicado mal, lo que busco es que en todas las páginas donde no existe paginación la canonical sea la url de la página. 

Muchísimas gracias de nuevo.

No entiendo muy bien, eso que dices ya lo debería hacer Prestashop automáticamente, para eso es la línea:

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

En el controlador correspondiente es donde se define la canonical de la página, supuestamente según los criterios adecuados.

Ponme un ejemplo de alguna página, cómo está ahora la canonical, cómo es la URL real de la página (si quieres cambia el dominio por "miweb.com"), y cómo quieres que quede.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Prestafan33 said:

No entiendo muy bien, eso que dices ya lo debería hacer Prestashop automáticamente, para eso es la línea:


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

En el controlador correspondiente es donde se define la canonical de la página, supuestamente según los criterios adecuados.

Ponme un ejemplo de alguna página, cómo está ahora la canonical, cómo es la URL real de la página (si quieres cambia el dominio por "miweb.com"), y cómo quieres que quede.

Claro ahora mismo solo aparece la canonical en las páginas de productos haya o no paginación (categorías), pero en la home o en las páginas de contenido (content) no se especifica la canonical.

Aparece canonical por ejemplo en: www.mitienda.es/colchones

Pero no aparece en www.mitienda.es o en www.mitienda.es/content/quienes-somos

Y quiero que aparezca en todas.

Gracias.

Edited by MD85 (see edit history)

Share this post


Link to post
Share on other sites

A las páginas a las que se llega solo a través de una única ruta no necesitan canonical, porque no hay confusión posible para el robot de indexación. Aquellas a las que se puede llegar a través de varias URLs (por ejemplo, las de producto, porque el mismo producto puede tener distintas combinaciones), son las que necesitan indicar cuál es la URL canonical.

Respecto al tema de idiomas, para eso van los "alternates", que también están especificados ya en el archivo head.tpl:

{block name='head_hreflang'}
      {foreach from=$urls.alternative_langs item=pageUrl key=code}
            <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
      {/foreach}
{/block}

No obstante, si quieres especificar la canonical en todas las páginas, puedes hacerlo así:

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

 

  • Like 1

Share this post


Link to post
Share on other sites
On 10/31/2019 at 11:29 AM, Prestafan33 said:

A las páginas a las que se llega solo a través de una única ruta no necesitan canonical, porque no hay confusión posible para el robot de indexación. Aquellas a las que se puede llegar a través de varias URLs (por ejemplo, las de producto, porque el mismo producto puede tener distintas combinaciones), son las que necesitan indicar cuál es la URL canonical.

Respecto al tema de idiomas, para eso van los "alternates", que también están especificados ya en el archivo head.tpl:


{block name='head_hreflang'}
      {foreach from=$urls.alternative_langs item=pageUrl key=code}
            <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
      {/foreach}
{/block}

No obstante, si quieres especificar la canonical en todas las páginas, puedes hacerlo así:


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

 

Hola, uso Prestashop 1.7.3.3, y no incluye en el head: {block name='head_hreflang'}.

¿Dónde lo debería incluir? ¿Sería correcto?

<link rel="alternate" href="https://www.mitienda.com/es/" hreflang="es">

<link rel="alternate" href="https://www.mitienda.com/en/" hreflang="en">

 

 

Share this post


Link to post
Share on other sites
On 10/31/2019 at 11:29 AM, Prestafan33 said:

A las páginas a las que se llega solo a través de una única ruta no necesitan canonical, porque no hay confusión posible para el robot de indexación. Aquellas a las que se puede llegar a través de varias URLs (por ejemplo, las de producto, porque el mismo producto puede tener distintas combinaciones), son las que necesitan indicar cuál es la URL canonical.

Respecto al tema de idiomas, para eso van los "alternates", que también están especificados ya en el archivo head.tpl:


{block name='head_hreflang'}
      {foreach from=$urls.alternative_langs item=pageUrl key=code}
            <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
      {/foreach}
{/block}

No obstante, si quieres especificar la canonical en todas las páginas, puedes hacerlo así:


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

 

En mi head no aparece: {block name='head_hreflang'} 

No encuentro la forma de solucionarlo. Lo incluyo y nada. 

Gracias.

Share this post


Link to post
Share on other sites
En 31/10/2019 a las 8:54 AM, Prestafan33 dijo:

Insisto en que la canonical no es necesaria en la home, pero si aún así la quieres forzar, tan solo debes editar el archivo /theme/nombre-de-tu-tema/templates/_partials/head.tpl.

Ahí es donde se establece la canonical, debe haber algo similar a esto:


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

Puedes modificarlo así:


{if $page.page_name == 'index'}
	<link rel="canonical" href="https://www.miweb.com">
{elseif $page.canonical}
	<link rel="canonical" href="{$page.canonical}">
{/if}

 

Personalmente creo que toda página debería tener un canonical, la home incluida.

Nunca he tenido ni he visto problemas de duplicado en una HOME, pero pueden darse casos dónde haciendo campañas o instalado X módulos, se puedan añadir parámetros detrás de la URL para etiquetar algo mediante un ID o parámetro. Por ejemplo, en una campaña de Adwrods, donde el etiquetado es automático y si se habilita, puedes acabar con una URL así: https://www.miweb.com/?gclid=XXXXX

Ya te digo, tampoco creo que pasara nada, pero yo siempre pongo canonical a todas las URLs.

Saludos

Share this post


Link to post
Share on other sites
Posted (edited)
On 3/29/2020 at 4:48 PM, SergioE said:

Personalmente creo que toda página debería tener un canonical, la home incluida.

Nunca he tenido ni he visto problemas de duplicado en una HOME, pero pueden darse casos dónde haciendo campañas o instalado X módulos, se puedan añadir parámetros detrás de la URL para etiquetar algo mediante un ID o parámetro. Por ejemplo, en una campaña de Adwrods, donde el etiquetado es automático y si se habilita, puedes acabar con una URL así: https://www.miweb.com/?gclid=XXXXX

Ya te digo, tampoco creo que pasara nada, pero yo siempre pongo canonical a todas las URLs.

Saludos

Un motor de indexación de un buscador debe ser lo suficientemente "inteligente" como para ser capaz de diferenciar lo que es una variable pasada por GET en una URL (?gclid=XXXX en tu ejemplo) de lo que es una ruta en sí. Vamos, estoy plenamente convencido de que lo diferencian, porque es una práctica habitual y si no hicieran se liarían unos follones impresionantes. Un enlace de seguimiento GTM como  los que se crean para las campañas de email márketing por ejempo, lo usan, y son parámetros para el mismo Analytics, que también es de Google, así que sería absurdo que su robot de indexación no los reconociera después.

Pero tienes razón en que, dependiendo de lo que instales en tu web, si es algo que hace cosas muy raras, cabe la posibilidad de llegar a acabar con unas rutas bastante "extrañas" que podrían llegar a confundir en algún caso al robot de Google. Personalmente no lo he visto nunca en la home, pero por poder, sí, podría llegar a pasar.

Edited by Prestafan33 (see edit history)

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More