Sitemap generation based on laravel models

v1.0.0 2021-03-10 12:39 UTC

This package is not auto-updated.

Last update: 2024-05-17 02:54:21 UTC


Latest Version on Packagist Build Status Quality Score Total Downloads

This is where your description should go. Try and limit it to a paragraph or two, and maybe throw in a mention of what PSRs you support to avoid any confusion with users and contributors.


You can install the package via composer:

composer require elbgoods/laravel-sitemap

Configuration and Usage

At first create a config file config/sitemap.php or get a bolilerplate file using

php artisan vendor:publish --provider="Elbgoods\LaravelSitemap\LaravelSitemapServiceProvider" --tag=config

Add single page to sitemap

A Sitemap url entry is represented by an array with following layout:

    'loc' => 'https://example.com/terms', // (required) url of the page,
    'lastmod' => Carbon::yesterday(), // (optional) last page modification
    'priority' => 0.9, // (optional) site priority
    'changefreq' => SitepageUrl::daily // (optional) page change frequency

Add pages for models

You can create a sitepage entry of each model item (e.g. all products if your store) by adding the model class name to the sitepage configuration array.

Your Model MUST implement the Elbgoods\LaravelSitemap\Contracts\Sitemap interface. This interface contains the method getSitemapUrl() which has to return the specific url for that model.

By default all model items will be entered in the sitemap.
You can filter the model items by using this function:

public static function getSitemapQuery(): Builder

Generating Sitemap

You can generate a sitemap manually with this artisan command:

php artisan sitemap:generate > sitemap.xml

or use the Schedular:



Please see CHANGELOG for more information what has changed recently.


Please see CONTRIBUTING for details.


If you discover any security related issues, please email nschirrmeister@elbgoods.de instead of using the issue tracker.



The MIT License (MIT). Please see License File for more information.


You're free to use this package, but if it makes it to your production environment we would highly appreciate you buying or planting the world a tree.

It’s now common knowledge that one of the best tools to tackle the climate crisis and keep our temperatures from rising above 1.5C is to plant trees. If you contribute to my forest you’ll be creating employment for local families and restoring wildlife habitats.

You can buy trees at offset.earth/treeware

Read more about Treeware at https://treeware.earth

Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.