Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Historial de versiones
- "Detecta la estrategia de enrutamiento y la stack i18n (librerías, TMS); añade comprobaciones de reciprocidad hreflang, og:locale y selector de idioma; sigue sitemaps de robots.txt, índices de sitemaps y sitemaps comprimidos con gzip"v9.5.1126/9/2026
- "Añadir el flag `--ci`"v9.5.212/9/2026
- "Agregar comando scan"v9.0.011/6/2026
El contenido de esta página ha sido traducido con una IA.
Ver la última versión del contenido original en inglésSi tienes una idea para mejorar esta documentación, no dudes en contribuir enviando una pull request en GitHub.
Enlace de GitHub a la documentaciónCopiar el Markdown del documento a la portapapeles
Escanear sitio web
El comando scan obtiene una URL pública, mide el tamaño total de la página y audita la salud de i18n y SEO de la página. Produce un informe puntuado (0–100) que cubre atributos HTML, enlaces canónicos, etiquetas hreflang y sus enlaces de retorno, robots.txt, sitemaps, enlaces internos localizados y el peso de las locales en el bundle de JavaScript.
También informa cómo el sitio codifica la locale en sus URLs (estrategia de enrutamiento) y qué framework, librería i18n, sistema de gestión de traducciones (TMS) o proxy de traducción utiliza. Las mismas comprobaciones impulsan el escáner SEO i18n en línea y la extensión de Chrome de Intlayer.
No se requieren dependencias adicionales. Cuando puppeteer está instalado, el escaneo puede capturar fragmentos de JavaScript cargados de forma diferida para un análisis de bundle más preciso; de lo contrario, recurre a inspeccionar los scripts cargados de forma activa declarados en el HTML.
Uso
Copiar el código al portapapeles
Ejemplo
Copiar el código al portapapeles
Ejemplo de salida:
Copiar el código al portapapeles
Opciones
<url> (requerido)
La URL completa a escanear (por ejemplo, https://example.com).
--no-deep
Desactiva el escaneo profundo basado en renderizado.
Por defecto, el comando intenta utilizar puppeteer para renderizar la página en un navegador sin interfaz gráfica, capturar fragmentos de JavaScript cargados de forma diferida y medir el tamaño real de transferencia. Si puppeteer no está instalado, el comando recurre automáticamente al modo básico.
Pase --no-deep para forzar el modo básico incluso cuando puppeteer esté disponible.
Ejemplo: npx intlayer scan https://example.com --no-deep
--json
Muestra el resultado completo del escaneo como un objeto JSON en lugar de un informe formateado. Útil para el consumo programático o pipelines de CI.
Ejemplo: npx intlayer scan https://example.com --json
Opciones de configuración estándar
--base-dir: Directorio base utilizado para localizar el archivointlayer.config.*.-e, --env: Entorno de destino (por ejemplo,development,production).--env-file: Ruta a un archivo.envpersonalizado.--no-cache: Desactivar la caché de configuración.--ci: Ejecuta el comando en cada proyecto Intlayer del monorepo (o solo en el actual si se ejecuta desde un directorio de proyecto). Se pueden inyectar credenciales por proyecto medianteINTLAYER_PROJECT_CREDENTIALS, un objeto JSON que asocia cada ruta de proyecto a{ "clientId", "clientSecret" }.--verbose: Activar el registro detallado (por defecto en modo CLI).--prefix: Prefijo de registro personalizado.
Estrategia de enrutamiento
El patrón de locale compartido por las alternativas hreflang de la página revela cómo el sitio enruta sus locales. Sin alternativas, solo se utiliza la URL escaneada (baja confianza).
Abrir la tabla en una ventana flotante para ver todo el contenido claramente
| Estrategia | Ejemplo |
|---|---|
prefix-all | /en/about, /fr/about |
prefix-no-default | /about (locale por defecto), /fr/about |
search-params | /about?lang=fr |
subdomain | fr.example.com |
domain | example.fr, example.de |
no-prefix | Una URL para cada locale (cookie) |
Las comprobaciones de enlaces, canónicos, robots.txt y sitemaps leen cada URL mediante esta estrategia. Por ejemplo, un enlace sin prefijo es correcto en la locale por defecto de un sitio prefix-no-default, y un enlace sin ?lang= abandona la locale en un sitio search-params.
Stack detectada
Frameworks, librerías i18n (Intlayer, i18next, react-i18next, next-i18next, next-intl, use-intl, react-intl, vue-i18n, @nuxtjs/i18n, Lingui, svelte-i18n, Paraglide, ngx-translate, Transloco, Polylang, WPML…), sistemas de gestión de traducción (Crowdin, Phrase, Lokalise, locize, Transifex, Tolgee, Localazy, SimpleLocalize, Localizely, Smartling, Intlayer CMS) y proxies de traducción (Weglot, Localize, GTranslate…) se identifican a partir del HTML, los recursos cargados y los bundles de JavaScript. El modo profundo también lee variables globales de window y cookies.
Qué se comprueba
Abrir la tabla en una ventana flotante para ver todo el contenido claramente
| Comprobación | Descripción | Peso de la puntuación |
|---|---|---|
html lang | <html lang> está presente y es una etiqueta BCP 47 válida | 9 |
html dir | dir="rtl" está configurado para idiomas de derecha a izquierda (ltr es el valor por defecto) | 3 |
locale signals consistent | <html lang>, la locale de la URL y la entrada hreflang propia coinciden | 5 |
og:locale | og:locale está configurado y coincide con <html lang> | 3 |
canonical | Existe un enlace canónico y no apunta a otra versión de idioma | 10 |
hreflang | Existen etiquetas hreflang, con códigos válidos, URLs absolutas, sin duplicados y con auto-referencia | 9 |
x-default hreflang | Existe una alternativa hreflang x-default | 7 |
hreflang alternates link back | Las alternativas responden con un 200, no están redirigidas, devuelven el enlace y declaran el idioma | 8 |
localized links | Los enlaces internos apuntan a la locale de la página | 8 |
all links keep the locale | Ningún enlace interno cambia o descarta la locale | 6 |
language switcher | Existen enlaces <a href> rastreables hacia las otras versiones de idioma | 6 |
robots.txt present | /robots.txt devuelve una respuesta 200 | 10 |
robots.txt localized URLs | Ni el sitio ni sus URLs localizadas están bloqueadas para Googlebot | 8 |
sitemap present | Se encuentra un sitemap (directivas Sitemap: en robots.txt, /sitemap.xml, /sitemap_index.xml) | 10 |
sitemap locale coverage | Cada locale está listada, y las entradas con alternativas se listan a sí mismas | 9 |
sitemap alternates | El sitemap contiene enlaces alternativos hreflang | 8 |
sitemap x-default | El sitemap contiene un hreflang x-default | 7 |
unused bundle content | El bundle principal de JS no envía traducciones de otras locales | 8 |
Una advertencia otorga la mitad del peso. La puntuación final es la suma ponderada de las comprobaciones ejecutadas, expresada como un porcentaje (0–100). Las comprobaciones fallidas imprimen los primeros problemas encontrados; use --json para obtener los detalles completos.
Uso programático de la función de escaneo
La función scan también se exporta desde @intlayer/cli para que pueda llamarse desde sus propios scripts:
Copiar el código al portapapeles
Para un acceso de nivel inferior, scanWebsite de @intlayer/engine/scan devuelve un objeto ScanResult estructurado:
Copiar el código al portapapeles
