Si tu web tiene una sola versión en español, márcala con hreflang="es". Si creas páginas por país, cada una lleva su código, como es-ES para España o es-MX para México, y una de ellas lleva además el es genérico para el resto de hispanohablantes. No uses es-419: es el código del español latinoamericano, pero Google no lo admite en hreflang. Lo comprobamos en las páginas de inicio de 71 sitios, en tres muestras de octubre de 2026: 36 usaban solo códigos de país, sin el es genérico.
La respuesta corta
- Una sola versión en español para todos:
es. - España y Latinoamérica por separado:
es-ESpara España yespara la página latinoamericana, que sirve también a los hispanohablantes de cualquier otro país. - Una página por país:
es-ES,es-MX,es-AR,es-COy los que necesites, más unesgenérico, que puede ser una de las páginas de país. - Español para Estados Unidos:
es-US; para Puerto Rico,es-PR. - Nunca:
es-419,es-LA(es Laos),es-SP(no existe) nies_EScon guion bajo.
Las reglas básicas son las de cualquier idioma: cada versión enumera todas las demás y a sí misma con URLs completas, los enlaces van en los dos sentidos, x-default señala la página de reserva y el canonical de cada versión apunta a sí misma. Lo explicamos con el código de nuestra web en la guía completa de la etiqueta hreflang. Aquí nos centramos en lo que el español complica: muchos países, un código engañoso para Latinoamérica y CMS que no eligen igual.
Cómo lee Google un valor hreflang en español
Google lo explica en su página sobre versiones localizadas, actualizada el 23 de septiembre de 2026 en español:
- Primero el idioma y, si quieres, el país. El idioma es un código ISO 639-1 (
es); el país, un código ISO 3166-1 alfa-2 (ES,MX,AR…), unidos por un guion. - Nada más. En palabras de Google: «No se admiten otros códigos que no figuren en esas normas, como es-419».
- Da igual mayúsculas o minúsculas:
es-mxyes-MXvalen lo mismo. - Un país solo no vale. El primer código siempre es el idioma:
ares árabe, no Argentina, ycoes corso, no Colombia. - Solo códigos asignados oficialmente. Google ignora los reservados para otra cosa, como EU, UN o UK.
- Hreflang no decide el idioma de la página. Google no usa hreflang ni el atributo
langpara detectarlo; hreflang solo le dice qué versión enseñar a cada público.
es-419: válido como etiqueta, no para Google
es-419 une el español con la región 419 de las Naciones Unidas, «América Latina y el Caribe». La norma de etiquetas de idioma, BCP 47 (RFC 5646), usa precisamente ese ejemplo: contenido en español pensado para toda Latinoamérica. La IANA lo registró el 15 de julio de 2005 como «Latin American Spanish», para el español latinoamericano neutro al que traducen muchas empresas, distinto del castellano de España.
Según la División de Estadística de la ONU, la región 419 reúne 52 países y territorios, entre ellos Brasil, Haití, Jamaica y Puerto Rico. Estados Unidos no está, y España tampoco.
El estándar HTML acepta es-419, porque solo exige una etiqueta BCP 47 válida. Google, en cambio, solo admite en hreflang códigos de país de dos letras, y 419 es un número de región de la ONU. Si el código parece oficial es porque aparece en todas partes:
- En el propio Google: su documentación existe en dos variantes de español, y la página que rechaza
es-419enlaza en su encabezado una versiónesy otraes-419. - En DeepL: su interfaz de programación ofrece
ES-419, «Spanish (Latin American)», junto aES-ES. - En WordPress: el plugin Polylang asigna ese código de DeepL a sus 13 variantes latinoamericanas del español.
Google no documenta qué hace con un valor es-419, así que no construyas nada sobre él. Puedes traducir a un español latinoamericano neutro; lo que cambia es la etiqueta: es o códigos de país como es-MX.
Cuatro configuraciones que funcionan
Este es el conjunto de enlaces de una web con versión para España, versión para México y versión en inglés, en la que la página mexicana hace también de versión genérica:
<link rel="alternate" hreflang="es-ES" href="https://www.ejemplo.com/es-es/">
<link rel="alternate" hreflang="es-MX" href="https://www.ejemplo.com/es-mx/">
<link rel="alternate" hreflang="es" href="https://www.ejemplo.com/es-mx/">
<link rel="alternate" hreflang="en" href="https://www.ejemplo.com/en/">
<link rel="alternate" hreflang="x-default" href="https://www.ejemplo.com/en/">Las cinco líneas van idénticas en las tres páginas. Las cuatro configuraciones habituales:
- Una sola versión en español:
es, tus otros idiomas yx-default. Es la más sencilla y la adecuada para la mayoría de las webs pequeñas. - España y Latinoamérica:
es-ESpara España yespara la página latinoamericana. - Una página por país: un código por página y, además,
esen una de ellas, como en el ejemplo. Google recomienda esa URL genérica siempre que varias páginas se dirijan al mismo idioma en países distintos. - España y una página común para Latinoamérica:
es-ESpara España; en la página común, los códigos de los países a los que sirve de verdad, máses.
Si añades idiomas poco a poco, Google da una pista: lo más importante es enlazar en los dos sentidos cada versión nueva con la original. Su ejemplo es un sitio francés en .fr que estrena versiones para México (.mx) y España (.es): importa más conectarlas con la francesa que entre sí.
Lo que encontramos en 71 sitios
Hicimos tres muestras en octubre de 2026, siempre con una sola consulta a la página de inicio de cada sitio: 36 grandes sitios internacionales el 13 de octubre, 55 empresas de Alemania, Austria y Suiza el 16 y 50 empresas francesas el 17. La selección es nuestra, no aleatoria, y solo cuentan las etiquetas hreflang de la página de inicio. 71 sitios declaraban versiones en español:

- Solo
es: 16 sitios. Por ejemplo Atlassian, Duolingo, HubSpot, Mailchimp y Semrush entre los internacionales, o Accor, Brevo, Criteo y Ledger entre los franceses. esmás códigos de país: 18. Dropbox, Notion y Slack combinanes-EScon unespara el resto; Red Bull, Liebherr y Riedel tienen una página española general marcadaesjunto a sus páginas de país; Deezer marcaes-ESsu página de España yessu página de México.- Solo códigos de país: 36, algo más de la mitad.
- Solo
es-419: 1, la página About de Google.
Ninguna empresa de Alemania, Austria, Suiza o Francia usaba es-419, guiones bajos ni códigos de país inventados. Escribir el país en minúsculas (es-mx) es frecuente y no supone ningún problema. Las tres muestras tienen selecciones distintas: sirven para ver patrones, no para comparar países.
El fallo más frecuente: códigos de país sin es
No todos los casos son iguales. Siete empresas francesas y dos de Alemania, Austria y Suiza tienen una sola página en español, marcada es-ES. Si esa página solo sirve a España (precios, envíos, condiciones de venta), es-ES es correcto, y más aún en un dominio .es, que Google ya trata como señal de que el sitio se dirige a ese país. Si está pensada para todos los hispanohablantes, como suele pasar con un programa o una web de marca, es-ES la reserva a España: un lector de México o de Colombia no encaja en ninguna línea, y es Google quien decide por él. En ese caso, cámbiala por es.
Con varias páginas de país, el olvido es más claro. Es justo el caso en el que Google recomienda una URL genérica: en su ejemplo, páginas para Irlanda, Canadá y Australia y una página en para los angloparlantes de cualquier otro lugar, que puede ser una de las existentes. En nuestras muestras, una empresa alemana tenía 16 páginas de país en español sin es, una austriaca 15 y una francesa 14.
La solución es una línea más: añade es a la página que mejor sirva a todos, a menudo la de México o la latinoamericana, como hace Deezer. Esa línea va en la lista de todas las versiones, también en la inglesa o la francesa; si no, falta el enlace de vuelta.
¿Merece la pena tener páginas por país? Solo si el contenido cambia de verdad: moneda, trato, vocabulario, formatos o normas locales. Si dos páginas solo se distinguen por la etiqueta, Google trata las variantes regionales casi iguales en un mismo idioma como duplicados. Lo detallamos, con monedas y formatos de cada país, en la guía de hreflang, y las diferencias de búsquedas en la de investigación de palabras clave internacional.
Latinoamérica en una sola página
Muchas webs agrupan varios países en una página latinoamericana común. Es legítimo si la página sirve de verdad a esos países, con contactos, distribuidores o envíos. Figma lo hace de forma limpia: en nuestra muestra internacional marcaba 19 países y territorios latinoamericanos y el es genérico, todos hacia la misma página latinoamericana.
En la muestra de Alemania, Austria y Suiza, en cambio, cuatro empresas tenían páginas comunes con 5, 8, 12 y 26 códigos de país, y ninguna tenía es: un lector de un país que no está en la lista se queda sin versión. Dos errores muestran qué pasa al mantener listas largas:
- Países que no corresponden: una empresa de software asigna 26 códigos a su página latinoamericana, entre ellos Brasil, donde se habla portugués, Haití, Surinam y las islas Cocos, que la ONU sitúa en Oceanía.
- Códigos de español en una página en portugués: un grupo tecnológico marca su página brasileña con
pt-BRypt-PT, pero también cones-BRyes-PT.
Anota solo los países a los que sirve la página y añade es, en ella o en una página general en español.
Español para Estados Unidos y Puerto Rico
Para una página dirigida a los hispanohablantes de Estados Unidos, el código es es-US. En nuestras muestras lo usaban 3 de los 18 sitios internacionales, 6 de las 29 empresas de Alemania, Austria y Suiza y ninguna de las 24 francesas. Puerto Rico tiene su propio código de país, así que lleva es-PR.
Ojo con dos detalles. La región 419 incluye Puerto Rico, pero no Estados Unidos, así que es-419 tampoco serviría para ese mercado. Y si no tienes página para Estados Unidos, una página con el es genérico llega también a sus hispanohablantes; con solo es-ES y códigos latinoamericanos, se quedan sin versión.
Catalán, euskera y gallego
Son idiomas propios, no variantes del español, y tienen sus códigos: ca (el registro de la IANA lo asocia al catalán y al valenciano), eu para el euskera, que no tiene nada que ver con la Unión Europea, y gl para el gallego. Un código de país solo hace falta si tienes varias versiones por país del mismo idioma, por ejemplo ca-ES.
En nuestras muestras, Flixbus enlazaba con ca su web catalana flixbus.cat, y Ouigo marcaba su versión catalana con ca-es junto a fr y es. El Centro de ayuda de Shopify, por su parte, enumera en su encabezado el catalán como ca, el euskera como eu y el gallego como gl. Cuidado con la confusión inversa: es-CA no es catalán, sino español para Canadá.
Códigos que no funcionan
es-LA: LA es el código de Laos, y los programas muestran «español (Laos)». Viene del antiguo locale de Facebookes_LA, que Polylang todavía asocia a nueve variantes latinoamericanas.es-SPyes-CE: esas regiones no existen en el registro de la IANA; España esES. El 13 de octubre, un gran minorista internacional los usaba en su página de inicio para sus webs de Canarias y Baleares.es-ICyes-EA: Canarias, y Ceuta y Melilla. Están en el registro de la IANA, pero no son códigos de país asignados oficialmente. Usaes-ES.es_ES,es-EU,es-LATAM: el guion bajo es de los locales de software, EU es un código reservado que Google ignora y LATAM no es un código de país.
Revisa también el resto de la lista. En la muestra francesa, los fallos estaban sobre todo en otros idiomas: uk-en (ucraniano para una región «EN» que no existe) y en-uk en lugar de en-GB, cz-cz (el checo es cs) y, en un fabricante de coches, una URL española precedida de unas comillas codificadas (%22https://…), que no lleva a ninguna parte.
WordPress, PrestaShop y Shopify
Muchos errores salen de la configuración por defecto. Según la documentación y el código fuente de cada herramienta, consultados en octubre de 2026:
- WPML escribe el español como
essalvo que pongas tú un país en el campo hreflang del idioma, y no avisa de valores no válidos. - Polylang escribe
escon un solo idioma español; con dos, por ejemplo España y México, escribees-ESyes-MXsinesgenérico. Puedes añadirlo con el filtropll_rel_hreflang_attributes. - PrestaShop escribe el «Language code» de cada idioma activo, siempre que haya al menos dos. En su lista de idiomas, el español lleva
es-es, el catalánca-es, el euskeraeu-esy el gallegogl-es. Una tienda en español y catalán declara, por tanto,es-esyca-es: correcto si solo vende en España. Si tu versión española se dirige a todos los hispanohablantes, cambia el código aesen la ficha del idioma. El campo solo admite dos letras, con o sin guion y otras dos letras, así quees-419yes_ESni siquiera se pueden guardar. El tema Classic no escribex-default. - Shopify genera las etiquetas a partir de los mercados y los idiomas: idioma y país para un mercado de un solo país (
fr-fren su ejemplo), solo el idioma para un mercado más amplio, yx-defaulthacia el dominio principal, siempre que cada mercado tenga dominio, subdominio o subcarpeta propios. Si un tema o una app ya añade etiquetas, desactiva las de Shopify en Tienda online > Preferencias, sección «Imagen de redes sociales y SEO».
No las hemos probado en instalaciones propias. Después de cada cambio de idiomas, dominios o mercados, abre el código fuente de una página y busca «hreflang». Cómo gestionan el canonical lo explicamos en la guía de la etiqueta canonical.
Nuestra configuración y lista de comprobación
Nuestras páginas en español llevan es, con x-default hacia la versión inglesa, y la página de inicio en español lleva lang="es". Para Open Graph escribimos og:locale como es_ES: ahí el guion bajo es correcto, en hreflang sería un error. Escribimos pensando primero en España, con «tú» y precios en euros, pero sin «vosotros», porque es también llega a Latinoamérica. Si algún día añadimos páginas por país, llevarán su código, la versión de España pasará a es-ES y una página conservará es.
Antes de publicar tus páginas en español:
- ¿Una sola versión?
es, salvo que solo sirva a España. - ¿Varias páginas de país? Un
esmás, en la página que sirva a todos. - Ningún código falso: ni
es-419,es-LA,es-SP,es-EUnies_ES. - Portugués, catalán y euskera aparte:
pt-BRpara Brasil,ca,eu,gl. - Listas completas: cada URL en español responde, se cita a sí misma y a todas las demás, en los dos sentidos, con
x-default. - Salida del CMS revisada después de cada cambio de idiomas, dominios o mercados.
- ¿Cambian las URLs? Actualiza redirecciones y hreflang a la vez, como explicamos en la checklist de migración web SEO.
La estructura de dominios y carpetas la comparamos en la guía de SEO internacional.
