SEO Técnico

SEO internacional con WordPress: qué estructura elegir y cómo usar hreflang

SEO internacional con WordPress: estructura de URLs y hreflang

El SEO internacional de una web WordPress se resuelve con cuatro decisiones: una estructura de URLs (para una pyme, lo más sencillo es una subcarpeta por idioma, como /en/), una URL distinta para cada idioma, etiquetas hreflang que se enlazan entre sí y contenido realmente traducido, no copiado. El resto depende del plugin que uses.

Mi criterio por defecto: subcarpeta por idioma, sin redirecciones automáticas por IP, hreflang recíproco en todas las versiones y revisión humana de cada traducción. Solo cambio de estructura si hay un motivo de negocio concreto.

Está pensado para quien empieza a vender fuera con una tienda o una web corporativa, por ejemplo una empresa de Castellón que lleva su catálogo a otro mercado. Si buscas la parte de qué palabras buscar en cada país, esa es otra pregunta distinta y la cuento en el artículo sobre palabras clave en otros idiomas; aquí va la parte técnica y de estructura.

¿Qué es el SEO internacional?

Es preparar tu web para que Google muestre la versión correcta a cada persona, según su idioma y su país. Google distingue dos casos: sitios multilingües (varios idiomas) y sitios multirregionales (varios países, a veces con el mismo idioma). Muchas webs son las dos cosas a la vez.

Un ejemplo claro: una tienda de cerámica con el catálogo en español para España y en inglés para el Reino Unido. Son dos idiomas y dos países, y cada versión necesita su propia URL.

Si aún no tienes claras las bases, empieza por el tutorial de SEO. Para el detalle de la etiqueta que enlaza las versiones, tienes la entrada del diccionario sobre hreflang, y hay un apartado técnico en el artículo de SEO técnico con IA.

¿Subcarpeta, subdominio o dominio por país: qué estructura elegir?

Google presenta tres opciones válidas y una desaconsejada. No recomienda ninguna de las tres primeras: las describe con sus ventajas e inconvenientes, y esto es lo esencial.

  • Dominio por país (ejemplo.de): país bien definido y da igual dónde esté el servidor. Es más caro, a veces con requisitos, y cada dominio apunta a un solo país.
  • Subdominio (de.ejemplo.com): fácil de montar y admite servidores distintos. Quien lo ve puede no saber si "de" es un idioma o un país.
  • Subcarpeta (ejemplo.com/de/): fácil de montar y de mantener, porque comparte alojamiento. Un único servidor y es más difícil separar los sitios.
  • Parámetros (ejemplo.com?loc=de): Google lo marca como no recomendado.

Yo empiezo siempre por la subcarpeta. Es un solo WordPress, un solo alojamiento y un solo panel, y una pyme que se estrena en otro mercado necesita sobre todo no complicarse el mantenimiento. Es una elección mía, basada en esa comodidad, no una ventaja de posicionamiento que Google prometa.

Cambiaría a un dominio por país cuando hay una razón real: una filial en ese país, un cliente que exige un dominio local o un presupuesto para mantener varios sitios. Antes de que exista ese motivo, no compensa el trabajo extra.

¿Por qué cada idioma necesita su propia URL?

Google recomienda que cada versión de idioma tenga su propia URL, en lugar de cambiar el contenido con cookies o con los ajustes del navegador, porque así puede rastrear todas las variantes. Si la misma dirección muestra un idioma u otro según quién entra, parte de tu web puede quedar invisible para el buscador.

De ahí sale la siguiente regla, una de las que más veo incumplir: no redirijas automáticamente según la IP o el idioma del navegador. Google avisa de que el análisis por IP es poco fiable y de que su rastreador, que parte sobre todo de Estados Unidos, no envía la cabecera de idioma. Además, una redirección impide elegir a quien sabe lo que quiere: una persona con el navegador en inglés que busca tu tienda en español no debería acabar en otra versión sin haberlo elegido.

Qué hacer en su lugar. Pon un selector de idioma visible, con enlaces normales a cada versión. Es lo que Google propone en vez de redirigir.

¿Cómo funciona hreflang?

La etiqueta hreflang le dice a Google qué versión de una página corresponde a cada idioma y país, y que todas son la misma página en distintos idiomas. Así, quien busca en inglés ve la versión inglesa y quien busca en español, la española. Este es el ejemplo para una página en español de España con su versión en inglés (las direcciones son de muestra):

