⏳ Launch offer: −25 % on the 1-site license
h
m
s
WP-Translate

Multilingual SEO in WordPress: URLs by language, slugs and hreflang

Multilingual SEO in WordPress with WP-Translate

Having your website in several languages is not very useful if Google doesn't understand its structure. The good news: WP-Translate sets up multilingual SEO properly without you touching a line of code. In this tutorial, you see it step by step.

To the point: each language receives its own URL with prefix (/en/, /fr/...) and their translated slugs (/de/uber-uns instead of /de/about-us). In addition, WP-Translate translates your metadata from Yoast/RankMath and generates hreflang and the multilingual sitemap for you.

1. Translated Slugs = Meaningful URLs

A slug is the readable part of the address. WP-Translate translates them by language, so the German version of "About us" lives in /de/uber-uns and not in a /de/about-us halfway. And it does it without modifying the database: they are their own rewrite rules.

WP-Translate slugs translation screen
"Slugs" tab: each page, its translated slug and its final URL per language.

2. A unique URL per language

Each translated page receives its address with the language prefix. This is exactly what search engines like Google expect to index and position each version separately. You can share the direct link to the version in a specific language and gain visibility in each market.

3. Adjust the slug to your keyword

Do you want a specific keyword within the URL in English or French? You edit the slug of that page, save, and that's it. You control the on-page SEO, language by language.

4. Gets along well with Yoast and RankMath

The plugin detects SEO strings —meta titles and meta descriptions from Yoast or RankMath— and treats them like any other translatable text. In the "Strings" tab, you see them with their context seo:title and its origin YOAST.

WP-Translate detecting Yoast SEO strings
Yoast meta titles appear as translatable strings, with their context and origin.

To this are added the hreflang between versions and the multilingual sitemap, both automatic: they tell Google which page corresponds to which language, without manual work.

5. Y si la web ya estaba indexada, ¿qué pasa con las URLs de antes?

Es la pregunta que frena a mucha gente, y con razón: llevas años posicionando /servicios/ y no quieres descubrir mañana que Google la ha perdido de vista.

La respuesta corta es que tu idioma principal no se toca. Los prefijos y los slugs traducidos se añaden solo para los idiomas nuevos, así que las direcciones que ya tenías siguen exactamente donde estaban, con su historial intacto.

Hay un caso aparte: el de quien viene de otro plugin multiidioma que servía el idioma principal con prefijo (/es/servicios/ en vez de /servicios/). Si cambias de plugin y las URLs se mueven, pierdes lo indexado. Para eso existe la opción de servir también el principal bajo su prefijo: la eliges y la estructura queda igual que la tenías. El canonical, el hreflang x-default y una redirección 301 desde las direcciones sin prefijo van detrás, para que no queden dos versiones compitiendo por lo mismo.

Está desactivada por defecto a propósito. Si tu web sirve el idioma principal en la raíz —lo normal—, no te afecta en nada.

6. Los tres fallos de hreflang que más se repiten

The hreflang se genera solo, pero conviene saber qué está haciendo, porque cuando falla no da ningún error: simplemente Google enseña la página equivocada.

Falta la autorreferencia. Cada página tiene que declararse también a sí misma, no solo a sus hermanas. Un grupo de hreflang en el que la versión francesa no se nombra a sí misma es un grupo que Google puede ignorar entero.

No hay x-default. Es la versión que se sirve a quien no encaja en ninguna: alguien que busca desde Japón con el navegador en japonés y tu web no está en japonés. Sin x-default, esa decisión la toma Google por su cuenta.

Mezclar idioma con idioma+región. es y es-MX no son lo mismo, y sirven para cosas distintas: es es «español», es-MX es «español para México». Usar la variante regional cuando en realidad tienes una sola versión en español reduce el alcance de esa página en lugar de ampliarlo. Si no vas a mantener dos versiones distintas, quédate con el código de idioma a secas.

Cómo comprobar que ha quedado bien

  1. Open a translated page and look at the source code: search for hreflang. Deben aparecer todas tus versiones, incluida esa misma.
  2. Comprueba que las URLs del hreflang son las que ve el visitante, carácter por carácter. Una barra final de más y Google las trata como páginas distintas.
  3. En Search Console, Inspección de URLs sobre una página traducida: te dice si está indexada y con qué canonical.
  4. Repítelo sobre una entrada del blog, no solo sobre la home. Las plantillas de archivo y de entrada no siempre se comportan igual.

Qué entra en la versión gratuita

Conviene decirlo claro, porque en esta pantalla conviven cosas de los dos lados:

  • En la versión gratuita de WordPress.org: las URLs con prefijo por idioma, el hreflang entre versiones y la traducción de los meta títulos y meta descripciones de Yoast y Rank Math.
  • Con la licencia: the translated slugs (/de/uber-uns instead of /de/about-us) and the sitemap por idioma.

Los planes están en wptranslate.es.

Quick questions

Does it change my current URLs? It does not affect your main language. Translated prefixes and slugs are added only for new languages.

Do I need Yoast or RankMath? They are not mandatory, but if you use them, WP-Translate automatically translates their metadata.

Are hreflang and the sitemap configured manually? No. They are generated automatically as soon as you have more than one active language.

Versión gratuita

Pruébalo en tu web antes de pagar nada

Un idioma además del tuyo, editor visual incluido y sin límite de tiempo.

Descargar gratis

Search the blog

Categories

Categories

Translate your WordPress this week

One-time payment, lifetime license, four AI engines included.

Try WP-Translate on your own website

One-time payment, lifetime license and 14-day money-back guarantee.

⏳ Only for 3 hours

−25 % on your Pro license

Translate your website without limits: large batches, DeepL and Gemini, translated SEO and lifetime updates. If you decide now, the 1-site license is 36.75 € instead of 49 €.

horas
min
seg
La oferta ha terminado, pero puedes ver los planes con su precio normal.
PRO LICENSE · 1 SITE

49 €

36.75 €

One-time payment · PRO25 coupon automatically applied

¿Aún no lo tienes claro? Descarga la versión gratuita y pruébalo sin pagar nada.