𝗛𝗼𝘄 𝘁𝗼 𝗚𝗲𝗻𝗲𝗿𝗮𝘁𝗲 𝗮 𝗦𝗶𝘁𝗲𝗺𝗮𝗽 𝗶𝗻 𝗟𝗮𝗿𝗮𝘃𝗲𝗹 -> Laravel'de Site Haritası Nasıl Oluşturulur

Arama motorları, sayfalarınızı bulmak ve dizine eklemek için site haritalarını kullanır. Site haritası bir XML dosyasıdır. Google ve Bing'e sitenizde hangi URL'lerin bulunduğunu söyler.

Spatie Sitemap paketini kullanarak Laravel'de bir site haritası oluşturabilirsiniz.

Kurulum için aşağıdaki adımları takip edin.

  1. Paketi yükleyin Terminalinizde şu komutu çalıştırın: composer require spatie/laravel-sitemap

  2. Bir controller oluşturun Mantığı yönetmek için yeni bir controller oluşturun: php artisan make:controller GenerateSitemap

  3. Mantığı yazın Yeni controller dosyanızı açın ve şu kodu ekleyin:

namespace App\Http\Controllers;

use Spatie\Sitemap\Sitemap;
use Spatie\Sitemap\Tags\Url;
use App\Models\Post;

class GenerateSitemap extends Controller
{
public function index()
{
$sitemap = Sitemap::create();

$sitemap->add(
Url::create('/')
->setPriority(1.0)
->setChangeFrequency(Url::CHANGE_FREQUENCY_DAILY)
);

Post::with('category')
->where('status', 1)
->latest()
->get()
->each(function ($post) use ($sitemap) {
$sitemap->add(
Url::create($post->category->slug . '/' . $post->slug)
->setLastModificationDate($post->updated_at)
->setPriority(0.9)
->setChangeFrequency(Url::CHANGE_FREQUENCY_WEEKLY)
);
});

$sitemap->writeToFile(public_path('sitemap.xml'));

return back()->with('success', 'Sitemap Generated!');
}
}

Bu kod ne yapar:

  • Yeni bir sitemap nesnesi oluşturur.
  • Ana sayfanızı yüksek öncelikle ekler.
  • Veritabanınızdaki yazılar üzerinde döngü kurar.
  • Her yazı URL'sini dosyaya ekler.
  • Dosyayı public klasörünüze sitemap.xml olarak kaydeder.

Site haritanız yourdomain.com/sitemap.xml adresinde yer alacaktır.

Bu, arama motorlarının yeni içeriğinizi hızlıca bulmasına yardımcı olur.

Kaynak: https://dev.to/mindwarezone/how-to-generate-a-sitemap-in-laravel-a-complete-guide-4go6