hreflang sin dolor: implementacion para sitios multilingues
Patrones de hreflang validados en proyectos globales, con ejemplos reales de auditoria, herramientas y lo que se rompe en la practica.
Un cliente nuestro tenia 14 idiomas, 9 mercados y un trafico organico que crecia 3% al ano mientras el catalogo se duplicaba. La auditoria revelo 211 mil URLs con hreflang roto: return tags ausentes, codigos de region erroneos (en-UK en lugar de en-GB) y x-default apuntando a una pagina 302. En 60 dias de correccion, el trafico en mercados secundarios subio 38%. Hreflang no es glamour, pero es donde los equipos globales sangran ingresos en silencio. Antes de entrar en los patrones, vale recordar Como auditar SEO on-page sin caer en conjeturas: sin baseline en logs y Search Console, estas optimizando a ciegas.
La regla fundamental es simetria. Si la pagina A apunta a B con hreflang='es-MX', B necesita apuntar de vuelta a A. Google ignora declaraciones unidireccionales sin aviso, y Screaming Frog (modo SEO Spider 20+) ya tiene el reporte 'Hreflang > Missing Return Links' que resuelve el 80% de los problemas en un crawl. Otro detalle que pocos equipos captan: el atributo acepta codigos ISO 639-1 para idioma e ISO 3166-1 Alpha 2 para region. en-UK no existe. pt-BR existe. Confunde porque el TLD .uk se usa mucho, pero hreflang sigue un estandar propio.
Donde declarar? Tres opciones validas por Google: etiqueta link en el head HTML, header HTTP para PDFs y activos no-HTML, o sitemap XML. Para sitios con mas de 50 mil URLs traducidas, el sitemap es la unica opcion sostenible. Mantener 40 link tags en el head de cada pagina infla el peso del HTML y perjudica LCP, algo que ya discutimos en Core Web Vitals: mas alla del LCP, lo que mueve la aguja. Usa sitemap segmentado por mercado, con lastmod consistente. Si todavia generas sitemaps manualmente, lee Sitemap XML moderno: prioridad, lastmod y que ignorar antes de seguir esta conversacion.
x-default es el cluster mas incomprendido. No es 'la version en ingles'. Es la pagina para usuarios cuya region o idioma no coincide con ninguna de las alternativas declaradas. En ecommerce global, x-default normalmente apunta a un selector de pais o a la version internacional generica (ingles US o UK, con precios en USD). He visto casos donde x-default apuntaba a una URL con redirect 302 basado en IP, lo que hace que Google alterne resultados aleatoriamente en el SERP. Si manejas PLPs internacionales, On-page para e-commerce: PLP vs PDP sin canibalizar explica como evitar canibalizacion paralela.
Herramientas que uso en la auditoria mensual: Screaming Frog para crawl, Ahrefs Site Audit para detectar conflictos con canonical (canonical y hreflang en paginas distintas es bug seguro, ver Canonical tags: errores comunes que sangran trafico organico), y queries personalizadas en BigQuery sobre el export del GSC para cruzar impresiones por pais con declaraciones hreflang. Esa tercera tecnica es del tipo cubierto en BigQuery + GSC: consultas que tu agencia no ejecuta y es lo que separa diagnostico de adivinanza. En proyectos con mas de 5 idiomas, genera un grafo de adyacencia de las declaraciones y busca componentes desconectados.
Errores que aun matan: subdominios con hreflang apuntando a subdirectorios (mezcla de arquitectura URL), uso de underscore en lugar de guion (pt_BR es invalido, debe ser pt-BR), y declarar hreflang en paginas noindex. Google descarta la noindex y mantiene solo el otro extremo, rompiendo la simetria sin aviso. Otro clasico es duplicar hreflang en multiples alternativas para el mismo par idioma-region, generando 'multiple entries' en GSC. Revisa el reporte 'International Targeting' (aun funciona en 2026) semanalmente en los primeros 90 dias post-rollout.
Takeaway practico: antes de agregar un undecimo idioma, audita los 10 que ya existen. Corre Screaming Frog con configuracion de hreflang validation, exporta errores, clasificalos por volumen de impresion via GSC, y corrige primero lo que ya recibe trafico. Hreflang no es seo avanzado, es higiene. Y cuando se hace bien, paga en mercados que ni sabias que estaban dejando dinero sobre la mesa.