Solusi Problem 404 Handler OpenCart
404 Handler adalah mekanisme OpenCart untuk memberi tahu pengunjung toko online bahwa sebuah produk, kategori, informasi, atau pemasok yang diakses melalui URL tertentu tidak terdapat dalam toko online. Misalnya karena pengunjung mengakses URL produk yang sudah dihapus dari katalog. OpenCart versi 1.3.2 memiliki bug yang berkaitan dengan 404 handler. Posting ini akan menjelaskan bug tersebut, apa implikasinya, dan bagaimana solusinya.
Apa Itu 404 Handler?
Sebagai aplikasi web standar, OpenCart menggunakan kode status untuk memberi tahu pengunjung toko online bahwa sebuah request sukses atau gagal. Jika kita mengakses sebuah URL dalam OpenCart dan berhasil, kode status yang dihasilkan adalah 200. Sedangkan apabila gagal karena resource yang berkaitan dengan URL tersebut tidak terdapat dalam server, maka kode status yang dihasilkan adalah 404.
Bagi pengunjung manusia, biasanya kode status ini tidak terlalu penting. Yang penting adalah pesan pemberitahuan bahwa halaman yang dicari sudah tidak ada dalam server. Namun tidak demikian dengan pengunjung bukan manusia yang dinamakan web crawler. Pengunjung dengan tipe ini biasanya berupa web bot yang berasal dari mesin pencari seperti Google dan Bing yang bertugas mengindeks halaman web yang mereka kunjungi. Bagi mereka kode status ini penting.
OpenCart memiliki mekanisme yang dinamakan 404 Handler yang bertugas menangani semua request yang resource-nya tidak ditemukan. Handler inilah yang menampilkan pesan error bahwa sebuah produk atau halaman tidak ditemukan dalam server. Handler ini juga yang seharusnya mengeluarkan kode status 404.
Bug 404 Handler OpenCart
404 Handler dalam OpenCart versi 1.3.2 tidak bekerja dengan semestinya, alias bug. Hal ini bisa dibuktikan dengan skenario berikut ini:
- Hidupkan fitur SEO URL dari layar admin.
- Akses sembarang URL pada katalog OpenCart, misalnya
http://opencart.local/qwerty.
Perhatikan bahwa yang ditampilkan di layar adalah tetap halaman depan OpenCart, seperti terlihat dalam gambar berikut ini:
Seharusnya 404 Handler menangkap request qwerty sebagai request yang tidak ditemukan resource-nya dalam server dan memberitahukan pengunjung toko online bahwa qwerty tidak dijumpai. Hal ini karena kita belum mendefinisikan qwerty di mana pun, baik sebagai produk, informasi, kategori, maupun pemasok.
Implikasi Problem 404 Handler OpenCart
Bagi pengunjung toko online, munculnya halaman depan pada saat mengakses URL tertentu dalam sebuah toko online mungkin tidak memberikan pengaruh yang signifikan. Namun bagi web crawler, kode status ini mempunyai arti yang penting. Jika menjumpai kode status 404, web crawler akan mengabaikan URL yang diakses dan tidak akan meng-indeks-nya dalam server mereka.
Namun jika halaman yang seharusnya menghasilkan kode status 404 tetapi memberikan kode status 200 (berhasil), halaman tersebut akan ter-indeks dalam server web crawler. Dengan demikian URL /qwerty akan dianggap sebagai halaman yang ada dalam toko online OpenCart, dan isinya sama dengan isi dari halaman depan OpenCart.
Problem yang timbul adalah duplikasi konten. Lebih lanjut tentang duplikasi konten beserta implikasinya bisa dibaca dari alamat berikut ini: http://googlewebmastercentral.blogspot.com/2008/09/demystifying-duplicate-content-penalty.html.
Solusi
Solusi untuk problem 404 Handler OpenCart adalah dengan menyunting source code beberapa berkas PHP. Yang pertama, tambahkan kode berikut pada berkas /catalog/controller/common/seo_url.php di baris 32:
else {
// if not found in mapping,
// re-route to error/not_found handler.
$this->request->get['route'] = 'error/not_found';
break;
}
Kemudian, tambahkan kode berikut ini pada berkas /catalog/controller/error/not_found.php di baris 37:
Header('HTTP/1.1 404 Not Found');
Setelah melakukan dua perubahan ini, problem 404 Handler OpenCart harusnya sudah hilang. Untuk membuktikannya, buka browser dan arahkan ke http://opencart.local/qwerty. Sebuah pesan error "Halaman tidak ditemukan" akan ditampilkan, seperti terlihat dalam gambar berikut ini:
Dan apabila kita gunakan Fiddler untuk melihat kode status yang dihasilkan dari halaman tersebut terlihat bahwa untuk request /qwerty, kode status yang dihasilkan sudah benar yaitu 404. Gambar berikut menunjukkan layar inspektor Fiddler yang menampilkan kode status 404.
Kesimpulan
OpenCart versi 1.3.2 memiliki bug pada 404 Handler yang belum bekerja dengan baik. Problem ini mempunyai implikasi pada SEO toko online karena berpotensi menimbulkan problem duplikasi konten. Solusinya adalah dengan menambahkan beberapa kode pada beberapa berkas OpenCart sehingga 404 Handler bisa bekerja dengan baik.









