SEO untuk Framework JavaScript
SEO untuk framework JavaScript—React, Next.js, Vue, Nuxt, Angular, Svelte, dan Astro. Bagaimana mode rendering (SSR, SSG, CSR) menentukan apa yang dapat diindeks Google, serta framework mana yang paling baik menangani SEO sejak awal.
SEO framework JavaScript ditentukan oleh mode rendering: SSG dan SSR memberi Googlebot HTML yang sudah dibangun; CSR memerlukan eksekusi JavaScript yang mungkin berhasil atau gagal. Next.js dan Nuxt memiliki dukungan SEO bawaan paling lengkap (SSR, SSG, ISR, dan API metadata). React dan Vue murni dalam mode CSR paling berisiko untuk SEO. Arsitektur island Astro sangat baik untuk SEO secara default. Angular memerlukan SSR melalui @angular/ssr (sebelumnya Angular Universal) agar pengindeksan andal.
TL;DR — Sebagian besar framework JavaScript membangun halaman di browser pengunjung (CSR). Ini bekerja baik bagi pengguna, tetapi mesin pencari mungkin tidak menjalankan JavaScript sehingga konten Anda tidak terlihat. Solusinya: gunakan mode framework yang membangun halaman di server (SSR) atau saat build (SSG). Next.js dan Nuxt mempermudahnya; React dan Vue murni dalam mode CSR memerlukan pekerjaan tambahan.
Mengapa framework JavaScript memiliki tantangan SEO
Google memproses JavaScript melalui crawling, rendering, dan pengindeksan, dan resource yang diblokir atau gagal dapat mengubah hasil rendering. Bukti untuk klaim ini Primary standard or official documentation supporting the adjacent article claim. Cakupan: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Tingkat keyakinan: tinggi · Diverifikasi: Google: JavaScript SEO basics Mode rendering dan implementasi metadata lebih penting daripada merek framework semata. Bukti untuk klaim ini Primary standard or official documentation supporting the adjacent article claim. Cakupan: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Tingkat keyakinan: tinggi · Diverifikasi: web.dev: Rendering on the Web
Situs web tradisional mengirimkan HTML lengkap dari server. Crawler mesin pencari mengunduh HTML tersebut dan segera mengindeks kontennya. Framework JavaScript sering bekerja berbeda: server mengirimkan file HTML minimal, lalu JavaScript berjalan di browser untuk membangun konten halaman sebenarnya.
Jika crawler mesin pencari tidak menjalankan JavaScript Anda (atau menjalankannya tetapi terjadi kegagalan), crawler itu melihat halaman kosong. Itulah masalah SEO pada CSR.
Penjelasan mode rendering
- SSG (static site generation) — halaman dibangun sebagai HTML saat deploy. Crawler mendapatkan HTML lengkap tanpa memerlukan JavaScript. Pilihan terbaik untuk SEO.
- SSR (server-side rendering) — server membangun HTML baru untuk setiap permintaan. Crawler mendapatkan HTML lengkap. Ini juga sangat baik untuk SEO.
- CSR (client-side rendering) — JavaScript membangun halaman di browser. Crawler harus menjalankan JavaScript untuk melihat konten. Google dapat melakukannya, tetapi kegagalan bisa terjadi dan penemuan konten menjadi lebih lambat.
Framework berdasarkan keamanan SEO sejak awal
Paling aman:
- Astro — menghasilkan HTML statis secara default; JavaScript hanya di bagian yang Anda aktifkan
- Next.js — menyediakan SSG, SSR, dan ISR; API metadata lengkap; standar industri
- Nuxt — kemampuan serupa untuk ekosistem Vue; dukungan SSR/SSG yang sangat baik
Memerlukan konfigurasi:
- Angular — CSR secara default; memerlukan
@angular/ssr(sebelumnya Angular Universal) agar SEO aman - React — CSR secara default; memerlukan Next.js atau React Router (framework mode) untuk SSR/SSG
- Vue — CSR secara default; memerlukan Nuxt untuk SSR/SSG
- Svelte — CSR secara default; SvelteKit menambahkan dukungan SSR/SSG
TL;DR — Pada tingkat teknis, SEO framework JS mencakup: (1) arsitektur rendering untuk payload HTML awal, (2) injeksi metadata ke
<head>sebelum respons dikirim, (3) cara framework menangani hidrasi dan penemuan tautan, serta (4) kedaluwarsa cache ISR. Next.js memiliki perangkat SEO bawaan paling lengkap (API Metadata,app/sitemap.tsbawaan, optimasi gambar). Astro adalah framework yang paling aman untuk SEO berdasarkan arsitekturnya.
Mode rendering, API metadata, dan dukungan ISR berdasarkan framework
Kemampuan dan default framework berubah menurut versi; verifikasi semuanya dalam dokumentasi resmi tiap framework. Bukti untuk klaim ini Primary standard or official documentation supporting the adjacent article claim. Cakupan: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Tingkat keyakinan: tinggi · Diverifikasi: web.dev: Rendering on the Web Tidak ada mode rendering yang menjamin pengindeksan atau peringkat. Bukti untuk klaim ini Primary standard or official documentation supporting the adjacent article claim. Cakupan: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Tingkat keyakinan: tinggi · Diverifikasi: Google: JavaScript SEO basics Saat membandingkan framework untuk mengambil keputusan, uji rute, konten, target deployment, dan tooling yang sama pada setiap kandidat—benchmark yang mengubah salah satunya tidak mengukur framework, melainkan perbedaan dalam konfigurasinya.
| Framework | Rendering default | API metadata bawaan | Dukungan SSR/SSG | Dukungan SEO ekosistem |
|---|---|---|---|---|
| Astro | SSG (islands) | Ya (<head> di file .astro, Content Collections untuk data terstruktur) | Keduanya | Kuat |
| Next.js | SSR/SSG (dapat dikonfigurasi) | Ya (API Metadata di App Router) | Keduanya + ISR | Sangat baik |
| Nuxt | SSR secara default | Ya (useHead, useSeoMeta) | Keduanya + ISR | Sangat baik |
| SvelteKit | SSR secara default | Ya (svelte:head) | Keduanya | Baik |
| React Router (framework mode) | SSR secara default | Ya (ekspor meta) | SSR + Deferred | Baik |
| Angular | CSR secara default | Melalui service Meta/Title Angular | Melalui @angular/ssr | Sedang |
| React (bare) | CSR | Manual (react-helmet-async; react-helmet tidak lagi dipelihara) | Melalui Next.js/Gatsby | Bergantung pada wrapper |
| Vue (bare) | CSR | Manual (@unhead/vue; vue-meta tidak lagi dipelihara) | Melalui Nuxt | Bergantung pada wrapper |
Remix v2 dan React Router v7 telah bergabung—model rendering server dan pemuatan data Remix kini hadir sebagai “framework mode,” milik React Router, dan itulah jalur peningkatan yang stabil untuk aplikasi Remix v2. Remix 3 adalah penulisan ulang terpisah, eksperimental, dan React-less (beta), bukan penerus Remix v2—jangan menganggapnya sebagai opsi SSR siap pakai untuk codebase React.
Waktu metadata, tautan yang dapat dirayapi, dan kedaluwarsa cache ISR
Waktu injeksi metadata — Metadata (<title>, <meta>) harus ada dalam
respons server, bukan ditambahkan JavaScript setelah halaman dimuat. API Metadata Next.js,
useSeoMeta Nuxt, dan komponen <head> Astro menanganinya dengan benar.
document.title = '...' atau React Helmet dalam mode CSR tidak melakukannya—kode itu berjalan setelah
HTML awal disajikan.
Penemuan tautan — Googlebot menemukan tautan dengan mem-parsing HTML. Tautan yang ditambahkan melalui
JavaScript (onClick, routing dinamis tanpa tag <a>) mungkin tidak ditemukan.
Gunakan elemen <a href> nyata untuk navigasi penting.
Hidrasi dan konten duplikat — Jika SSR dan CSR merender konten berbeda (ketidakcocokan hidrasi), konten yang diindeks bisa tidak cocok dengan yang dilihat pengguna. Uji error hidrasi di konsol browser.
Soft 404 — Router sisi klien dapat diam-diam merender UI “page not found” sambil mengembalikan status HTTP 200. Mesin pencari mengindeksnya sebagai halaman nyata. Pastikan halaman 404 Anda mengembalikan status 404 yang benar, dan redirect sisi server mengembalikan 301.
Invalidasi cache ISR — Dalam konfigurasi ISR Next.js dan Nuxt, halaman lama dapat
disajikan kepada crawler selama jendela revalidasi. Tetapkan interval berbasis waktu revalidate,
dan untuk konten yang berubah mengikuti jadwal yang tidak Anda kendalikan (misalnya saat CMS disimpan),
pasangkan dengan revalidasi sesuai permintaan yang dipicu route handler berbasis webhook—lihat
panduan ISR Next.js
untuk API lengkap.
// app/blog/[id]/page.tsx — time-based revalidation
export const revalidate = 3600 // re-check this page at most once an hour
// app/api/revalidate/route.ts — on-demand revalidation, called by a CMS webhook
import { revalidatePath } from 'next/cache'
import { NextRequest, NextResponse } from 'next/server'
export async function POST(request: NextRequest) {
const { path, secret } = await request.json()
if (secret !== process.env.REVALIDATE_SECRET) {
return NextResponse.json({ message: 'Invalid secret' }, { status: 401 })
}
revalidatePath(path) // e.g. '/blog/1' — next request regenerates fresh HTML
return NextResponse.json({ revalidated: true })
}
SEO framework JavaScript terutama ditentukan oleh mode rendering. SSG (halaman yang dibangun sebagai HTML statis saat deploy) dan SSR (halaman yang dirender di server untuk setiap permintaan) sama-sama aman untuk pengindeksan mesin pencari. CSR (halaman yang seluruhnya dirender di browser melalui JavaScript) lebih berisiko—Google dapat menjalankan JavaScript, tetapi kegagalan dan penundaan umum terjadi, dan penemuan konten lebih lambat.
Next.js (meta-framework React): Dukungan SEO bawaan paling lengkap. API Metadata App Router, SSG/SSR/ISR, optimasi gambar, app/sitemap.ts bawaan (paket next-sitemap kini hanya diperlukan untuk ekstensi yang tidak dicakupnya), serta prefetching pada tingkat tautan. Ini adalah standar industri untuk aplikasi React yang peka terhadap SEO.
Nuxt (meta-framework Vue): Kemampuannya setara untuk Vue. Composable bawaan useSeoMeta() dan useHead(), SSR/SSG/ISR, serta modul SEO Nuxt. Sangat baik untuk situs berbasis Vue.
Astro: Arsitektur island mengirimkan nol JavaScript secara default. Halaman berupa HTML statis; interaktivitas ditambahkan secara eksplisit melalui “islands.” Keamanan SEO-nya paling baik di antara framework JS secara default. Sangat cocok untuk situs yang kaya konten.
SvelteKit: SSR secara default, dengan dukungan metadata yang sangat baik melalui svelte:head. SEO solid dengan konfigurasi minimal.
Angular: CSR secara default, memerlukan @angular/ssr (sebelumnya Angular Universal) untuk pengindeksan yang andal. Secara historis, ini yang paling bermasalah untuk SEO di antara framework utama.
React (bare): Secara default menggunakan CSR. Untuk SSR/SSG, diperlukan Next.js, React Router (mode framework), atau Gatsby. Catatan: model perenderan sisi server Remix v2 telah bergabung ke React Router v7/v8 sebagai “framework mode” (mode framework)—itulah jalur peningkatan yang dipertahankan, bukan Remix 3 beta yang terpisah, eksperimental, dan tanpa React. Jangan gunakan CRA/Vite-React tanpa kerangka kerja untuk konten yang harus mendapatkan peringkat.
Vue (bare): Masalahnya sama. Gunakan Nuxt untuk aplikasi Vue yang SEO-nya kritis.
Svelte (bare): CSR secara default. Gunakan SvelteKit untuk SSR/SSG.
Checklist SEO framework JavaScript
Universal (berlaku untuk semua framework)
- Verifikasi mode rendering:
curl -s URL | grep "<title>"— judul harus muncul dalam HTML mentah - Periksa bahwa
<title>dan<meta name="description">ada dalam respons server - Gunakan tag
<a href>nyata untuk semua tautan yang dapat dinavigasi (bukan hanya handler klik) - Pastikan halaman 404 mengembalikan HTTP 404, bukan 200
- Pastikan redirect menggunakan 301/302 sisi server, bukan
window.location.href - Buat dan kirim sitemap XML
- Tambahkan
robots.txtke direktori publik Anda
Next.js
- Gunakan API Metadata App Router (
metadataexport ataugenerateMetadata()) - Pilih SSG (
generateStaticParams) atau SSR (dynamic = 'force-dynamic') per rute - Tambahkan file
app/sitemap.ts(dukungan sitemap bawaan App Router) untuk sebagian besar situs; gunakan paketnext-sitemaphanya jika Anda memerlukan sitemap lintas domain atau ekstensi lain yang tidak dimodelkan oleh tipeMetadataRoute.Sitemapbawaan - Gunakan
next/imageuntuk semua gambar (WebP otomatis, pengaturan ukuran, pemuatan lambat) - Verifikasi nilai ISR
revalidate— tetapkan jendela pendek untuk halaman yang sering diperbarui
Nuxt
- Gunakan
useSeoMeta()atauuseHead()di setiap komponen halaman - Instal modul
@nuxtjs/sitemapNuxt. - Gunakan SSR bawaan Nuxt (atau
nuxt generateuntuk SSG) - Konfigurasikan
robots.txtmelalui@nuxtjs/robots
Astro
- Teruskan prop SEO ke komponen
<BaseHead>di setiap halaman - Gunakan integrasi
@astrojs/sitemapmilik Astro - Pertahankan island JavaScript seminimal mungkin—hindari mengubah bagian statis menjadi island
Angular
- Aktifkan SSR melalui
ng add @angular/ssr - Gunakan service
MetadanTitleuntuk metadata - Tambahkan transfer state untuk mencegah pengambilan API dua kali saat hidrasi
Penelusuran mendalam tentang framework
Bacaan terkait
Log perubahan
Diperbarui 9 Sep 2026.
Ringkasan editorial dan detail perubahan yang tercatat.Ringkasan
Memperbaiki terjemahan bahasa Indonesia untuk framework JavaScript, termasuk uraian mode rendering, metadata, dan checklist SEO, sambil mempertahankan istilah teknis dari sumber.
Detail perubahan
-
Menerjemahkan ulang 39 bagian artikel yang masih bercampur bahasa atau memuat placeholder, termasuk uraian React (bare).
-
Mempertahankan kode, URL, nama paket, nama framework, versi, dan gerbang tinjauan sambil menunggu pemeriksaan penutur asli.
Perbandingan lengkap tidak tersedia — tidak ada cuplikan sebelumnya yang diarsipkan untuk revisi ini.
Diperbarui 19 Jul 2026.
Ringkasan editorial dan detail perubahan yang tercatat.Ringkasan
Memperbaiki perbedaan versi: penggabungan Remix v2 dengan React Router v7-v8, penghapusan Astro.glob(), dan tiga pustaka metadata yang tidak dipelihara.
Detail perubahan
-
Mengganti baris Remix pada lensa lanjutan dengan React Router (framework mode) dan menambahkan catatan bahwa model SSR Remix v2 bergabung ke React Router v7/v8, sedangkan Remix 3 adalah beta terpisah, eksperimental, dan tanpa React—bukan peningkatan langsung dari Remix v2.
-
Menghapus rujukan Astro.glob() dari kolom API metadata (dihapus pada Astro v6) dan menggantinya dengan pendekatan <head>/Content Collections saat ini.
-
Menandai vue-meta dan react-helmet sebagai pustaka yang tidak dipelihara sejak 2020 serta menunjuk penggantinya yang dipelihara, @unhead/vue dan react-helmet-async.
-
Memperbarui panduan sitemap Next.js agar lebih dahulu merekomendasikan app/sitemap.ts bawaan, dan memakai next-sitemap hanya untuk ekstensi yang tidak dicakupnya (next-sitemap sendiri belum menerbitkan rilis sejak 2023).
-
Menyeragamkan rujukan Angular Universal dengan nama paketnya saat ini, @angular/ssr.
-
Menambahkan catatan pengujian perbandingan lintas-framework yang setara: rute, konten, target deployment, dan tooling harus sama.
Perbandingan lengkap tidak tersedia — tidak ada cuplikan sebelumnya yang diarsipkan untuk revisi ini.