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
[NEW] Practical Laravel Security: Packages, Secrets, Supply-Chain Attacks
7 lessons
43 min read
Next.js Basics for Laravel Developers
11 lessons
58 min
Laravel 13 Starter Kit Teams and Customizations
10 lessons
33 min