Solusi e-Commerce Membantu Anda ber-jualan online

7Nov/0912

Solusi Problem 404 Handler OpenCart

404404 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:

Bug 404 Handler OpenCart

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:

Solusi 404 Handler OpenCart

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.

Layar Fiddler

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.

Ceritakan kepada teman:
  • Facebook
  • Twitter
  • MySpace

Tulisan Terkait:

  1. Memaksimalkan Modul Transfer Bank OpenCart
  2. Bahasa Indonesia untuk OpenCart

Penulis: Agus Suhanto

Praktisi e-Commerce
Komentar (12) Lacak balik (0)
  1. makasih pak.. matep bangt nie…

    saya mau nanya .. gimana caranya nambah catalog di sidebar ?? misal utk beri gambar / script lain spt di sidebar wp :D

    • 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 :)

  2. Untung aku mampir, melihat dan membaca informasi penting ini.
    Terima kasih master agus suhanto.

  3. 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 !!

  4. bukannya lebih bagus kalo terindex produk yang 404 itu, menjadi available di search engine? hehe

    • 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)…

  5. 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

  6. salam kenal dengan orang madura mas
    semoga awal yang baik
    terus berkarya dan berbagi informasi

  7. 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


Tulis komentar


Belum ada lacak balik.