Penawaran Terbatas! Dapatkan Layanan Website Profesional dengan SEO Gratis untuk Waktu Terbatas!
Blog Images
  • 4 days ago

Langkah Praktis Membuat Sitemap Otomatis di Laravel 11

Cara Membuat Sitemap Dinamis di Laravel 11 untuk SEO Optimal

Sitemap merupakan salah satu elemen penting dalam mengoptimalkan SEO website. Dengan sitemap, mesin pencari seperti Google dapat dengan mudah mengindeks semua halaman penting di situs Anda. Di artikel ini, kita akan membahas cara membuat sitemap dinamis di Laravel 11 yang otomatis diperbarui saat ada perubahan konten di website.

1. Membuat SitemapController

Langkah pertama adalah membuat controller yang akan menangani pembuatan dan penyajian sitemap. Anda dapat menggunakan perintah Artisan berikut untuk membuat controller:

php artisan make:controller SitemapController

Perintah ini akan membuat file SitemapController.php di dalam direktori app/Http/Controllers.

2. Isi SitemapController

Pada SitemapController, kita akan mengambil data dari database (dalam hal ini menggunakan model Post) dan menampilkan data tersebut dalam format XML yang sesuai dengan standar sitemap.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Post;
use Illuminate\Http\Response;

class SitemapController extends Controller
{
    public function index(): Response
    {
        // Ambil semua post yang tersedia
        $posts = Post::latest()->get();
        
        // Kembalikan respons XML dengan data post
        return response()->view('sitemap', [
            'posts' => $posts
        ])->header('Content-Type', 'text/xml');
    }
}

Kode di atas melakukan hal-hal berikut:

 

  • Mengambil Data Postingan: Dengan memanggil Post::latest()->get(), controller akan mengambil semua postingan terbaru dari database.
  • Mengembalikan Respons XML: Data postingan kemudian dikirim ke view sitemap.blade.php, dan hasilnya dikirim sebagai respons dengan format XML.

 

3. Membuat Route untuk Sitemap

 

Langkah selanjutnya adalah membuat route yang akan memetakan URL /sitemap.xml ke controller yang baru saja kita buat. Tambahkan kode berikut ke file routes/web.php:

use App\Http\Controllers\SitemapController;

Route::get('sitemap.xml', [SitemapController::class, 'index']);

 

Route ini akan memastikan bahwa saat seseorang mengakses URL https://yourwebsite.com/sitemap.xml, Laravel akan memproses permintaan tersebut dan menghasilkan sitemap dalam format XML.

 

4. Membuat View sitemap.blade.php

 

Selanjutnya, kita akan membuat view sitemap.blade.php di dalam folder resources/views. View ini bertanggung jawab untuk mengubah data postingan menjadi format XML yang sesuai dengan standar sitemap.

 

Isi dari sitemap.blade.php adalah sebagai berikut:


<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    @foreach ($posts as $post)
        <url>
            <loc>{{ url('/') }}/post/{{ $post->slug }}</loc>
            <lastmod>{{ $post->updated_at->tz('UTC')->toAtomString() }}</lastmod>
            <changefreq>weekly</changefreq>
            <priority>0.8</priority>
        </url>
    @endforeach
</urlset>

Pada kode di atas:

  • <loc>: Menyediakan URL lengkap dari setiap postingan, menggunakan slug untuk memastikan URL unik.
  • <lastmod>: Menyediakan tanggal dan waktu terakhir postingan diperbarui, dalam format Atom, yang dibutuhkan oleh sitemap.
  • <changefreq>: Menunjukkan frekuensi perubahan konten (dalam contoh ini diatur ke weekly).
  • <priority>: Menentukan prioritas dari halaman tersebut (0.8 adalah prioritas menengah).

5. Memastikan Sitemap Berfungsi

Setelah Anda menyelesaikan semua langkah di atas, Anda bisa mengakses sitemap di browser dengan membuka https://yourwebsite.com/sitemap.xml. Sitemap ini akan menampilkan semua postingan di website dalam format XML yang mudah diakses oleh mesin pencari.

6. Caching Sitemap (Opsional)

Jika website Anda memiliki banyak postingan, Anda dapat mempertimbangkan untuk men-cache hasil sitemap untuk mengurangi beban server. Caching dapat dilakukan menggunakan fungsi Cache::remember() sebagai berikut:
$posts = Cache::remember('sitemap-posts', 60, function() {
    return Post::latest()->get();
});

Kode di atas akan menyimpan data postingan dalam cache selama 60 menit.

Kesimpulan

Dengan mengikuti langkah-langkah di atas, Anda bisa membuat sitemap dinamis di Laravel 11 yang secara otomatis memperbarui diri saat ada perubahan di website. Sitemap ini sangat penting untuk memastikan mesin pencari dapat mengindeks semua halaman penting di situs Anda, yang pada akhirnya dapat meningkatkan peringkat SEO website Anda.