Implementación de h...
 
Avisos
Vaciar todo

Implementación de hreflang incorrecta en Prestashop

9 Respuestas
5 Usuarios
0 Reactions
1,696 Visitas
 Jose
Respuestas: 13
Active Member
Topic starter
 

El 9 de octubre recibí un mensaje de Seach Console advirtiendo que la web tiene implementado incorrectamente la etiqueta hreflang en mi prestashop.
En el Panel de Control de Seach Console, en el apartado Segmentación Internacional, la gráfica muestra que el error se detectó el 4 de octubre (más o menos desde que actualiamos el prestashop 1.6.1.7).
Sin tener acceso al código html del prestashop, ¿CÓMO PUEDO ACCEDER A CADA PAGINA DE IDIOMA PARA CREAR UNA ETIQUETA DE RETORNO AL IDIOMA ORIGINAL?
Sé que cada idioma debe contemplar los idiomas en los que se encuentra esa versión.
Otro aspecto que no entiendo, es que esto debería hacerlo automaticamente el prestashop al proporcionar la opción de idiomas. Por lo que, el problema es un error de implementación del mismo prestashop y deberían solucionarlo ellos o al menos facilitar cómo hacerlo.
Como webmaster de la web, tengo acceso a todo pero mis conocimientos son limitados y no encontrado nada que se ajuste a este error de implementación del hreflang en prestashop.

URL del sitio: Contenido solo visible a usuarios registrados


 
Respondido : 27/10/2016 9:10 am
Pepe
 Pepe
Respuestas: 41115
Illustrious Member Admin
 

Hola Jose.

Para habilitar estas etiquetas, que sin duda, ayudarán mucho a mejorar el SEO de prestashop, tienes que hacer uso correctamente de la clase $link y las funciones getCategoryLink, getProductLink, getCMSLink, getManufacturerLink y añadirlas en el header.tpl (dentro del del documento) de tu tema.

.- Edita el archivo header.tpl que encontraras en themes/tuplantilla/header.tpl
.- Añade este código dentro del del archivo:

{if $page_name == 'category'}
    getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}" />    
    {foreach $languages as $lang}getCategoryLink($smarty.get.id_category, null, $lang.id_lang,null,null )}" />{/foreach}
{/if}
 
{if $page_name == 'product'}
    getProductLink($smarty.get.id_product, null, null, null, $id_lang, null, 0, false)}" />    
    {foreach $languages as $lang}getProductLink($smarty.get.id_product, null, null, null, $lang.id_lang, null, 0, false)}" />{/foreach}
{/if}
 
{if $page_name == 'cms'}
    getCMSLink($smarty.get.id_cms, null, false, $id_lang)}" />    
    {foreach $languages as $lang}getCMSLink($smarty.get.id_cms, null, false, $lang.id_lang)}" />{/foreach}
{/if}
 
{if $page_name == 'manufacturer'}
    getManufacturerLink($smarty.get.id_manufacturer, null, null, null, $id_lang, null, 0, false)}" />    
    {foreach $languages as $lang}getManufacturerLink($smarty.get.id_manufacturer, null, null, null, $lang.id_lang, null, 0, false)}" />{/foreach}
{/if}

En el ejemplo se generan para un sitio multiidioma, sin multitienda y sin https en las siguientes páginas: categorías, productos, cms y listado de productos del fabricante / marca. De esta forma todos estos tipos de páginas de la tienda online, tendrán el link canonical y el atributo hreflang.

Nota: Recuerda realizar una copia del archivo antes de cualquier modificación, solo con un copia y pega en el block de notas tendrás suficiente para dejarlo como estaba anteriormente.

Un saludo


 
Respondido : 27/10/2016 9:51 am
 Jose
Respuestas: 13
Active Member
Topic starter
 

Ok, gracias! Voy a probar.

¿Cómo puedo comprobar que está solucionado?


 
Respondido : 27/10/2016 10:54 am
Pepe
 Pepe
Respuestas: 41115
Illustrious Member Admin
 

Hola José.

Una vez insertado este código e indexada las páginas, en Tráfico de búsqueda > Segmentación Internacional de tu cuenta de Webmaster, la herramienta te muestra cuantas hreflang se encuentran en el sitio, y puedes averiguar posibles errores.

Un saludo


 
Respondido : 27/10/2016 12:50 pm
Respuestas: 17
Active Member
 

Buenos dias,
¿Como sería para usarlo con https?
Muchas gracias 😉


 
Respondido : 10/02/2017 2:41 pm
Pablo Velasco
Respuestas: 20382
Illustrious Member
 

Hola,

No se si te refieres a cargar tu web con el protocolo https, ya que esto sería un tema distinto.

De ser así, envía un ticket a soporte desde tu área de cliente, ya que desde ahí te podrán dar información sobre cómo instalar un certificado SSL de forma gratuita, requisito imprescindible para cargar la web con https.


 
Respondido : 10/02/2017 4:47 pm
Respuestas: 17
Active Member
 

Hola,
Me refiero a esto que habeis dicho despues de la solución propuesta:

En el ejemplo se generan para un sitio multiidioma, sin multitienda y sin https...

Mi sitio si tiene certificado SSL instalado
Gracias


 
Respondido : 10/02/2017 5:34 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Creo que el código no cambia, ya que veo que se usa la variable $link para recuperar el protocolo con el que se esta trabajando, por lo tanto no deberías tener problemas en usar el código con htttp o con https

href="{$link->

Saludos


 
Respondido : 10/02/2017 6:50 pm
Respuestas: 17
Active Member
 

Gracias, voy a probarlo.


 
Respondido : 10/02/2017 6:53 pm