Apa Itu JavaScript SEO
JavaScript SEO adalah usaha memastikan isi halaman yang dihasilkan JavaScript benar-benar terlihat, terbaca, dan terindeks oleh mesin pencari.
Kebutuhan ini muncul karena cara kerja situs modern berubah. Pada situs lama, isi halaman sudah lengkap di HTML yang dikirim server. Pada situs yang dibangun dengan React, Vue, Angular, atau kerangka serupa, HTML awalnya sering nyaris kosong — isinya baru muncul setelah skrip dijalankan di peramban.
Google bisa menjalankan JavaScript. Yang berbeda adalah kapan ia menjalankannya, dan di situlah masalahnya lahir.
Dalam audit, isu rendering perlu dipisahkan dari struktur halaman. Semantic HTML membantu mesin memahami isi yang sudah berhasil dirender, sedangkan checklist technical SEO membantu mengurutkan pemeriksaannya.
Tiga Tahap yang Perlu Dipahami
Untuk halaman berbasis JavaScript, proses Google berjalan dalam tiga tahap terpisah:
- Perayapan — Googlebot mengunduh HTML awal. Kalau isinya kosong, di tahap ini Google belum melihat apa-apa.
- Rendering — halaman dimasukkan ke antrean, lalu dijalankan skripnya untuk melihat hasil akhirnya. Tahap ini tidak langsung terjadi setelah perayapan.
- Pengindeksan — isi hasil rendering baru dianalisis dan disimpan.
Jeda di tahap dua yang jadi inti masalah. Halaman yang isinya bergantung penuh pada JavaScript baru bisa dinilai setelah antreannya sampai — dan untuk situs yang jarang dirayapi, itu bisa berarti tertunda lama.
Satu lagi yang sering luput: tautan yang hanya muncul setelah skrip berjalan ditemukan lebih lambat. Kalau navigasi situs sepenuhnya dibangun JavaScript, penemuan halaman ikut tertunda.
Masalah yang Paling Sering Muncul
- Isi utama tidak ada di HTML awal, sehingga apa yang dilihat perayap pada kunjungan pertama adalah halaman kosong.
- Tautan bukan elemen
<a href>melainkan elemen yang bereaksi pada klik. Perayap tidak mengklik; ia mengikutihref. - Berkas JavaScript diblokir di robots.txt, sehingga Google tidak bisa merender halamannya sama sekali.
- Isi hanya muncul setelah interaksi — klik “muat lebih banyak”, buka tab, atau gulir. Perayap tidak melakukan itu.
- Alamat memakai fragmen (
#) untuk membedakan halaman, sehingga semuanya terbaca sebagai satu alamat. - Skrip gagal dijalankan karena kesalahan yang tidak terlihat di peramban Anda sendiri.
- Waktu render terlalu lama, sehingga proses berhenti sebelum isinya lengkap.
Cara Membuatnya Terbaca
- Kirim isi utama di HTML awal. Ini solusi yang paling menentukan, dan caranya lewat rendering di sisi server atau pembuatan halaman statis saat proses build.
- Pakai tautan HTML biasa dengan atribut
hrefyang sebenarnya untuk seluruh navigasi. - Pakai History API untuk alamat, bukan fragmen. Tiap halaman harus punya alamat sendiri yang bisa dibuka langsung.
- Jangan blokir berkas JavaScript dan CSS di robots.txt. Google butuh keduanya untuk melihat halaman apa adanya.
- Tampilkan isi tanpa menunggu interaksi. Kalau memakai pemuatan bertahap, sediakan juga tautan paginasi biasa.
- Pasang meta tag di HTML awal — judul, deskripsi, dan canonical. Menyisipkannya lewat skrip bekerja, tapi lebih rapuh.
- Tangani halaman yang tidak ditemukan dengan kode status yang benar, bukan dengan menampilkan pesan lewat skrip pada kode 200 — itu soft 404.
Memilih Cara Rendering
- Rendering sisi server — HTML lengkap dihasilkan tiap permintaan. Paling andal untuk isi yang sering berubah.
- Pembuatan statis saat build — HTML dihasilkan sekali di awal. Paling cepat dan paling murah, cocok untuk isi yang jarang berubah.
- Hidrasi bertahap — HTML dikirim lebih dulu, lalu skrip mengambil alih. Gabungan yang paling umum dipakai kerangka modern.
- Rendering sisi klien murni — pilihan paling berisiko untuk halaman yang perlu ditemukan lewat pencarian. Masuk akal hanya untuk bagian yang memang di balik autentikasi.
Untuk halaman yang perlu berperingkat, tiga pilihan pertama selalu lebih baik daripada yang keempat.
Cara Memeriksanya
- Buka pemeriksaan URL di Search Console, lalu lihat HTML hasil rendering dan tangkapan layarnya. Ini yang benar-benar dilihat Google.
- Bandingkan dengan sumber halaman mentah lewat
Ctrl+U. Selisih besar antara keduanya menunjukkan seberapa banyak isi yang bergantung pada skrip. - Matikan JavaScript di peramban dan buka halamannya. Yang tersisa adalah gambaran kasar isi yang tidak bergantung skrip.
- Periksa laporan kesalahan JavaScript di hasil rendering Search Console.
- Cari isi Anda di Google dengan mengutip satu kalimat khas dari halaman itu. Kalau tidak ketemu, isinya belum terindeks.
Pertanyaan Umum Seputar JavaScript SEO
Apakah Google bisa membaca situs React atau Vue?
Bisa, tapi lewat antrean rendering yang menambah jeda. Untuk halaman yang perlu berperingkat, mengirim isi utama di HTML awal tetap jauh lebih andal.
Apakah rendering sisi server wajib?
Tidak wajib, tapi sangat dianjurkan untuk halaman yang perlu ditemukan lewat pencarian. Untuk halaman di balik autentikasi, ini tidak relevan.
Kenapa halaman saya terindeks tapi isinya tidak muncul di cuplikan?
Kemungkinan isinya belum terbaca saat pengindeksan, atau proses rendering berhenti sebelum lengkap. Periksa HTML hasil rendering di Search Console untuk memastikan.