30 Januari 2010 - 21:33
makasih pak.. matep bangt nie…
saya mau nanya .. gimana caranya nambah catalog di sidebar ?? misal utk beri gambar / script lain spt di sidebar wp
20 Februari 2010 - 02:21
OpenCart menggunakan teknik MVC (model view controller)… kita mesti ngerti teknik ini agar bisa menambahkan konten di mana pun. Intinya asal ada method di controller, dan output method tsb bisa kita gunakan dalam sebuah view berarti kita bisa menambahkan apa pun dalam OpenCart… Detilnya mungkin nanti kalau saya sudah menurunkan sebuah posting tentang hal ini
25 Januari 2010 - 22:59
Untung aku mampir, melihat dan membaca informasi penting ini.
Terima kasih master agus suhanto.
21 Februari 2010 - 07:10
Sama-sama Floris, makasih udah posting comment
9 Januari 2010 - 08:56
hello, this ia a good tip , also i use your solution from opencart forum you posted – can u provide this fix with the last version of opencart ..this is will be good very useful for me….thanks !!
20 Februari 2010 - 02:29
I wish I have the time to do it…
18 November 2009 - 14:27
bukannya lebih bagus kalo terindex produk yang 404 itu, menjadi available di search engine? hehe
20 Februari 2010 - 03:21
tentu saja tidak, kalau memang tidak ditemukan paling bagus kasih tau search engine kalau page tsb tidak ditemukan… kalau mengarah ke index.php nantinya bisa jadi duplicate links (duplicate content)…
9 November 2009 - 21:06
Salam kenal Mas Agu Suhanto. Aku kenal kenal anda karena anda telah mengunjungi blogku makasih ya? Mampir lagi di posting terbaruku ya? Jangan lupa http://gurubangkit.wordpress.com
9 November 2009 - 01:38
salam kenal dengan orang madura mas
semoga awal yang baik
terus berkarya dan berbagi informasi
8 November 2009 - 08:45
Mas Suhanto,
Trims atas tulisannya..saya langsung bikin jualan online rumah kos-kosan harga grosir pake OpenCart. walo baru 2 rumah kos yang saya posting. lumayan buat pemula
Oia, gimana cara menambahkan module statistik pengunjung ya?
Wassalam,
Doni Afrizal
http://www.doniafrizal.com | Jual Rumah Harga Grosir
21 Februari 2010 - 07:11
mantap sekali Pak Doni…. yang penting jualannya ya Pak