Autor:
    Erstellung:2026-06-11Letzte Aktualisierung:2026-09-12

    Website scannen

    Der Befehl scan ruft eine öffentliche URL ab, misst die Gesamtseitengröße und überprüft die i18n- und SEO-Gesundheit der Seite. Er erstellt einen bewerteten Bericht (0–100), der HTML-Attribute, kanonische Links, hreflang-Tags, robots.txt, sitemap.xml, lokalisierte interne Links und das Gewicht der Lokalisierungsdaten im JavaScript-Bundle abdeckt.

    Es sind keine zusätzlichen Abhängigkeiten erforderlich. Wenn puppeteer installiert ist, kann der Scan träge geladene (lazy-loaded) JavaScript-Chunks erfassen, um eine präzisere Bundle-Analyse durchzuführen. Andernfalls fällt er auf die Überprüfung der im HTML deklarierten, direkt geladenen Skripte zurück.

    Verwendung

    bash
    npx intlayer scan <url>
    

    Beispiel

    bash
    npx intlayer scan https://example.com
    

    Beispielausgabe:

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

    Optionen

    <url> (erforderlich)

    Die vollständige URL, die gescannt werden soll (z. B. https://example.com).

    --no-deep

    Deaktiviert den tieferen, auf Rendering basierenden Scan.

    Standardmäßig versucht der Befehl, puppeteer zu verwenden, um die Seite in einem kopflosen (headless) Browser zu rendern, träge geladene JavaScript-Chunks zu erfassen und die tatsächliche Übertragungsgröße zu messen. Wenn puppeteer nicht installiert ist, fällt der Befehl automatisch in den Basismodus zurück.

    Übergeben Sie --no-deep, um den Basismodus zu erzwingen, selbst wenn puppeteer verfügbar ist.

    Beispiel: npx intlayer scan https://example.com --no-deep

    --json

    Gibt das vollständige Scan-Ergebnis als JSON-Objekt anstelle eines formatierten Berichts aus. Nützlich für die programmatische Verwendung oder CI-Pipelines.

    Beispiel: npx intlayer scan https://example.com --json

    Standard-Konfigurationsoptionen

    • --base-dir — Basisverzeichnis zur Lokalisierung der Datei intlayer.config.*.
    • -e, --env — Zielumgebung (z. B. development, production).
    • --env-file — Pfad zu einer benutzerdefinierten .env-Datei.
    • --no-cache — Konfigurationscache deaktivieren.
    • --ci — Führt den Befehl in jedem Intlayer-Projekt des Monorepos aus (oder nur im aktuellen, wenn er aus einem Projektverzeichnis gestartet wird). Projektspezifische Zugangsdaten können über INTLAYER_PROJECT_CREDENTIALS eingefügt werden, ein JSON-Objekt, das jedem Projektpfad { "clientId", "clientSecret" } zuordnet.
    • --verbose — Ausführliche Protokollierung aktivieren (Standardwert im CLI-Modus).
    • --prefix — Benutzerdefiniertes Protokollpräfix.

    Was überprüft wird

    ÜberprüfungBeschreibungGewichtung der Bewertung
    html langDas Attribut <html lang="…"> ist vorhanden9
    html dirDas Attribut <html dir="…"> ist vorhanden3
    canonical<link rel="canonical"> ist vorhanden10
    hreflang<link rel="alternate" hreflang="…">-Tags sind vorhanden9
    x-default hreflangEin x-default hreflang-Alternativlink ist vorhanden7
    localized linksMindestens ein interner Link enthält ein Sprachsegment5
    all links localizedJeder interne Link enthält ein Sprachsegment5
    current localeDie Sprache der Seite kann erkannt werden3
    robots.txt present/robots.txt gibt eine 200-Antwort zurück10
    robots.txt locale pathsKein Sprachpfad wird in robots.txt blockiert10
    sitemap.xml present/sitemap.xml gibt eine 200-Antwort zurück10
    sitemap locale coverageJede erkannte Sprache erscheint in der Sitemap10
    sitemap alternatesDie Sitemap enthält hreflang-Alternativlinks5
    sitemap x-defaultDie Sitemap enthält einen x-default hreflang5
    unused bundle contentDas JS-Bundle enthält keine übermäßigen ungenutzten Sprachdaten9

    Die endgültige Bewertung ist die gewichtete Summe aller erfolgreichen Überprüfungen, ausgedrückt als Prozentsatz (0–100).

    Verwendung der Scan-Funktion im Code (programmatisch)

    Die Funktion scan wird auch aus @intlayer/cli exportiert, sodass sie in Ihren eigenen Skripten aufgerufen werden kann:

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

    Für den Zugriff auf niedrigerer Ebene gibt scanWebsite aus @intlayer/engine/scan ein strukturiertes ScanResult-Objekt zurück:

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