VOOZH about

URL: https://spatie.be/docs/laravel-sitemap/v8/introduction

⇱ Introduction | laravel-sitemap | Spatie


Laravel Sitemap

Create and generate sitemaps with ease
16,527,663
2,614

Introduction

On this page

  1. We got badges

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

Help us improve this page