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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

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