SEO (Search Engine Optimization)

Cara Mengatur Filter Web Agar Bebas Duplikat URL

–

filter

Fitur filter memudahkan pengguna menemukan produk, artikel, properti, atau data berdasarkan kriteria tertentu. Namun, di balik kemudahan tersebut, sistem filter dapat menghasilkan banyak alamat URL yang menampilkan konten sama atau sangat mirip.

Sebagai contoh, halaman kategori berikut dapat diakses melalui sejumlah URL:

https://contohtoko.com/sepatu
https://contohtoko.com/sepatu?sort=termurah
https://contohtoko.com/sepatu?warna=hitam
https://contohtoko.com/sepatu?warna=hitam&ukuran=42
https://contohtoko.com/sepatu?ukuran=42&warna=hitam

Bagi pengguna, variasi tersebut merupakan bagian normal dari fitur pencarian produk. Bagi mesin pencari, setiap variasi dapat dianggap sebagai URL berbeda. Jika tidak dikendalikan, kombinasi filter, pengurutan, pagination, tracking, dan session ID dapat menciptakan ribuan hingga jutaan URL.

Google menyebut navigasi berfilter atau faceted navigation sebagai salah satu penyebab umum overcrawling. Googlebot dapat menghabiskan waktu dan sumber daya server untuk merayapi URL yang kurang berguna sehingga penemuan halaman penting menjadi lebih lambat. Masalah utamanya bukan semata-mata penalti konten duplikat, melainkan pemborosan sumber daya perayapan, pemecahan sinyal SEO, dan ketidakjelasan URL utama.

Memahami Duplikat URL pada Sistem Filter

Duplikat URL terjadi ketika konten yang sama atau sangat mirip dapat dibuka melalui beberapa alamat. Menurut dokumentasi Google, kondisi ini dapat muncul akibat perbedaan protokol, nama domain, fungsi pengurutan, filter kategori, dan variasi teknis lainnya.

Konten duplikat internal pada dasarnya bukan pelanggaran kebijakan spam. Walaupun demikian, terlalu banyak variasi URL dapat menyulitkan mesin pencari menentukan URL yang paling mewakili halaman tersebut. Proses memilih satu URL utama dari beberapa halaman duplikat disebut kanonikalisasi.

Google biasanya mengelompokkan halaman-halaman yang dianggap sama, kemudian memilih satu URL sebagai URL kanonis. Pemilik situs dapat memberikan sinyal mengenai URL yang diinginkan melalui pengalihan, elemen rel="canonical", tautan internal, dan sitemap. Namun, canonical tetap merupakan sinyal—Google dapat memilih URL lain apabila sinyal yang diberikan tidak konsisten. Penjelasan resminya tersedia dalam dokumentasi kanonikalisasi Google Search.

Sumber Duplikat URL yang Paling Sering Ditemukan

Beberapa penyebab yang perlu diperiksa antara lain:

  • Filter atribut, seperti warna, merek, ukuran, lokasi, dan rentang harga.
  • Parameter pengurutan, seperti ?sort=price_asc atau ?order=newest.
  • Perubahan tampilan, seperti ?view=grid dan ?view=list.
  • Parameter pelacakan, seperti utm_source, utm_campaign, atau ID afiliasi.
  • Session ID yang dimasukkan ke dalam URL.
  • Urutan parameter yang tidak konsisten.
  • Perbedaan huruf besar dan kecil pada server yang menganggap keduanya sama.
  • Versi HTTP dan HTTPS yang sama-sama dapat diakses.
  • Variasi domain dengan www dan tanpa www.
  • Slash yang tidak konsisten, misalnya /sepatu dan /sepatu/.
  • Filter kosong, filter ganda, atau kombinasi filter yang tidak menghasilkan produk.

Dua URL berikut, misalnya, secara teknis berbeda walaupun memiliki arti yang sama:

/sepatu?warna=hitam&ukuran=42
/sepatu?ukuran=42&warna=hitam

Karena itu, sistem harus mempunyai aturan normalisasi parameter dan tidak hanya mengandalkan mesin pencari untuk memahami hubungan antarkeduanya.

Menentukan URL Filter yang Layak Diindeks

Kesalahan paling umum dalam pengelolaan filter adalah menerapkan aturan yang sama kepada seluruh URL. Padahal, sebagian hasil filter mungkin mempunyai nilai pencarian, sedangkan sebagian lainnya hanya diperlukan untuk membantu pengguna di dalam situs.

Filter dengan Nilai Pencarian

Sebuah halaman filter dapat dipertahankan sebagai halaman yang boleh diindeks jika memenuhi beberapa kriteria berikut:

  • Terdapat permintaan pencarian yang jelas.
  • Kombinasinya menghasilkan kelompok produk yang cukup banyak.
  • Halaman memiliki judul, deskripsi, heading, dan konten yang relevan.
  • Produk yang ditampilkan relatif stabil.
  • Halaman menawarkan manfaat yang berbeda dari kategori induknya.
  • URL-nya singkat, konsisten, dan mudah dipahami.

Contohnya, halaman “sepatu lari pria” atau “laptop gaming ASUS” mungkin mempunyai search intent tersendiri. Apabila halaman tersebut memang ditargetkan untuk pencarian organik, gunakan URL yang bersih dan berikan self-referencing canonical:

<link
  rel="canonical"
  href="https://contohtoko.com/sepatu-lari-pria"
>

Halaman seperti ini juga dapat dimasukkan ke dalam sitemap XML dan ditautkan melalui navigasi internal.

Filter Tanpa Nilai Pencarian

Filter yang hanya mengubah urutan, tampilan, atau menghasilkan kombinasi sangat spesifik biasanya tidak perlu masuk ke indeks. Contohnya:

/sepatu?sort=termurah
/sepatu?view=grid
/sepatu?harga=317000-429000
/sepatu?warna=hitam&ukuran=42&bahan=kulit&sort=terbaru

Untuk URL semacam ini, pengelola situs perlu memilih apakah akan:

  • Mengonsolidasikan sinyalnya melalui canonical.
  • Mencegahnya masuk ke indeks dengan noindex.
  • Mengurangi perayapannya melalui robots.txt.
  • Menghindari pembuatan URL yang dapat dirayapi sejak awal.

Keputusan tersebut harus mempertimbangkan fungsi filter, kebutuhan pengguna, ukuran situs, dan apakah URL itu berpotensi menghasilkan trafik organik.

Menggunakan Canonical Tag secara Tepat

Elemen rel="canonical" memberi tahu mesin pencari mengenai URL yang dianggap paling mewakili beberapa halaman sama atau sangat mirip. Elemen ini ditempatkan di dalam bagian <head> halaman.

Contohnya, halaman pengurutan berikut:

https://contohtoko.com/sepatu?sort=termurah

dapat mengarah ke kategori utama:

<link
  rel="canonical"
  href="https://contohtoko.com/sepatu"
>

Canonical sesuai untuk URL yang masih perlu dibuka pengguna, tetapi isinya tidak cukup berbeda untuk menjadi halaman pencarian mandiri. Parameter pengurutan dan perubahan tampilan biasanya termasuk dalam kategori ini.

Aturan Penting dalam Penerapan Canonical

Agar sinyalnya tidak membingungkan, pastikan:

  1. Alamat canonical menggunakan URL absolut.
  2. Target canonical memberikan respons HTTP 200 OK.
  3. Target tidak diblokir oleh robots.txt.
  4. Target bukan halaman noindex.
  5. Target tidak mengarah ke halaman lain melalui redirect.
  6. Tautan internal mengarah ke URL kanonis.
  7. Sitemap XML hanya memuat URL kanonis.
  8. Setiap halaman utama menggunakan self-referencing canonical.
  9. Tidak ada dua metode yang memberikan target canonical berbeda.

