Description
Generate a sitemap without you having to add urls to it manually, by crawling your entire site.
This package can generate a sitemap without you having to add URLs to it manually. This works by crawling your entire site.
use Spatie\Sitemap\SitemapGenerator; SitemapGenerator::create('https://example.com')->writeToFile($path);
You can also create your sitemap manually:
use Carbon\Carbon;use Spatie\Sitemap\Sitemap;use Spatie\Sitemap\Tags\Url; Sitemap::create() ->add(Url::create('/home') ->setLastModificationDate(Carbon::yesterday())) ->add(...) ->writeToFile($path);
Or you can have the best of both worlds by generating a sitemap and then adding more links to it:
use Spatie\Sitemap\SitemapGenerator;use Spatie\Sitemap\Tags\Url; SitemapGenerator::create('https://example.com') ->getSitemap() ->add(Url::create('/extra-page') ->setLastModificationDate(Carbon::yesterday())) ->add(...) ->writeToFile($path);
You can also add your models directly by implementing the Sitemapable interface.
use Spatie\Sitemap\Contracts\Sitemapable;use Spatie\Sitemap\Tags\Url; class Post extends Model implements Sitemapable{ public function toSitemapTag(): Url | string | array { return route('blog.post.show', $this); }}
Recent Courses on Laravel Daily
AI Agents/IDEs for Laravel: May 2026 (Claude Code, Codex, OpenCode, etc)
7 lessons
52 min
Laravel 13 Starter Kit Teams and Customizations
10 lessons
33 min
Testing in Laravel 13 For Beginners
26 lessons
1 h 41 min read