<link rel="alternate" hreflang="es-ES" href="https://ejemplo.es/pagina/" />
<link rel="alternate" hreflang="en" href="https://ejemplo.es/en/pagina/" />
<link rel="alternate" hreflang="x-default" href="https://ejemplo.es/" />

Este mismo bloque va en las dos páginas. Las reglas que da Google y que conviene tener presentes:

  1. Cada versión se lista a sí misma y a todas las demás.
  2. Los enlaces son recíprocos: si la página A apunta a la B, la B tiene que apuntar a la A. Si no, Google ignora las etiquetas.
  3. Las URLs son completas, con https y dominio, no rutas relativas.
  4. Los códigos son válidos: idioma (es) o idioma y región (es-ES). Nunca solo la región, y no valen UK, EU ni es-419; para el Reino Unido se usa en-GB.
  5. x-default es la versión de respaldo cuando ningún idioma encaja, útil sobre todo en selectores de idioma o páginas que redirigen.

Hay tres formas de poner las etiquetas: en el head de cada página, en una cabecera HTTP (pensada para archivos como PDF) o en el sitemap XML. Para Google son equivalentes; yo elijo una sola y la mantengo. En WordPress lo habitual es que lo haga el plugin de traducción; lo importante es que tú lo compruebes.

En una tienda de ejemplo que monté con el plugin gratuito de TranslatePress, con el español en la raíz y el inglés en /en/, el código fuente de cada ficha trae cuatro etiquetas: es-ES, en-GB, es y en. Cada una apunta a la ficha equivalente (/producto/terra-arcilla/ y /en/product/terra-arcilla/) y se repiten idénticas en las dos versiones. Así se ve en la versión en español, con las cuatro etiquetas marcadas con un 1 (he tapado el dominio):

Código fuente de una ficha en español con las cuatro etiquetas hreflang resaltadas
Código fuente real de una ficha de la tienda de ejemplo, versión en español: las cuatro etiquetas hreflang (1)

Y la versión en inglés de esa misma ficha, con el mismo bloque:

Código fuente de la misma ficha en inglés con el mismo bloque de etiquetas hreflang resaltado
La versión en inglés de esa ficha lleva exactamente el mismo bloque (1)

No lleva x-default; como la raíz ya es el español, en ese caso yo lo veo opcional.

¿Cómo comprobar hreflang en dos minutos?

Para empezar basta con el navegador:

  1. Abre una página de tu web y pulsa Ctrl+U (en Mac, Cmd+Opción+U en Chrome y Cmd+U en Firefox) para ver el código fuente.
  2. Busca la palabra hreflang con Ctrl+F.
  3. Comprueba que aparecen todas las versiones, incluida la que estás viendo.
  4. Abre cada una de las URLs que salen y repite el paso: el conjunto de etiquetas tiene que ser el mismo.
  5. Verifica que cada URL carga directamente, sin saltos de redirección, y que los códigos son correctos.

Con esto detectas los dos fallos más comunes: etiquetas que faltan en una de las versiones y códigos mal escritos. Después, Search Console te ayuda a ver si Google rastrea y muestra cada versión.

Traducir con un plugin en WordPress

Para una pyme, lo normal es traducir con un plugin que crea las URLs por idioma y el selector. Pongo como ejemplo TranslatePress, que es el que he usado, y te cuento lo que he comprobado en su web el 7 de noviembre de 2026:

  • Versión gratuita: permite un idioma adicional, así que sirve para español e inglés.
  • Más idiomas y URLs traducidas: requieren un plan de pago. El Personal, para un sitio, cuesta 99 € al año según su página de precios, que no indica si incluye IVA.

Esto tiene una consecuencia visible. Con la versión gratuita, parte de las URLs de la versión inglesa conservan las palabras en español: en mi tienda de ejemplo quedan como /en/carrito/, /en/finalizar-compra/ o /en/coleccion/terra/. Incluso en las fichas, solo la palabra de la carpeta cambia (/en/product/, que trae WooCommerce); el nombre de la ficha, terra-arcilla, sigue en español. Funciona, pero para un cliente inglés es menos clara. Mi opinión: si el presupuesto lo permite, traduce también las URLs; si no, empieza con lo gratuito y no lo dejes como un problema.

