Tutorial Cara Membuat Sitemap Otomatis di Codeigniter
Pada tutorial kali ini saya akan berbagi tips & trik cara membuat sitemap xml otomatis di Codeigniter 3.
Sitemap.xml sendiri adalah sebuah file yang berisikan struktur url yang ada dalam sebuah website maupun blog. Peran sitemap sendiri berguna untuk membantu mesin pencarian seperti Google dan lainnya untuk memahami struktur alamat url yang ada di website kita.
Selain itu Fungsi lain dari Sitemap.xml ini adalah sebagai salahsatu upaya optimsai SEO (search engine optimization). Mesin pencari akan lebih mudah dalam meng-crawling setiap halaman dari website kita melalui sitemap.xml yang tersedia.
Jika sudah memiliki sitemap maka tinggal kita submit sitemap tersebut ke mesin pencari misalnya, Google Search Console. Maka secara otomatis nantinya jika kita menambah halaman baru di website kita maka Google akan segera melakukan proses crawling terhadap url baru tersebut melalui fitur Sitemap yang telah ada.
Sitemap yang dibuat juga harus menggunakan format .xml
Sebenarnya Google bisa saja mengindex sebuah halaman website kita di pencariannya tanpa menggunakan Sitemap, namun hal tersebut membutuhkan waktu yang cukup lama.
Menurut pengalaman pribadi saya, dengan adanya sitemap Google lebih cepat dalam mengindex halaman website kita.
Baca juga : Cara Submit Sitemap.xml di Google Search Console.
Kamu bisa juga melihat contoh sitemap yang ada di blog ini dengan mengakses bedahdigital.com/sitemap.xml
Jika sudah paham ap aitu sitemap dan betapa pentingnya sitemap untuk website kita, mari kita belajar cara membuat sitemap otomatis dengan Codeigniter.
Membuat sitemap.xml Otomatis dengan Codeigniter
Langkah pertama yang harus kalian siapkan adalah daftar halaman atau artikel yang nantinya kita ambil alamat urlnya dan kita gunakan untuk membuat sitemap.xml ini.
Pada tutorial kali ini saya anggap kamu sudah punya sebuah database beserta daftar artikel yang sudah berisi slug url atau alamat halamam lainnya. Dan pastinya projek yang nantinya digunakan menggunakan Framework Codeigniter.
Bila belum punya silahkan gunakan projek berikut ini untuk dijadikan percobaan,
1. Setting Routes Codeigniter
Langkah pertama yang harus dilakukan adalah setting routes.php yang ada di folder Application/config/routes.php
Kemudian tambahkan kode berikut ini :
$route['sitemap\.xml'] = 'SitemapController/index';
Kode diatas berguna agar nantinya file sitemap yang kita buat bisa diakses dengan esktensi .xml, atau seperti hasil berikut ini :
Namadomain.com/sitemap.xml
2. Buat Model Pengambilan Data
Langkah kedua, buat Model baru di folder Application/models dengan nama SitemapModel.php
Kemudian masukan kode dibawah ini:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class SitemapModel extends CI_Model {
function create() {
$this->db->select('slug_url,last_update');
$this->db->where('status','publish');
return $this->db->order_by('last_update', 'desc')->get('tbl_post')->result_array();
}
}
?>
3. Buat Controller Baru
Langkah ketiga, buat Controller baru di folder Application/controllers dengan nama SitemapController.php
Kemudian masukan kode dibawah ini:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class SitemapController extends CI_Controller {
public function index(){
$this->load->model('SitemapModel');
$post = $this->SitemapModel->create();
$data = [
'post' => $post,
];
$this->load->view('sitemap', $data);
}
}
?>
Penjelsan kode diatas :
Pada function index tersebut pada baris pertama ada perintah untuk load model Dari SitemapModel yang berisikan perintah untuk mengambil data di database.
Variable $post = $this->SitemapModel->create();
untuk menampung data dari pos/artikel dari database.
Kemudian data tersebut dikirimkan ke view menggunakan array $data
4. Buat View
Pada Langkah terakhir ini kita akan membuat sebuah view khusus untuk menampilkan data yang telah dikirimkan dari Controller SitemapController.php ke view.
Buat view dengan nama sitemap.php kemudian masukan kode dibawah ini:
<?php
header('Content-type: application/xml; charset="ISO-8859-1"',true);
$datetime1 = new DateTime(date('Y-m-d H:i:s'));
?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc><?= base_url() ?></loc>
<lastmod><?= $datetime1->format(DATE_ATOM); ?></lastmod>
<changefreq>daily</changefreq>
<priority>0.1</priority>
</url>
<?php foreach($post as $item) { $datetime = new DateTime($item['last_update']);?>
<url>
<loc><?= base_url($item['slug_url']) ?></loc>
<lastmod><?= $datetime->format(DATE_ATOM); ?></lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<?php } ?>
</urlset>
Keterangan kode:
Pada baris pertama, kita mendefinisikan kalua file ini bertipe file xml;
Kemudian kita melakukan looping terhadap data yang telah dikirimkan dari controller seperti diatas.
Pada bagian <loc>
merupakan alamat url dari halaman website yang ada.
<lastmode>
, diisi dengan tanggal terakhir kita memodifikasi artikel/halaman yang kita buat tersebut
<changefreq>
merupakan rentangan waktu request perubahan yang kita inginkan ke search engine agar mereka selalu meng crawling halaman website kita bila terdapat perubahan baru. Bisa diisikan "daily" agar postingan kita selalu terupdate di hasil pencarian bila terdapat modifikasi.
<priority>
Merupakan prioritas dari alamat url yang kita inginkan, Kamu bisa mengisikan angka dari 0.1 untuk sangat di prioritaskan hingga 0.5 yang tidak terlalu di prioritaskan.
Jika sudah selesai, maka tahapan terakhir adalah mencoba running/testing
Silahkan ketikan localhost/nama_projek/sitemap.xml atau namadomain.com/sitemap.xml
Berikut contoh struktur hasil sitemap.xml
Kesimpulan :
Peran sitemap sangatlah penting agar mesin pencarian seperti Goole,Bing, Yahoo dll dapat lebih mudah mendapatkan info sekema url yang ada dalam website kita. Membuat sitemap dengan codeigniter tidaklah susah, dikarekanan kita tinggal menampilkan data yang ada di dalam database ke dalam file sitemap sehingga bila ada penambahan artikel baru/halaman baru secara otimatis akan bertambah juga di file sitemap.xml
Bila ada yang ditanyakan silahkan ditanyakan langsung di kolom komentar dibawah ini, terimakasih 😊