Showing posts sorted by relevance for query mempercepat-loading-blog-dengan-tag-kondisional. Sort by date Show all posts
Showing posts sorted by relevance for query mempercepat-loading-blog-dengan-tag-kondisional. Sort by date Show all posts

Tuesday, 26 February 2019

Jadi Berilmu Mempercepat Loading Blog Dengan Tag Kondisional Untuk Jalan Masuk Mobile


Kecepatan loading blog merupakan salah satu tehnik SEO yang sudah banyak dibahas dan diterapkan oleh kaum blogger untuk kenyamanan pengunjung dan mesin pencari. Apalagi ketika ini google sudah menganjurkan penggunaan template blog dengan accelerated mobile pages (AMP) alasannya ialah template menjadi faktor utama untuk loading super cepat.

Namun banyak kaum blogger yang tidak menyadari bahwa meskipun loading blognya sudah cepat, ternyata masih sedikit lambat alasannya ialah banyak instruksi HTML yang khusus tampil di perangkat mobile masih terbaca / di load oleh browser ketika diakses melalui perangkat desktop, atau sebaliknya.

Karena itu disini aku ingin membuatkan sedikit pandangan kepada teman-teman blogger. Blog aku ini (bisa juga blog anda) sangat jarang sekali ada komentar dari pengunjung unik terutama pengunjung dari perangkat mobile, bahkan tidak ada sama sekali. Sehingga aku berinisiatif untuk menghilangkan kolom komentar di perangkat mobile.

Maka untuk menghilangkan kolom komentar di perangkat mobile tidak cukup hanya memakai CSS menyerupai ini:
 @media screen and (max-width:610px){
#comments{display:none !important;}
}

alasannya ialah dengan hanya memakai CSS tersebut kolom komentar hanya tidak tampil, tapi tetap terbaca oleh browser.

Untuk itu, perlu tag kondisional semoga instruksi HTML untuk komentar juga tidak di load oleh browser;
 <b:includable id='comments' var='post'>
 <b:if cond='data:blog.pageType == &quot;item&quot;'>
  <div class='comments' id='comments'>
    <b:include data='post' name='disqus-comment'/>
  </div>
 </b:if>
</b:includable>

yang aku tandai ialah tag kondisional halaman postingan, kita perlu menambahkan tag kondisional khusus perangkat mobile berikut ini:

Untuk menghilangkan instruksi di perangkat mobile, silahkan gunakan tag kondisional berikut:
 <b:if cond=' data:blog.isMobileRequest == &quot;false&quot;'>
.........................
</b:if>
Jika ada instruksi yang khusus tampil di perangkat mobile menyerupai tombol share whatsapp (WA), silahkan gunakan tag kondisional berikut:
 <b:if cond=' data:blog.isMobileRequest == &quot;true&quot;'>
.........................
</b:if>

Dari tag kondisional mobile tersebut, kita dapat gabungkan dengan tag kondisional postingan menjadi menyerupai berikut:
 <b:if cond='data:blog.pageType == &quot;item&quot; and data:blog.isMobileRequest == &quot;false&quot;'>
.........................
</b:if>
Jika kita aplikasikan untuk menghilangkan instruksi HTML kolom komentar di perangkat mobile, dapat menjadi menyerupai ini
 <b:includable id='comments' var='post'>
<b:if cond='data:blog.pageType == &quot;item&quot; and data:blog.isMobileRequest == &quot;false&quot;'>
  <div class='comments' id='comments'>
  <b:include data='post' name='disqus-comment'/>
  </div>
</b:if>
</ b:includable>

Begitu juga untuk script disqus (jika memakai komentar disqus)
 <b:includable id='disqus-comment' var='post'>
<b:if cond='data:blog.pageType == &quot;item&quot; and data:blog.isMobileRequest == &quot;false&quot;'>
 <script type='text/javascript'>
  ...............
  ...............
 </script>
</b:if>
</b:includable>

Sidebar
 <b:if cond='data:blog.isMobileRequest == &quot;false&quot;'>
  <div id='sidebar-right'>
  ....................
  </div>
