August 13, 2019

sebarapa pentingkah DOM dan Expires Headers untuk kecepatan loading halaman blog?

speed like thunderstorm
how important the thunder speed?
Siapa yang tidak tahu GTmetrix? Situs uji kecepatan yang juga memberikan kepada kita informasi berharga perihal apa saja yang dapat kita tingkatkan terkait dengan kecepatan dan bagaimana cara meningkatkan kecepatan halaman web atau blog kita. GTmetrix adalah situs yang sangat di puji oleh situs envanto yang banyak menyediakan template template buat blogging baik wordpress maupun blogger.
Kalau anda pembuat atau pengguna template blog, rasanya anda wajib mengetahui ini. Tetapi jika anda tidak ingin tahu juga tidak akan membunuh situs blog anda.

Saat pengujian kecepatan di halaman GTmetrix pada bagian YSlow hanya ada 2 hal yang paling sering menjadi ganjalan yakni: expires date gambar dan elemen DOM yang besar. 2 hal ini yang paling sulit saya atasi dan sampai saat ini saya belum bisa menemukan solusi yang mudah untuk keduanya.

1. Add Expires headers (priority: High)
Pada bagian YSlow anda kadang melihat nilai 0 Expires headers,  anda mungkin menyangka mudah mengatasinya tetapi pada kenyataannya tidaklah sesederhana itu, pakar expert menyatakan,  bagian ini tidak bisa di tambahkan melalui tamplate blog untuk blogger karena sepenuhnya dibawah kontrol sisi server Google.

Ini bedanya platform blogger jika dibanding wordpress yang memiliki addon melimpah.  Namun terdapat pendapat yang nyaris sia sia yakni saran agar menambahkan kode berikut kedalam HTML template blogger:
<include expiration='7d' path='*.css'/><include expiration='7d' path='*.js'/><include expiration='3d' path='*.gif'/><include expiration='3d' path='*.jpeg'/><include expiration='3d' path='*.jpg'/><include expiration='3d' path='*.png'/><meta content='sat, 02 jun 2020 00:00:00 GMT' http-equiv='expires'/>
Namun apakah kode di atas benar benar bekerja? Tidak! Sekalipun anda tunggu berhari hari dan bahkan berminggu minggu, itu tidak akan berpengaruh apa apa pada sisi server, apakah anda melihat kode Php tersisip di dalamnya? NO. Jadi tidak ada alasan mengapa sederet kode seperti itu berguna untuk template berflatform blogger.

Namun jika anda menyangka 100% sia sia usaha mempercepat blog pada bagian expires headers,  anda juga salah,  dua blog ini,  mastamvan.blogspot.com dan igniel.com ternyata masing masing mendapat nilai kecepatan 100 pada bagian kecepatan pagespeed dan Yslow GTmetrix.  Bagaimana mereka melakukannya? Ini gambaran perbandingan kecepatan jika:
  1. Jika: editblogtema versus igniel versus Mastamvan. Mastamvan juara 1 
  2. Template igniel dan mastamvan tidak terdapat kode "jutek" diatas
  3. Jika: editblogtema versus kompiajaib versus arlinadesign. editblogtema juara 1
  4. Pada template Arlina terpasang kode "jutex" diatas. Aneh bukan?
Lihat bukti screenshootnya:
mengukur kecepatan blog dengan GTmetrix
Mengukur kecepatan blog dengan GTmetrix
Pada salah satu artikelnya igniel.com menjelaskan perihal pemasangan lazyload gambar.  Saya percaya hal itu mungkin penyebab mengapa nilai expires headersnya tinggi sedangkan nilai expires headers saya "0".

Tetapi tunggu saya juga melakukan percobaan untuk tidak menampilkan gambar atau image atau thumbnail pada homepage blog,  saat saya uji nilai expires headers saya juga meningkat!  Jelas server Google membaca ini. Akan tetapi itu juga terlihat salah mengingat Kompiajaib menggunakan template tanpa gambar pada homepagenya sedangkan template editblogtema buatan saya lebih mirip template Arlina yang pada homepage-nya dipenuhi gambar dengan ukuran besar. Template Arlina nilai YSlow sangat rendah. Soal kecepatan (pagespeed) editblogtema menang 1 angka diatas kompiajaib, 8 point diatas Arlina.

Atau mungkin anda bisa membuat artikel tanpa gambar saja untuk meningkatkan performa agar nilai expires headers mendapat skor 100? Anda tidak akan setuju terhadap hal ini: Menaikan performa kecepatan blog dimata mesin pencari tetapi mengabaikan kesan baik visual manusia adalah hal yang cukup sulit kita lakukan.

