---
title: "Las URLs traducidas rompen hreflang: un solo slug en inglés"
canonical: https://wavect.io/es/blog/english-slugs-vs-localized-urls-hreflang/
language: es
description: "Traducir los slugs añade una tabla de correspondencias por documento y toda una clase de fallos silenciosos de hreflang. El argumento a favor de un slug independiente del idioma."
image: "https://wavect.io/img/blog/headers/header_english-slugs-vs-localized-urls-hreflang.png"
---

[**Volver**](/es/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/es/team/kevin-riedl/)

[Kevin Riedl](/es/team/kevin-riedl/) https://linkedin.com/in/wsdt

7 min de lectura · 18 ago 2026 Última revisión 18 de agosto de 2026

[**Siguiente**](/es/blog/can-an-ai-agent-use-your-product/)

# Las URLs traducidas rompen hreflang. Nosotros mantenemos un solo slug en inglés.

Resumen

La mayoría de los defectos de hreflang en webs multilingües vienen de traducir la URL, no de las anotaciones. hreflang exige que cada página de un conjunto de idiomas apunte a todas las versiones, incluida ella misma, y que cada puntero sea devuelto por su destino. Con slugs traducidos esa reciprocidad depende de una tabla de correspondencias correcta y actualizada entre varias cadenas por documento, lo que produce cuatro fallos recurrentes: reciprocidad rota tras un renombrado, anotaciones que apuntan a redirecciones, punteros muertos donde aún no existe la traducción, y colisiones de ruta cuando dos documentos se traducen al mismo slug. Los cuatro aparecen por documento y no en todo el sitio, así que las revisiones por muestreo parecen limpias. Mantener un slug independiente del idioma convierte el grafo de idiomas en una función del prefijo de ruta, de modo que hreflang se genera desde la lista de idiomas sin tabla que mantener, y la paridad de traducción pasa a ser una comparación de conjuntos que una puerta de build puede exigir. El coste es real: pierdes la palabra clave en la URL en todos los idiomas menos el inglés. Es una señal débil junto a títulos, encabezados y cuerpo totalmente traducidos, y merece el cambio con cuatro idiomas y varios cientos de rutas. Para un sitio pequeño en un mercado, traduce los slugs.

**La mayoría de los errores de hreflang en webs multilingües no son errores de hreflang. Son errores de slug.** Traduce la URL además de la página y cada renombrado, cada redirección y cada traducción que falta se convierte en una forma de que el grafo de idiomas se deshaga, en silencio, en un subconjunto de páginas que nadie está mirando.

Este sitio funciona en cuatro idiomas y deliberadamente no traducimos los slugs. La página alemana de visibilidad en IA vive en `/de/services/ai-visibility/`, no en una ruta en alemán. Es un trade-off real con un coste real, y creemos que es el correcto para la mayoría de los equipos. Este es el razonamiento, y el precio.

## Qué exige realmente hreflang

El contrato es más simple de lo que sugieren las herramientas. Cada página de un conjunto de idiomas debe apuntar a todas las demás versiones, incluida ella misma, y cada uno de esos punteros debe ser devuelto por la página a la que apunta. Un hreflang autorreferencial es correcto y obligatorio, no una redundancia que optimizar.

Ese requisito de reciprocidad es donde los slugs traducidos se vuelven caros. Con un solo slug necesitas conocer los prefijos de idioma. Con slugs traducidos necesitas una tabla de correspondencias correcta y actualizada entre cuatro cadenas distintas por documento, y necesitas que sobreviva a cada edición que haga cualquiera.

## Los cuatro fallos que crean los slugs traducidos