</b:if>
widget
 <b:widget id='HTML2' locked='false' title='' type='HTML' visible='true'>
  <b:includable id='main'>
 <b:if cond='data:blog.isMobileRequest == &quot;false&quot;'>
  .....................
  .....................
 </b:if>
  </b:includable>
</b:widget>

Jika blog anda hanya memakai komentar disqus saja, maka anda dapat menghapus isi dari 2 instruksi js untuk threaded comment berikut ini;
 <b:includable id='threaded_comment_js' var='post'>
...............
ISI YANG PERLU DIHAPUS
...............
</b:includable>

<=========================>

<b:includable id='threaded-comment-form' var='post'>
...............
ISI YANG PERLU DIHAPUS
...............
</b:includable>

kode-kode diatas hanya sekedar rujukan saja, selebihnya dapat anda aplikasikan sendiri. Dengan begitu, maka instruksi HTML blog anda akan diakses oleh browser sesuai peruntukannya masing-masing. Selesai dan selamat mencoba...

Jadi Arif Perlu Diperhatikan Cara Menggabungkan Javascript Untuk Di Defer


Sebelumnya aku sudah share ihwal cara mempercepat loading blog dengan tag kondisional, sebetulnya pada artikel tersebut sudah sangat terperinci sekali dalam mengakali instruksi blog sesuai peruntukannya masing-masing, menyerupai instruksi untuk postingan, homepage, halaman statis, dll. Sehingga ketika browser mengakses halaman postingan, maka instruksi untuk homepage tidak diakses.

Fungsi defer javascript yaitu untuk mempercepat dan tidak mempengaruhi loading blog, ada yang berinisiatif untuk menggabungkan file js yang dihosting untuk di defer agar browser tidak perlu mengakses beberapa file js. Namun yang perlu diperhatikan dalam menggabungkan file js yaitu fungsi script itu sendiri, kalau file js untuk postpage jangan digabung dengan file js khusus homepage.

Coba perhatikan script untuk men-defer file js berikut ini:

Kode js khusus postingan
 <b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>
//<![CDATA[
function downloadJSAtOnload(){var d=document.createElement("script");d.src="url-file1.js",document.body.appendChild(d)}window.addEventListener?window.addEventListener("load",downloadJSAtOnload,!1):window.attachEvent?window.attachEvent("onload",downloadJSAtOnload):window.onload=downloadJSAtOnload;
//]]>
</script>
</b:if>

Kode khusus selain postingan
 <b:if cond='data:blog.pageType != &quot;item&quot;'>
<script type='text/javascript'>
//<![CDATA[
function downloadJSAtOnload(){var d=document.createElement("script");d.src="url-file2.js",document.body.appendChild(d)}window.addEventListener?window.addEventListener("load",downloadJSAtOnload,!1):window.attachEvent?window.attachEvent("onload",downloadJSAtOnload):window.onload=downloadJSAtOnload;
//]]>
</script>
</b:if>

Jika kedua file js diatas digabung menjadi satu (1 url hosting), maka harus menghilangkan tag kondisional.
 <script type='text/javascript'>
//<![CDATA[
function downloadJSAtOnload(){var d=document.createElement("script");d.src="url-file1.js" , "url-file2.js",document.body.appendChild(d)}window.addEventListener?window.addEventListener("load",downloadJSAtOnload,!1):window.attachEvent?window.attachEvent("onload",downloadJSAtOnload):window.onload=downloadJSAtOnload;
//]]>
</script>
Namun perlu diingat bahwa hal tersebut akan mempengaruhi loading blog alasannya yaitu ketika browser mengakses halaman postingan, instruksi / file js khusus selain postingan menyerupai homepage juga akan diakses dan itu sangat tidak diinginkan.

Cara menggabungkan javascript untuk di defer


Sekedar referensi saja untuk memudahkan anda, kita akan menggabungkan isi file.js untuk halaman postingan:

Isi file1.js untuk tombol share
 (function() {
   var dr = document.createElement('script');
   dr.type = 'text/javascript'; dr.async = true;
   dr.src = '//share.donreach.com/buttons.js';
   (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dr);
 })();

