Live · status OK
Back to blog
SEO y AEO14 min

SEO multilingüe y hreflang en la práctica: guía de experiencia 11 idiomas

TL;DR

El SEO multilingüe falla en el 70% de los casos por falta de hreflang recíproco o arquitectura URL incoherente. Stack 2026: URLs con subcarpeta /lang/ (sin dominios geográficos salvo casos específicos), hreflang en Metadata Next.js + sitemap, x-default para el idioma de fallback, traducciones humanas (no automáticas) en las 50 páginas prioritarias, content adaptation por mercado. Nuestro sitio optionweb.dev opera 11 idiomas en producción desde hace 18 meses.

Julien Daniel
ByJulien Daniel
Founder & CTO, OptionWeb
Share
Globo con flechas conectando 11 banderas de países para SEO multilingüe

Nuestro sitio optionweb.dev funciona en 11 idiomas desde hace 18 meses — FR, NL, EN, DE, ES, IT, PT, SQ, AR, MK, TR. Esta puesta en producción nos hizo descubrir todas las trampas del SEO multilingüe que ninguna guía teórica menciona. He aquí el retorno de experiencia completo y la metodología que aplicamos ahora en todos los proyectos internacionales de clientes en OptionWeb.

1. Arquitectura URL: subcarpeta vs subdominio vs ccTLD

Tres opciones de arquitectura para un sitio multilingüe. La elección inicial impacta todo lo demás:

ArquitecturaEjemploVentajasInconvenientes
Subcarpetasite.com/fr/, /en/1 dominio = equity compartida, simple de configurarSin señal geográfica fuerte
Subdominiofr.site.com, en.site.comConfiguración DNS separable, equipos localesEquity de backlinks parcialmente separada
ccTLDsite.fr, site.be, site.deSeñal geográfica máxima, branding localCoste dominios + infraestructura × N países

Recomendación 2026: subcarpeta /lang/ para el 90% de pymes y empresas. Es nuestra elección en optionweb.dev. ccTLD solo si es Amazon o IKEA.

2. Hreflang: la reciprocidad no es negociable

Hreflang es la etiqueta meta que dice a Google qué versión de la página servir a qué usuario según su idioma/país. Sin hreflang correcto, Google rankea una sola versión (generalmente EN) e ignora las otras = pérdida masiva de tráfico internacional.

Regla absoluta: la reciprocidad. Si /fr/ apunta a /en/, entonces /en/ debe apuntar de vuelta a /fr/. Sin reciprocidad, Google ignora TODAS las hreflang en la página.

app/[lang]/page.tsxtsx
export async function generateMetadata({ params }: Props): Promise<Metadata> {
  const { lang } = params;

  return {
    title: t('home.title', { lng: lang }),
    alternates: {
      canonical: `https://optionweb.dev/${lang}`,
      languages: {
        'fr': 'https://optionweb.dev/fr',
        'nl': 'https://optionweb.dev/nl',
        'en': 'https://optionweb.dev/en',
        'de': 'https://optionweb.dev/de',
        'es': 'https://optionweb.dev/es',
        'it': 'https://optionweb.dev/it',
        'pt': 'https://optionweb.dev/pt',
        'sq': 'https://optionweb.dev/sq',
        'ar': 'https://optionweb.dev/ar',
        'mk': 'https://optionweb.dev/mk',
        'tr': 'https://optionweb.dev/tr',
        'x-default': 'https://optionweb.dev/en',
      },
    },
  };
}

Formato de códigos hreflang: ISO 639-1 (idioma, ej: 'fr') O ISO 639-1 + ISO 3166-1 (idioma-país, ej: 'fr-BE'). El formato idioma-país apunta a un mercado preciso. Usar solo el idioma basta en el 90% de los casos.

3. x-default y fallback de idioma

El atributo x-default indica la versión a servir si el idioma del usuario no está en la lista hreflang. Es su 'lifeguard' SEO: sin x-default, un usuario japonés que llega a su sitio multilingüe ve una página al azar según el algoritmo de Google.

Buena práctica: apuntar x-default al idioma de fallback más universal (a menudo EN), o a una página de selección de idioma si tiene una.

4. Sitemap multilingüe o sub-sitemaps

Dos enfoques según el volumen:

  • Sitemap único con hreflang xhtml:linkPara <5000 URLs total. Cada URL lista sus variantes vía xhtml:link. Pesado pero centralizado.
  • Sub-sitemaps por idioma + sitemap_indexPara >5000 URLs. Un sitemap.xml por idioma (sitemap-fr.xml, sitemap-en.xml...), todos referenciados en sitemap_index.xml.
