Laravel Sitemap
Laravel Sitemap stats
- Downloads
- 5.6M
- Stars
- 2,034
- Open Issues
- 7
- Forks
- 261
Create and generate sitemaps with ease
Laravel Sitemap Package by Spatie
The Laravel Sitemap package by Spatie provides a seamless way to generate sitemaps for your Laravel application, ensuring your website's pages are indexed correctly by search engines. It offers a variety of methods to create and customize sitemaps, including dynamic crawling, manual additions, and integration with model data.
Key Features
- Automatic Crawling: Generate sitemaps by crawling your website, automatically including all accessible URLs.
- Manual Sitemap Creation: Manually add URLs to your sitemap, with options to set properties such as change frequency, last modification date, and priority.
- Hybrid Approach: Start with an automatically generated sitemap and enhance it by adding more URLs manually.
- JavaScript Execution: Capable of executing JavaScript to ensure that dynamically generated links are included.
- Model Integration: Easily add URLs from Eloquent models by implementing the
Sitemapableinterface. - Customization Options: Control crawl behavior, including depth and exclusions, through a configurable crawler.
- Storage Flexibility: Write sitemaps directly to various filesystems supported by Laravel.
- Scheduled Sitemap Updates: Utilize Laravel's task scheduling to keep sitemaps up-to-date automatically.
Installation
Install the package via Composer:
composer require spatie/laravel-sitemap
The package will auto-register itself. For custom configurations, publish the configuration file:
php artisan vendor:publish --provider="Spatie\Sitemap\SitemapServiceProvider" --tag=sitemap-config
Usage
Generate a sitemap with all links from a domain:
use Spatie\Sitemap\SitemapGenerator; SitemapGenerator::create('https://example.com')->writeToFile($path);
Add URLs manually:
use Spatie\Sitemap\Sitemap;use Spatie\Sitemap\Tags\Url; Sitemap::create() ->add(Url::create('/home')->setPriority(0.1)) ->writeToFile($path);
For more complex scenarios, such as adding model data or combining crawled and manually added URLs, refer to the detailed documentation in the package.
Configuration
After publishing, adjust settings in the config/sitemap.php to customize crawler behavior, including request timeouts, cookie handling, and JavaScript execution settings.
Automating Sitemap Generation
Set up a scheduled task in Laravel to regenerate the sitemap periodically, ensuring it remains up-to-date as your site's content changes.
// app/Console/Kernel.phpprotected function schedule(Schedule $schedule){ $schedule->command('sitemap:generate')->daily();}
Conclusion
The Spatie Laravel Sitemap package is a powerful tool for automating the management of sitemaps, essential for SEO. With comprehensive customization options and easy integration, it is an invaluable addition to any Laravel application. For further details, visit the official repository.