Canonical Tag: Decision Tree untuk Edge Cases
Kapan self-canonical, kapan canonical ke halaman lain, dan kapan omit canonical. Kasus edge yang sering bingung.
Canonical tag salah setup = duplicate content issue atau halaman benar hilang dari index. Decision tree ini saya pakai di setiap audit.
Decision tree
- Halaman punya URL unik dan konten unik?
Self-canonical ke URL halaman itu sendiri. Paling aman default.
- Halaman punya multiple URL ke konten sama (tracking parameter)?
Canonical ke URL clean (tanpa parameter).
- Halaman pagination (page 2, 3, 4)?
Self-canonical ke URL pagination itu. JANGAN canonical ke page 1 (mitos SEO lama).
- Halaman filter/facet di catalog?
Self-canonical kalau konten substantif. Canonical ke parent bila thin.
- Halaman A/B test variant?
Canonical ke original. Variant eksperimen, bukan konten primary.
- Konten syndicated dari situs lain?
Canonical ke URL original di situs lain (cross-domain canonical).
- Halaman PDF version atau print version?
Canonical ke HTML version (primary).
Common mistakes
Benar
- Self-canonical di 95% halaman.
- Canonical pakai URL full (protokol + domain).
- Canonical konsisten di HTTP header + HTML meta.
- Canonical menunjuk ke URL yang return 200 OK.
Salah
- Cross-domain canonical tanpa coordinated effort.
- Canonical ke URL non-canonical (redirect loop).
- Canonical ke URL yang noindex.
- Canonical ke halaman dengan konten berbeda substantif.
Canonical vs noindex vs redirect: kapan masing-masing
| Goal | Solusi |
|---|---|
| Halaman duplicate dengan primary | Canonical ke primary |
| Halaman lama yang tidak lagi ada | 301 redirect |
| Halaman tidak ingin di-index tapi masih accessible | noindex meta |
| Halaman filter dengan thin content | noindex, follow |
| Parameter-based URL same content | Canonical ke clean URL |
| Page pagination | Self-canonical, no rel=prev/next |
| Image variant untuk responsive | No canonical (browser pilih automatic) |
Verification
- View source setiap halaman sample.<link rel="canonical"> ada dan URL benar.
- Check di Google Search Console > URL Inspection.Google-selected canonical harus match deklarasi.
- Monitor 'Duplicate without user-selected canonical' warning.Signal canonical tidak diambil Google.
- Pastikan HTTP header canonical = HTML meta canonical.Mismatch bingungkan crawler.
Rumahweb shared hosting pakai LiteSpeed. Canonical header bisa di-set via .htaccess, tapi lebih mudah inject via PHP di <head>. Konsisten antar-halaman adalah kuncinya.