app/sitemap.tsts
export const dynamic = 'force-static';

export default function sitemap(): MetadataRoute.Sitemap {
  const SUPPORTED_LANGS = ['fr','nl','en','de','es','it','pt','sq','ar','mk','tr'];
  const PAGES = ['', '/blog', '/services', '/contact'];

  const urls: MetadataRoute.Sitemap = [];

  for (const page of PAGES) {
    for (const lang of SUPPORTED_LANGS) {
      urls.push({
        url: `https://optionweb.dev/${lang}${page}`,
        lastModified: new Date(),
        alternates: {
          languages: Object.fromEntries(
            SUPPORTED_LANGS.map(l => [l, `https://optionweb.dev/${l}${page}`])
          ),
        },
      });
    }
  }

  return urls;
}

5. Language detection: auto-redirect o elección de usuario

Cuando un nuevo visitante llega a su raíz optionweb.dev/, tiene 3 opciones:

  1. Auto-redirect basado en cabecera Accept-Language → /fr/, /en/, etc. (UX arriesgada pero conversión máx)
  2. Página de elección de idioma con cookie de memorización (UX explícita, penaliza conversión inicial)
  3. Fallback x-default + banner '¿Switch to your language?' (compromiso recomendado)

Nuestra elección en optionweb.dev: opción 3. La raíz / redirige a /fr/ (idioma por defecto), con un banner discreto que propone cambiar si Accept-Language indica otro idioma soportado. Cookie de memorización para no re-proponer el cambio en cada visita.

6. Estrategia de traducción: humana vs automática

Es la cuestión presupuestaria principal del SEO multilingüe. Tres opciones según prioridad de negocio:

EnfoqueCoste/páginaCalidad SEOCuándo usar
Traducción humana profesional15-50 €ExcelenteTop 20-50 páginas estratégicas
Machine translation post-editado (MTPE)5-15 €BuenaPáginas secundarias, blog voluminoso
Machine translation bruto (DeepL, Google)0,001 €MediocreBorradores, contenido poco crucial

Plan recomendado para pyme exportadora: top 30 páginas en traducción humana profesional, blog en MTPE, resto en MT bruto marcado noindex hasta edición humana. Presupuesto inicial: 1 500-5 000 € para el top 30 páginas × 10 idiomas.

7. Las 8 trampas del multilingüismo (vividas en producción)

Lista de errores que hemos cometido o visto en proyectos clientes en 18 meses:

  1. Hreflang no recíproco: Google ignora todo. Auditoría mensual obligatoria con Merkle Tool.
  2. Auto-redirect agresivo basado en IP geográfica: usuario francés de vacaciones ve turco.
  3. Traducciones automáticas brutas en páginas de producto: conversión que se hunde, señales de engagement débiles, ranking en baja.
  4. x-default apuntando al idioma principal en lugar de EN: usuarios fuera de idiomas soportados caen en francés incomprensible.
  5. Olvido de localizar los esquemas JSON-LD: Organization en EN, Article en FR = incoherencia para Google.
  6. Páginas duplicadas entre idiomas muy próximos (PT-PT vs PT-BR, ES-ES vs ES-MX) sin hreflang granular: canibalización.
  7. Sitemap no actualizado tras añadir un nuevo idioma: nuevas URLs nunca indexadas durante 6 meses.
  8. Cookie de idioma que impide a los robots crawlers: Googlebot solo ve un idioma, los demás invisibles.

Herramientas de validación y monitoreo

  • Hreflang Tags Testing Tool (Merkle)Gratuito. Verifica reciprocidad hreflang en cualquier URL. A usar mensualmente.
  • Google Search Console > International TargetingSección dedicada a errores hreflang detectados por Google. Notificación de 'No return tags' clásica.
  • Screaming Frog SEO SpiderCrawl completo del sitio con auditoría hreflang batch. 159 £/año versión pro. Indispensable para sitios grandes.
  • SistrixTracking de ranking por país/idioma. 100-300 €/mes. Para empresas con presupuesto reporting internacional.
  • Ahrefs Site AuditIncluye auditoría hreflang. 99 $/mes mínimo. Bueno para auditoría puntual antes del lanzamiento multilingüe.
  • Auditoría manual curlGratuito. Verificar las hreflang devueltas por cada URL vía 'curl -I' e inspección HTML.
Tags#seo#hreflang#i18n#multilingual#international-seo#nextjs