Come generare una sitemap in Laravel

I motori di ricerca utilizzano le sitemap per trovare e indicizzare le tue pagine. Una sitemap è un file XML. Indica a Google e Bing quali URL esistono sul tuo sito.

Puoi creare una sitemap in Laravel utilizzando il pacchetto Spatie Sitemap.

Segui questi passaggi per configurarla.

  1. Installa il pacchetto Esegui questo comando nel tuo terminale: composer require spatie/laravel-sitemap

  2. Crea un controller Genera un nuovo controller per gestire la logica: php artisan make:controller GenerateSitemap

  3. Scrivi la logica Apri il tuo nuovo controller e aggiungi questo codice:

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!');
}
}

Cosa fa questo codice:

  • Crea un nuovo oggetto sitemap.
  • Aggiunge la tua homepage con un'alta priorità.
  • Itera attraverso i post presenti nel database.
  • Aggiunge l'URL di ogni post al file.
  • Salva il file nella tua cartella public come sitemap.xml.

La tua sitemap sarà disponibile all'indirizzo yourdomain.com/sitemap.xml.

Questo aiuta i motori di ricerca a trovare rapidamente i tuoi nuovi contenuti.

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