Rel Canonical: Solusi SEO untuk Duplicate Content
Pendahuluan
Rel canonical adalah atribut HTML yang memberi tahu search engine halaman mana yang merupakan versi “utama” dari konten yang mungkin muncul di beberapa URL. Tag ini sangat penting untuk menghindari masalah duplicate content dan menjaga SEO tetap optimal.
Apa Itu Rel Canonical?
Definisi
Canonical tag (rel=“canonical”) adalah elemen HTML yang menunjukkan URL preferensi untuk halaman yang memiliki konten duplikat atau sangat mirip di beberapa URL.
Syntax
<link rel="canonical" href="https://example.com/halaman-utama/" />
Tag ini ditempatkan di bagian <head> halaman HTML.
Mengapa Diperlukan?
Tanpa canonical tag, search engine mungkin:
- Mengindeks versi yang salah
- Membagi “link equity” antara versi berbeda
- Menampilkan URL yang tidak diinginkan di hasil pencarian
- Menganggap konten sebagai duplicate
Kapan Menggunakan Canonical Tag
1. URL dengan Parameter
Contoh e-commerce:
https://example.com/product/sepatu
https://example.com/product/sepatu?color=red
https://example.com/product/sepatu?color=red&size=42
Semua menampilkan produk yang sama.
Canonical: https://example.com/product/sepatu
2. HTTP vs HTTPS
http://example.com/halaman
https://example.com/halaman
Canonical: https://example.com/halaman
3. WWW vs Non-WWW
www.example.com/halaman
example.com/halaman
Pilih satu, canonical ke yang dipilih
4. Trailing Slash Variations
https://example.com/halaman
https://example.com/halaman/
Canonical: Pilih satu konsisten
5. Mobile vs Desktop URLs
https://example.com/halaman (desktop)
https://m.example.com/halaman (mobile)
Canonical: https://example.com/halaman
(dengan alternate untuk mobile)
6. Paginated Content
https://example.com/blog?page=1
https://example.com/blog?page=2
https://example.com/blog?page=3
Option A: Self-canonical (setiap halaman canonical ke dirinya)
Option B: Canonical ke halaman utama (jika content sama)
7. Syndicated Content
Artikel di site Anda: https://yoursite.com/artikel
Artikel di partner: https://partner.com/artikel
Partner harus canonical ke: https://yoursite.com/artikel
8. Similar/Overlapping Content
https://example.com/topi-pria
https://example.com/topi-cowok
Jika konten hampir sama, canonical ke satu versi
Cara Implementasi
Method 1: HTML Tag
<!DOCTYPE html>
<html>
<head>
<title>Judul Halaman</title>
<link rel="canonical" href="https://example.com/halaman-utama/" />
</head>
<body>
...
</body>
</html>
Method 2: HTTP Header
Untuk non-HTML files (PDF, images):
HTTP/1.1 200 OK
Link: <https://example.com/document.pdf>; rel="canonical"
Method 3: Sitemap
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/halaman-utama/</loc>
</url>
</urlset>
Catatan: Sitemap bukan canonical directive, tapi membantu Google memahami URL preferences.
Implementasi per Platform
WordPress
Via Yoast SEO:
Edit post/page → Yoast SEO → Advanced → Canonical URL
Via Rank Math:
Edit post/page → Rank Math → Advanced → Canonical URL
Via code (functions.php):
// Remove default canonical
remove_action('wp_head', 'rel_canonical');
// Add custom canonical
add_action('wp_head', 'custom_canonical');
function custom_canonical() {
if (is_single() || is_page()) {
echo '<link rel="canonical" href="' . get_permalink() . '" />';
}
}
Hugo
Di frontmatter atau template:
# config.toml
[params]
canonifyURLs = true
Di template:
{{ with .Params.canonical }}
<link rel="canonical" href="{{ . }}" />
{{ else }}
<link rel="canonical" href="{{ .Permalink }}" />
{{ end }}
Next.js
import Head from "next/head";
export default function Page() {
return (
<>
<Head>
<link rel="canonical" href="https://example.com/page" />
</Head>
<main>...</main>
</>
);
}
Static HTML
<head>
<link rel="canonical" href="https://example.com/halaman/" />
</head>
Best Practices
Do’s ✅
Gunakan absolute URLs
✅ <link rel="canonical" href="https://example.com/halaman/" /> ❌ <link rel="canonical" href="/halaman/" />Konsisten dengan protocol dan www
Jika site menggunakan HTTPS dan www: ✅ https://www.example.com/halaman/ ❌ http://example.com/halaman/Self-referencing canonical
Setiap halaman sebaiknya memiliki canonical, bahkan jika canonical ke dirinya sendiriSatu canonical per halaman
✅ Satu tag <link rel="canonical" /> ❌ Multiple canonical tagsMatch dengan hreflang
Jika menggunakan hreflang, canonical harus konsisten
Don’ts ❌
Jangan canonical ke halaman yang berbeda kontennya
Halaman sepatu canonical ke halaman tas = salahJangan canonical ke halaman yang di-noindex
Canonical dan noindex = conflicting signalsJangan canonical ke halaman redirect
Canonical harus ke final destination URLJangan buat canonical chains
A canonical ke B, B canonical ke C = problematicJangan canonical across different domains tanpa alasan
Kecuali untuk syndicated content
Canonical vs Alternatif Lain
Canonical vs 301 Redirect
| Aspek | Canonical | 301 Redirect |
|---|---|---|
| User access | Bisa akses semua URL | Diarahkan ke satu URL |
| Flexibility | Tinggi | Rendah |
| Implementation | Mudah | Perlu server config |
| Use case | Multiple valid URLs | Permanent move |
Kapan pakai apa:
Canonical: Versi berbeda tapi semua perlu accessible
301: Halaman lama pindah permanent ke baru
Canonical vs Noindex
| Aspek | Canonical | Noindex |
|---|---|---|
| Indexing | Consolidated ke canonical | Not indexed |
| Link equity | Passed to canonical | Lost/diminished |
| Use case | Duplicate content | Remove from index |
Kapan pakai apa:
Canonical: Konten sama, pilih versi utama
Noindex: Halaman tidak perlu di search results
Canonical vs robots.txt
robots.txt: Block crawling entirely
Canonical: Consolidate duplicate content
robots.txt tidak membantu duplicate content,
malah bisa menyebabkan masalah
Troubleshooting Canonical Issues
1. Canonical Tidak Diikuti Google
Kemungkinan penyebab:
- Canonical ke halaman yang berbeda kontennya
- Conflicting signals (noindex, redirect)
- Canonical URL tidak bisa diakses
- Canonical chains
Solusi:
- Pastikan konten sangat mirip
- Hapus conflicting signals
- Verifikasi canonical URL accessible
- Simplify canonical structure
2. Wrong Page Indexed
Check:
site:example.com/halaman
Lihat URL mana yang muncul
Fix:
- Audit canonical tags
- Submit correct URL via Search Console
- Request removal jika perlu
3. Multiple Canonicals
Problem:
<link rel="canonical" href="https://example.com/a/" />
<link rel="canonical" href="https://example.com/b/" />
Solution:
- Keep only one canonical tag
- Audit CMS/plugins yang mungkin add duplicates
4. Canonical Loop
Problem:
A canonical → B
B canonical → A
Solution:
- Decide which is the actual canonical
- Update both to point to same URL
Verifikasi Canonical
Google Search Console
- URL Inspection tool
- Masukkan URL
- Lihat “User-declared canonical” vs “Google-selected canonical”
Browser DevTools
1. Buka halaman
2. Right-click → View Page Source
3. Ctrl+F, cari "canonical"
4. Verifikasi URL benar
Online Tools
- Screaming Frog
- Ahrefs Site Audit
- SEMrush Site Audit
- Sitebulb
Code Check
// Browser console
document.querySelector('link[rel="canonical"]')?.href;
Common Mistakes
1. Relative URLs
❌ <link rel="canonical" href="/halaman/" /> ✅
<link rel="canonical" href="https://example.com/halaman/" />
2. Wrong Protocol
❌ <link rel="canonical" href="http://..." /> (jika site HTTPS) ✅
<link rel="canonical" href="https://..." />
3. Pagination Mistakes
❌ Semua page canonical ke page 1 (kehilangan long-tail content) ✅
Self-canonical atau proper pagination handling
4. Syndicated Without Canonical
Partner publish artikel Anda tanpa canonical ke sumber asli
= Partner bisa outrank Anda
5. Ignoring Mobile
Responsive design: Self-canonical OK
Separate mobile URLs: Perlu proper canonical + alternate setup
Artikel Terkait
- Apa Itu SEO dan Mengapa Penting
- Panduan Lengkap Riset Keyword
- Cara Membuat Content SEO Friendly
- On-Page SEO Optimasi Lengkap
- Cara Mendapatkan Backlink Berkualitas
Kesimpulan
Rel canonical adalah tool penting untuk:
- Mengelola duplicate content - Konsolidasi URL variations
- Mempertahankan link equity - Semua signals ke satu URL
- Mengontrol indexing - Tentukan URL yang muncul di SERP
- Menghindari penalty - Duplicate content bisa dianggap spam
Implementation checklist:
- ✅ Setiap halaman punya canonical tag
- ✅ Gunakan absolute URLs
- ✅ Konsisten dengan protocol dan www
- ✅ Tidak ada conflicting signals
- ✅ Verifikasi via Search Console
- ✅ Monitor secara berkala
Canonical tag adalah “hint” bukan “directive” - Google bisa mengabaikan jika dianggap salah. Pastikan implementasi logis dan konsisten untuk hasil terbaik.
Link Postingan: https://www.tirinfo.com/rel-canonical-solusi-seo-untuk-duplicate-content/