Como Gerar um Sitemap no Laravel

Os mecanismos de busca utilizam sitemaps para encontrar e indexar suas páginas. Um sitemap é um arquivo XML. Ele informa ao Google e ao Bing quais URLs existem no seu site.

Você pode construir um sitemap no Laravel usando o pacote Spatie Sitemap.

Siga estes passos para configurá-lo.

  1. Instale o pacote Execute este comando no seu terminal: composer require spatie/laravel-sitemap

  2. Crie um controller Gere um novo controller para lidar com a lógica: php artisan make:controller GenerateSitemap

  3. Escreva a lógica Abra o seu novo controller e adicione este código:

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

O que este código faz:

  • Ele cria um novo objeto de sitemap.
  • Ele adiciona sua página inicial com alta prioridade.
  • Ele percorre os posts do seu banco de dados.
  • Ele adiciona a URL de cada post ao arquivo.
  • Ele salva o arquivo na sua pasta public como sitemap.xml.

Seu sitemap estará disponível em seudominio.com/sitemap.xml.

Isso ajuda os mecanismos de busca a encontrarem seu novo conteúdo rapidamente.

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