| Fallo | Qué lo causa | Síntoma |
| --- | --- | --- |
| Reciprocidad rota | Se renombró el slug de un idioma y los demás siguen apuntando a la cadena antigua | El clúster de idiomas se parte en dos que parecen ambos autoritativos |
| hreflang hacia una redirección | Las anotaciones apuntan a la URL previa al renombrado, que ahora hace 301 | La anotación se descarta, y las páginas compiten en lugar de agruparse |
| Traducción parcial | Un idioma todavía no tiene versión de este documento | O un puntero muerto o un hueco silencioso, según cómo se escribiera el bucle |
| Colisiones de ruta | Dos documentos en inglés se traducen al mismo slug en el idioma destino | Una página sobrescribe la otra, y normalmente lo detecta un cliente |

Ninguno es imposible de arreglar. Todos son por documento, y ahí está el problema: aparecen en un puñado de páginas y no en todo el sitio, así que una revisión por muestreo parece limpia.

## Qué te da un solo slug

Si el slug es independiente del idioma, el grafo de idiomas pasa a ser una función del prefijo de ruta. La plantilla puede generar cada puntero hreflang a partir de la lista de idiomas y del propio nombre de archivo de la página, sin tabla que mantener y sin nada que se desincronice. La reciprocidad se vuelve estructural en lugar de algo que verificar.

También abarata las comprobaciones vecinas. Cuando la versión de cada idioma de un documento comparte slug, "¿está este documento traducido en todas partes?" es una comparación de conjuntos sobre nombres de archivo. Eso lo blindamos en el build: un script comprueba que los cuatro idiomas contienen los mismos conjuntos de entradas para cada archivo de datos, y otro compara el contenido por idioma buscando divergencias. Ambas cosas solo son posibles porque el identificador es compartido.

La misma propiedad ayuda a máquinas que no son buscadores. Un agente que tiene tu URL en inglés puede construir la alemana por regla. Combinado con un [espejo en Markdown por ruta](/es/blog/agent-readable-website-llms-txt-markdown-mirrors/), eso significa una dirección predecible por documento y por idioma, sin paso de búsqueda.

## El coste honesto

Pierdes la palabra clave en la URL para todos los idiomas excepto el inglés. Para un comprador alemán que busca una frase en alemán, un slug en alemán es una señal pequeña y real de relevancia y de clic, y estamos eligiendo no tenerla.

Lo aceptamos por tres razones. La palabra clave en la URL es una señal débil comparada con el título, los encabezados y el cuerpo, que están totalmente traducidos. El fallo que evita es silencioso y acumulativo, mientras que el beneficio que cuesta es pequeño y medible. Y en un sitio donde los motores de respuestas pesan tanto como los buscadores, una dirección predecible vale más que una palabra clave en la ruta.

Si tu negocio es sobre todo búsqueda en el idioma local de un mercado y tienes dos docenas de páginas, traduce los slugs. La correspondencia se mantiene lo bastante pequeña para llevarla a mano. El argumento de aquí trata de cuatro idiomas y varios cientos de rutas, donde nadie mantiene a mano una tabla correcta.

## Migrar sin perder las páginas que ya tienes

Si ya tienes slugs traducidos, esto no es urgente y no es gratis. Cuando lo hagas:

1. Elige el slug en inglés como el canónico y mantenlo estable a partir de entonces. El renombrado que hagas ahora debería ser el último.
2. Redirige con 301 cada slug traducido hacia él, de forma permanente. Deja esas redirecciones puestas; no hay buena razón para quitarlas nunca.
3. Regenera hreflang desde la lista de idiomas en lugar de desde una tabla, y confirma que cada página devuelve una autorreferencia.
4. Reenvía el sitemap y avisa a los endpoints de IndexNow, para que el cambio se recoja en días y no en meses.
5. Comprueba que los enlaces internos apuntan directamente al nuevo slug y no pasan por la redirección, porque un sitio lleno de 301 internos es su propio problema lento.

El paso cinco es el que se salta la gente. Una redirección que solo es alcanzable desde tu propia navegación es una redirección de la que nunca notarás que está mal.

## Preguntas frecuentes

### ¿Hay que traducir los slugs de URL a cada idioma?