2. Reduce the number of DOM elements (priority: Low)

Walau prioritynya Low alias rendah jika dibanding dengan expires headers yang high alias tinggi, namun setiap orang setuju jika jumlah DOM yang kecil akan sangat meningkatkan performa halaman blog. Itu akan membuat performa javascript menjadi lebih baik, terutama jika berjalan pada browser browser yang lebih tua.
Tentu saja jika terlalu banyak bits utnuk di muat pasti akan memperlambat akses DOM di dalam JavaScript.
Akan tetapi bagaimana sih caranya memperkecil elemen DOM? Apa sih biang keroknya yang membuat kita pusing tujuh keliling memperbaiki ini?

Perhatikan contoh element HTML dibawah ini, ada yang berpendapat sebaiknya anda menggunakan atribut <ul></ul> ketimbang <div></div> untuk mengurangi elemen DOM tesebut

Atau dengan kata lain, jika memungkinkan lebih baik menggunakan:
<ul id="navigation-main"> etc..</ul>
Ketimbang menggunakan:
<div id="navigation-main"> <ul> etc.. </ul></div>
Sudah barang tentu terkadang kita perlu menggunakan tambahan div untuk keperluan layout. Hanya saja jika tidak benar benar diperlukan jangan menggunakan itu.
Atau, ketimbang menggunakan tag <ul>, lebih baik menggunakan tag <a> dan terapkan style untuk custom class.

Buang semua tags <br> mereka dihitung sebagai simpul terutama pada navigasi menu yang ditempatkan pada bagian footer template blog, contohnya:
<ul><li><a href="/">Home</a></li><li><a href="/blog/">Blog</a></li></ul>
Harusnya diganti dengan:
<a href="/" class="well-spaced">Home</a><a href="/blog.html" class="well-spaced">Health Blog</a>
Saya telah mencoba menerapkan ini dan tidak terlalu yakin karena perbedaannya hanya sedikit. Dan bagi saya sebagai blogger yang hobi membuat dan mengedit template, hingga saat ini dua hal diatas tetap saja menjadi PR, dan jika nanti saya menemukan solusi sederhana, saya akan menulis dan membagikannya dengan anda semua.

3. Kadang kecepatan bukanlah segalanya..
Perlu dicatat, sejak Google menekankan pentingnya sebuah kecepatan loading halaman web, berbondong bondong orang membahas dan percaya bahwa hal ini hampir menjadi segala galanya. Kecepatan adalah SEO, kecepatan dapat menjadi hal yang ajaib untuk menghilangkan efek bounching, kecepatan adalah..

Tapi anda juga harus ingat:
  1. Kecepatan tidak berarti banyak kalau halaman blog anda tidak memiliki konten bermanfaat, berkualitas dan menarik perhatian
  2. Kecepatan memang disukai mesin jangan pula karena kecepatan anda mengorbankan visual konten bergambar, membuatnya begitu buruk. Kecepatan itu untuk mesin dan secara logika manusia juga menyukainya, tapi penampilan, detail visual dapat menghipnotis manusia walau hal itu masih di abaikan oleh mesin.
  3. Kecepatan juga menjadi absurd kalau tampilan web anda tidak estetis, jelek dan membosankan. 
Jadi memang tidak ada yang sempurna di atas dunia ini, karena:
  1. Kecepatan penting karena kalau halaman blog anda lambat dan manusia gagal mengaksesnya karena kehabisan waktu, blog anda akan ditinggalkan bukan hanya oleh manusia tapi juga oleh logika mesin pencari. Percayalah anda lebih butuh manusia ketimbang mesin pencari
  2. Kecepatan memang bisa membuat konten lebih cepat terindex oleh mesin tapi ketika kontennya buruk, tidak memiliki keyword yang tepat dan menarik tidak akan dibuka atau di akses oleh manusia. Ketika manusia tidak ada yangsinggah logika mesin pencari akan mencatatnya sebagai: Tidak menarik.
  3. Kecepatan penting dapat mengurangi efek bounching, namun sekali lagi tergantung sebarapa bagus dan berkualitas konten anda. Ops.
DLL....Jika memang ingin kecepatan sebagai prioritas, mengapa tidak memilih template AMP saja?
www.editblogtema.net

A coding addict, a hard smoker, love boxing even not a boxer. Love maths even not a scientist

1 comment:

  1. nice share... belum pernah nyoba utak-atik lebih dalam, edit beberapa saja... kecepatan sudah lumayan hehee :)

    ReplyDelete