Автор: Aymeric PINEAU
    Дата створення:2026-06-11Останнє оновлення:2026-06-11

    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/100Page 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-defaultBundle 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 — Вимкнути кешування конфігурації.
    • --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-default 7
    localized links Хоча б одне внутрішнє посилання містить сегмент локалі 5
    all links localized Кожне внутрішнє посилання містить сегмент локалі 5
    current locale Локаль сторінки може бути визначена 3
    robots.txt present /robots.txt повертає відповідь 200 10
    robots.txt locale paths Відсутність блокувань шляхів локалей у robots.txt 10
    sitemap.xml present /sitemap.xml повертає відповідь 200 10
    sitemap locale coverage Кожна виявлена локаль представлена в карті сайту 10
    sitemap alternates Карта сайту містить альтернативні посилання hreflang 5
    sitemap x-default Карта сайту містить альтернативне посилання x-default 5
    unused bundle content JS-бандл не містить надлишкових невикористовуваних даних локалей 9

    Підсумкова оцінка є середньозваженою сумою всіх пройдених перевірок, вираженою у відсотках (0–100).

    Використання функції сканування в коді

    Функція scan також експортується з пакета @intlayer/cli, тому її можна викликати у ваших власних скриптах:

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

    Для більш низькорівневого доступу функція scanWebsite з модуля @intlayer/chokidar/scan повертає структурований об'єкт ScanResult:

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