Blog statis tanpa database bikin internal linking sering diabaikan. Tapi tanpa link yang terstruktur, Googlebot bingung memahami hubungan antar-halaman. Ini cara saya struktur internal link di blog HTML statis tanpa backend, tapi tetap SEO-safe dan mudah dimaintain.
Kenapa Blog Statis Sering Gagal di SEO Karena Internal Link
Sebagian developer blog statis fokus ke performance dan Lighthouse score, tapi lupa bahwa internal link adalah sinyal navigasi untuk Googlebot. Tanpa struktur link yang jelas, crawlerbot datang ke homepage, baca satu artikel, lalu gak punya petunjuk kemana harus lanjut.
Masalah ini makin parah di blog yang cuma punya index.html plus beberapa halaman tanpa sitemap yang lengkap. Crawl budget terbuang karena bot harus menemukan halaman baru secara acak.
Berbeda dengan CMS dinamis yang punya related posts widget otomatis, blog statis butuh arsitektur link yang disengaja sejak awal.
Breadcrumb Schema: Bikin Google Pahami Struktur Lo
Breadcrumb di blog saya ada di setiap artikel, dan ini bukan cuma soal UX — ini structured data yang diakui Google secara resmi.
Schema breadcrumb yang benar:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://wasian.my.id/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Web & Tech",
"item": "https://wasian.my.id/blog#web-tech"
},
{
"@type": "ListItem",
"position": 3,
"name": "Judul Artikel"
}
]
}
Schema ini bikin Google menampilkan breadcrumb di hasil pencarian — yang secara visual menambah trust signal dan meningkatkan CTR dari SERP. Di blog ini breadcrumb muncul di atas judul artikel.
Related Posts Tanpa Database — Pakai JSON Array
Saya gak pakai database untuk related posts. Cukup satu file articles.json yang sudah ada untuk metadata blog, ditambah satu fungsi JavaScript yang dijalankan saat build time.
Logikanya simpel:
- Ambil semua artikel dari JSON
- Filter berdasarkan category yang sama, exclude artikel saat ini
- Sortir berdasarkan
datedescending - Ambil 3 artikel terbaru
Hasilnya: related posts yang selalu up-to-date tanpa maintenance manual, dan setiap artikel baru otomatis punya related posts tanpa edit apapun.
Untuk blog Astro yang punya content collections, approach-nya lebih clean lagi — bisa pakai getCollection() dengan filter category langsung di file .astro.
Sitemap yang Bener: Pastikan Robot Masuk Semua Halaman
Masalah paling sering saya temui di blog statis: sitemap.xml yang tidak di-update otomatis saat artikel baru ditambahkan. Robot crawler sampai ke sitemap, tapi sitemap-nya stale.
Untuk blog ini saya pakai dua approach:
- Cloudflare Pages: build trigger dari Git push, sitemap di-generate ulang setiap deploy
- robots.txt: pastikan point ke sitemap yang bener
User-agent: *
Allow: /
Sitemap: https://wasian.my.id/sitemap.xml
Dan ya — blog ini belum ada di sitemap utama situs. Sudah jadi task di backlog untuk diperbaiki.
Checklist Audit Internal Link Mingguan
Struktur link butuh maintenance berkala. Ini checklist yang saya jalanin setiap minggu:
- Cek broken links: Gunakan
curl -Iatau tool seperti Dr. Link Check untuk validasi cepat - Verify breadcrumb: Pastikan schema JSON-LD di setiap artikel valid
- Test sitemap: Submit ke Google Search Console, cek
Discovered Pages - Anchor text: Pastikan anchor text descriptive, bukan "klik di sini"
- Cross-link article baru: Setiap artikel harus minimal link ke 1 artikel lain di blog
5 menit per minggu.不值 tapi impact-nya ke crawl efficiency signifikan.
TL;DR
Blog statis tanpa database bukan excuse untuk internal linking yang berantakan. Breadcrumb dengan schema JSON-LD, related posts dari JSON array, dan sitemap yang auto-regenerate adalah fondasi minimum. Ditambah audit mingguan 5 menit, struktur ini scale sampai 100+ artikel tanpa debt teknis.
Referensi
- Astro, Static-First, dan Kenapa Arsitektur Ini Hasilkan SEO Terkuat — konteks arsitektur statis yang jadi landasan blog ini
- Portfolio — proyek web development yang jadi case study
Pertanyaan Umum
Blog statis kalah bukan karena teknologinya, tapi karena implementasi. Kebanyakan blog statis tidak mengimplementasikan breadcrumb schema, related posts, atau sitemap yang terstruktur. Dari sisi server response time dan Core Web Vitals, blog statis sebenarnya menang. Masalahnya di arsitektur link internal yang tidak disengaja.
Ya. Breadcrumb schema secara visual muncul di hasil pencarian Google (sebagai breadcrumb navigation di SERP), yang meningkatkan click-through rate dan memberikan context tambahan ke crawler. Di samping itu, breadcrumb mendefinisikan hierarki halaman yang membantu Google memahami struktur topical site Anda.
Dua opsi: (1) Build-time generation — proses JSON array dengan script saat build untuk generate related posts sebagai HTML statis. (2) Static association — tentukan related posts manual di frontmatter/YAML setiap artikel. Untuk blog di bawah 50 artikel, opsi manual lebih可控 dan tidak butuh JavaScript client-side.
Idealnya setiap kali artikel baru publish. Di blog dengan CI/CD pipeline (seperti Cloudflare Pages), sitemap di-regenerate otomatis saat build trigger dari git push. Jika push article baru ke repo, sitemap baru otomatis ter-generate — tidak ada langkah manual.
Butuh Bantuan Implementasi?
Saya membantu founder dan tim membangun sistem operasi yang bisa jalan tanpa pengawasan konstan.
Hubungi Saya