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.
Instale o pacote Execute este comando no seu terminal: composer require spatie/laravel-sitemap
Crie um controller Gere um novo controller para lidar com a lógica: php artisan make:controller GenerateSitemap
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