Doble prefijo de idioma en TranslatePress: corrige las URL /fr/fr/

Tu página de inicio en francés debería abrirse en /fr/, pero un enlace de idioma apunta a /fr/fr/. O una página que debería usar /fr/contact/ se convierte en /fr/fr/contact/ al cambiar de idioma.
Empieza por averiguar dónde aparece la segunda carpeta de idioma. Comprueba el enlace antes de hacer clic, la dirección a la que llegas después y cualquier entrada hreflang de esa página. Después, corrige el ajuste o la integración que genera la carpeta extra.
Un enlace introducido a mano, una regla de redirección y una dirección de idioma generada automáticamente necesitan correcciones distintas. Cambiar el slug del idioma o añadir otra redirección antes de identificar la causa puede hacer que el problema sea más difícil de seguir.
Este es un método práctico para investigar un doble prefijo de idioma en TranslatePress, seguido de cómo gestiona LingoWP una URL que ya incluye una carpeta de idioma.
Publicado por LingoWP. La documentación externa se comprobó el 6 de octubre de 2026. El comportamiento de LingoWP descrito a continuación se basa en su revisión de desarrollo de la versión 1.5. Los ejemplos de URL ilustran el síntoma; su causa depende de la configuración del sitio.
¿Qué se considera un doble prefijo de idioma?
El prefijo de idioma es la parte de la dirección que identifica la versión de idioma, como /fr/ para el francés.
Si esa carpeta se añade dos veces, puedes ver direcciones como estas:
| Dirección prevista | Dirección que hay que investigar |
|---|---|
https://example.com/fr/ |
https://example.com/fr/fr/ |
https://example.com/fr/contact/ |
https://example.com/fr/fr/contact/ |
Confirma qué significa cada segmento de la ruta antes de cambiarlo. Si el segundo fr es a propósito el nombre de una página, /fr/fr/ puede ser una dirección legítima. Es un prefijo repetido cuando ambos segmentos se usan para identificar el mismo idioma.
El slug de URL configurado para tu idioma también importa. Un sitio que usa /fr-be/ debe comprobarse frente a ese ajuste, sin suponer que toda dirección francesa debe empezar por /fr/.
Averigua dónde aparece primero la carpeta extra
Abre una página afectada y reproduce el problema despacio. Anota la dirección de partida, el idioma que eliges y la dirección final.
Antes de hacer clic en un enlace visible, pasa el cursor por encima o usa Copiar dirección del enlace para ver su destino. En un selector de idioma que usa una dirección de redirección intermedia, anota también el destino que indica esa dirección en lugar de suponer que es la URL final de la página.
Después, busca hreflang en el código fuente de la página si una auditoría SEO ha señalado el prefijo repetido.
| Observación | Dónde investigar primero |
|---|---|
El enlace ya contiene /fr/fr/ |
El elemento de menú, el botón, el selector o el componente que genera el enlace |
El enlace parece correcto, pero la dirección cambia a /fr/fr/ después del clic |
Las reglas de redirección o el comportamiento que se activa durante la navegación |
La navegación visible funciona, pero hreflang indica /fr/fr/ |
El componente que genera las anotaciones de idioma |
| Solo falla un selector de idioma personalizado en la cabecera | La configuración de enlaces o la integración de ese selector |
El problema es una carpeta del sitio repetida, como /blog/blog/ |
La configuración de la base del sitio y el enrutamiento en subcarpeta |
Estas observaciones acotan la investigación. Por sí solas no demuestran qué plugin es el responsable.
Cómo corregir una carpeta de idioma repetida en TranslatePress
1. Confirma tus ajustes de URL de idioma
Abre Ajustes → TranslatePress → General y comprueba el slug configurado para cada idioma. Compara esos valores con las direcciones que funcionan en tu sitio.
Revisa también Usar subdirectorio para el idioma predeterminado. Esta opción añade una carpeta de idioma a las URL del idioma predeterminado; es una función normal, no una prueba de un fallo de doble prefijo. Mantenla alineada con la estructura de URL que quieres usar. TranslatePress documenta estos ajustes aquí.
Si has cambiado hace poco el slug de un idioma, localiza los enlaces y las reglas de redirección que todavía usan el anterior.
Evita renombrar el slug del francés solo porque aparece /fr/fr/. Una segunda carpeta puede venir de otra parte de la configuración, y cambiar el slug afecta a las direcciones de toda esa versión de idioma.
2. Revisa los enlaces personalizados y los elementos de la cabecera
Comprueba el elemento de menú, el botón o el elemento de cabecera concreto que lleva a la dirección repetida. Mira su destino guardado, no solo su etiqueta.
Si el enlace guardado contiene literalmente /fr/fr/, cámbialo por el destino verificado. Si está guardado correctamente pero aparece con una carpeta extra en la página pública, investiga cómo se procesa el enlace.
TranslatePress documenta la localización automática de los enlaces internos. Su opción Forzar idioma en enlaces personalizados también procesa enlaces internos personalizados, como los introducidos en el contenido de las páginas. Revisa ese ajuste junto con cualquier código personalizado o comportamiento del maquetador que añada una carpeta de idioma. Consulta las indicaciones oficiales sobre la traducción de enlaces.
La pregunta es si dos partes de tu configuración añaden cada una el segmento de idioma por su cuenta. No supongas que activar el tratamiento automático de enlaces produce siempre un prefijo repetido.
Para un selector de idioma personalizado, compara su comportamiento con un selector estándar de TranslatePress en una página de prueba. TranslatePress ofrece un bloque Language Switcher y el shortcode [language-switcher]. Si el control estándar funciona y el personalizado falla, céntrate en la implementación personalizada. Su documentación del selector explica las opciones disponibles.
3. Revisa las redirecciones si la URL cambia después del clic
Si el enlace apunta a la dirección correcta pero la navegación añade otro /fr/, revisa las redirecciones implicadas.
Comprueba tu plugin de redirecciones, los ajustes de redirección automática por idioma y las reglas del alojamiento que modifiquen la ruta. Pide a tu desarrollador o a tu proveedor de alojamiento que te muestre la cadena de redirecciones si el cambio no se ve en los ajustes de WordPress.
Una descripción útil sería:
Este enlace apunta a /fr/contact/, pero al abrirlo me lleva a /fr/fr/contact/. ¿Podéis comprobar qué redirección o paso de la navegación añade el segundo /fr/?
Corrige la regla que genera el segmento extra. Evita añadir una regla general que elimine todas las carpetas repetidas: algunos segmentos repetidos pueden ser nombres de páginas legítimos, y un reemplazo incorrecto puede afectar a contenidos que no tienen nada que ver.
4. Separa la carpeta del sitio de la carpeta de idioma
Si los visitantes acceden a tu sitio bajo una carpeta como /blog/, esa carpeta forma parte de la dirección pública base del sitio. La carpeta de idioma es una parte distinta de la ruta.
Investiga si un enlace personalizado o una redirección añade la carpeta base del sitio a una dirección que ya la incluye. Usa una página que funcione como referencia en lugar de adivinar el orden correcto de las carpetas.
En Ajustes → Generales de WordPress, distingue la Dirección de WordPress de la Dirección del sitio. Una indica dónde están instalados los archivos de WordPress; la otra, la dirección pública del sitio. Pueden ser distintas legítimamente cuando WordPress tiene su propio directorio. WordPress explica la diferencia aquí.
No hagas idénticos esos campos solo para eliminar una ruta repetida. Confirma primero la instalación y el enrutamiento público reales con tu desarrollador o tu proveedor de alojamiento.
5. Si solo falla hreflang, investiga esa salida
Un selector de idioma que funciona no demuestra que las anotaciones de la página usen el mismo destino correcto.
Abre la página afectada, elige Ver código fuente de la página y busca hreflang. Compara la dirección de idioma indicada con la URL verificada que funciona. Si esa dirección redirige o no se abre, consulta qué hacer cuando hreflang apunta a una redirección o cuando hreflang apunta a una página 404.
Si el prefijo repetido solo aparece ahí, anota la página y la entrada afectadas para el soporte. Comprueba qué plugin o personalización genera la anotación en lugar de cambiar enlaces de menú que ya funcionan.
Hreflang debe identificar el equivalente de idioma adecuado, y las versiones correspondientes deben enlazarse entre sí. Las indicaciones de Google sobre páginas localizadas explican esa relación.
6. Actualiza la salida y repite la acción original
Después de corregir la causa, vacía la caché de página, del alojamiento o de la CDN que corresponda. Vuelve a probar como visitante sin sesión iniciada y repite exactamente la navegación que producía la carpeta extra.
Comprueba la versión instalada y las notas de versión relevantes si el comportamiento continúa. El registro de cambios de TranslatePress incluye correcciones de enrutamiento y de compatibilidad con subdirectorios, así que relaciona cualquier corrección propuesta con la versión y la configuración que usas de verdad. Consulta el registro de cambios actual.
Tus comprobaciones finales deberían incluir:
- Cambiar del idioma original al francés y volver.
- Navegar desde la página de inicio en francés a una página interna.
- Usar el control de cabecera o móvil que fallaba al principio.
- Comprobar el destino hreflang de la página afectada.
- Confirmar que un sitio en subcarpeta conserva su ruta base.
Si una dirección generada por error ya se ha compartido o usado, plantéate una redirección exacta a su sustituto correcto después de corregir el origen. Google recomienda redirecciones permanentes para cambios de dirección permanentes. Una redirección puede conservar un enlace existente, pero los enlaces generados deben usar directamente el destino corregido. Lee las indicaciones de Google sobre redirecciones.
Cómo evita LingoWP añadir dos veces un prefijo de idioma
Una URL de idioma puede pasar por varios pasos mientras un sitio construye la navegación. Aplicar de nuevo el mismo idioma debería dejar la dirección igual.
La revisión de desarrollo de LingoWP describe que reconoce un prefijo de idioma configurado ya presente antes de aplicar el idioma seleccionado. Así, una URL ya localizada en francés no recibe otra carpeta francesa cuando LingoWP la procesa de nuevo.
Un ejemplo sencillo en el que el slug de la página no cambia:
| URL de partida | Tras aplicar el francés |
|---|---|
/contact/ |
/fr/contact/ |
/fr/contact/ |
/fr/contact/ |
La ventaja para el propietario del sitio es una navegación predecible: la dirección de idioma puede reutilizarse sin acumular carpetas de idioma.
La revisión de LingoWP 1.5 recoge pruebas de conversión de idioma repetida y de conservación de la carpeta del sitio en una instalación en subcarpeta. Cubren el comportamiento de tratamiento de URL descrito aquí, incluida una prueba de regresión de un problema anterior de carpeta repetida.
Gestionas las traducciones en el espacio de trabajo central de LingoWP mientras sus enlaces de idioma usan ese comportamiento de enrutamiento. Si las correcciones repetidas de URL se han vuelto parte de tu mantenimiento, es una función concreta que valorar al comparar plugins. La comparativa LingoWP vs TranslatePress cubre las diferencias más amplias.
Las reglas externas siguen necesitando revisión. Un script personalizado o una redirección del alojamiento pueden alterar una URL después de que LingoWP la genere. Prueba la navegación y las integraciones reales de tu sitio en una copia antes de migrar.
Descubre LingoWP para ver su flujo de traducción y evaluarlo para tu sitio.
Preguntas frecuentes
¿Debo desactivar «Forzar idioma en enlaces personalizados»?
Primero confirma si el tratamiento de enlaces personalizados está implicado. En un sitio de pruebas, compara el enlace afectado con y sin ese ajuste, y comprueba si otra personalización también añade la carpeta de idioma. Desactivarlo de forma permanente puede cambiar cómo otros enlaces internos mantienen el idioma seleccionado.
¿Vaciar la caché eliminará las URL /fr/fr/?
Puede eliminar una salida antigua una vez corregido el enlace o la regla de enrutamiento subyacente. Si la dirección repetida vuelve enseguida, algo la sigue generando. Busca ese origen en lugar de vaciar cachés una y otra vez.
¿Es /fr/fr/ siempre una URL no válida?
No. El segundo segmento podría ser un slug de página legítimo. Confirma la página y la ruta previstas. Para una página de inicio que debería estar en /fr/, una carpeta de idioma adicional merece una investigación.