Kembali ke Blog

SEO Checklist buat Static Site: Sitemap, Hreflang, dan Schema

#seo#astro#static-site
SEO Checklist buat Static Site: Sitemap, Hreflang, dan Schema

Setelah pindah ke Astro, saya sempat lupa satu hal penting: static site nggak otomatis SEO-friendly cuma karena cepat. Butuh beberapa minggu setelah launch buat saya beneran duduk dan beresin bagian teknis ini satu-satu — sebagian karena saya emang nunda, sebagian lagi karena baru ketauan masalahnya pas cek Search Console dan nemu beberapa halaman versi Inggris nggak keindeks sama sekali.

Sitemap yang sebenernya jarang saya pikirin lagi

@astrojs/sitemap generate sitemap-index.xml otomatis pas build, berdasarkan site yang didefinisikan di astro.config.mjs. Submit sekali ke Google Search Console, dan setelah itu saya nyaris nggak perlu mikirin ini lagi — tiap kali ada blog post baru, sitemap-nya otomatis ke-update pas deploy jalan. Bagian paling gampang di checklist ini, jujur aja.

Hreflang, yang justru bikin saya paling lama muter-muter

Karena situs ini ada versi Indonesia (/) dan Inggris (/en/...), saya perlu ngasih tahu Google kalau dua halaman itu versi bahasa dari konten yang sama, bukan konten duplikat. Caranya lewat tag <link rel="alternate" hreflang="..."> di <head> tiap halaman, nunjuk ke URL versi lainnya, plus satu tag x-default yang nunjuk ke versi default (Indonesia, karena prefixDefaultLocale: false).

Ini bagian yang paling gampang salah, dan saya sempet salah. Beberapa minggu setelah launch saya cek Search Console dan nemu beberapa halaman /en/blog/... di-flag sebagai “duplicate, Google chose different canonical” — ternyata tag hreflang-nya nunjuk ke slug yang salah di beberapa post lama, sisa dari sebelum saya beresin konsistensi slug ID/EN. Butuh sekitar setengah hari nelusurin satu-satu buat mastiin tiap pasangan slug beneran cocok persis, baru submit ulang lewat Search Console dan nunggu beberapa hari sampai statusnya berubah.

Schema markup, yang manfaatnya nggak langsung kelihatan

Saya tambahin JSON-LD Person schema di layout utama — nama, jobTitle, alamat, keahlian. Ini bukan buat ranking langsung, dan saya nggak punya bukti konkret ini ngaruh ke traffic. Tapi saya tetep pasang karena costnya nyaris nol dan ini bantu Google (dan makin sering, AI search kayak ChatGPT atau Perplexity) ngerti siapa saya sebagai entity — berguna kalau suatu saat muncul knowledge panel atau rich result, dan nggak ngerugiin apa-apa kalau nggak.

robots.txt, yang saya nyaris lupa

Simpel, tapi sering kelupaan. Isinya cuma allow semua crawler dan nunjuk ke lokasi sitemap. Ini titik pertama crawler baca sebelum masuk ke situs, dan saya jujur aja lupa nambahin ini pas launch pertama — baru sadar dua minggu kemudian pas cek log server dan nyadar beberapa crawler bounce tanpa nge-fetch apa-apa lagi setelahnya.

Yang saya pelajari dari proses ini: SEO teknis buat static site itu 80% soal metadata yang bener dan konsisten, bukan soal trik atau growth hack apapun. Astro udah bantu banyak dari sisi performance — Core Web Vitals situs ini biasanya hijau semua di PageSpeed Insights, karena minim JavaScript dari sononya. Jadi PR terbesar justru di hal-hal administratif kayak di atas, yang membosankan tapi kalau kelewat satu aja, efeknya baru kerasa berminggu-minggu kemudian pas cek Search Console dan nemu halaman yang nggak keindeks kayak yang saya alamin.