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.

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.

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
- Open a translated page and look at the source code: search for
hreflang. Deben aparecer todas tus versiones, incluida esa misma. - Comprueba que las URLs del
hreflangson las que ve el visitante, carácter por carácter. Una barra final de más y Google las trata como páginas distintas. - En Search Console, Inspección de URLs sobre una página traducida: te dice si está indexada y con qué canonical.
- 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
hreflangentre 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-unsinstead 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.