Canonical tidak boleh digunakan secara sembarangan pada halaman yang sebenarnya mempunyai isi dan tujuan pencarian berbeda. Sebagai contoh, halaman “sepatu Nike” tidak semestinya diarahkan ke kategori “sepatu” jika halaman merek tersebut memiliki produk, konten, dan permintaan pencarian yang unik.

Menurut panduan canonical Google, redirect dan rel="canonical" merupakan sinyal kuat, sedangkan keikutsertaan URL dalam sitemap merupakan sinyal yang lebih lemah.

Menggunakan Redirect 301 untuk Variasi yang Tidak Diperlukan

Redirect permanen cocok digunakan apabila URL lama atau URL alternatif memang tidak perlu dipertahankan. Metode ini tepat untuk:

  • Mengalihkan HTTP ke HTTPS.
  • Menyatukan versi www dan non-www.
  • Menyeragamkan huruf besar dan kecil jika server memperlakukannya sama.
  • Mengalihkan struktur URL lama ke struktur baru.
  • Menghapus parameter yang tidak lagi digunakan.
  • Menormalisasi urutan parameter ke dalam satu format baku.

Contohnya:

http://contohtoko.com/sepatu
→ https://contohtoko.com/sepatu

Redirect 301 tidak cocok diterapkan kepada semua halaman filter yang masih diperlukan pengguna. Apabila pengguna memilih warna hitam lalu langsung dialihkan ke halaman tanpa filter, fungsi filter akan rusak.

Contoh Normalisasi Parameter

Sistem dapat menetapkan urutan baku, misalnya merek, warna, lalu ukuran:

/sepatu?ukuran=42&warna=hitam&merek=nova

dialihkan secara permanen menjadi:

/sepatu?merek=nova&warna=hitam&ukuran=42

Normalisasi sebaiknya dilakukan di sisi aplikasi atau server. Sistem juga harus menghapus parameter kosong, parameter berulang, dan nilai yang tidak valid sebelum membentuk URL.

Mengendalikan Indeksasi dengan Noindex

Jika URL filter tetap harus dapat dirayapi tetapi tidak layak muncul dalam hasil pencarian, gunakan:

<meta name="robots" content="noindex">

Google harus merayapi halaman terlebih dahulu agar dapat membaca aturan tersebut. Oleh karena itu, URL yang memakai noindex jangan langsung diblokir melalui robots.txt. Jika aksesnya diblokir, Googlebot tidak dapat melihat tag noindex, dan alamat URL tersebut masih mungkin muncul sebagai hasil tanpa cuplikan apabila ditemukan melalui tautan lain.

Google juga tidak mendukung penulisan aturan noindex di dalam robots.txt. Aturan harus diberikan melalui tag meta HTML atau header HTTP X-Robots-Tag. Rujukan teknisnya dapat dibaca dalam panduan memblokir indeksasi dengan noindex.

Kapan Noindex Layak Digunakan?

noindex dapat dipertimbangkan untuk:

  • Hasil filter yang berguna bagi pengguna tetapi tidak mempunyai target kata kunci.
  • Urutan alternatif dari daftar yang sama.
  • Halaman pencarian internal.
  • Kombinasi filter tipis yang tetap harus dapat digunakan pengunjung.
  • Halaman sementara yang belum layak muncul di hasil pencarian.

Jangan menganggap noindex sebagai alat konsolidasi sinyal. Apabila tujuannya memilih satu halaman utama dari beberapa halaman yang benar-benar duplikat, Google lebih menyarankan rel="canonical".

Mengendalikan Perayapan dengan Robots.txt

robots.txt digunakan untuk mengatur akses crawler dan menghemat sumber daya perayapan. Contoh aturan untuk pola filter tertentu:

User-agent: Googlebot
Disallow: /*?*sort=
Disallow: /*?*view=
Disallow: /*?*sessionid=

Pola tersebut harus diuji dengan hati-hati karena kesalahan kecil dapat memblokir halaman penting. Jangan menyalin aturan tanpa menyesuaikannya dengan struktur URL situs.

Google secara khusus menyarankan pembatasan perayapan apabila URL navigasi berfilter tidak perlu muncul di Google Search. Namun, robots.txt bukan jaminan bahwa sebuah alamat URL tidak akan muncul di indeks. Fungsinya adalah membatasi perayapan, bukan secara langsung menghapus URL dari hasil pencarian. Penjelasan ini ditegaskan dalam panduan robots.txt Google.

Jangan Menggabungkan Robots.txt dan Noindex secara Langsung

Urutan penerapan perlu direncanakan apabila banyak URL filter sudah telanjur terindeks:

  1. Biarkan URL dapat dirayapi.
  2. Pasang noindex.
  3. Tunggu sampai Google merayapi ulang dan menghapus URL dari indeks.
  4. Verifikasi melalui URL Inspection dan laporan indeksasi.
  5. Jika perayapan selanjutnya memang tidak diperlukan, pertimbangkan pembatasan melalui robots.txt.

Jika robots.txt dipasang sejak awal, Google mungkin tidak sempat membaca aturan noindex.

Mencegah Duplicate Trap dari Arsitektur Website

Solusi terbaik bukan sekadar memperbaiki URL setelah dibuat, tetapi membatasi jumlah URL tidak berguna sejak tingkat desain sistem.

Batasi Kombinasi Filter yang Dapat Dirayapi

Tidak setiap perubahan antarmuka harus menghasilkan tautan <a href>. Filter tanpa nilai SEO dapat dijalankan menggunakan kontrol antarmuka atau JavaScript yang tidak membuat tautan baru yang dapat ditemukan crawler.

Namun, pendekatan ini harus mempertahankan aksesibilitas dan fungsi situs. Halaman produk penting tetap harus dapat ditemukan melalui tautan HTML biasa atau sitemap, bukan hanya melalui interaksi JavaScript.

Google menjelaskan bahwa crawler umumnya menemukan URL melalui atribut href dan tidak berinteraksi dengan tombol layaknya manusia. Karena itu, desain tautan internal sangat menentukan URL filter mana yang masuk ke antrean perayapan.

Gunakan URL Fragment Secara Selektif

Untuk filter yang tidak perlu diindeks, Google menyebut penggunaan fragmen sebagai salah satu cara mencegah terbentuknya ruang URL yang dirayapi:

https://contohtoko.com/sepatu#warna=hitam

Bagian setelah tanda # umumnya tidak digunakan Google Search untuk crawling dan indexing. Pendekatan ini cocok jika filter hanya mengubah keadaan antarmuka dan tidak direncanakan sebagai halaman SEO.

Jangan menggunakannya untuk halaman kategori yang ingin ditemukan melalui pencarian. URL penting tetap perlu memiliki alamat yang dapat dirayapi secara normal.

Kembalikan Status 404 untuk Kombinasi Tidak Valid

Jika kombinasi filter tidak menghasilkan data atau mengandung nilai yang tidak masuk akal, server sebaiknya mengembalikan status HTTP 404, misalnya:

/sepatu?warna=transparan&warna=hitam
/sepatu?ukuran=9999

Jangan selalu mengarahkan kombinasi kosong ke kategori utama. Redirect semacam itu dapat menciptakan soft 404 dan membuat mesin pencari kesulitan membedakan halaman valid dari halaman tidak valid.

Rekomendasi tersebut tercantum dalam panduan Google mengenai pengelolaan URL faceted navigation.

Bersihkan Tautan Internal dan Sitemap

Situs harus konsisten menggunakan satu versi URL pada:

  • Menu navigasi.
  • Breadcrumb.
  • Tautan kategori.
  • Rekomendasi produk.
  • Data terstruktur.
  • Tag hreflang.
  • Sitemap XML.
  • Feed produk.
  • Tag Open Graph jika relevan.

Jangan memasukkan URL tracking, URL pengurutan, atau URL nonkanonis ke sitemap. Sitemap sebaiknya hanya berisi URL yang diinginkan untuk dirayapi dan dipertimbangkan sebagai canonical.

Langkah Implementasi yang Disarankan

1. Inventarisasi Semua Parameter

Buat daftar setiap parameter URL dan catat fungsinya, misalnya:

warna       = mengubah kelompok produk
merek       = mengubah kelompok produk
sort        = hanya mengubah urutan
view        = hanya mengubah tampilan
utm_source  = pelacakan
sessionid   = sesi pengguna

Informasi tersebut menjadi dasar untuk menentukan apakah parameter perlu diindeks, diberi canonical, dihapus, atau dibatasi perayapannya.

2. Kelompokkan Berdasarkan Nilai SEO

Pisahkan URL menjadi tiga kelompok:

  • URL yang layak diindeks.
  • URL yang boleh dirayapi tetapi tidak perlu diindeks.
  • URL yang tidak perlu dirayapi maupun diindeks.

Hindari keputusan otomatis yang hanya didasarkan pada keberadaan tanda ?. Parameter tertentu dapat menghasilkan halaman bernilai, sedangkan URL berbasis folder pun tetap dapat menciptakan duplikasi.

3. Tetapkan Format URL Kanonis

Tentukan standar yang mencakup:

  • HTTPS.
  • www atau non-www.
  • Huruf kecil.
  • Kebijakan trailing slash.
  • Urutan parameter.
  • Penamaan parameter.
  • Penanganan nilai kosong.
  • Penanganan filter ganda.
  • Batas jumlah filter yang dapat dikombinasikan.

Standar tersebut harus diterapkan oleh backend, template HTML, sitemap, dan sistem tautan internal.

4. Terapkan Aturan Sesuai Kategori

Gunakan:

  • Self-referencing canonical untuk halaman filter yang memang ditargetkan.
  • Canonical ke kategori utama untuk variasi yang sangat mirip.
  • noindex untuk halaman berguna bagi pengguna tetapi tidak layak masuk indeks.
  • robots.txt untuk mengurangi crawling pada pola yang tidak diperlukan.
  • Redirect 301 untuk variasi URL yang harus dihilangkan secara permanen.
  • HTTP 404 untuk kombinasi kosong, duplikat, atau tidak valid.

5. Lakukan Pengujian Teknis

Periksa setiap sampel URL untuk memastikan:

  • Status HTTP sudah benar.
  • Target redirect tidak membentuk rantai atau perulangan.
  • Canonical tersedia di HTML hasil render.
  • Canonical menunjuk ke URL yang dapat diakses.
  • Halaman noindex tidak diblokir oleh robots.txt.
  • Sitemap hanya memuat URL kanonis.
  • Tautan internal tidak menghasilkan variasi parameter yang tidak terkendali.
  • Filter penting tetap dapat digunakan oleh pengguna.

6. Pantau Setelah Implementasi

Gunakan Google Search Console untuk memeriksa:

  • URL pilihan Google dan canonical yang dideklarasikan.
  • Perubahan jumlah halaman yang terindeks.
  • URL duplikat yang tidak dipilih sebagai canonical.
  • Statistik crawling.
  • Kesalahan 404.
  • Sitemap dan halaman yang ditemukan.
  • Sampel halaman melalui URL Inspection.

Fitur URL Parameters Tool di Google Search Console sudah dihentikan sejak 2022. Oleh sebab itu, tutorial yang masih menyuruh pengguna mengatur parameter melalui fitur tersebut sudah tidak berlaku. Konfirmasi resminya tersedia di Google Search Central Blog.

Untuk situs berskala besar, analisis log server dapat membantu mengetahui pola URL yang paling sering diakses Googlebot. Prioritaskan pemeriksaan pada parameter yang menghasilkan lonjakan permintaan, rantai redirect, halaman kosong, atau ruang URL hampir tak terbatas. Hindari memakai ambang persentase universal karena pola crawling setiap situs berbeda.

Biaya Penerapan

Canonical, noindex, redirect, robots.txt, sitemap, dan Google Search Console tidak memerlukan biaya lisensi. Jika tim memahami kode aplikasi dan konfigurasi server, implementasi dasarnya dapat dilakukan tanpa membeli perangkat lunak tambahan.

Biaya dapat muncul ketika situs membutuhkan:

  • Jasa developer atau konsultan SEO.
  • Perubahan arsitektur filter.
  • Pengembangan antarmuka JavaScript.
  • Audit situs berukuran besar.
  • Penyimpanan dan analisis log server.
  • Perangkat audit SEO berbayar.

Besarnya biaya tidak dapat ditentukan secara akurat tanpa mengetahui teknologi, jumlah URL, dan kompleksitas situs. Estimasi harga yang tidak disertai ruang lingkup pekerjaan sebaiknya tidak dijadikan patokan tetap.

Memilih Strategi Berdasarkan Fungsi URL

Tujuan pengelolaan filter bukan menghapus semua URL berparameter. Tujuan sebenarnya adalah memastikan setiap fungsi URL mendapatkan perlakuan yang tepat: halaman bernilai tetap dapat ditemukan, sinyal halaman duplikat dikonsolidasikan, dan crawler tidak terjebak dalam kombinasi yang tidak terbatas.

Kondisi URLStrategi utamaDampak yang diharapkan
Filter mempunyai permintaan pencarian dan konten unikIzinkan indeksasi, gunakan self-referencing canonical, tautkan secara internal, dan masukkan ke sitemapMenjadi halaman tujuan pencarian organik
Hanya mengubah urutan atau tampilanCanonical ke URL utama atau gunakan noindex, sesuai kebutuhanMengurangi variasi halaman yang bersaing
Halaman perlu digunakan pengunjung tetapi tidak bernilai untuk pencarianGunakan noindex dan tetap izinkan crawling sampai aturan diprosesURL tidak ditampilkan di hasil pencarian
Kombinasi parameter menciptakan ruang URL sangat besar dan tidak perlu diindeksBatasi pembuatan tautan serta pertimbangkan robots.txt atau fragmen URLMenghemat sumber daya crawling dan server
URL lama atau variasi domain tidak lagi diperlukanRedirect permanen ke URL bakuMenyatukan akses pengguna dan sinyal canonical
Parameter tracking tidak mengubah kontenGunakan URL bersih pada tautan internal dan canonical; hapus parameter bila amanMencegah URL pelacakan menjadi versi utama
Parameter sama tetapi urutannya berbedaNormalisasi urutan dan arahkan variasinya ke satu formatMencegah beberapa URL mewakili keadaan yang sama
Filter kosong, ganda, atau tidak validKembalikan HTTP 404Menghentikan pertumbuhan URL tidak berguna

Dengan klasifikasi yang benar, canonical, noindex, robots.txt, dan redirect tidak lagi dipakai sebagai solusi yang saling menggantikan. Masing-masing memiliki fungsi berbeda: canonical mengonsolidasikan halaman serupa, noindex mengendalikan indeksasi, robots.txt mengendalikan crawling, sedangkan redirect memindahkan pengguna dan crawler secara permanen.

Implementasi yang baik selalu dimulai dari aturan URL yang konsisten, dilanjutkan dengan konfigurasi teknis, kemudian diverifikasi melalui crawling, indeksasi, sitemap, dan log server. Pendekatan inilah yang membuat filter tetap berguna bagi pengunjung tanpa berubah menjadi perangkap duplikat URL bagi mesin pencari.

Facebook
Twitter
LinkedIn