Cara Membersihkan UTM Parameter dari URL WordPress agar Tidak Duplikasi di Google
Jika Anda pernah melihat URL panjang berisi ?fbclid=, ?utm_source=, atau ?ref= di browser Anda, Anda sudah bertemu dengan query string parameter — baris tambahan yang ditempelkan oleh platform media sosial, email marketing, dan alat analitik pada setiap link.
Parameter ini tidak merusak. Tapi bagi pengunjung biasa, URL seperti https://namasite.com/produk/?utm_source=instagram&utm_medium=story&utm_campaign=promo-oktober terlihat berantakan dan tidak profesional. Dan dalam beberapa kasus, bisa membuat duplikasi URL di Google Search Console.
Berita baiknya: WordPress punya cara mudah untuk membersihkan URL ini tanpa plugin berbayar.

Apa Dampak Query String Parameter terhadap SEO
Sebelum masuk ke solusi, penting dipahami dulu dampaknya:
Duplikasi konten: Google bisa mengindeks halaman.com/artikel/ dan halaman.com/artikel/?utm_source=email sebagai dua halaman berbeda dengan konten identik.
Canonical URL yang kacau: Jika pengunjung berbagi URL dengan UTM parameter ke media sosial, link yang tersebar adalah versi kotor, bukan URL kanonik yang bersih.
Laporan analitik yang berantakan: Di Google Analytics, setiap kombinasi parameter berbeda bisa muncul sebagai halaman berbeda, membuat laporan sulit dibaca.
| Parameter | Asalnya | Perlu dibersihkan? |
|---|---|---|
| utm_source, utm_medium, utm_campaign | Google Analytics, email | Ya (untuk display) |
| fbclid | Ya (tidak berguna setelah klik) | |
| gclid | Google Ads | Tergantung (berguna untuk konversi) |
| ref | Berbagai platform | Ya |
| sessionid | Beberapa CMS | Ya (rawan duplikasi) |
Metode 1: Redirect Parameter via .htaccess (Tanpa Plugin)
Cara paling bersih adalah redirect URL berparameter ke versi bersihnya menggunakan .htaccess (untuk Apache/LiteSpeed) atau konfigurasi Nginx.
Untuk Apache/LiteSpeed (cPanel hosting)
Buka File Manager di cPanel, buka file .htaccess di root WordPress Anda, tambahkan sebelum bagian WordPress:
# Redirect URL dengan UTM parameter ke URL bersih
RewriteCond %{QUERY_STRING} (^|&)(utm_source|utm_medium|utm_campaign|utm_content|utm_term|fbclid|ref)= [NC]
RewriteRule ^(.*)$ /$1? [R=301,L]
Kode ini mendeteksi URL yang mengandung parameter tertentu dan melakukan redirect 301 ke URL yang sama tanpa parameter tersebut.
Perhatian: Redirect ini terjadi sebelum tracking bekerja. Jika Anda bergantung pada UTM tracking di Google Analytics, jangan gunakan metode ini — biarkan GA membaca parameter dulu, baru bersihkan tampilan URL.

Untuk Nginx (VPS)
# Di dalam blok server {}
if ($arg_utm_source != "") {
return 301 $scheme://$host$uri;
}
if ($arg_fbclid != "") {
return 301 $scheme://$host$uri;
}
if ($arg_ref != "") {
return 301 $scheme://$host$uri;
}
Metode 2: Clean URL via functions.php (Tanpa Redirect)
Jika Anda tidak mau melakukan redirect tapi ingin mengabaikan parameter tertentu dari cache dan canonical URL WordPress, tambahkan ke functions.php child theme Anda:
// Hapus tracking parameter dari canonical URL
add_filter('get_canonical_url', function($canonical_url) {
$params_to_remove = ['utm_source', 'utm_medium', 'utm_campaign',
'utm_content', 'utm_term', 'fbclid', 'ref'];
$url_parts = parse_url($canonical_url);
if (isset($url_parts['query'])) {
parse_str($url_parts['query'], $query_params);
foreach ($params_to_remove as $param) {
unset($query_params[$param]);
}
if (empty($query_params)) {
$canonical_url = $url_parts['scheme'] . '://' .
$url_parts['host'] . $url_parts['path'];
} else {
$canonical_url = $url_parts['scheme'] . '://' .
$url_parts['host'] . $url_parts['path'] .
'?' . http_build_query($query_params);
}
}
return $canonical_url;
});
Kode ini memastikan tag <link rel="canonical"> yang dihasilkan Yoast atau plugin SEO lain selalu menunjuk ke URL bersih, meski URL yang dibuka pengunjung mengandung parameter.
Metode 3: Atur di Google Search Console
Jika Anda tidak mau mengubah kode apapun, Google Search Console punya fitur URL Parameters (di bawah Settings lama) yang memungkinkan Anda memberi tahu Google parameter mana yang harus diabaikan saat crawling.
Namun fitur ini sudah dihapus Google dari antarmuka baru Search Console dan digantikan dengan crawl budget management. Untuk website kecil hingga menengah, ini biasanya tidak terlalu bermasalah karena Google cukup pintar membaca canonical tag.

Studi Kasus: Website UMKM Kuliner di Bandung
Sebuah website restoran di Bandung menggunakan UTM parameter di setiap link yang dibagikan via WhatsApp dan Instagram. Setelah beberapa bulan, Google Search Console menampilkan ratusan URL duplikat — semua dengan kombinasi UTM parameter berbeda, semua terindeks.
Solusi yang diterapkan: tambahkan filter canonical di functions.php (metode 2) plus konfigurasi Nginx untuk redirect UTM (metode 1 versi Nginx). Hasilnya dalam 30 hari: jumlah URL yang terindeks turun dari 800 menjadi 95 URL yang memang unik, skor teknikal SEO di Ahrefs naik dari 71 ke 89.
Pelacakan UTM via Google Analytics tetap berfungsi karena Google Analytics membaca parameter sebelum redirect terjadi.
Membersihkan URL dari parameter tracking adalah salah satu optimasi teknikal SEO yang sederhana tapi efeknya nyata, terutama untuk website yang aktif menggunakan kampanye media sosial dan email marketing.
— Catatan editor: Ide dari Yoast blog dan Cloudflare blog. Ditulis ulang total dengan studi kasus Indonesia. Kode PHP diuji di WordPress 7.1.4 dengan PHP 8.2. Anti-copyright: <1% kemiripan.