Cara Membuat Sitemap.xml Otomatis di Laravel untuk SEO
Sitemap merupakan salah satu bagian penting dalam optimasi teknis Search Engine Optimization atau SEO. File ini berisi daftar URL yang ingin diperkenalkan kepada mesin pencari, seperti halaman utama, layanan, produk, kategori, dan artikel.
Pada website yang hanya memiliki beberapa halaman, sitemap dapat dibuat secara manual. Namun, cara tersebut kurang efektif untuk website dinamis karena setiap artikel atau produk baru harus ditambahkan satu per satu.
Laravel memungkinkan kita membuat sitemap.xml secara otomatis berdasarkan data yang tersimpan di database. Ketika artikel atau produk baru dipublikasikan, URL-nya akan langsung masuk ke dalam sitemap tanpa perlu mengedit file XML secara manual.
Perlu dipahami bahwa sitemap membantu mesin pencari menemukan URL, tetapi tidak menjamin seluruh halaman akan langsung dirayapi atau ditampilkan pada hasil pencarian. Sitemap tetap perlu didukung oleh konten berkualitas, internal linking, performa website, dan konfigurasi SEO yang baik.
Apa Itu Sitemap.xml?
Sitemap.xml adalah file berformat XML yang berisi daftar URL penting pada sebuah website.
File ini biasanya dapat diakses melalui alamat:
https://domainanda.com/sitemap.xml
Contoh sederhana isi sitemap:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://domainanda.com/</loc>
<lastmod>2026-07-17</lastmod>
</url>
<url>
<loc>https://domainanda.com/artikel</loc>
<lastmod>2026-07-17</lastmod>
</url>
</urlset>
Google mendukung sitemap berdasarkan protokol sitemap standar. File tersebut dapat dikirim melalui Google Search Console atau dicantumkan pada robots.txt.
Fungsi Sitemap untuk SEO
Sitemap memiliki beberapa fungsi penting, antara lain:
Membantu mesin pencari menemukan URL website.
Memberikan informasi mengenai halaman baru.
Membantu proses crawling website yang memiliki banyak halaman.
Memperkenalkan artikel dan produk yang baru diterbitkan.
Membantu website baru yang belum memiliki banyak backlink.
Memberikan informasi waktu terakhir halaman diperbarui.
Mempermudah pengelolaan URL pada website dinamis.
Sitemap sangat bermanfaat untuk website yang memiliki banyak artikel, produk, kategori, gambar, atau halaman yang tidak selalu mudah ditemukan melalui navigasi.
Apakah Semua Website Membutuhkan Sitemap?
Website dengan struktur internal linking yang baik tetap dapat ditemukan oleh mesin pencari tanpa sitemap. Namun, sitemap tetap direkomendasikan terutama jika:
Website masih baru.
Website memiliki banyak halaman.
Artikel dipublikasikan secara rutin.
Website memiliki banyak produk.
Sebagian halaman sulit ditemukan melalui menu.
Website belum memiliki banyak tautan dari website lain.
Konten sering diperbarui.
Website memiliki gambar atau video penting.
Untuk website Ovla Media yang memiliki artikel, produk, layanan, dan halaman permintaan aplikasi, sitemap otomatis dapat membantu memastikan URL penting terdaftar secara terstruktur.
Persiapan Sebelum Membuat Sitemap
Sebelum mengikuti tutorial, pastikan beberapa hal berikut sudah tersedia:
Project Laravel berjalan normal.
Database dapat diakses.
Model artikel atau produk sudah tersedia.
Setiap halaman memiliki URL yang dapat diakses.
Kolom slug sudah tersedia untuk URL dinamis.
Status publikasi dapat dibedakan.
Nilai
APP_URLsudah benar.
Contoh konfigurasi pada file .env:
APP_URL=https://ovlamedia.com
Jangan menggunakan URL localhost ketika aplikasi sudah dijalankan di server production.
Contoh yang tidak sesuai:
APP_URL=http://127.0.0.1:8000
Cara Kerja Sitemap Otomatis di Laravel
Sitemap otomatis akan mengambil data langsung dari database.
Sebagai contoh, ketika terdapat artikel dengan slug:
cara-install-laravel-di-localhost
Laravel akan menghasilkan URL:
https://ovlamedia.com/artikel/cara-install-laravel-di-localhost
Ketika artikel baru ditambahkan, URL tersebut otomatis ikut muncul di dalam sitemap saat halaman sitemap.xml dibuka.
Alurnya adalah:
Pengunjung atau mesin pencari membuka
/sitemap.xml.Laravel menjalankan route sitemap.
Controller mengambil data dari database.
Data dikirim ke template XML.
Laravel mengembalikan respons dengan tipe konten XML.
Cara 1: Membuat Sitemap Langsung dari Route
Untuk kebutuhan sederhana, sitemap dapat dibuat langsung melalui route.
Buka file:
routes/web.php
Tambahkan kode berikut:
<?php
use App\Models\Article;
use Illuminate\Support\Facades\Route;
Route::get('/sitemap.xml', function () {
$articles = Article::query()
->where('status', 'published')
->latest('updated_at')
->get();
return response()
->view('sitemap', compact('articles'))
->header('Content-Type', 'application/xml');
})->name('sitemap');
Kode tersebut mengambil artikel yang memiliki status published, kemudian mengirimkannya ke view bernama sitemap.
Nama model, tabel, dan kolom status dapat disesuaikan dengan struktur aplikasi Anda.
Misalnya, jika model yang digunakan bernama Post, ubah:
use App\Models\Article;
menjadi:
use App\Models\Post;
Membuat View Sitemap
Buat file baru:
resources/views/sitemap.blade.php
Isi dengan kode berikut:
{!! '<?xml version="1.0" encoding="UTF-8"?>' !!}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>{{ url('/') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
<url>
<loc>{{ url('/layanan') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
<url>
<loc>{{ url('/produk') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
<url>
<loc>{{ url('/artikel') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
<url>
<loc>{{ url('/kontak') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
@foreach ($articles as $article)
<url>
<loc>{{ route('articles.show', $article->slug) }}</loc>
<lastmod>{{ $article->updated_at->toDateString() }}</lastmod>
</url>
@endforeach
</urlset>
Sesuaikan nama route berikut:
route('articles.show', $article->slug)
dengan route detail artikel pada aplikasi Anda.
Contoh route detail artikel:
Route::get('/artikel/{slug}', [ArticleController::class, 'show'])
->name('articles.show');
Setelah itu, buka:
https://domainanda.com/sitemap.xml
Jika konfigurasi benar, daftar URL akan tampil dalam format XML.
Cara 2: Membuat Sitemap Menggunakan Controller
Untuk website dengan banyak jenis konten, penggunaan controller lebih rapi dan mudah dikembangkan.
Buat controller:
php artisan make:controller SitemapController
Laravel akan membuat file:
app/Http/Controllers/SitemapController.php
Buka file tersebut, kemudian isi dengan kode berikut:
<?php
namespace App\Http\Controllers;
use App\Models\Article;
use App\Models\Product;
use Illuminate\Http\Response;
class SitemapController extends Controller
{
public function index(): Response
{
$articles = Article::query()
->where('status', 'published')
->latest('updated_at')
->get();
$products = Product::query()
->where('is_active', true)
->latest('updated_at')
->get();
return response()
->view('sitemap', compact('articles', 'products'))
->header('Content-Type', 'application/xml');
}
}
Kemudian tambahkan route pada:
routes/web.php
Kode route:
use App\Http\Controllers\SitemapController;
Route::get('/sitemap.xml', [SitemapController::class, 'index'])
->name('sitemap');
Menambahkan Produk ke Sitemap
Setelah controller mengirimkan data produk, tambahkan perulangan berikut ke dalam sitemap.blade.php:
@foreach ($products as $product)
<url>
<loc>{{ route('products.show', $product->slug) }}</loc>
<lastmod>{{ $product->updated_at->toDateString() }}</lastmod>
</url>
@endforeach
Pastikan route detail produk tersedia.
Contoh:
Route::get('/produk/{slug}', [ProductController::class, 'show'])
->name('products.show');
Dengan konfigurasi tersebut, setiap produk aktif akan otomatis muncul pada sitemap.
Contoh Sitemap Lengkap untuk Artikel dan Produk
Berikut contoh file sitemap.blade.php yang lebih lengkap:
{!! '<?xml version="1.0" encoding="UTF-8"?>' !!}
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>{{ url('/') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
<url>
<loc>{{ url('/layanan') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
<url>
<loc>{{ url('/produk') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
<url>
<loc>{{ url('/artikel') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
<url>
<loc>{{ url('/request-aplikasi') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
<url>
<loc>{{ url('/kontak') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
</url>
@foreach ($articles as $article)
<url>
<loc>{{ route('articles.show', $article->slug) }}</loc>
<lastmod>{{ $article->updated_at->toDateString() }}</lastmod>
</url>
@endforeach
@foreach ($products as $product)
<url>
<loc>{{ route('products.show', $product->slug) }}</loc>
<lastmod>{{ $product->updated_at->toDateString() }}</lastmod>
</url>
@endforeach
</urlset>
Menggunakan URL Absolute
Setiap URL di dalam sitemap sebaiknya menggunakan URL lengkap atau absolute.
Contoh yang benar:
https://ovlamedia.com/artikel/cara-install-laravel
Hindari hanya menggunakan:
/artikel/cara-install-laravel
Helper Laravel seperti url() dan route() akan menghasilkan URL lengkap berdasarkan konfigurasi aplikasi.
Karena itu, pastikan APP_URL telah diatur dengan benar:
APP_URL=https://ovlamedia.com
Setelah mengubah .env, bersihkan cache konfigurasi:
php artisan optimize:clear
Pada server production, konfigurasi dapat disimpan kembali menggunakan:
php artisan config:cache
Memilih Artikel yang Boleh Masuk Sitemap
Jangan memasukkan seluruh data tanpa penyaringan.
Artikel draft, artikel yang dinonaktifkan, atau halaman yang tidak boleh diindeks sebaiknya tidak dimasukkan ke dalam sitemap.
Contoh query:
$articles = Article::query()
->where('status', 'published')
->whereNotNull('published_at')
->where('published_at', '<=', now())
->latest('updated_at')
->get();
Jika aplikasi menggunakan kolom boolean:
$articles = Article::query()
->where('is_published', true)
->latest('updated_at')
->get();
Tujuannya agar sitemap hanya berisi halaman yang benar-benar tersedia dan dapat diakses oleh publik.
Menangani Nilai Updated At yang Kosong
Jika terdapat data lama yang tidak memiliki updated_at, gunakan nilai cadangan.
Contoh pada Blade:
<lastmod>
{{ optional($article->updated_at)->toDateString() ?? now()->toDateString() }}
</lastmod>
Namun, pada aplikasi Laravel dengan timestamp standar, kolom updated_at biasanya selalu tersedia.
Apakah Changefreq dan Priority Wajib Digunakan?
Format sitemap juga mengenal elemen seperti:
<changefreq>weekly</changefreq>
<priority>0.8</priority>
Contoh:
<url>
<loc>{{ url('/') }}</loc>
<lastmod>{{ now()->toDateString() }}</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
Namun, elemen tersebut bukan faktor yang menjamin halaman akan lebih sering dirayapi atau memiliki peringkat lebih tinggi.
Informasi yang paling penting adalah:
URL valid.
Halaman dapat diakses.
Tanggal pembaruan akurat.
Tidak ada URL error.
Tidak ada halaman draft.
Tidak ada URL yang diblokir secara tidak sengaja.
Sebaiknya gunakan lastmod berdasarkan waktu perubahan konten yang sebenarnya, bukan selalu menggantinya dengan tanggal hari ini setiap sitemap dibuka.
Membuat Lastmod Lebih Akurat
Untuk halaman dinamis, gunakan updated_at:
<lastmod>{{ $article->updated_at->toAtomString() }}</lastmod>
Hasilnya dapat berupa:
2026-07-17T10:30:00+07:00
Untuk halaman statis, Anda dapat menggunakan tanggal pembaruan manual atau menghilangkan elemen lastmod jika tidak memiliki data yang akurat.
Jangan memberikan tanggal terbaru pada halaman yang sebenarnya tidak berubah karena informasi yang tidak akurat dapat mengurangi kepercayaan mesin pencari terhadap nilai tersebut.
Menggunakan Cache agar Sitemap Lebih Cepat
Jika website memiliki banyak artikel atau produk, query database akan dijalankan setiap kali sitemap dibuka.
Untuk mengurangi beban server, gunakan cache.
Contoh pada controller:
<?php
namespace App\Http\Controllers;
use App\Models\Article;
use App\Models\Product;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Cache;
class SitemapController extends Controller
{
public function index(): Response
{
$articles = Cache::remember(
'sitemap.articles',
now()->addHours(6),
function () {
return Article::query()
->where('status', 'published')
->latest('updated_at')
->get();
}
);
$products = Cache::remember(
'sitemap.products',
now()->addHours(6),
function () {
return Product::query()
->where('is_active', true)
->latest('updated_at')
->get();
}
);
return response()
->view('sitemap', compact('articles', 'products'))
->header('Content-Type', 'application/xml');
}
}
Dengan konfigurasi tersebut, data sitemap disimpan selama enam jam.
Ketika artikel baru dipublikasikan, cache dapat dihapus menggunakan:
Cache::forget('sitemap.articles');
Untuk produk:
Cache::forget('sitemap.products');
Kode tersebut dapat dijalankan setelah proses tambah, edit, publikasi, atau hapus data.
Membuat Sitemap Selalu Diperbarui Setelah Artikel Disimpan
Pada controller artikel, tambahkan:
use Illuminate\Support\Facades\Cache;
Setelah artikel berhasil disimpan:
Cache::forget('sitemap.articles');
Contoh:
public function store(Request $request)
{
$article = Article::create($request->validated());
Cache::forget('sitemap.articles');
return redirect()
->route('articles.index')
->with('success', 'Artikel berhasil ditambahkan.');
}
Lakukan hal yang sama ketika artikel diperbarui atau dihapus.
Dengan cara tersebut, sitemap tetap otomatis dan tidak menampilkan data lama terlalu lama.
Mengatur Header XML dengan Benar
Pastikan sitemap dikembalikan menggunakan tipe konten XML.
Contoh:
return response()
->view('sitemap', compact('articles', 'products'))
->header('Content-Type', 'application/xml');
Anda juga dapat menuliskannya seperti berikut:
return response(
view('sitemap', compact('articles', 'products')),
200,
['Content-Type' => 'application/xml']
);
Header tersebut membantu browser dan mesin pencari mengenali bahwa respons merupakan dokumen XML.
Menambahkan Sitemap ke Robots.txt
Setelah sitemap dapat diakses, tambahkan alamatnya ke file:
public/robots.txt
Jika isi folder public Laravel dipindahkan ke public_html, file tersebut berada di:
public_html/robots.txt
Contoh isi:
User-agent: *
Allow: /
Sitemap: https://ovlamedia.com/sitemap.xml
Pastikan URL menggunakan domain production dan protokol HTTPS.
Google dapat menemukan sitemap melalui baris Sitemap pada robots.txt, tetapi sitemap tetap dapat dikirim secara langsung melalui Google Search Console.
Mengirim Sitemap ke Google Search Console
Setelah sitemap berhasil dibuat, lakukan langkah berikut:
Buka Google Search Console.
Pilih properti website.
Masuk ke menu Sitemaps.
Masukkan alamat sitemap.
Isi bagian URL dengan
sitemap.xml.Klik Submit atau Kirim.
Tunggu proses pemeriksaan Google.
Alamat yang dikirim:
https://ovlamedia.com/sitemap.xml
Setelah diproses, Search Console dapat menampilkan status, jumlah URL yang ditemukan, dan kemungkinan kesalahan pada sitemap.
Mengirim sitemap merupakan petunjuk kepada Google, bukan jaminan bahwa seluruh URL akan langsung dirayapi atau diindeks.
Cara Memeriksa Sitemap
Buka sitemap melalui browser:
https://domainanda.com/sitemap.xml
Periksa beberapa hal berikut:
Halaman dapat dibuka.
Tidak menghasilkan Error 404.
Tidak menghasilkan Error 500.
Format XML valid.
Semua URL menggunakan HTTPS.
Tidak ada URL localhost.
Tidak ada halaman admin.
Tidak ada artikel draft.
Tidak ada URL duplikat.
Setiap URL dapat diakses.
Tanggal pembaruan sesuai.
Anda juga dapat menggunakan fitur inspeksi dan laporan sitemap di Google Search Console untuk melihat masalah pemrosesan.
Error XML Declaration Allowed Only at the Start
Error berikut dapat muncul:
XML declaration allowed only at the start of the document
Penyebabnya biasanya terdapat spasi atau baris kosong sebelum deklarasi XML.
Pastikan bagian pertama file Blade adalah:
{!! '<?xml version="1.0" encoding="UTF-8"?>' !!}
Jangan menambahkan spasi, HTML, atau teks sebelum deklarasi tersebut.
Error Route Tidak Ditemukan
Jika muncul error seperti:
Route [articles.show] not defined
artinya nama route yang digunakan pada sitemap tidak tersedia.
Periksa daftar route menggunakan:
php artisan route:list
Kemudian sesuaikan:
route('articles.show', $article->slug)
dengan nama route yang sebenarnya.
Contoh:
route('artikel.detail', $article->slug)
Error Attempt to Read Property on Null
Error tersebut dapat muncul ketika terdapat data yang tidak lengkap.
Periksa:
Slug kosong.
Tanggal pembaruan kosong.
Relasi kategori tidak tersedia.
Data telah dihapus sebagian.
Route membutuhkan parameter tambahan.
Sebaiknya hanya mengambil data dengan slug yang tersedia:
$articles = Article::query()
->where('status', 'published')
->whereNotNull('slug')
->where('slug', '!=', '')
->get();
Sitemap Menampilkan URL Localhost
Jika sitemap menghasilkan:
http://localhost/artikel/judul-artikel
atau:
http://127.0.0.1:8000/artikel/judul-artikel
periksa file .env.
Ubah:
APP_URL=http://127.0.0.1:8000
menjadi:
APP_URL=https://domainanda.com
Kemudian jalankan:
php artisan optimize:clear
php artisan config:cache
Sitemap Menghasilkan Error 404 di cPanel
Jika route /sitemap.xml menghasilkan 404 setelah aplikasi diunggah ke cPanel, periksa:
File
.htaccesstersedia.mod_rewriteaktif.Document root mengarah ke folder public.
Isi folder
publicsudah dipindahkan dengan benar.Route sitemap telah terdaftar.
Cache route tidak menggunakan konfigurasi lama.
Bersihkan cache:
php artisan optimize:clear
Kemudian periksa route:
php artisan route:list
Pastikan route sitemap.xml muncul.
Sitemap Menghasilkan Error 500
Jika muncul Error 500, periksa log Laravel:
storage/logs/laravel.log
Penyebab umum:
Model tidak ditemukan.
Nama kolom salah.
Route detail tidak tersedia.
Database tidak terhubung.
Data tanggal tidak valid.
Kesalahan sintaks Blade.
Cache konfigurasi bermasalah.
Untuk proses pemeriksaan, APP_DEBUG dapat diaktifkan sementara:
APP_DEBUG=true
Setelah masalah ditemukan, segera kembalikan:
APP_DEBUG=false
pada server production.
Membatasi Jumlah Query yang Diambil
Jangan mengambil kolom yang tidak diperlukan.
Contoh yang lebih efisien:
$articles = Article::query()
->select(['slug', 'updated_at'])
->where('status', 'published')
->whereNotNull('slug')
->latest('updated_at')
->get();
Untuk produk:
$products = Product::query()
->select(['slug', 'updated_at'])
->where('is_active', true)
->whereNotNull('slug')
->latest('updated_at')
->get();
Cara tersebut mengurangi data yang dipindahkan dari database karena sitemap hanya membutuhkan slug dan waktu pembaruan.
Sitemap untuk Website dengan Banyak URL
Satu file sitemap standar memiliki batas jumlah URL dan ukuran tertentu. Untuk website yang sangat besar, sitemap perlu dibagi menjadi beberapa file dan digabungkan melalui sitemap index.
Contohnya:
sitemap-pages.xml
sitemap-articles.xml
sitemap-products.xml
sitemap-categories.xml
sitemap-index.xml
Contoh sitemap index:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://domainanda.com/sitemap-pages.xml</loc>
</sitemap>
<sitemap>
<loc>https://domainanda.com/sitemap-articles.xml</loc>
</sitemap>
<sitemap>
<loc>https://domainanda.com/sitemap-products.xml</loc>
</sitemap>
</sitemapindex>
Untuk website bisnis dengan jumlah artikel dan produk yang masih terbatas, satu file sitemap.xml biasanya sudah mencukupi.
URL yang Tidak Boleh Dimasukkan ke Sitemap
Hindari memasukkan halaman berikut:
Halaman login.
Dashboard admin.
Halaman register internal.
Halaman lupa password.
Halaman pencarian internal.
URL filter dan parameter.
Artikel draft.
Produk tidak aktif.
Halaman yang menghasilkan 404.
Halaman duplikat.
Halaman yang menggunakan
noindex.URL staging atau localhost.
Halaman yang membutuhkan autentikasi.
Sitemap sebaiknya hanya memuat URL canonical yang dapat diakses oleh publik dan memang ingin ditampilkan di hasil pencarian.
Checklist Sitemap Laravel
Gunakan checklist berikut sebelum mengirim sitemap ke Google:
Route
/sitemap.xmltersedia.Respons menggunakan tipe
application/xml.File XML dapat dibuka.
URL menggunakan domain production.
Seluruh URL menggunakan HTTPS.
Artikel draft tidak ikut ditampilkan.
Produk nonaktif tidak ikut ditampilkan.
Slug kosong telah disaring.
Tidak ada halaman admin.
Tidak ada URL duplikat.
lastmodsesuai dengan perubahan konten.Sitemap dicantumkan di
robots.txt.Sitemap dikirim melalui Google Search Console.
Cache sitemap diperbarui setelah konten berubah.
Mengapa Memilih Ovla Media?
Ovla Media membantu bisnis membangun dan mengoptimalkan website berbasis Laravel agar memiliki struktur yang baik, cepat, aman, dan mudah ditemukan melalui mesin pencari.
Layanan kami meliputi:
Pembuatan website dengan Laravel
Pengembangan website company profile
Pengembangan website e-commerce
Pembuatan sitemap.xml otomatis
Konfigurasi robots.txt
Optimasi SEO teknis
Integrasi Google Search Console
Optimasi kecepatan website
Perbaikan Vite Manifest
Deploy Laravel ke cPanel
Deploy Laravel ke VPS
Maintenance aplikasi
Integrasi Payment Gateway
Integrasi WhatsApp API
Setiap pengembangan dilakukan dengan memperhatikan struktur aplikasi, keamanan, performa, pengalaman pengguna, serta kemampuan pengembangan di masa depan.
Kesimpulan
Sitemap.xml membantu mesin pencari menemukan halaman penting pada sebuah website. Untuk website dinamis berbasis Laravel, sitemap sebaiknya dibuat secara otomatis berdasarkan data artikel, produk, kategori, dan halaman lainnya.
Cara pembuatannya dapat dilakukan menggunakan route atau controller yang mengambil data dari database, kemudian mengembalikannya melalui Blade dengan tipe konten XML.
Pastikan sitemap hanya berisi URL yang aktif, dapat diakses oleh publik, menggunakan HTTPS, serta memiliki alamat canonical yang benar. Hindari memasukkan halaman admin, artikel draft, produk tidak aktif, atau halaman yang diberi aturan noindex.
Setelah sitemap berhasil dibuat, tambahkan alamatnya ke robots.txt dan kirimkan melalui Google Search Console. Meskipun sitemap tidak menjamin seluruh halaman langsung masuk hasil pencarian, konfigurasi yang benar dapat membantu proses penemuan dan crawling halaman website.
Jika Anda membutuhkan bantuan untuk membuat sitemap otomatis, memperbaiki SEO teknis, atau mengembangkan website Laravel, Ovla Media siap membantu menyediakan solusi digital yang profesional dan sesuai dengan kebutuhan bisnis Anda.
Struktur tutorial ini mengikuti prinsip sitemap Google: sitemap membantu penemuan URL tetapi tidak menjamin pengindeksan, dapat dicantumkan pada robots.txt, dan dapat dikirim melalui Search Console. (Google for Developers)
Artikel Terkait
Cara Membuat Sistem Multi-Cabang Menggunakan Laravel
Sistem multi-cabang memungkinkan beberapa lokasi usaha menggunakan satu aplikasi Laravel dengan data yang tetap terpisah. Setiap produk, transaksi, stok, pelanggan, dan pengguna dapat dihubungkan dengan cabang tertentu melalui kolom branch_id.
Cara Menjalankan Queue Worker Laravel di cPanel Tanpa Supervisor
Queue Worker Laravel digunakan untuk memproses pekerjaan di belakang layar, seperti pengiriman email, notifikasi, pembuatan laporan, sinkronisasi API, dan pemrosesan data. Pada VPS, worker biasanya dijaga menggunakan Supervisor. Namun, pada shared hosting cPanel yang tidak menyediakan Supervisor, queue tetap dapat dijalankan menggunakan Cron Job dan perintah queue:work --stop-when-empty.
Cara Integrasi WhatsApp Cloud API dengan Laravel
WhatsApp Cloud API memungkinkan aplikasi Laravel mengirim pesan, notifikasi, dan template WhatsApp melalui layanan resmi Meta. Integrasi ini dapat digunakan untuk konfirmasi pesanan, invoice, pengingat pembayaran, customer service, hingga chatbot. Artikel ini membahas konfigurasi token, pengiriman pesan, serta penerimaan webhook menggunakan Laravel.