Hay otra diferencia que no se ve a simple vista. En la versión en inglés de una ficha de mi tienda de ejemplo, todo el texto visible está en inglés y el atributo lang de la página dice en-GB, pero el título de la página (la etiqueta title) y los datos estructurados del producto siguen en español. Lo comprobé en el código fuente el 8 de noviembre de 2026. La documentación de TranslatePress sitúa la traducción del título y de la descripción de la página en el complemento SEO Pack, que es de pago (el plan Personal lo incluye, a 99 € al año según su página de precios); de los datos estructurados no dice nada.

Código fuente de la ficha en inglés: html lang en-GB y un title todavía en español, "Terra Arcilla"
Código fuente real de la ficha en inglés: la primera línea marca el idioma inglés de la página y la segunda, resaltada, muestra un título que sigue en español, 8 de noviembre de 2026

La consecuencia práctica: comprueba el código fuente, no solo lo que ves. Que la página se vea traducida no significa que su título y sus datos estructurados lo estén.

Otros plugins hacen lo mismo con precios y límites distintos. Compara antes de elegir y pregunta siempre una cosa: si añade hreflang y cómo. Si montas una tienda, mira también la guía de SEO para WooCommerce.

¿Qué errores típicos tiene el SEO internacional?

  • Traducir solo una parte. Si traduces solo la plantilla (menú, botones) y dejas el contenido en un solo idioma, Google advierte de que puede dar mala experiencia. Traduce lo que vendes en ese mercado.
  • El mismo contenido en dos idiomas sin hreflang. Sin las etiquetas, Google no sabe cuál mostrar a cada persona.
  • Redirigir por IP o por el idioma del navegador. Pierdes las otras versiones y a quien quería verlas.
  • Hreflang sin enlace de retorno o con códigos mal. Si el retorno falta, se ignora; y UK o EU no tienen efecto.
  • Mezclar idiomas en una misma página. Google detecta el idioma por el texto visible, no por el atributo lang.
  • Creer que el subdominio define el público. Un subdominio como en-gb no se usa para decidir a quién va dirigida la página; lo dices tú con hreflang.

Hay un error que no es técnico: fiarlo todo a la traducción automática. La IA sirve para sacar un borrador rápido, pero lo tiene que revisar alguien que conozca el mercado, porque el matiz cultural y comercial no lo da una traducción literal.

Checklist para tu proyecto

  1. Elige la estructura (subcarpeta por defecto) y anota por qué.
  2. Define qué idiomas y qué países vas a cubrir.
  3. Da una URL distinta a cada versión y añade un selector de idioma visible.
  4. Comprueba que no hay redirecciones automáticas por IP ni por idioma del navegador.
  5. Verifica hreflang en el código fuente de cada versión: autorreferencia, retorno, URLs completas y códigos válidos.
  6. Traduce todo el contenido de cada página, incluidas las URLs si puedes.
  7. Haz que una persona que conozca el mercado revise las traducciones.

Las fuentes de las reglas están en la documentación de Google Search Central: sitios multirregionales y multilingües y versiones localizadas de tus páginas. Los precios de TranslatePress, en su página de precios, leída el 7 de noviembre de 2026.

Preguntas frecuentes sobre SEO internacional

¿Necesito un dominio distinto para cada país?

No. Google presenta el dominio por país, el subdominio y la subcarpeta como opciones válidas, cada una con ventajas e inconvenientes. Para una pyme, la subcarpeta suele ser la más sencilla de mantener.

¿Sirve hreflang para subir posiciones?

Sirve para que Google muestre la versión adecuada a cada persona, no para subir posiciones por sí solo. Úsalo para evitar que alguien vea tu página en el idioma equivocado.

¿Puedo traducir mi web con IA?

Para un borrador, sí. Pero la revisión la tiene que hacer alguien que conozca el mercado: el matiz cultural y comercial no lo resuelve una traducción literal.

¿Pongo es o es-ES en hreflang?

Si solo tienes una versión en español, yo uso es sin región. Usa idioma y región (es-ES, es-MX) cuando tengas versiones distintas del mismo idioma para varios países.

¿Tengo que traducir toda la web?

Traduce lo que vendas en ese mercado. En la práctica, declara hreflang solo entre páginas que existan en cada idioma, y que cada una enlace a su equivalente.

Newsletter

¿Te ha resultado útil?

Recibe mis próximos artículos, SEO práctico y sin spam.

¿Cómo es? Ver un número →

También te puede interesar

SEO Técnico Redirecciones 301 en WordPress: guía práctica sin complicaciones SEO Técnico Google PageSpeed Insights: guía para optimizar la velocidad web SEO Técnico Cómo recuperar el SEO de tu sitio web después de un hackeo