Yii2 - Membuat sitemap untuk memperbaiki dan memperkuat SEO

Meng-optimalkan sebuah website, dengan cara meningkatkan performa crawler berbagai mesin pencarian di internet agar lebih mudah di indeks.
Published di Yii2, 2 years ago

Sekedar sharing dan media dokumentasi saya.

Niagahoster sudah membahas tuntas apa itu sitemap, simple nya: Sitemap adalah sebuah halaman atau page yang memuat semua informasi link yang ada pada sebuah website. Informasi berupa category, post, page, image hingga tag, semua tercantum pada halaman sitemap. Yang akan saya bahas adalah sitemap berupa file xml untuk search engine menggunakan Yii2 (not wordpress). 

Sedangkan fungsi sitemap menurut IDWebhost adalah:

  1. Mempermudah Pengunjung Menemukan Website
  2. Visibilitas Website
  3. Website Cepat Terindeks
  4. Berinteraksi Lebih Baik dengan Mesin Pencari
  5. Meningkatkan Penjualan

Implementasi nya di Yii2

Ada banyak metode untuk membuat sitemap.xml ini, mulai dari cara yang tradisional sampai menggunakan ekstension. Perlu kita ketahui, sitemap.xml ini biasanya dibuat public sehingga tidak perlu ada authentication ataupun authorization saat mengakses route sitemap.xml. 

Cara tradisional di Yii2 kira-kira seperti ini: Let`s say Google melakukan indexing sitemap.xml seperti ini pada blog saya via route https://dzil.my.id/sitemap.xml, maka interpretasi MVC paradigma adalah sebagai berikut :

  1. Buat sebuah controller, let`s say SitemapController pada folder controller,
  2. Di dalam SitemapController ada actionIndex yang merender file xml,
  3. Ketik manual file sitemap.xml ini, dimana harus mengikuti format baku,
  4. Routing yang terbentuk adalah https://dzil.my.id/sitemap,
  5. Supaya ada ekstension .xml pada url di point ke 4, lakukan definisi url di config/web.php (basic template).


It works, but kekurangannya setelah saya implementasi metode sederhana ini, rasanya males bener nulis file xml ini. Oke, Kita gunakan cara yang kedua, pakai extension. Dan dari sekian banyak ekstension yang saya coba yang ada di internet, ekstension yii2-sitemap yang cukup simple dan yang paling muda saat artikel ini ditulis. Berikut adalah langkah -langkahnya:

Ketikkan di terminal: composer require mrssoft/yii2-sitemap "^2.0" -vvv


Nah, sekarang tinggal me-refactor class SitemapController:


Di line 17 pada controller diatas, sebuah model bernama Article akan di index ke sitemap.xml; Hal ini diinterpretasikan pada potongan kode dibawah pada static function sitemap(). Semua record article akan di index sehingga saya harus membatasi bahwa hanya article yang sudah lewat proses review (>= 1) yang akan di retrieve.


Jika tidak ada masalah dan bug, hasilnya bisa di test langsung di browser:


Done. Untuk memastikan Mbah google setuju, commit, push dan pull last code changes ke produciton, kemudain test langsung saja di Google Search Console menggunakan nama domain production:



Setelah itu, terserah mbah Google saja, kapan dia akan melakukan indexing ke blog milik Kita, karena Kita hanya bisa request ke google, tolong dong index blog saya supaya muncul di mesin pencarianPerlu diketahui, setidaknya kita memerlukan pengetahuan lebih tentang DNS Management juga sedikit sih dalam proses Google mendeteksi Yii2. 

Jika semuanya berjalan lancar, saat kita ketik nama blog pribadi, atau nama brand yang ada di navbar: setidaknya kita ada pada bagian diatas seperti blog saya ini :


Masih banyak yang harus di improve. misalnya penggunan url-slug, user declared cannonical, optimalkan meta tag pada halaman-halaman, tapi setidaknya web blog sudah ada pada bagian paling atas pada kolom pencarian which is good

Setelah sekian lama ngoding, terutama saat membuat web-app, saya akhirnya menyadari sebaiknya minimal ada sekali dalam sekian banyak proyek adalah membuat web blog pribadi. Kenapa?

  1. Saya cenderung membuat web blog pribadi tersebut se-optimal mungkin, seperti meng-deskripsikan diri kita dalam berkarya,
  2. Saya lebih peduli dengan SEO,
  3. Saya bisa menulis pengalaman, roadmap perjalanan karir kita,
  4. Sebagai portofolio CV,
  5. Keren aja ya kan.

Banyak cara membuat blog pribadi, misal pakai wordpress, blogger atau bahkan cukup menulis di medium. Tapi akan beda rasanya jika memang kita membuatnya, merakit, menggunakan, dan menikmati hasilnya. Seperti hobby merakit gundam, nikmatnya adalah saat merakit, memoles, menge-cat, membuat pose keren; beda rasanya kalau membeli gundam yang sudah jadi.

Dukung Saya supaya tetap menulis artikel-artikel yang baik, membayar sewa domain, dan server untuk blog ini. Caranya dengan donasi cendol via Trakteer.id.


No image

Fadly Dzil Jalal

PHP, Yii2 Framework, Laravel, Java, Java Swing, Hibernate, Javascript, Angular, React, MySQL, MongoDB


Dapatkan USD 200 untuk develop aplikasimu di DigitalOcean DigitalOcean Referral Badge