Автор:
    Создание:2026-06-11Последнее обновление:2026-09-12

    Scan Website

    Команда scan запрашивает публичный URL, измеряет общий размер страницы и проверяет состояние i18n и SEO страницы. Она создает отчет с оценкой (0–100), охватывающий HTML-атрибуты, канонические ссылки, теги hreflang, robots.txt, sitemap.xml, локализованные внутренние ссылки и вес локалей в JavaScript-бандле.

    Никаких дополнительных зависимостей не требуется. Если установлен puppeteer, сканирование может фиксировать лениво загружаемые (lazy-loaded) JavaScript-чанки для более точного анализа сборки; в противном случае оно проверяет только скрипты, объявленные в HTML для немедленной загрузки.

    Использование

    bash
    npx intlayer scan <url>
    

    Пример

    bash
    npx intlayer scan https://example.com
    

    Пример вывода:

    plaintext
    🔍 Scanned https://example.com (basic mode)
    
    Score: 90/100
    Page size: 10.60 MB (HTML 42.31 KB)
    Locales: en, fr, es, de, …
    
    Checks:
      ✓ html lang attribute
      ✓ html dir attribute
      ✓ canonical link
      ✓ hreflang tags
      ✓ x-default hreflang
      ✓ localized internal links
      ⚠ all internal links localized
      ✓ current locale detected
      ✓ robots.txt present
      ✓ robots.txt keeps locale paths crawlable
      ✓ sitemap.xml present
      ✓ sitemap lists every locale
      ✓ sitemap has alternate links
      ✓ sitemap has x-default
    
    Bundle locale weight:
      Translations shipped: 120.50 KB
      Unused (other locales): 45.20 KB (37%)
    

    Параметры

    <url> (обязательно)

    Полный URL-адрес для сканирования (например, https://example.com).

    --no-deep

    Отключить более глубокое сканирование на основе рендеринга страницы.

    По умолчанию команда пытается использовать puppeteer для рендеринга страницы в headless-браузере, захвата отложенно загружаемых JS-чанков и измерения реального объема передаваемых данных. Если puppeteer не установлен, команда автоматически переключается в базовый режим.

    Передайте --no-deep, чтобы принудительно использовать базовый режим, даже если puppeteer доступен.

    Пример: npx intlayer scan https://example.com --no-deep

    --json

    Вывод полного результата сканирования в виде JSON-объекта вместо форматированного отчета. Полезно для программного использования или в CI-пайплайнах.

    Пример: npx intlayer scan https://example.com --json

    Стандартные параметры конфигурации

    • --base-dir — Базовая директория для поиска файла intlayer.config.*.
    • -e, --env — Целевое окружение (например, development, production).
    • --env-file — Путь к кастомному файлу .env.
    • --no-cache — Отключить кэширование конфигурации.
    • --ci — Выполняет команду в каждом проекте Intlayer монорепозитория (или только в текущем при запуске из директории проекта). Учетные данные для каждого проекта можно подставить через INTLAYER_PROJECT_CREDENTIALS — JSON-объект, сопоставляющий путь проекта с { "clientId", "clientSecret" }.
    • --verbose — Включить подробное логирование (по умолчанию включено в режиме CLI).
    • --prefix — Кастомный префикс для логов.

    Что проверяется

    ПроверкаОписаниеВес в оценке
    html langНаличие атрибута <html lang="…">9
    html dirНаличие атрибута <html dir="…">3
    canonicalНаличие тега <link rel="canonical">10
    hreflangНаличие тегов <link rel="alternate" hreflang="…">9
    x-default hreflangНаличие альтернативного тега hreflang x-default7
    localized linksХотя бы одна внутренняя ссылка содержит сегмент локали5
    all links localizedКаждая внутренняя ссылка содержит сегмент локали5
    current localeЛокаль страницы может быть определена3
    robots.txt present/robots.txt возвращает ответ 20010
    robots.txt locale pathsОтсутствие блокировок путей локалей в robots.txt10
    sitemap.xml present/sitemap.xml возвращает ответ 20010
    sitemap locale coverageКаждая обнаруженная локаль представлена в карте сайта10
    sitemap alternatesКарта сайта содержит альтернативные ссылки hreflang5
    sitemap x-defaultКарта сайта содержит альтернативную ссылку x-default5
    unused bundle contentJS-бандл не содержит избыточных неиспользуемых данных локалей9

    Итоговая оценка представляет собой средневзвешенную сумму всех пройденных проверок, выраженную в процентах (0–100).

    Использование функции сканирования в коде

    Функция scan также экспортируется из пакета @intlayer/cli, поэтому её можно вызывать в ваших собственных скриптах:

    ts
    import { scan } from "@intlayer/cli";
    
    await scan("https://example.com", {
      deep: false,
      json: false,
    });
    

    Для более низкоуровневого доступа функция scanWebsite из модуля @intlayer/engine/scan возвращает структурированный объект ScanResult:

    ts
    import { scanWebsite } from "@intlayer/engine/scan";
    
    const result = await scanWebsite("https://example.com", { deep: false });
    console.log(result.score, result.totalPageSize, result.events);