Panduan SEO React: mengapa rendering sisi klien memperlambat pengindeksan, kapan memilih SSR atau pre-rendering, cara mengatur meta tag di React 19, dan tetap terbaca AI.

Di halaman ini
Singkatnya
React bisa masuk peringkat di Google, tetapi aplikasi satu halaman default mengirim file HTML yang hampir kosong dan bergantung pada JavaScript untuk menampilkan konten. Hal ini memperlambat pengindeksan dan menyembunyikan halaman dari sebagian besar crawler AI. Solusi yang andal adalah mengirim HTML dari server: pre-render halaman statis saat build atau gunakan framework dengan rendering server (Next.js, React Router). Setelah itu, beri setiap URL judul, deskripsi, dan canonical yang unik, gunakan tautan sungguhan dan kode status yang benar, lalu periksa apa yang diterima bot.
Ingin tahu lebih banyak? Tanyakan kepada
Kuis singkat
Apakah SEO cocok untuk Anda, dan bagaimana memulainya?
Sorank cocok dengan jawaban Anda
Coba selama 3 hari di situs Anda sendiri dan lihat posisi Anda di Google, ChatGPT, dan AI lainnya.
Mulai uji coba gratis 3 hari3 hari gratis, lalu berhenti kapan saja. Garansi hasil atau uang kembali 90 hari.
SEO React adalah upaya membuat aplikasi React dapat dirayapi, diindeks, dan dipahami oleh mesin pencari serta asisten AI. React sendiri netral: masalahnya muncul karena semuanya dirender di browser. Google menegaskan dalam dasar-dasar SEO JavaScript bahwa aplikasi JavaScript diproses dalam tiga fase (crawling, rendering, pengindeksan) dan bahwa rendering sisi server atau pre-rendering "tetap merupakan ide yang bagus karena membuat situs lebih cepat bagi pengguna dan crawler, dan tidak semua bot dapat menjalankan JavaScript".
Aplikasi React yang dibuat sebagai aplikasi satu halaman mengirim file HTML yang isinya tidak lebih dari div root kosong dan tag script. Browser mengunduh JavaScript, menjalankannya, lalu membangun halaman. Crawler yang hanya membaca HTML tidak melihat apa pun untuk diindeks: tidak ada judul, teks, maupun tautan.
Googlebot memang menjalankan JavaScript, tetapi dalam langkah terpisah: halaman dirayapi, dimasukkan ke antrean rendering, dirender di Chromium tanpa antarmuka, dan baru setelah itu tautan serta konten hasil render digunakan. Setiap langkah tambahan membuka peluang gagal (error skrip, API diblokir, waktu habis) dan menambah jeda sebelum halaman baru muncul di hasil penelusuran. Panduan kami tentang SEO JavaScript menjelaskan alurnya, dan artikel kami tentang pengindeksan Google membahas cara mempercepat pengindeksan halaman.
Bot lain kurang sabar. Analisis Vercel pada Desember 2024, The rise of the AI crawler, menemukan bahwa "tidak satu pun crawler AI besar saat ini merender JavaScript", dengan menyebut GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, dan PerplexityBot. Halaman React yang dirender di sisi klien tidak terlihat oleh ChatGPT, Claude, dan Perplexity, meskipun Google mengindeksnya.
Tim React kini menyarankan memulai aplikasi baru dengan framework. Saat menghentikan Create React App pada 14 Februari 2025, tim tersebut menulis dalam pengumumannya bahwa "rendering di server dapat meningkatkan SEO" dan juga meningkatkan performa dengan mengurangi JavaScript yang harus diunduh pengguna sebelum melihat konten. Pilihan dari yang terlemah hingga terkuat untuk penelusuran:
| Pendekatan | Yang diterima bot | Penilaian SEO | Alat umum |
|---|---|---|---|
| Rendering sisi klien (SPA) | HTML kosong, konten setelah JavaScript | Lemah: pengindeksan tertunda, tidak terlihat oleh crawler AI | Vite + React, proyek lama Create React App |
| Rendering dinamis | HTML hasil pre-render hanya untuk bot | Solusi sementara, tidak disarankan Google | Layanan pre-rendering, proxy dengan browser tanpa antarmuka |
| Pre-rendering statis saat build | HTML lengkap untuk setiap URL yang diketahui | Sangat baik untuk konten yang jarang berubah | Pre-rendering React Router, generator situs statis, ekspor statis Next.js |
| Rendering sisi server | HTML lengkap di setiap permintaan, lalu hidrasi | Terbaik untuk situs besar atau yang sering diperbarui | Next.js, React Router (mode framework, dulu Remix) |
Soal rendering dinamis, dokumentasi Google tegas: cara ini "merupakan solusi sementara dan bukan solusi jangka panjang", dan Google menyarankan rendering sisi server, rendering statis, atau hidrasi sebagai gantinya. Jika Anda sedang memilih framework, panduan SEO Next.js kami membahas mode rendering, Metadata API, dan sitemap secara rinci.
Jika migrasi tidak memungkinkan, Google tetap bisa mengindeks aplikasi satu halaman asalkan Anda berhati-hati. Panduan kami tentang SEO aplikasi satu halaman mencantumkan syaratnya; sisa artikel ini berlaku untuk kedua kasus.
Sejak React 19 (stabil sejak 5 Desember 2024), komponen dapat langsung merender tag title, meta, dan link, lalu React memindahkannya ke head dokumen. Catatan rilis React 19 menyebutkan bahwa dukungan bawaan ini bekerja "dengan aplikasi khusus klien, SSR streaming, dan Server Components". Sebelum React 19, pustaka seperti react-helmet atau react-helmet-async mengerjakan tugas ini, dan keduanya tetap berguna untuk menimpa nilai default per rute.
function ProductPage({ product }) {
return (
<>
<title>{`${product.name} | Shop`}</title>
<meta name="description" content={product.summary} />
<link rel="canonical" href={`https://example.com/p/${product.slug}`} />
<h1>{product.name}</h1>
</>
)
}Tiga aturan berlaku apa pun metodenya:
Perhatian
Dalam aplikasi khusus klien, tag yang dirender React baru ada setelah JavaScript berjalan. Google bisa membacanya setelah rendering; crawler AI dan sebagian besar bot pratinjau media sosial tidak bisa. Rendering di server atau pre-rendering menempatkan tag tersebut di respons HTML untuk semua bot.
Google menyatakan bahwa ia "hanya dapat menemukan tautan Anda jika tautan itu berupa elemen HTML a dengan atribut href" dan menyarankan agar tidak memakai fragmen URL untuk memuat konten yang berbeda. Sebagian besar kegagalan SEO React berasal dari detail routing:
| Kesalahan | Dampak | Perbaikan |
|---|---|---|
| Navigasi dengan onClick pada div atau tombol | Google tidak menemukan tautan untuk diikuti | Gunakan komponen Link dari router, yang merender a dengan href |
| Rute hash (/#/produk) | Bagi Google semua halaman berbagi satu URL | Gunakan rute berbasis riwayat (/produk) dengan BrowserRouter atau framework |
| Tampilan "tidak ditemukan" dengan status 200 | "Soft 404" di Search Console | Kembalikan 404 sungguhan dari server, atau tambahkan noindex lewat JavaScript pada SPA murni |
| Pengalihan hanya di sisi klien | Pengalihan lambat atau terlewat | Gunakan pengalihan server 301 atau 308 untuk halaman yang dipindahkan |
| Konten yang dimuat saat diklik atau digulir | Teks tidak pernah dirender untuk crawler | Render konten utama saat halaman dimuat; bagi daftar ke dalam halaman dengan URL sungguhan |
| JavaScript atau API diblokir di robots.txt | Google merender halaman kosong | Izinkan skrip dan endpoint API yang dibutuhkan halaman |
Untuk melihat apa yang dirender Google, gunakan alat Inspeksi URL di Search Console dan lihat HTML halaman yang diuji, atau jalankan template halaman utama melalui pemeriksa kemampuan indeks.
React tidak memiliki sitemap bawaan. Buat sitemap.xml saat build dari rute dan data Anda (atau dengan fitur sitemap framework), cantumkan hanya URL canonical yang mengembalikan 200, dan rujuk file itu di robots.txt. Untuk situs statis kecil, generator sitemap XML sudah cukup.
Data terstruktur mengikuti aturan yang sama dengan metadata: render skrip JSON-LD bersama halaman, dari data yang sama, sebaiknya di server. Google dapat membaca JSON-LD yang disisipkan JavaScript setelah rendering, tetapi markup yang tidak ada di HTML awal juga tidak ada bagi crawler yang tidak merender. Gunakan Article untuk artikel, Product untuk e-commerce, Organization di seluruh situs, dan BreadcrumbList untuk halaman yang dalam.
Tips
Jalankan curl pada URL halaman dan cari H1 serta satu kalimat dari isi halaman di hasilnya. Jika tidak ada, Google mungkin mengindeks halaman setelah rendering, tetapi crawler AI tidak akan melihat apa pun.
Bundel JavaScript yang besar merusak Core Web Vitals: browser harus mengunduh, mengurai, dan menghidrasi kode sebelum halaman responsif, yang membebani Largest Contentful Paint dan Interaction to Next Paint, terutama di perangkat seluler. Pengumuman tim React tentang Create React App mencatat bahwa rendering di server mengirim lebih sedikit JavaScript dan dokumen HTML lengkap, sehingga First Contentful Paint lebih cepat dan INP bisa turun. Langkah praktis: memecah kode per rute dengan React.lazy, menyajikan gambar dengan dimensi eksplisit, memuat lazy komponen di bawah layar pertama, dan mengaudit skrip pihak ketiga.
GEO (generative engine optimization) dimulai dari akses. Karena crawler AI mengambil HTML mentah, halaman React harus menyajikan teks, judul, dan JSON-LD tanpa JavaScript agar dapat dibaca, diringkas, dan dikutip. Audit kemampuan perayapan AI menunjukkan apa yang diterima bot-bot ini dari halaman Anda. Syarat kedua adalah konten yang layak dikutip: halaman yang menjawab satu pertanyaan per bagian, dengan sumber, angka, dan definisi yang jelas.
Sisi konten inilah yang diotomatiskan oleh Sorank, produk kami. Sorank adalah software SEO dan GEO yang berjalan secara autopilot: Generator Artikel Blog menulis dan menerbitkan 20, 60, atau 120 artikel per bulan lengkap dengan sumber, tautan internal, dan gambar, serta terhubung melalui webhook ke situs kustom seperti situs React atau Next.js. SEO Chat menjawab pertanyaan tentang performa penelusuran situs Anda dalam bentuk percakapan.

Intinya: sajikan HTML dari server, beri setiap URL judul, deskripsi, dan canonical sendiri, dan gunakan tautan sungguhan. Dengan begitu React masuk peringkat seperti situs lain dan asisten AI dapat membacanya. Untuk terus mengisi situs tersebut dengan artikel yang dibuat untuk Google dan AI, lihat paket Sorank, mulai dari 49 dolar per bulan dengan uji coba gratis 3 hari.
Tidak. React adalah pustaka antarmuka pengguna, dan SEO-nya bergantung pada cara halaman dirender. Aplikasi satu halaman yang dirender di sisi klien mengirim HTML kosong dan mengandalkan langkah rendering Google, sehingga pengindeksan tertunda dan konten tersembunyi dari crawler AI. Kode React yang sama, jika disajikan dengan rendering server atau pre-rendering statis, masuk peringkat seperti situs biasa.
Ya. Googlebot menjalankan JavaScript dengan versi Chromium terbaru, sehingga dapat mengindeks konten yang dibangun aplikasi React di browser. Rendering terjadi setelah crawling dan bisa tertunda atau gagal jika skrip mengalami error atau API diblokir. Alat Inspeksi URL di Search Console menampilkan HTML hasil render seperti yang dilihat Google.
Tidak untuk kasus sederhana. React 19 merender tag title, meta, dan link dari komponen mana pun dan memindahkannya ke head dokumen. Pustaka seperti react-helmet-async tetap berguna saat Anda perlu menimpa nilai default situs per rute atau mendukung versi React yang lebih lama.
MEREKA MENCOBA SORANK SEBELUM ANDA