En un sitio pequeño con uno o dos idiomas, sí: la palabra clave merece la pena y la correspondencia se mantiene manejable. Pasados unos cientos de rutas y tres o más idiomas, un slug independiente del idioma por documento es más robusto, porque la reciprocidad de hreflang se deriva del prefijo de ruta y no de una tabla que nadie mantiene al día.

### ¿Es obligatoria la etiqueta hreflang autorreferencial?

Sí. Cada página de un conjunto de idiomas debe listar todas las versiones, incluida ella misma. No es redundante, y quitarla es una causa habitual de que un clúster de idiomas se ignore.

### ¿Un slug en inglés perjudica el posicionamiento local?

Ligeramente, y lo decimos con honestidad. Pierdes una señal débil de relevancia y de clic en el idioma destino. El título, los encabezados y el cuerpo pesan mucho más y siguen totalmente traducidos, y por eso consideramos que el cambio vale la pena a escala.

### ¿Y si una página todavía no está traducida a todos los idiomas?

Emite hreflang solo para las versiones que existen y nunca apuntes a una URL que falta o que redirige. Una anotación muerta es peor que una ausente.

### ¿Cómo evitamos que las traducciones se separen?

Haz del slug compartido la clave de unión y compruébalo en el build. Verificamos que los cuatro idiomas contienen los mismos conjuntos de entradas para cada archivo de datos y comparamos el contenido por idioma buscando divergencias. Ambas comprobaciones dependen de que el identificador se comparta entre idiomas.

### ¿Hay que mantener funcionando las URLs traducidas antiguas?

Sí, de forma permanente. Redirígelas con 301 al slug canónico y deja las redirecciones puestas. Los enlaces y las citas externas no se actualizan, y una URL antigua rota es una referencia perdida.

## Reflexiones finales

Traducir la URL añade una tabla de correspondencias por documento a un sistema que de otro modo no necesita ninguna, y cada entrada de esa tabla es una oportunidad para que el grafo de idiomas se rompa en silencio.

Mantén un slug independiente del idioma, pon el idioma en el prefijo de ruta, genera hreflang desde la lista de idiomas y blinda la paridad de traducción en el build. Renuncias a una señal débil de palabra clave y eliminas toda una clase de fallos silenciosos.

## También te puede gustar..

[**Webs legibles por agentes: llms.txt y espejos en Markdown** Las cuatro superficies que deciden si un motor de respuestas puede leerte, y los fallos de conversión que conviene blindar.](/es/blog/agent-readable-website-llms-txt-markdown-mirrors/) [**Wavect vs una agencia de desarrollo generalista** Dónde se solapa el trabajo y dónde no lo hacen el modelo de precios ni la propiedad del alcance.](/es/compare/wavect-vs-dev-agencies/)

Ingeniería de agentes

## Continúa por este clúster

Agentes de código, MCP, contexto, evaluación y controles para automatización fiable.

[Empieza por el artículo fundamental**Ingeniería de grafos para agentes de IA: ¿Cuándo compensa un knowledge graph?**](/es/blog/graph-engineering-ai-agents/)

- [Webs legibles por agentes: llms.txt, espejos en Markdown y qué se rompe](/es/blog/agent-readable-website-llms-txt-markdown-mirrors/)
- [¿Puede un agente de IA usar tu producto, o solo leer sobre él?](/es/blog/can-an-ai-agent-use-your-product/)
- [Graft Review 2026: ¿el mapa del repo debe ir en Git?](/es/blog/graft-review-agent-repo-map/)
- [Cómo controlar los costes de agentes de código con compresión de salida](/es/blog/codag-cost-control/)
- [Uso de tokens más inteligente con tu agente de programación IA](/es/blog/smarter-token-usage-with-your-ai-coding-agent/)

Tu bandeja, sin ruido

## Sigue el trabajo que te importa

Recibe un correo breve cuando publiquemos algo nuevo. Sigue todo el blog o solo los temas que te interesan.

