---
title: 'SEO multilingüe en Next.js: hreflang, sitemaps y fallbacks de idioma'
description: >-
  Una configuración práctica para alternativas hreflang, x-default, sitemaps
  localizados, slugs traducidos y cadenas de fallback de idiomas en un sitio
  multilingüe de Next.js.
publishedAt: '2026-07-08'
updatedAt: '2026-07-08'
noindex: false
canonicalPath: /es/blog/multilingual-seo-hreflang-sitemaps-fallbacks
---
Traducir tu contenido es solo la mitad del SEO multilingüe. La otra mitad consiste en explicar a los motores de búsqueda lo que has hecho: qué URL corresponde a cada idioma, cuál es la predeterminada y qué mostrar cuando una región aún no tiene traducción. Si lo haces mal, Google indexará tus páginas en francés para búsquedas en inglés o tratará diez traducciones como contenido duplicado.

Esta es la lista de verificación que implementamos y cómo Scribe genera la mayor parte a partir del contenido que ya conoce.

## Alternativas hreflang en cada página

Cada página localizada debe declarar a todos sus hermanos, incluyéndose a sí misma, además de un `x-default` que apunte a la versión para idiomas no coincidentes. En Next.js, este es el campo `alternates.languages` de los metadatos de la página.

La parte molesta son los slugs traducidos. Si `/docs/getting-started` es `/fr/docs/premiers-pas` en francés, tus enlaces alternativos deben usar el slug localizado, no el inglés con un prefijo de idioma. Scribe almacena el slug traducido con cada traducción, y el ayudante `alternates()` del entorno de ejecución devuelve el mapa completo por documento, por lo que el código de metadatos es un bucle en lugar de una tabla de búsqueda que mantienes a mano.

Dos reglas para evitar los errores comunes:

- El hreflang debe ser recíproco. Si la página en francés enlaza a la alemana, la alemana debe enlazar a la francesa. Generar ambas partes desde el mismo almacén garantiza esto.
- Las URL canónicas deben autorreferenciarse por idioma. La URL canónica de la página en francés es la URL en francés. Si apuntas la URL canónica de todos los idiomas al inglés, le estás diciendo a Google que elimine tus traducciones del índice.

## Un sitemap que entiende de idiomas

Cada entrada de URL en el sitemap debe llevar los mismos enlaces alternativos, además del `x-default`. La función `sitemapEntries()` de Scribe devuelve una entrada por documento con todas las URL locales y un `lastmod` derivado de los campos integrados `publishedAt` y `updatedAt`, de modo que el sitemap se mantiene preciso sin fechas manuales.

Los documentos que retires no deberían simplemente desaparecer. Scribe mantiene redirecciones en un archivo `_redirects.json` por tipo, y las URL retiradas hacen un redireccionamiento 301 a su reemplazo en cada idioma, lo que preserva el valor de enlace que has ganado.

## Fallbacks de idioma en lugar de errores 404

¿Qué debería mostrar `/fr-CA/guide` si tradujiste la página al francés pero no al francés de Canadá? Un error 404 desperdicia la traducción que ya tienes, mientras que mostrarla en inglés en silencio confunde a los lectores.

Scribe resuelve mediante una cadena de fallback de forma automática: un idioma regional recurre a su idioma base antes que al inglés. `fr-CA` prueba con `fr` y luego con `en`. `zh-Hant-TW` prueba con `zh-Hant`, luego con `zh` y finalmente con `en`. El entorno de ejecución informa qué idioma se entregó realmente en `actualLocale`, para que tu diseño pueda etiquetar la página con honestidad, y los parámetros prerrenderizados incluyen las URL de fallback para que las páginas existan en el momento de la compilación.

## Los metadatos también son contenido

Los títulos y las metadescripciones son superficies de posicionamiento, por lo que deben traducirse con el mismo cuidado que el cuerpo del texto. En Scribe son campos ordinarios de frontmatter traducible, que se procesan y validan como cualquier otra cosa. El prompt de traducción está diseñado para la transcreación en lugar de la traducción literal, lo cual importa más para los 60 caracteres de una etiqueta de título que en cualquier otro lugar.

## En conclusión

Nada de esto es exótico. Es simple administración: alternativas, canónicas, sitemaps, redirecciones y fallbacks, todo derivado de una sola pregunta acerca de qué documento existe en qué idioma y en qué URL. Un CMS que almacena traducciones como datos de primera clase puede responder a esa pregunta en un solo lugar. Conectar todo esto a mano entre un CMS alojado, una plataforma de traducción y tu enrutador es donde el SEO multilingüe suele romperse.

Mira cómo encajan las piezas en la [guía de la API del entorno de ejecución](/docs/runtime-api) o comienza desde [los primeros pasos](/docs/getting-started).
