Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Wykrywanie strategii routingu i stosu i18n (biblioteki, TMS); dodanie sprawdzania wzajemności hreflang, og:locale oraz przełącznika języków; obsługa map witryn z robots.txt, indeksów map witryn i map skompresowanych gzip"v9.5.1126.09.2026
- "Dodanie flagi `--ci`"v9.5.212.09.2026
- "Dodano polecenie scan"v9.0.011.06.2026
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimJeśli masz pomysł na ulepszenie tej dokumentacji, zachęcamy do przesłania pull requesta na GitHubie.
Link do dokumentacji na GitHubieKopiuj dokument Markdown do schowka
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 i ich linki zwrotne, robots.txt, mapy witryn, zlokalizowane linki wewnętrzne oraz wagę językową w pakiecie JavaScript.
Raportuje również, w jaki sposób witryna koduje język w swoich adresach URL (strategia routingu) oraz jakiego frameworka, biblioteki i18n, systemu zarządzania tłumaczeniami (TMS) lub proxy tłumaczeń używa. Te same testy napędzają internetowy skaner SEO i18n oraz rozszerzenie Intlayer do przeglądarki Chrome.
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
Skopiuj kod do schowka
Przykład
Skopiuj kod do schowka
Przykładowe dane wyjściowe:
Skopiuj kod do schowka
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 plikuintlayer.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ąć przezINTLAYER_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.
Strategia routingu
Wzorzec językowy współdzielony przez alternatywy hreflang strony ujawnia, jak witryna kieruje swoimi językami. Bez alternatyw używany jest wyłącznie skanowany URL (niska pewność).
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Strategia | Przykład |
|---|---|
prefix-all | /en/about, /fr/about |
prefix-no-default | /about (domyślny język), /fr/about |
search-params | /about?lang=fr |
subdomain | fr.example.com |
domain | example.fr, example.de |
no-prefix | Jeden adres URL dla każdego języka (cookie) |
Sprawdzanie linków, linków kanonicznych, robots.txt i mapy witryny interpretuje każdy URL przez pryzmat tej strategii. Na przykład link bez prefiksu jest prawidłowy w domyślnym języku witryny prefix-no-default, a link bez ?lang= opuszcza język w witrynie typu search-params.
Wykryty stos
Frameworki, biblioteki 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…), systemy zarządzania tłumaczeniami (Crowdin, Phrase, Lokalise, locize, Transifex, Tolgee, Localazy, SimpleLocalize, Localizely, Smartling, Intlayer CMS) oraz serwery proxy tłumaczeń (Weglot, Localize, GTranslate…) są identyfikowane na podstawie kodu HTML, załadowanych zasobów i pakietów JavaScript. Tryb głęboki odczytuje także zmienne globalne window oraz pliki cookie.
Co podlega sprawdzeniu
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Sprawdzenie | Opis | Waga punktowa |
|---|---|---|
html lang | <html lang> jest obecny i stanowi prawidłowy tag BCP 47 | 9 |
html dir | dir="rtl" jest ustawione dla języków pisanych od prawej do lewej (ltr jest wartością domyślną) | 3 |
locale signals consistent | <html lang>, język z adresu URL oraz wpis hreflang z odniesieniem do siebie są zgodne | 5 |
og:locale | og:locale jest ustawione i jest zgodne z <html lang> | 3 |
canonical | Link kanoniczny istnieje i nie wskazuje na inną wersję językową | 10 |
hreflang | Tagi hreflang istnieją, mają prawidłowe kody, bezwzględne adresy URL, brak duplikatów i posiadają samoodwołanie | 9 |
x-default hreflang | Istnieje alternatywa hreflang x-default | 7 |
hreflang alternates link back | Alternatywy odpowiadają kodem 200, nie są przekierowywane, linkują z powrotem i deklarują język | 8 |
localized links | Linki wewnętrzne wskazują na język strony | 8 |
all links keep the locale | Żaden link wewnętrzny nie przełącza ani nie gubi języka | 6 |
language switcher | Dostępne do indeksowania linki <a href> do pozostałych wersji językowych istnieją | 6 |
robots.txt present | /robots.txt zwraca odpowiedź 200 | 10 |
robots.txt localized URLs | Ani witryna, ani jej zlokalizowane adresy URL nie są zablokowane dla Googlebota | 8 |
sitemap present | Znaleziono mapę witryny (dyrektywy robots.txt Sitemap:, /sitemap.xml, /sitemap_index.xml) | 10 |
sitemap locale coverage | Każdy język jest wymieniony, a wpisy z alternatywami wymieniają również siebie | 9 |
sitemap alternates | Mapa witryny zawiera linki alternatywne hreflang | 8 |
sitemap x-default | Mapa witryny zawiera hreflang x-default | 7 |
unused bundle content | Główny pakiet JS nie zawiera tłumaczeń dla innych języków | 8 |
Ostrzeżenie daje połowę wagi punktowej. Ostateczny wynik jest ważoną sumą wykonanych sprawdzeń wyrażoną w procentach (0–100). Niepowodzenia w testach wyświetlają pierwsze znalezione problemy; użyj --json, aby uzyskać pełne szczegóły.
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:
Skopiuj kod do schowka
W przypadku dostępu niskopoziomowego funkcja scanWebsite z modułu @intlayer/engine/scan zwraca ustrukturyzowany obiekt ScanResult:
Skopiuj kod do schowka
