Autor:
    Data utworzenia:2026-06-11Ostatnia aktualizacja:2026-09-12

    Skanuj stronę internetową

    Polecenie scan pobiera publiczny adres URL, mierzy całkowity rozmiar strony i przeprowadza audyt zdrowia i18n oraz SEO strony. Generuje ono raport z punktacją (0–100) obejmujący atrybuty HTML, linki kanoniczne, tagi hreflang, robots.txt, sitemap.xml, zlokalizowane linki wewnętrzne oraz wagę językową w pakiecie (bundle) JavaScript.

    Nie są wymagane żadne dodatkowe zależności. Kiedy zainstalowany jest puppeteer, skanowanie może przechwytywać opóźnieniej ładowane (lazy-loaded) fragmenty kodu JavaScript dla dokładniejszej analizy pakietu; w przeciwnym razie wraca do inspekcji skryptów ładowanych natychmiast, zadeklarowanych w kodzie HTML.

    Użycie

    bash
    npx intlayer scan <url>
    

    Przykład

    bash
    npx intlayer scan https://example.com
    

    Przykładowe dane wyjściowe:

    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%)
    

    Opcje

    <url> (wymagane)

    Pełny adres URL do zeskanowania (np. https://example.com).

    --no-deep

    Wyłącza głębsze skanowanie oparte na renderowaniu strony.

    Domyślnie polecenie próbuje użyć biblioteki puppeteer do wyrenderowania strony w przeglądarce bezinterfejsowej (headless browser), przechwycenia opóźnioniej ładowanych fragmentów kodu JavaScript i zmierzenia rzeczywistego rozmiaru transferu. Jeśli puppeteer nie jest zainstalowany, polecenie automatycznie przechodzi w tryb podstawowy.

    Przekaż --no-deep, aby wymusić tryb podstawowy, nawet gdy puppeteer jest dostępny.

    Przykład: npx intlayer scan https://example.com --no-deep

    --json

    Wypisuje pełny wynik skanowania jako obiekt JSON zamiast sformatowanego raportu. Przydatne do użycia programistycznego lub w potokach CI.

    Przykład: npx intlayer scan https://example.com --json

    Standardowe opcje konfiguracji

    • --base-dir — Katalog bazowy używany do zlokalizowania pliku intlayer.config.*.
    • -e, --env — Środowisko docelowe (np. development, production).
    • --env-file — Ścieżka do niestandardowego pliku .env.
    • --no-cache — Wyłącza pamięć podręczną konfiguracji.
    • --ci — Uruchamia polecenie w każdym projekcie Intlayer w monorepo (lub tylko w bieżącym, gdy uruchomione z katalogu projektu). Dane uwierzytelniające dla poszczególnych projektów można wstrzyknąć przez INTLAYER_PROJECT_CREDENTIALS — obiekt JSON mapujący ścieżkę projektu na { "clientId", "clientSecret" }.
    • --verbose — Włącza pełne logowanie (domyślne w trybie CLI).
    • --prefix — Niestandardowy prefiks logów.

    Co podlega sprawdzeniu

    SprawdzenieOpisWaga punktowa
    html langObecność atrybutu <html lang="…">9
    html dirObecność atrybutu <html dir="…">3
    canonicalObecność tagu <link rel="canonical">10
    hreflangObecność tagów <link rel="alternate" hreflang="…">9
    x-default hreflangIstnienie alternatywy hreflang x-default7
    localized linksPrzynajmniej jeden link wewnętrzny zawiera segment języka5
    all links localizedKażdy link wewnętrzny zawiera segment języka5
    current localeMożliwość wykrycia języka strony3
    robots.txt present/robots.txt zwraca odpowiedź 20010
    robots.txt locale pathsBrak blokowania ścieżek językowych w robots.txt10
    sitemap.xml present/sitemap.xml zwraca odpowiedź 20010
    sitemap locale coverageKażdy wykryty język pojawia się w mapie witryny10
    sitemap alternatesMapa witryny zawiera linki alternatywne hreflang5
    sitemap x-defaultMapa witryny zawiera hreflang x-default5
    unused bundle contentPakiet JS nie zawiera nadmiernych nieużywanych danych językowych9

    Wynik końcowy to ważona suma wszystkich pomyślnie zaliczonych sprawdzeń wyrażona w procentach (0–100).

    Programistyczne korzystanie z funkcji skanowania

    Funkcja scan jest również eksportowana z @intlayer/cli, dzięki czemu można ją wywoływać z poziomu własnych skryptów:

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

    W przypadku dostępu niskopoziomowego funkcja scanWebsite z modułu @intlayer/engine/scan zwraca ustrukturyzowany obiekt 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);