Introduction
On this page
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); } }
Now you can add a single post model to the sitemap or even a whole collection.
use Spatie\Sitemap\Sitemap; Sitemap::create() ->add($post) ->add(Post::all());
We got badges
👁 Latest Version on Packagist
👁 Software License
👁 Test Status
👁 Code Style Status
👁 PHPStan
👁 Total Downloads