Isi file2.js untuk navigasi dibawah postingan
 (function($){
   var newerLink = $('a.blog-pager-newer-link');
   var olderLink = $('a.blog-pager-older-link');
   $.get(newerLink.attr('href'), function (data) {
   newerLink.html($(data).find('.post h1.post-title').text());
   },"html");
   $.get(olderLink.attr('href'), function (data2) {
   olderLink.html($(data2).find('.post h1.post-title').text());
   },"html");
})(jQuery);

Lalu kita satukan (copas) kedua javascript diatas ke notepad menyerupai ini:
 (function() {
   var dr = document.createElement('script');
   dr.type = 'text/javascript'; dr.async = true;
   dr.src = '//share.donreach.com/buttons.js';
   (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dr);
 })();

(function($){
   var newerLink = $('a.blog-pager-newer-link');
   var olderLink = $('a.blog-pager-older-link');
   $.get(newerLink.attr('href'), function (data) {
   newerLink.html($(data).find('.post h1.post-title').text());
   },"html");
   $.get(olderLink.attr('href'), function (data2) {
   olderLink.html($(data2).find('.post h1.post-title').text());
   },"html");
 })(jQuery);

dan simpan dengan nama file.js, lalu dihosting. Saya sendiri menghostingnya di https://github.com/, maka akan mendapat url hosting https://cdn.rawgit.com/NomIfrod/js/master/file.js. Sehingga kalau kita aplikasikan untuk di defer menjadi menyerupai ini:
 <b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>
//<![CDATA[
function downloadJSAtOnload(){var d=document.createElement("script");d.src="https://cdn.rawgit.com/NomIfrod/js/master/file.js",document.body.appendChild(d)}window.addEventListener?window.addEventListener("load",downloadJSAtOnload,!1):window.attachEvent?window.attachEvent("onload",downloadJSAtOnload):window.onload=downloadJSAtOnload;
//]]>
</script>
</b:if>

Jadi, kalau anda ingin menggabungkan file.js maka harus diperhatikan fungsinya. Jika sama-sama script untuk postingan tidak masalah, menyerupai script komentar, tombol share, syntax, dll.

Praktis sekali kan? Selamat mencoba...

Sunday, 3 February 2019

Jadi Cerdik Campuran Template Kompi Flexible Dengan Kompi Magazine


Beberapa hari yang kemudian ada yang inbox dan bertanya kepada saya perihal template yang dipakai blog NomIfrod.com ini, kompi flexible apa kompi magazine? Seperti anda ketahui bahwa awalnya blog ini memakai template kompi flexible kemudian ganti ke kompi magazine, dan kemudian saya tertarik untuk menggabungkan kedua template tersebut.

Untuk kecepatan loading saya tetap suka pada kompi flexible, hanya saja dibagian header ada ruang untuk slot iklan yang berdasarkan saya kurang efektif apalagi untuk adsense. Dari itu saya mulai berinovasi untuk merubah bab header ibarat pada kompi magazine, kemudian saya mulai oprek sana-sini memakai blog percobaan meski sering error juga maklum namanya juga berguru memahami satu persatu.

Berikut ini mungkin akan lebih dapat dipahami beberapa perubahan yang saya lakukan pada template blog ini:

  1. Dasarnya tetap memakai kompi flexible
  2. Pada bab header, menu, dan sidebar mengambil dari kompi magazine
  3. Menghapus megamenu, sticky sajian dan scriptnya biar tidak terlalu membebani loading dan tidak menutupi iklan
  4. Menyatukan semua script dengan jQuery dan di defer untuk mempercepat loading blog, kecuali script iklan ditengah postingan biar iklan dapat eksklusif tampil
  5. Memilah isyarat CSS homepage, postpage, dan staticpage dengan tag kondisional ibarat pada blog AMP HTML sehingga hanya ada satu style per halaman.

Merupakan suatu kebangaan tersendiri bagi saya saat itu hasil modifikasi sendiri. Makara kalau anda bertanya perihal penggunaan template pada blog ini, ya tetap kompi flexible ala magazine. Hehe...

Mungkin itu saja dari saya menyebarkan pengalaman bahwa seorang blogger harus dapat memodifikasi template blognya sendiri. Semoga bermanfaat...