Mari mulai dari fakta yang menjungkirkan separuh anggapan tentang tag ini: rel="canonical" adalah petunjuk, bukan perintah.
Google menimbangnya bersama semua sinyal lain: tautan internal, peta situs, pengalihan, hreflang. Ketika sinyal-sinyal itu bertentangan, mesin pencari memilih URL yang dianggapnya benar dan mengabaikan canonical Anda. Hal ini dinyatakan dalam dokumentasi resmi Google tentang konsolidasi URL duplikat.
Semua hal lain mengikuti dari sini: canonical tidak bekerja sendirian, hanya ketika sinyal lain menunjuk ke arah yang sama.
Sintaks
Tag ditempatkan di dalam <head>:
<link rel="canonical" href="https://example.com/halaman">
Tiga aturan yang paling sering dilanggar:
Gunakan URL absolut. Jalur relatif secara teknis diperbolehkan, tetapi kesalahan apa pun pada URL dasar membuatnya tak berguna. Tulis lengkap, termasuk skema dan host.
Tepat satu tag. Dua tautan canonical berbeda pada satu halaman dan Google membuang keduanya. Ini hasil klasik dari menjalankan dua plugin SEO sekaligus.
Hanya di dalam <head>. Canonical yang berakhir di <body> — misalnya disisipkan skrip di tempat yang salah — tidak diperhitungkan.
Untuk berkas tanpa HTML sendiri (PDF, gambar), canonical dikirim sebagai header HTTP:
Link: <https://example.com/dokumen.pdf>; rel="canonical"
Apa yang diselesaikan canonical
Satu masalah saja: konten yang sama berada di beberapa URL, dan semuanya harus tetap dapat diakses.
Kasus umum:
- parameter pengurutan dan filter:
?sort=price,?color=red; - tag UTM dan pengenal iklan;
- satu produk yang tercantum di beberapa kategori;
- versi cetak;
- materi yang sama di subdomain berbeda.
Pada semua kasus itu Anda tidak bisa sekadar mengalihkan — halamannya dibutuhkan. Canonical memberi tahu mesin pencari alamat mana yang dianggap utama dan menyatukan sinyal di sana.
Canonical yang menunjuk diri sendiri
Sebuah halaman boleh mengarahkan canonical-nya ke dirinya sendiri. Tidak wajib, tetapi berguna: ini melindungi Anda bila seseorang membuka URL Anda dengan parameter asing di ujungnya lalu mesin pencari menganggapnya halaman terpisah.
Apa yang bukan canonical
Di sinilah sebagian besar kesalahan terjadi, jadi berikut alat-alat tetangganya dalam satu tabel.
| Tujuan | Alat | Mengapa bukan canonical |
|---|---|---|
| Halaman pindah permanen | Pengalihan 301 | Canonical membiarkan alamat lama tetap dapat diakses |
| Tujuan berubah sementara | Pengalihan 302 | Alasan yang sama |
| Halaman tidak boleh terindeks | noindex |
Canonical tidak menghapus apa pun dari indeks |
| Halaman tidak boleh dirayapi | robots.txt | Yang juga tidak mengeluarkannya dari indeks |
| Konten sama dalam beberapa bahasa | hreflang + canonical ke diri sendiri | Ini bukan duplikat |
| Daftar berhalaman | Tidak perlu apa pun | Halaman 2, 3, 4 berdiri sendiri |
Dua butir layak ditekankan.
Canonical tidak menggantikan 301. Jika halaman memang pindah, alihkan. Canonical untuk situasi ketika kedua URL harus tetap berfungsi.
Penomoran halaman bukan duplikasi. Mengarahkan canonical semua halaman daftar ke halaman pertama adalah kesalahan umum: isi halaman 2 dan 3 berbeda, dan Anda hanya menghapusnya dari indeks.
Canonical dan hreflang
Bagian paling halus, sekaligus tempat kesalahan termahal di bidang ini.
Kesalahannya: menjadikan semua versi bahasa canonical ke versi Inggris. Logikanya terasa masuk akal — bahasa Inggris adalah versi «utama». Hasilnya justru sebaliknya: Anda memberi tahu mesin pencari bahwa halaman Jerman dan Spanyol tidak berdiri sendiri, dan halaman-halaman itu lenyap dari hasil pencarian di pasarnya masing-masing.
Susunan yang benar:
- setiap versi bahasa mengarahkan canonical ke dirinya sendiri;
- semua versi saling mendaftarkan lewat
hreflang, termasuk dirinya sendiri; - hubungannya timbal balik: jika A merujuk B, maka B harus merujuk A;
hreflangmenunjuk ke URL kanonis, bukan ke varian berparameter;x-defaultmenyebut versi cadangan bagi pengunjung yang bahasanya tidak cocok dengan satu pun.
Begitulah situs yang sedang Anda baca ini dibangun. Halaman tentang memendekkan tautan YouTube tersedia dalam 21 versi bahasa, dan masing-masing melakukan canonical ke dirinya sendiri. Versi Tionghoa tampak seperti ini:
<link rel="canonical" href="https://lix.li/suoduan-youtube-lianjie">
<link rel="alternate" hreflang="en" href="https://lix.li/shorten-youtube-link">
<link rel="alternate" hreflang="zh" href="https://lix.li/suoduan-youtube-lianjie">
<link rel="alternate" hreflang="es" href="https://lix.li/acortar-link-youtube">
Perhatikan bahwa canonical menunjuk ke URL Tionghoa, bukan Inggris, dan versi Tionghoa muncul dalam daftar hreflang-nya sendiri.
Kesalahan yang sering terjadi
Google mengumpulkan yang utama bertahun-tahun lalu dalam catatan tentang lima kesalahan dengan rel=canonical, dan daftarnya nyaris tidak berubah sejak itu.
Canonical menunjuk ke URL yang mengembalikan 404. Tag diabaikan seluruhnya.
Canonical menunjuk ke halaman ber-noindex. Sinyal yang bertentangan: Anda sekaligus berkata «anggap ini utama» dan «jangan indeks ini».
Canonical menunjuk ke URL yang diblokir di robots.txt. Perayap tidak bisa mengambilnya, jadi tidak bisa mengonfirmasinya juga.
Rantai. A menunjuk ke B, B menunjuk ke C. Di Search Console itu menjadi «URL kanonis tidak dipilih». Tunjuk langsung ke URL final.
Mencampur http dengan https, www dengan non-www. Skema dan host pada canonical harus cocok dengan versi situs yang Anda anggap utama.
Canonical dan noindex pada halaman yang sama. Pilih salah satu.
Ketika Google memilih URL lain
Di Search Console ini muncul sebagai «Duplikat, Google memilih kanonis yang berbeda dari pengguna».
Ini bukan kesalahan markup dan bukan hukuman. Ini pesan bahwa sinyal lain mengalahkan tag Anda. Yang perlu diperiksa:
- Tautan internal. Jika seluruh situs menaut ke varian berparameter sementara canonical menunjuk ke URL bersih, mesin pencari mempercayai tautan.
- Peta situs. Isinya harus hanya URL kanonis.
- Pengalihan. Jika canonical menunjuk ke URL yang dirinya sendiri mengalihkan, tag kehilangan kekuatannya.
- Apakah benar-benar duplikat. Jika isinya berbeda secara nyata, mesin pencari benar memperlakukannya sebagai halaman terpisah.
Selaraskan sinyalnya dan tag mulai bekerja. Berdebat dengan algoritma percuma; ia membaca gambaran utuh.
Tautan pendek dan canonical
Pertanyaan yang sering muncul dan tidak dijawab panduan umum.
Apakah tautan pendek menciptakan duplikat halaman? Tidak.
Pemendek tautan tidak menyajikan salinan konten — ia mengembalikan pengalihan HTTP. Respons 302 tidak punya body maupun <head>, jadi secara fisik tidak ada tempat untuk menaruh canonical. Perayap mengikuti pengalihan dan bekerja dengan tujuan, yang membawa canonical-nya sendiri. Cara kerja mekanisme ini dijelaskan di cara kerja pemendek tautan.
Tautan pendek di situs ini juga mengembalikan header X-Robots-Tag: noindex, nofollow, secara eksplisit meminta agar pengalihan itu sendiri tidak diindeks.
Bagaimana dengan domain pendek sendiri? Ia juga tidak menciptakan duplikat selama melakukan pengalihan. Duplikat muncul ketika Anda menyajikan konten identik di dua domain tanpa pengalihan — di situlah canonical ke domain utama dibutuhkan. Mengapa domain khusus untuk tautan pendek layak dimiliki dibahas terpisah, dan Anda bisa menghubungkannya di halaman domain sendiri.
Daftar periksa singkat
- Satu canonical per halaman, di dalam
<head>, dengan URL absolut. - Tujuannya mengembalikan 200, tidak diblokir di robots.txt, dan tidak bertanda
noindex. - Tanpa rantai — tunjuk langsung ke URL final.
- Setiap versi bahasa melakukan canonical ke dirinya sendiri; hreflang timbal balik.
- Peta situs dan tautan internal mengarah ke URL kanonis yang sama.
- Penomoran halaman dan halaman yang pindah diselesaikan dengan alatnya sendiri, bukan dengan canonical.