Cara Buat Sitemap XML AGC Pake PHP Tanpa Database MySQL Simpel Banget [BASIC]

Setelah melihat daftar keyword yang masuk ke blog dugagc ini, ada lumayan banyak yang mencari cara membuat sitemap, na pada tutorial yang berjudul Cara Buat Sitemap XML AGC Pake PHP Tanpa Database MySQL Simpel Banget, kita akan bahas cara simpelnya.

Untuk mengikuti tutorial ini anda harus:
  1. Paham PHP (Sedikit saja, minimal paham dimana tempat ngetik code, copas code, dll)
  2. Terbiasa dengan perulangan (foreach,dll)
  3. Terbiasa dengan array
Mengapa saya sebut simpel / mudah, karena sitemap ini tanpa database mysql, kita hanya menggunakan database dari file txt saja, maksud saya adalah datanya dari file txt.

Function-function yang digunakan juga tidak banyak, seperti function file, slug (keyword to url), dll.

  • Ikuti tutorial ini, pertama buat dulu folder sitemap didalam folder htdocs anda (yang saya di C:\xampp\htdocs\sitemap). Nantinya akses di browser localhost/sitemap.
  • Buat sebuah file .htacces, gunakan text editor (Saya pake sublime text)
  • Buat sebuah file function.php disini tempat naroh function-function php
  • Buat sebuah file kw.txt tempat simpan keyword-keyword
  • Buat sebuah file sitemap.php, ini tempat kode intinya.
Kalau sudah semua kira-kira begini hasilnya:
Struktur File

File .htaccess
Sekarang kita isi htaccessnya dengan code ini.
RewriteEngine On
RewriteRule ^sitemap.xml$   sitemap.php

Baris pertama untuk mengaktifkan rewrite, baris kedua adalah rewrite url, jadi saat akses sitemap.xml maka dia akan eksekusi sitemap.php

File function.php
Isi dari function ini adalah daftar kode snippet yang dibutuhkan, disini hanya satu function yaitu function slug, untuh mengubah spasi menjadi minus , bisa saja pake str_replace jadi isinya seperti ini.
<?php
//https://stackoverflow.com/a/2955878
function slugify($text)
{
  // replace non letter or digits by -
  $text = preg_replace('~[^\pL\d]+~u', '-', $text);

  // transliterate
  $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);

  // remove unwanted characters
  $text = preg_replace('~[^-\w]+~', '', $text);

  // trim
  $text = trim($text, '-');

  // remove duplicate -
  $text = preg_replace('~-+~', '-', $text);

  // lowercase
  $text = strtolower($text);

  if (empty($text)) {
    return 'n-a';
  }

  return $text;
}

File kw.txt
Disini tempat narok daftar keyword agc kita, pisahkan dengan baris baru / enter.

File Sitemap.php
Ini adalah file inti, dimana proses mengubah keyword menjadi url ada di file ini, kemudian mengubah extention menjadi xml juga ada disini:
<?php
header ("Content-Type:text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n";

#CONFIG
require 'function.php';
$keywords = file('kw.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$agc_url = 'http://localhost/sitemap/artikel/';//Halaman AGC
$suffix_url = '';// .html .php dan lainnya.
?>

<?php foreach ($keywords as $kw): ?>
  <url>
    <loc><?=$agc_url.slugify($kw).$suffix_url?></loc>
  </url>
<?php endforeach ?>
</urlset>

Saya jelaskan terlebih dahulu.

header ("Content-Type:text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n";

Baris ini adalah mengubah type konten menjadi xml, dan baris kedua-ketiga itu untuk format dari sitemap itu sendiri, lebih jelasnya bisa lihat struktur sitemap

#CONFIG
require 'function.php';
$keywords = file('kw.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$agc_url = 'http://localhost/sitemap/artikel/';//Halaman AGC
$suffix_url = '';// .html .php dan lainnya.

Kode ini adalah untuk memanggil file function.php kemudian memanggil file keyword lalu di ubah menjadi array. Keterangan lainnya lihat ada di baris kode.

Sementara kode akhir ini:
<?php foreach ($keywords as $kw): ?>
  <url>
    <loc><?=$agc_url.slugify($kw).$suffix_url?></loc>
  </url>
<?php endforeach ?>

Berguna untuk mengulang baris url, jumlahnya sebanyak dari daftar keyword yang ada pada file kw.txt 

Kode </urlset> adalah sebagai penutup dari kode
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n";

Bagaimana ? mudah bukan, tapi ini hanya basic, yang penting anda paham alurnya. Nanti bisa diterapkan diagc masing masing. Untuk tutorial agc mungkin nanti kita buat tutorial video , jadi bisa anda subscribe youtube dugagc, dan nyalakan loncengnya biar dapat update terbaru jika kita upload video.

Untuk mengakses sitemap silahkan coba dibrowsernya:http://localhost/sitemap/sitemap.xml
hasilnya:
sitemap.xml

Kalau ada yang belum paham bisa di tulis dikomen. Mungkin yang lain juga bisa menjawabnya, terima kasih guys.

Share on Facebook
Share on Twitter
Share on Google+
Notification ! {New!}
Beberapa artikel di blog ini terkadang berisi informasi dari berbagai macam sumber. Hak cipta berupa gambar, teks, dan link sepenuhnya dimiliki oleh web tersebut.
Tags :

Ads

3 comments

saya coba masukin jutaan keyword di kw.txt kok muncul error ya mas? "This page contains the following errors:
error on line 2 at column 61: Extra content at the end of the document
Below is a rendering of the page up to the first error."

tapi kalau yang dimasukin hanya beberapa kw, hasil nya mirip dengan hasil yang mas buat.

semua file ditaruh di folder sitemap atau folder utama?

bangm kalau keyword text di bikin bnyk gmana biar keyword jadi bnyk, misal keyword1.txt , keyword2.txt, dll. klw punya abng kan itu cuma kw.txt

Ayo sob di komen, kalau ada salah atau saran, kritik boleh coret coret dibawah, gratis kok!