Laravel'de Sitemap Nasıl Oluşturulur?
İçindekiler
- Spatie Sitemap Paketini Yükleme
- Sitemap Yapılandırması
- Sitemap Oluşturma
- Sitemap için Route Oluşturma
- Otomatik Sitemap Güncelleme
- Sonuç
1. Spatie Sitemap Paketini Yükleme
Laravel'de sitemap oluşturmak için spatie/laravel-sitemap paketini kullanabiliriz. Bu paketi projemize eklemek için aşağıdaki komutu kullanın:
composer require spatie/laravel-sitemap
Bu paket, sitenizdeki sayfaları tarayıp XML formatında bir sitemap dosyası oluşturmanıza yardımcı olacaktır.
2. Sitemap Yapılandırması
Sitemap oluşturma işlemi için genellikle model verilerini kullanarak dinamik bir yapı oluşturmak gerekir. Bunun için örnek bir yapılandırma yapacağız.
Örnek: Blog Yazıları için Sitemap
Blog yazıları gibi dinamik içerikleri sitemap'e eklemek için öncelikle web.php
içinde gerekli rotaları oluşturabiliriz.
3. Sitemap Oluşturma
SitemapController.php
adında bir kontrolcü oluşturalım ve burada sitemap dosyasını dinamik olarak oluşturalım.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Spatie\Sitemap\Sitemap;
use Spatie\Sitemap\Tags\Url;
use App\Models\Post; // Örnek olarak blog post modelini kullanıyoruz
class SitemapController extends Controller
{
public function index()
{
// Yeni bir sitemap nesnesi oluştur
$sitemap = Sitemap::create();
// Blog yazılarını sitemap'e ekliyoruz
$posts = Post::all();
foreach ($posts as $post) {
$sitemap->add(Url::create("/post/{$post->slug}")
->setLastModificationDate($post->updated_at)
->setChangeFrequency(Url::CHANGE_FREQUENCY_WEEKLY)
->setPriority(0.8));
}
// Sitemap dosyasını public dizinine kaydet
$sitemap->writeToFile(public_path('sitemap.xml'));
return response()->json(['message' => 'Sitemap başarıyla oluşturuldu']);
}
}
Bu örnekte:
- Blog yazılarını sitemap'e eklemek için
Post
modelini kullanıyoruz. - Her yazının URL'si, son güncellenme tarihi ve öncelik seviyesi ile birlikte sitemap'e ekleniyor.
4. Sitemap için Route Oluşturma
Artık bu sitemap'i oluşturmak için bir rota tanımlayalım. web.php
dosyanıza aşağıdaki kodu ekleyin:
use App\Http\Controllers\SitemapController;
Route::get('/sitemap', [SitemapController::class, 'index']);
Bu route, /sitemap
URL'sine gidildiğinde SitemapController
içinde tanımladığımız index
metodunu çalıştırır ve sitemap dosyasını oluşturur.
5. Otomatik Sitemap Güncelleme
Sitemap dosyasının düzenli olarak güncellenmesi SEO için çok önemlidir. Bunun için Laravel'in scheduler (görev zamanlayıcı) özelliğini kullanabiliriz.
app/Console/Kernel.php
dosyasını açın ve içine aşağıdaki kodu ekleyin:
protected function schedule(Schedule $schedule)
{
// Sitemap'i her gün otomatik olarak oluştur
$schedule->call(function () {
Artisan::call('route:sitemap');
})->daily();
}
Bu kod sayesinde, sitemap dosyası her gün otomatik olarak oluşturulacaktır.
6. Sonuç
Laravel projelerinde sitemap oluşturmak, arama motorlarının sitenizi daha iyi taramasına yardımcı olur ve SEO performansınızı artırır. Spatie Sitemap paketi sayesinde dinamik içerikleri de sitemap'e kolayca ekleyebilirsiniz. Bu makalede, sitemap oluşturmayı, rotalamayı ve güncellemeyi detaylarıyla anlattık. Artık siz de kendi projenizde kolayca sitemap oluşturabilir ve SEO optimizasyonu sağlayabilirsiniz.