[**Volver**](/es/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/es/team/kevin-riedl/)

[Kevin Riedl](/es/team/kevin-riedl/) https://linkedin.com/in/wsdt

7 min de lectura · 18 ago 2026 Última revisión 18 de agosto de 2026

[**Siguiente**](/es/blog/can-an-ai-agent-use-your-product/)

Nuevos artículos por correo ×

×

Recibe nuevos artículos por correo

Un correo breve cuando publicamos. Gratis y sin seguimiento.

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/es/blog/english-slugs-vs-localized-urls-hreflang/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-08-18",
      "inLanguage": "es",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-08-18",
      "url": "https://wavect.io/es/blog/english-slugs-vs-localized-urls-hreflang/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "abstract": "La mayoría de los defectos de hreflang en webs multilingües vienen de traducir la URL, no de las anotaciones. hreflang exige que cada página de un conjunto de idiomas apunte a todas las versiones, incluida ella misma, y que cada puntero sea devuelto por su destino. Con slugs traducidos esa reciprocidad depende de una tabla de correspondencias correcta y actualizada entre varias cadenas por documento, lo que produce cuatro fallos recurrentes: reciprocidad rota tras un renombrado, anotaciones que apuntan a redirecciones, punteros muertos donde aún no existe la traducción, y colisiones de ruta cuando dos documentos se traducen al mismo slug. Los cuatro aparecen por documento y no en todo el sitio, así que las revisiones por muestreo parecen limpias. Mantener un slug independiente del idioma convierte el grafo de idiomas en una función del prefijo de ruta, de modo que hreflang se genera desde la lista de idiomas sin tabla que mantener, y la paridad de traducción pasa a ser una comparación de conjuntos que una puerta de build puede exigir. El coste es real: pierdes la palabra clave en la URL en todos los idiomas menos el inglés. Es una señal débil junto a títulos, encabezados y cuerpo totalmente traducidos, y merece el cambio con cuatro idiomas y varios cientos de rutas. Para un sitio pequeño en un mercado, traduce los slugs.",
  "articleBody": " Resumen del blog/IA y agentes/Ingeniería de agentes Las URLs traducidas rompen hreflang. Nosotros mantenemos un solo slug en inglés. Resumen La mayoría de los defectos de hreflang en webs multilingües vienen de traducir la URL, no de las anotaciones. hreflang exige que cada página de un conjunto de idiomas apunte a todas las versiones, incluida ella misma, y que cada puntero sea devuelto por su destino. Con slugs traducidos esa reciprocidad depende de una tabla de correspondencias correcta y actualizada entre varias cadenas por documento, lo que produce cuatro fallos recurrentes: reciprocidad rota tras un renombrado, anotaciones que apuntan a redirecciones, punteros muertos donde aún no existe la traducción, y colisiones de ruta cuando dos documentos se traducen al mismo slug. Los cuatro aparecen por documento y no en todo el sitio, así que las revisiones por muestreo parecen limpias. Mantener un slug independiente del idioma convierte el grafo de idiomas en una función del prefijo de ruta, de modo que hreflang se genera desde la lista de idiomas sin tabla que mantener, y la paridad de traducción pasa a ser una comparación de conjuntos que una puerta de build puede exigir. El coste es real: pierdes la palabra clave en la URL en todos los idiomas menos el inglés. Es una señal débil junto a títulos, encabezados y cuerpo totalmente traducidos, y merece el cambio con cuatro idiomas y varios cientos de rutas. Para un sitio pequeño en un mercado, traduce los slugs. La mayoría de los errores de hreflang en webs multilingües no son errores de hreflang. Son errores de slug. Traduce la URL además de la página y cada renombrado, cada redirección y cada traducción que falta se convierte en una forma de que el grafo de idiomas se deshaga, en silencio, en un subconjunto de páginas que nadie está mirando. Este sitio funciona en cuatro idiomas y deliberadamente no traducimos los slugs. La página alemana de visibilidad en IA vive en /de/services/ai-visibility/, no en una ruta en alemán. Es un trade-off real con un coste real, y creemos que es el correcto para la mayoría de los equipos. Este es el razonamiento, y el precio. Qué exige realmente hreflang El contrato es más simple de lo que sugieren las herramientas. Cada página de un conjunto de idiomas debe apuntar a todas las demás versiones, incluida ella misma, y cada uno de esos punteros debe ser devuelto por la página a la que apunta. Un hreflang autorreferencial es correcto y obligatorio, no una redundancia que optimizar. Ese requisito de reciprocidad es donde los slugs traducidos se vuelven caros. Con un solo slug necesitas conocer los prefijos de idioma. Con slugs traducidos necesitas una tabla de correspondencias correcta y actualizada entre cuatro cadenas distintas por documento, y necesitas que sobreviva a cada edición que haga cualquiera. Los cuatro fallos que crean los slugs traducidos FalloQué lo causaSíntoma Reciprocidad rotaSe renombró el slug de un idioma y los demás siguen apuntando a la cadena antiguaEl clúster de idiomas se parte en dos que parecen ambos autoritativos hreflang hacia una redirecciónLas anotaciones apuntan a la URL previa al renombrado, que ahora hace 301La anotación se descarta, y las páginas compiten en lugar de agruparse Traducción parcialUn idioma todavía no tiene versión de este documentoO un puntero muerto o un hueco silencioso, según cómo se escribiera el bucle Colisiones de rutaDos documentos en inglés se traducen al mismo slug en el idioma destinoUna página sobrescribe la otra, y normalmente lo detecta un cliente Ninguno es imposible de arreglar. Todos son por documento, y ahí está el problema: aparecen en un puñado de páginas y no en todo el sitio, así que una revisión por muestreo parece limpia. Qué te da un solo slug Si el slug es independiente del idioma, el grafo de idiomas pasa a ser una función del prefijo de ruta. La plantilla puede generar cada puntero hreflang a partir de la lista de idiomas y del propio nombre de archivo de la página, sin tabla que mantener y sin nada que se desincronice. La reciprocidad se vuelve estructural en lugar de algo que verificar. También abarata las comprobaciones vecinas. Cuando la versión de cada idioma de un documento comparte slug, \"¿está este documento traducido en todas partes?\" es una comparación de conjuntos sobre nombres de archivo. Eso lo blindamos en el build: un script comprueba que los cuatro idiomas contienen los mismos conjuntos de entradas para cada archivo de datos, y otro compara el contenido por idioma buscando divergencias. Ambas cosas solo son posibles porque el identificador es compartido. La misma propiedad ayuda a máquinas que no son buscadores. Un agente que tiene tu URL en inglés puede construir la alemana por regla. Combinado con un espejo en Markdown por ruta, eso significa una dirección predecible por documento y por idioma, sin paso de búsqueda. El coste honesto Pierdes la palabra clave en la URL para todos los idiomas excepto el inglés. Para un comprador alemán",
  "articleSection": "Engineering",
  "author": {
    "@id": "https://wavect.io/team/kevin-riedl/#person",
    "@type": "Person",
    "name": "Kevin Riedl",
    "sameAs": [
      "https://www.wikidata.org/wiki/Q139796365",
      "https://www.linkedin.com/in/wsdt",
      "https://github.com/wsdt"
    ],
    "url": "https://wavect.io/team/kevin-riedl/"
  },
  "dateModified": "2026-08-18",
  "datePublished": "2026-08-18",
  "description": "La mayoría de los defectos de hreflang en webs multilingües vienen de traducir la URL, no de las anotaciones. hreflang exige que cada página de un conjunto de idiomas apunte a todas las versiones, incluida ella misma, y que cada puntero sea devuelto por su destino. Con slugs traducidos esa reciprocidad depende de una tabla de correspondencias correcta y actualizada entre varias cadenas por documento, lo que produce cuatro fallos recurrentes: reciprocidad rota tras un renombrado, anotaciones que apuntan a redirecciones, punteros muertos donde aún no existe la traducción, y colisiones de ruta cuando dos documentos se traducen al mismo slug. Los cuatro aparecen por documento y no en todo el sitio, así que las revisiones por muestreo parecen limpias. Mantener un slug independiente del idioma convierte el grafo de idiomas en una función del prefijo de ruta, de modo que hreflang se genera desde la lista de idiomas sin tabla que mantener, y la paridad de traducción pasa a ser una comparación de conjuntos que una puerta de build puede exigir. El coste es real: pierdes la palabra clave en la URL en todos los idiomas menos el inglés. Es una señal débil junto a títulos, encabezados y cuerpo totalmente traducidos, y merece el cambio con cuatro idiomas y varios cientos de rutas. Para un sitio pequeño en un mercado, traduce los slugs.",
  "headline": "Las URLs traducidas rompen hreflang: usa un solo slug en inglés",
  "image": "https://wavect.io/img/blog/headers/header_english-slugs-vs-localized-urls-hreflang.svg",
  "inLanguage": "es",
  "keywords": "Visibilidad en IA, Multilingüe",
  "mainEntityOfPage": {
    "@id": "https://wavect.io/es/blog/english-slugs-vs-localized-urls-hreflang/",
    "@type": "WebPage"
  },
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/es/blog/english-slugs-vs-localized-urls-hreflang/",
  "wordCount": 1861
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/",
      "name": "Inicio",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/blog/overview/",
      "name": "Resumen del blog",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/blog/topics/ai-agents/",
      "name": "IA y agentes",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/blog/clusters/agent-engineering/",
      "name": "Ingeniería de agentes",
      "position": 4
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/es/blog/english-slugs-vs-localized-urls-hreflang/",
      "name": "Las URLs traducidas rompen hreflang: un solo slug en inglés | ",
      "position": 5
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "En un sitio pequeño con uno o dos idiomas, sí: la palabra clave merece la pena y la correspondencia se mantiene manejable. Pasados unos cientos de rutas y tres o más idiomas, un slug independiente del idioma por documento es más robusto, porque la reciprocidad de hreflang se deriva del prefijo de ruta y no de una tabla que nadie mantiene al día."
      },
      "name": "¿Hay que traducir los slugs de URL a cada idioma?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sí. Cada página de un conjunto de idiomas debe listar todas las versiones, incluida ella misma. No es redundante, y quitarla es una causa habitual de que un clúster de idiomas se ignore."
      },
      "name": "¿Es obligatoria la etiqueta hreflang autorreferencial?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Ligeramente, y lo decimos con honestidad. Pierdes una señal débil de relevancia y de clic en el idioma destino. El título, los encabezados y el cuerpo pesan mucho más y siguen totalmente traducidos, y por eso consideramos que el cambio vale la pena a escala."
      },
      "name": "¿Un slug en inglés perjudica el posicionamiento local?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Emite hreflang solo para las versiones que existen y nunca apuntes a una URL que falta o que redirige. Una anotación muerta es peor que una ausente."
      },
      "name": "¿Y si una página todavía no está traducida a todos los idiomas?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Haz del slug compartido la clave de unión y compruébalo en el build. Verificamos que los cuatro idiomas contienen los mismos conjuntos de entradas para cada archivo de datos y comparamos el contenido por idioma buscando divergencias. Ambas comprobaciones dependen de que el identificador se comparta entre idiomas."
      },
      "name": "¿Cómo evitamos que las traducciones se separen?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sí, de forma permanente. Redirígelas con 301 al slug canónico y deja las redirecciones puestas. Los enlaces y las citas externas no se actualizan, y una URL antigua rota es una referencia perdida."
      },
      "name": "¿Hay que mantener funcionando las URLs traducidas antiguas?"
    }
  ]
}
```
