Bug canonical paginasi terjadi ketika halaman paginasi (?page=2 dan seterusnya) menyatakan canonical ke halaman pertama. Di blog ini, 43 dari 52 artikel hanya terdaftar di halaman yang canonical-nya ke /blog, sehingga jalur link internalnya hampir tak terbaca Google. Perbaikannya: canonical mandiri per halaman dan arsip semua artikel.
Ringkasan cepat:
- Blog ini menampilkan 9 artikel per halaman sejak versi awal (17 Juli 2026), dan semua halaman paginasi memakai canonical
/blog. - Saat bug ditemukan (24 September 2026) ada 52 artikel, jadi 43 di antaranya hanya terdaftar di halaman 2 sampai 6.
- Laporan Page indexing Search Console pada hari yang sama mencatat 9 URL artikel berstatus "Discovered - currently not indexed".
- Perbaikan: canonical mandiri untuk
?page=N, bagian arsip yang me-link semua artikel, dan redirect untuk URL kategori yang 404. - Hasilnya belum terukur, dan penyebab lain seperti umur domain tetap mungkin berperan.
Apa yang Terjadi pada Halaman Paginasi Blog Ini?
Halaman /blog memakai satu metadata statis: canonical /blog untuk semua varian, baik filter ?kategori= maupun paginasi ?page=. Niat awalnya menghindari konten duplikat. Efek sampingnya, halaman 2 sampai 6 memberi tahu Google bahwa mereka hanyalah salinan halaman 1.
Dokumentasi Pagination Best Practices dari Google Search Central menyarankan agar halaman pertama tidak dipakai sebagai canonical untuk seluruh urutan halaman. Konfigurasi blog ini melakukan persis hal yang disarankan untuk dihindari.
Berapa Artikel yang Terdampak?
Angkanya bisa dihitung langsung dari kode dan git. Konstanta ARTICLES_PER_PAGE bernilai 9 sejak commit pertama blog, dan pada 24 September 2026 ada 52 artikel:
| Item | Jumlah |
|---|---|
Artikel di halaman 1 (canonical /blog) | 9 |
| Artikel yang hanya ada di halaman 2 sampai 6 | 43 |
| Total halaman paginasi | 6 |
Artikel tersebut tetap ada di sitemap dan sebagian ditautkan dari artikel lain. Tetapi satu-satunya daftar lengkap artikel di situs ada di halaman-halaman yang menyatakan diri duplikat.
Apa yang Terlihat di Google Search Console?
Laporan Page indexing pada 24 September 2026 menampilkan beberapa kelompok status. Tidak semuanya masalah, jadi berikut cara membacanya:
| Status | Isi | Perlu diperbaiki? |
|---|---|---|
| Discovered - currently not indexed | 9 URL artikel | Ya, ini gejala utama |
| Crawled - currently not indexed | Gambar OG, font, llms.txt, feed.xml | Tidak, bukan halaman biasa |
| Duplicate without user-selected canonical | 2 URL ?kategori= | Sebagian, filter perlu ditangani |
| Page with redirect | Versi http dan www | Tidak, perilaku normal |
| Not found (404) | 5 URL, termasuk /blog/kategori | Sebagian, satu punya penyebab jelas |
Yang menarik, tidak ada satu pun artikel di kelompok "Crawled - currently not indexed". Artinya, dari data ini Google tidak terlihat menolak isi artikel. Masalahnya ada di penemuan dan penjadwalan crawl, yang sejalan dengan jalur link internal yang lemah.
Bagaimana Memperbaikinya?
Ada tiga perubahan yang diterapkan pada 24 September 2026:
- Canonical mandiri untuk paginasi. Halaman
?page=Nsekarang menyatakan canonical ke URL-nya sendiri, dengangenerateMetadatadi Next.js yang membacasearchParams. Filter?kategori=tetap ber-canonical ke/blog. - Arsip semua artikel. Halaman 1
/blogkini memuat bagian yang me-link setiap artikel, sehingga tiap artikel bisa dicapai dalam dua klik dari beranda lewat halaman yang ter-index. - Redirect kategori.
/blog/kategoridan/blog/kategori/:namadialihkan permanen (308) ke/blogdan/blog?kategori=:nama.
Inti perubahan canonical berbentuk seperti ini:
export async function generateMetadata({ searchParams }: BlogPageProps): Promise<Metadata> {
const { page, kategori } = await searchParams;
if (isValidCategory(kategori)) return baseMetadata;
const currentPage = clampPage(page);
if (currentPage < 2) return baseMetadata;
return {
...baseMetadata,
alternates: { ...baseMetadata.alternates, canonical: `/blog?page=${currentPage}` },
};
}Bagaimana Memverifikasi Perbaikannya?
Verifikasi dilakukan langsung pada versi production. Canonical /blog?page=2 dan /blog?page=6 kini mengembalikan URL masing-masing. Untuk arsip, daftar slug dari sitemap dibandingkan dengan slug yang ter-link di /blog, dan hasilnya sama persis: 52 dari 52.
Pemeriksaan serupa bisa dilakukan dengan perintah sederhana:
curl -s https://contoh.com/blog | grep -oE 'href="/blog/[^"?#]+"' | sort -u | wc -lBandingkan angkanya dengan jumlah artikel di sitemap. Selisihnya adalah artikel yang tidak punya jalur link dari halaman indeks.
Apa yang Belum Bisa Dipastikan?
Hasil perbaikan ini belum terukur. Laporan Page indexing baru bisa dibandingkan setelah beberapa minggu, dan artikel ini akan diperbarui bila ada data baru. Ada juga penjelasan lain yang tidak bisa disingkirkan: domain ini baru sekitar 10 minggu dan hampir belum punya backlink, dan situs baru memang cenderung dijadwalkan crawl lebih lambat. Karena itu, canonical yang keliru sebaiknya dilihat sebagai satu faktor yang layak dibereskan. Statusnya sebagai penyebab tunggal belum terbukti.
Pelajaran Apa yang Bisa Diambil?
- Beri setiap halaman paginasi canonical ke dirinya sendiri. Jangan arahkan semuanya ke halaman pertama.
- Pastikan setiap artikel dapat dicapai dalam dua klik lewat halaman yang ter-index. Sitemap saja tidak cukup, dan prinsip ini dibahas di tips internal linking yang benar untuk blog.
- Baca status Search Console per kelompok. Gambar, font, dan
llms.txtdi "Crawled - currently not indexed" adalah hal normal. Panduan dasarnya ada di cara pakai Google Search Console untuk pemula. - Cek sitemap dan struktur link secara berkala, misalnya lewat sitemap dan robots.txt dinamis di Next.js.
Ringkasan
- Canonical
/blogpada semua halaman paginasi membuat 43 dari 52 artikel hanya terdaftar di halaman yang dianggap duplikat. - Search Console mencatat 9 URL artikel "Discovered - currently not indexed", dan tidak ada artikel yang "Crawled - currently not indexed".
- Perbaikannya berupa canonical mandiri per halaman, arsip semua artikel, dan redirect kategori, semuanya diterapkan 24 September 2026.
- Efek pada indexing belum terukur dan faktor umur domain masih berperan, jadi evaluasi perlu menunggu data beberapa minggu.
- Butuh pemeriksaan indexing serupa untuk situsmu? Lihat layanan SEO teknis yang tersedia.
