Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kaisargaming/617a4bfac7bbf0401210c3ca9e1a17de to your computer and use it in GitHub Desktop.
Save kaisargaming/617a4bfac7bbf0401210c3ca9e1a17de to your computer and use it in GitHub Desktop.
Setup canonical link di WordPress dan Rewrite URL untuk folder upload

Canonical Link Setup di WordPress

Simple setup canonical link di WordPress melalui theme file dan implementasi RewriteUrl di htaccess khusus untuk folder uploads

Canonical link

Canonical link digunakan untuk memberikan informasi kepada pihak lain, dalam hal ini Search Engine, mengenai Preferred URL dari sebuah URL tertentu untuk menghindari duplicate content.

Melalui setup yang tepat, canonical link dapat dimanfaatkan untuk menggabungkan SERP dari masing-masing URL di Website berbeda dengan content yang identikal.

Lebih lanjut mengenai canonical link;

Implementasi metoda ini akan dibaca oleh search engine untuk kemudian dimasukkan ke layer algoritma yang menentukan SERP dari website yang kita kelola. Dengan demikian akan membutuhkan waktu yang lebih lama dibandingkan dengan menggunakan change domain yang disediakan oleh search console google.

Implementasi Canonical link

Implementasi dapat dilakukan melalui dua metoda yaitu

  • link tag di dalam head
  • Link di HTTP Header response

Implementasi melalui http header membutuhkan tweak ke konfigurasi web server, dalam contoh kasus website yang menggunakan apache dapat juga dilakukan melalui Header di .htaccess.

Contoh link tag di dalam head yang dimasukkan ke dalam url https://nonpreferred.tld/url/path

<head>
  <link rel="canonical" href="https://preferred.tld/url/path">
</head>

Atribut href di dalam link tag dengan rel canonical harus merujuk ke url yang memiliki konten identikal namun preferred.

Canonical link di WordPress header

WordPress Theme menggunakan file header.php yang dapat ditemukan di dalam direktori wp-content/themes/template, sesuaikan file ini apabila menggunakan theme siap pakai yang mungkin memanggil header dari file lain.

// header.php

  <link rel="canonical" href="https://preferred.tld<?php echo $_SERVER['REQUEST_URI'];?>">

$_SERVER['REQUEST_URI'] merupakan global variable milik php yang menangkap path pada saat request dilakukan, sehingga secara dinamis href yang ditampilkan akan menyesuaikan dengan url yang direquest.

Duplikasi uploads folder

Untuk mempertahankan dua atau lebih instalasi WordPress yang identikal secara full akan membuang space hdd server karena banyak duplikasi, contohnya adalah duplikasi di database dan duplikasi di dalam folder yang menyimpan file media yang diupload ketika content dibuat, dalam hal ini dapat ditemukan di https://instalasiwordpress.tld/wp-content/uploads.

Untuk mengatasi hal ini, setiap instalasi WordPress yang dipertahankan tidak memerlukan uploads folder terkecuali di instalasi yang paling baru dan. Instalasi WordPress tanpa uploads folder akan mengandalkan RewriteUrl di .htaccess untuk merewrite semua request ke wp-content/uploads/ ke https://preferreddomain.tld/wp-content/uploads folder.

# Append di paling atas .htaccess
RewriteEngine On
RewriteRule ^wp-content/uploads/(.*)$ https://preferreddomain.tld/wp-content/uploads/$1 [R=301,NC,L]

Lebih lanjut di https://coolestguidesontheplanet.com/redirecting-a-web-folder-directory-to-another-in-htaccess/

Duplikasi Canonical link

Dalam setiap url perhatikan hanya ada satu link tag dengan rel canonical, beberapa plugin terutama yang terkait dengan SEO mungkin melakukan injeksi canonical link, dengan demikian harus di disable terlebih dahulu. Contoh kasus untuk disable di plugin yoast dapat dipelajari melalui https://www.bybe.net/yoast-seo-how-to-disable-canonical-links-urls/

Implementasi lebih dari dua website

Pada kasus domain terblokir, sebaiknya dipertahankan semua instalasi WordPress di domain sebelumnya untuk memastikan bahwa SERP yang dimiliki oleh domain-domain sebelumnya dapat digabungkan ke domain yang baru. Dengan demikian rewrite untuk setiap domain bisa dicabut, dan bisa dinstall WordPress dengan konten yang sama minus uploads folder untuk menghemat space.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment