Автор:
    Дата створення: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);