Hoy hemos estado corrigiendo algunas webs con el marcado rel=»canonical» junto con rel=»alternate» hreflang incorrectamente implementado.
Como nos estamos encontrando con bastantes webs con este error, no queremos dejar pasar la oportunidad para volver a llamar la atención sobre la importancia de realizar un marcado correcto.
Todo este problema está ocasionado por Google y una afirmación incorrecta que hicieron con el lanzamiento del rel=»alternate» hreflang: Si se aplicaba tal y como estaba descrito por Google, el resultado de búsqueda mostraba el Título de la URL canónica y la URL especificada con el hreflang.
Esto lleva a situaciones como que el título de la web era el de la página en castellano y que la URL correspondía a la página en inglés.
¿Cómo aplicarlo correctamente? Si se ha implementado el HREFLANG en las URLS, entonces el rel=»canonical» tiene que apuntar a esa misma página.
Voy a coger los ejemplos que Gianluca Fiorelli publicó en una respuesta a la entrada del blog de Seozmoz del Dr. Pete: «Rel=Confused? Answers to Your Rel=Canonical Questions» que lo ilustran muy bien:
Las páginas www.domain.com/products and www.domain.es/uk/products se dirigen a Estados Unidos e Inglaterra, pero tienen el mismo contenido, por lo que se les debería de implementar el marcado rel=»alternate» hreflang.
En la página dirigida a inglés y a Estados Unidos definiríamos el rel=»canonical» junto con rel=»alternate» hreflang de la siguiente forma:
<link rel=»alternate» hreflang=»en-US» href=»http://www.domain.com/products» />
<link rel=»alternate» hreflang=»en-UK» href=»http://www.domain.com/uk/products» />
<link rel=»canonical» href=»http://www.domain.com/products» />
En la página dirigida a inglés y a Inglaterra definiríamos el rel=»canonical» junto con rel=»alternate» hreflang de la siguiente forma:
<link rel=»alternate» hreflang=»en-UK» href=»http://www.domain.com/uk/products» />
<link rel=»alternate» hreflang=»en-US» href=»http://www.domain.com/products» />
<link rel=»canonical» href=»http://www.domain.com/uk/products» />
No hay que olvidar resaltar que Google en las FAQs sobre internacionalización aconseja no usar el rel=»canonical».
Si en el ejemplo anterior tenemos el mismo título en la versión para Estados Unidos y para Inglaterra no hace falta usar el rel=»canonical»; solo en el caso de que los títulos sean distintos y queramos que aparezca el title correcto en los resultados de búsqueda.
¿Ha quedado más claro? Sino, dejarnos un comentario.
¿Entonces, está diciendo de añadir ambos, alternate y canonical, para el idioma principal como a continuación?
Efectivamente yo lo haría así y de hecho tengo bastantes clientes implementados de esta forma (y funciona).
como meto el código? no sale
El código HTML no debería de poder pegarse, porque debería de filtrarse automáticamente.
link rel=»alternate» hreflang=»it» href=»http://www.example.com/it/test/»
link rel=»alternate» hreflang=»el» href=»http://www.example.com/el/test/»
link rel=»alternate» hreflang=»en» href=»http://www.example.com/test/»
link rel=»canonical» href=»http://www.example.com/test/»
(a ver si así)
Una duda, tengo un blog en español y en inglés, y el contenido de los post es el mismo pero traducido de forma manual. Debería poner rel=»canonical» en mi versión en castellano que es la principal. Lógicamente tengo hreflang en las 2 versiones.
Si está correctamente implementado el hreflang, yo no usaría el canonical.