Menu
📱 Lihat versi lengkap (non-AMP)
SEO

Rel Canonical: Solusi SEO untuk Duplicate Content

Editor: Hendra WIjaya
Update: 8 December 2025
Baca: 5 menit

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 ✅

  1. Gunakan absolute URLs

    <link rel="canonical" href="https://example.com/halaman/" /><link rel="canonical" href="/halaman/" />
    
  2. Konsisten dengan protocol dan www

    Jika site menggunakan HTTPS dan www:
    ✅ https://www.example.com/halaman/
    ❌ http://example.com/halaman/
    
  3. Self-referencing canonical

    Setiap halaman sebaiknya memiliki canonical,
    bahkan jika canonical ke dirinya sendiri
    
  4. Satu canonical per halaman

    ✅ Satu tag <link rel="canonical" /> ❌ Multiple canonical tags
    
  5. Match dengan hreflang

    Jika menggunakan hreflang, canonical harus konsisten
    

Don’ts ❌

  1. Jangan canonical ke halaman yang berbeda kontennya

    Halaman sepatu canonical ke halaman tas = salah
    
  2. Jangan canonical ke halaman yang di-noindex

    Canonical dan noindex = conflicting signals
    
  3. Jangan canonical ke halaman redirect

    Canonical harus ke final destination URL
    
  4. Jangan buat canonical chains

    A canonical ke B, B canonical ke C = problematic
    
  5. Jangan canonical across different domains tanpa alasan

    Kecuali untuk syndicated content
    

Canonical vs Alternatif Lain

Canonical vs 301 Redirect

AspekCanonical301 Redirect
User accessBisa akses semua URLDiarahkan ke satu URL
FlexibilityTinggiRendah
ImplementationMudahPerlu server config
Use caseMultiple valid URLsPermanent move

Kapan pakai apa:

Canonical: Versi berbeda tapi semua perlu accessible
301: Halaman lama pindah permanent ke baru

Canonical vs Noindex

AspekCanonicalNoindex
IndexingConsolidated ke canonicalNot indexed
Link equityPassed to canonicalLost/diminished
Use caseDuplicate contentRemove 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

  1. URL Inspection tool
  2. Masukkan URL
  3. 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

Kesimpulan

Rel canonical adalah tool penting untuk:

  1. Mengelola duplicate content - Konsolidasi URL variations
  2. Mempertahankan link equity - Semua signals ke satu URL
  3. Mengontrol indexing - Tentukan URL yang muncul di SERP
  4. 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.

Bagikan:

Link Postingan: https://www.tirinfo.com/rel-canonical-solusi-seo-untuk-duplicate-content/