WordPress memang menyediakan opsi untuk mengatur permalink sehingga URL artikel blog kita jadi “cantik” dan mudah dibaca. Akan merepotkan jika blog kita udah lama terindeks oleh Google kemudian kita ubah bentuk permalink kita, bisa-bisa link dari Google yang mengarah ke artikel blog kita bisa ilang!
Dengan alasan SEO, maka sebuah permalink URL yang baik diperlukan. Alamat URL yang baik adalah alamat yang cantik, singkat, mudah dibaca (oleh kita dan Google), serta mencerminkan apa isi dari halaman tersebut.
Dulu banget, blog jengjeng matriphe! itu permalink URL-nya kurang bagus. Alamat URL artikelnya terlalu panjang, seperti ini nih: http://jengjeng.matriphe.com/index.php/tahun/bulan/tanggal/judul-postingan.html
Atribut index.php ada di URL karena hostingan saya yang dulu ndak punya mod_rewrite, jadi harus “dipaksa” dengan menyisipkan index.php. Pas pindah hosting, mod_rewrite sudah tersedia di hosting baru, namun saat itu karena pertimbangan “blog ini URL-nya sudah terindeks oleh Google”, membuat saya enggan mengubah format permalink.
Kini permalink di blog jengjeng matriphe! sudah saya ubah menjadi lebih singkat, yaitu: http://jengjeng.matriphe.com/judul-postingan.html
Saya mempertahankan “embel-embel” .html karena konon mesin pencari lebih menyukai hal-hal yang statis. Nah, ekstensi .html atau .htm itu kan dianggap halaman statis, maka harapannya mesin pencari menyukai alamat URL ini.
Lalu, bagaimana dengan alamat URL yang sudah terindeks oleh Google? Tenang, masih bisa diakali. Kita bisa me-redirect alamat URL yang lama ke alamat URL yang baru dengan mengoprek file .htaccess dengan menambahkan perintah mod_rewrite.
Secara default, WordPress akan membuat file .htaccess yang berisi seperti berikut:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Yang kita lakukan adalah dengan menambahkan baris untuk memerintahkan server bila menemukan alamat artikel dengan format URL lama maka diubah ke alamat URL baru. Perintah yang dimasukkan adalah:
RewriteRule ^index.php/(.+)/(.+)/(.+)/(.+)$ http://jengjeng.matriphe.com/$4 [R=301,L]
Perintah ini akan me-redirect alamat URL lama ke alamat URL baru secara permanen (R=301).
Sehingga hasilnya menjadi:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index.php/(.+)/(.+)/(.+)/(.+)$ http://jengjeng.matriphe.com/$4 [R=301,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Selesai! Kini semua alamat URL lama yang diberikan Google akan langsung dipindah ke alamat URL yang baru!
nambah ilmu, thanks atas infona
Memudahkan SEO sih mas, tapi menurut saya klo di suatu artikel kita banyak mencantumkan link-link artikel lain di blog kita, bukannya malah tambah ribet kita nulis sintaks tag <a> nya? Karena itu saya masih setia pakai URL, index.php?p=indeks_artikel
maksudnya gimana? kalo ngasih link, kan enak di-copy-paste aja? kalo aku sih lebih suka ngasih judul artikel di URL, sehingga ketika ada link, dengan sekali hover, aku bisa tau judul artikelnya dan bisa mengira-ira apa isi dari link itu.
misal gini, artikel A dengan link: http://blablabla.com/index.php?p=345 dengan http://blablabla.com/artikel-soal-nusuk-pantat-mayat.html kira-kira lebih “mudah diketahui” yang mana? kalo soal untuk membubuhkan di dalam tag HTML, itulah gunanya rich editor, nak..
hohoho, belum pake Rich Editor je, soalnya TinyMCE belum sukses saya oprek :p
bukannya gampang, ya? tinggal embed code, load the javascript, and you’re done?
saya dulu mengakalinya makai plugins. dan setelah cek di webmastertol gak ada lagi url broken matikan lagi pluginnya
tips yg menarik mas
wah saya malah ndak tau ada plugin macam itu, mas..
maklum, anak terminal yg pikirannya masih katrok, sering pake cara yg ribet dan nggak praktis.
wakakak anak terminal tapi jago coding
la tiap hari saya kan nongkrongin terminal (ssh) kang..
wah cukup tambah dikit yah :D… ngak perlu plugin lagi deh
kalo url sebelumnya /%year%/%monthnum%/%postname%.html terus mau ganti jadi /%postname%.html
bentuk mod rewritenya gmn?
trima kasih
maksudnya gimana? kan tinggal ngerubah dari WordPress-nya?
kalo itu ya tinggal dibuat gini:
RewriteRule ^(.+)/(.+)/(.+)$ http://alamatblog/$3 [R=301,L]Ok deh mas, di cobak dl
ntar klo ada masalah di tanyain lg
Sangar ik! Semangkin meng-IT :)
Apik Sob, tinimbang mainan htaccess saya juga lebih seneng main ginian :))
mas, tagnya [R=301,L] itu artinya kan URL baru jadi permanen. Kalau misalnya kita akses URL lama jadinya gimana? masih bisa ndak?
itulah maksud dari oprekan saya. jadi ketika kita mengakses URL dengan “pola” yang kita tentukan, secara otomatis akan dilempar ke alamat URL baru (dengan pola yg telah kita tentukan juga). ibaratnya cuma diredirect, karena setelah permalink diubah, alamat URL yg lama akan merujuk ke halaman kosong (broken link).
HTTP code 301 itu memberikan makna ketika ada rekues HTTP, si peminta rekues diberi tahu bahwa halaman URL yang dia minta sudah “pindah secara permanen” ke alamat baru. kemudian si peminta rekues akan diarahkan ke alamat yang baru
Mas Zam saya masih ngoprek nih, itu cara yang Mas Zam utarakan kan berlaku kalau struktur URL-nya memiliki sintaks %postname% (bahasa Wordpress). Nah, gimana kalau sintaks URL-nya murni default, seperti http://example.com/?p=345. Kalau pakai caranya Mas Zam itu ndak bisa dunk.
Apa caranya Mas Zam itu terlebih dulu mesti ngubah Options > Permalinks?
ini maksudnya mau diterapkan di web-mu, ya? kalo menurutku, web-mu harus support permalink. mod_rewerite ini cuma alat bantu utk “mengarahkan”, jadi kamu harus punya URL tujuan dulu. untuk mod_rewerite, silakan Googling, ya. emang agak ribet, supaya kamu bisa lebih paham.
dalam kasusku, permalink ini ditangani internal oleh WP. jadi, WP secara otomatis mengubah format URL yg tadinya pake ?p=id ke format permalink yg kita tentukan. nah, mod_rewrite ini aku gunakan hanya untuk mengarahkan link-link lama ke alamat URL baru saja. untuk permalink-nya memang sudah embed di mesin WP-nya. :)
enghhh, anuuu…aku juga pake cara URL yg sama, tapi ndak utak-atik mod_rewrite…tapi kasusnya hampir sama gdengan ketika blog Loenpia diutak-atik .htaccessnya dan semua isi domain plus subdomain nya berubah ke ***.loenpia.net/blog