muhammad-nawlo/filament-sitemap-generator
spatie/laravel-sitemap, a battle-tested package, ensuring modularity for future enhancements (e.g., custom sitemap types like video or job listings).spatie/laravel-sitemap (v7.x+), ensuring consistency with existing sitemap logic.config/filament-sitemap.php) reduces boilerplate and hardcoding.config('filament-sitemap.use_new_navigation')).sitemap_index.xml) may require testing with >50K URLs to avoid timeouts.spatie/laravel-sitemap may restrict unique sitemap formats (e.g., non-XML).SitemapServiceProvider or custom SitemapGenerator classes.filament-spatie-media-library) conflict with sitemap routes?spatie/laravel-sitemap’s maintenance cycle?spatie/laravel-sitemap or needing a Filament-based alternative to manual sitemap generation.spatie/laravel-sitemap.composer require filament/filament:"^5.0").composer require muhammad-nawlo/filament-sitemap-generator
php artisan vendor:publish --provider="MuhammadNawlo\FilamentSitemapGenerator\FilamentSitemapGeneratorServiceProvider"
config/filament-sitemap.php:
'sitemaps' => [
'main' => [
'url' => '/sitemap.xml',
'items' => [
\App\Models\Page::class,
\App\Models\Post::class,
],
],
'news' => [
'url' => '/news-sitemap.xml',
'items' => [
\App\Models\NewsArticle::class,
],
'options' => [
'lastmod' => true,
'priority' => 0.8,
],
],
],
php artisan sitemap:generate
/sitemap.xml, /sitemap-index.xml) and search-engine pings.sitemap:generate --split=1000 for large datasets./admin/sitemap).spatie/laravel-sitemap but replaces manual configuration.config('filament-sitemap.cache')) for performance, but ensure cache invalidation on content updates.lastmod/priority options.config/filament-sitemap.php.lastmod for news articles).spatie/laravel-sitemap and Filament for breaking changes.lastmod or custom sitemap classes).SitemapNotFoundException).sitemap:generate --split=X to avoid memory issues (default: 500 URLs/sitemap).chunk() in SitemapGenerator or queue generation:
// app/Console/Commands/GenerateSitemap.php
public function handle() {
Sitemap::for('main')->chunk(1000)->write();
}
cache_for in config to reduce regeneration overhead.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Filament upgrade breaks plugin | Sitemap UI/navigation fails | Test upgrades in staging; use feature flags for breaking changes. |
| Search-engine ping fails | Delayed SEO indexing | Implement retry logic with exponential backoff. |
| Large sitemap generation OOM | Server crashes | Use --split flag |
How can I help you explore Laravel packages today?