Penulis:
    Dibuat:2026-06-11Terakhir diperbarui:2026-09-12

    Scan Website

    Perintah scan mengambil URL publik, mengukur total ukuran halaman, dan mengaudit kesehatan i18n serta SEO halaman tersebut. Ini menghasilkan laporan dengan skor (0–100) yang mencakup atribut HTML, tautan kanonis, tag hreflang, robots.txt, sitemap.xml, tautan internal yang terlokalisasi, dan bobot bahasa pada bundel JavaScript.

    Tidak diperlukan dependensi tambahan. Jika puppeteer terinstal, pemindaian dapat menangkap fragmen JavaScript yang dimuat secara asinkron (lazy-loaded) untuk analisis bundel yang lebih presisi; jika tidak, perintah akan kembali memeriksa skrip yang dimuat secara langsung yang dideklarasikan dalam HTML.

    Penggunaan

    bash
    npx intlayer scan <url>
    

    Contoh

    bash
    npx intlayer scan https://example.com
    

    Contoh keluaran:

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

    Opsi

    <url> (diperlukan)

    URL lengkap yang akan dipindai (misalnya https://example.com).

    --no-deep

    Menonaktifkan pemindaian mendalam berbasis rendering.

    Secara default, perintah mencoba menggunakan puppeteer untuk merender halaman di browser headless, menangkap fragmen JavaScript yang dimuat secara asinkron, dan mengukur ukuran transfer sebenarnya. Jika puppeteer tidak terinstal, perintah akan secara otomatis beralih ke mode dasar.

    Gunakan --no-deep untuk memaksa mode dasar bahkan ketika puppeteer tersedia.

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

    --json

    Menghasilkan seluruh hasil pemindaian sebagai objek JSON alih-alih laporan terformat. Berguna untuk penggunaan programatis atau alur kerja CI.

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

    Opsi konfigurasi standar

    • --base-dir — Direktori dasar yang digunakan untuk mencari file intlayer.config.*.
    • -e, --env — Lingkungan target (misalnya development, production).
    • --env-file — Jalur ke file .env kustom.
    • --no-cache — Menonaktifkan cache konfigurasi.
    • --ci — Menjalankan perintah di setiap proyek Intlayer dalam monorepo (atau hanya proyek saat ini jika dijalankan dari direktori proyek). Kredensial per proyek dapat disuntikkan melalui INTLAYER_PROJECT_CREDENTIALS, sebuah objek JSON yang memetakan path proyek ke { "clientId", "clientSecret" }.
    • --verbose — Mengaktifkan pencatatan detail (default dalam mode CLI).
    • --prefix — Prefiks pencatatan kustom.

    Apa yang diperiksa

    PemeriksaanDeskripsiBobot Skor
    html langAtribut <html lang="…"> tersedia9
    html dirAtribut <html dir="…"> tersedia3
    canonical<link rel="canonical"> tersedia10
    hreflangTag <link rel="alternate" hreflang="…"> tersedia9
    x-default hreflangAlternatif hreflang x-default tersedia7
    localized linksSetidaknya satu tautan internal menyertakan segmen bahasa5
    all links localizedSetiap tautan internal menyertakan segmen bahasa5
    current localeBahasa halaman dapat dideteksi3
    robots.txt present/robots.txt mengembalikan respons 20010
    robots.txt locale pathsTidak ada jalur bahasa yang diblokir di robots.txt10
    sitemap.xml present/sitemap.xml mengembalikan respons 20010
    sitemap locale coverageSetiap bahasa yang terdeteksi muncul di sitemap10
    sitemap alternatesSitemap berisi tautan alternatif hreflang5
    sitemap x-defaultSitemap berisi hreflang x-default5
    unused bundle contentBundel JS tidak membawa data bahasa tidak terpakai yang berlebihan9

    Skor akhir adalah jumlah bobot dari semua pemeriksaan yang berhasil dinyatakan dalam persentase (0–100).

    Menggunakan fungsi scan secara programatis

    Fungsi scan juga diekspor dari @intlayer/cli sehingga dapat dipanggil dari skrip Anda sendiri:

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

    Untuk akses tingkat lebih rendah, scanWebsite dari @intlayer/engine/scan mengembalikan objek ScanResult yang terstruktur:

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