Membuat SEO Friendly URL di PHP: Clean & RESTful URL

URL ramah pengguna atau yang dikenal sebagai clean URL, RESTful URL, dan URL ramah mesin pencari merupakan struktur tautan yang mudah dibaca oleh manusia serta dioptimalkan untuk mesin pencari. Dalam pengembangan web menggunakan bahasa pemrograman PHP, penerapan tautan yang bersih biasanya mengandalkan modul mod_rewrite pada web server Apache untuk mengubah parameter kueri URL tradisional menjadi struktur direktori yang lebih rapi.

Sebagai contoh, alih-alih menggunakan struktur tautan standar seperti https://example.com/detail.php?id=12&kategori=teknologi, penggunaan URL yang ramah SEO akan menghasilkan tautan berbentuk https://example.com/teknologi/12/membuat-seo-friendly-url. Hal ini tidak hanya meningkatkan pengalaman pengguna saat bernavigasi, tetapi juga memberikan konteks tambahan bagi mesin pencari mengenai isi halaman tersebut.

Konfigurasi Dasar Apache .htaccess

Langkah pertama dan paling krusial dalam menerapkan URL ramah SEO di PHP adalah memastikan modul mod_rewrite pada Apache telah aktif. Buat sebuah berkas bernama .htaccess di direktori root proyek web Anda untuk menangani pengalihan (rewriting) permintaan URL masuk.

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/?$ detail.php?kategori=$1&id=$2 [L,QSA]

Penjelasan aturan di atas:

  • RewriteEngine On: Mengaktifkan mesin penulisan ulang URL.
  • RewriteCond %{REQUEST_FILENAME} !-f: Memastikan aturan tidak berjalan jika berkas fisik yang diminta benar-benar ada.
  • RewriteCond %{REQUEST_FILENAME} !-d: Memastikan aturan tidak berjalan jika direktori fisik yang diminta benar-benar ada.
  • RewriteRule: Menangkap pola URL dinamis dan meneruskannya ke berkas skrip PHP tujuan beserta parameternya.

Menangkap Parameter di Berkas PHP

Setelah aturan pengalihan dikonfigurasi melalui berkas .htaccess, Anda dapat mengambil nilai variabel yang dikirimkan melalui URL di dalam berkas PHP tujuan (misalnya detail.php) menggunakan variabel super global $_GET.

<?php
// Berkas: detail.php

$kategori = isset($_GET['kategori']) ? htmlspecialchars($_GET['kategori']) : '';
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;

echo "Kategori: " . $kategori . "<br>";
echo "ID Artikel: " . $id;
?>

Tabel Perbandingan Struktur URL

Berikut adalah perbandingan langsung antara struktur URL konvensional dengan struktur URL yang dioptimalkan untuk mesin pencari:

ewa
Parameter URL Konvensional (Default) URL Ramah SEO (Clean URL)
Format Dasar index.php?page=profil /profil
Parameter Tunggal article.php?id=45 /artikel/45/judul-artikel
Parameter Ganda shop.php?cat=elektronik&item=99 /elektronik/item/99

Praktik Terbaik Penerapan Clean URL

Dalam mengimplementasikan URL ramah mesin pencari, terdapat beberapa hal penting yang wajib diperhatikan agar performa situs tetap optimal:

  • Gunakan Slug yang Relevan: Pastikan bagian teks pada URL mencerminkan judul halaman atau kata kunci utama yang dipisahkan oleh tanda hubung (tanda minus -).
  • Tangani Canonical Tag: Gunakan tag <link rel="canonical" href="..."> di bagian kepala HTML untuk menghindari masalah duplikasi konten akibat variasi akses URL.
  • Validasi dan Sanitasi: Selalu lakukan sanitasi serta validasi tipe data (seperti konversi integer pada ID) untuk mencegah celah keamanan injeksi atau kesalahan eksekusi kode.