fuelviews / laravel-sitemap
Laravel sitemap package
Fund package maintenance!
Fuelviews
Requires
- php: ^8.2
- spatie/laravel-package-tools: ^1.14.0
- spatie/laravel-sitemap: ^7.2
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.5
- pestphp/pest-plugin-laravel: ^2.0
This package is auto-updated.
Last update: 2024-11-10 01:14:04 UTC
README
Laravel sitemap is a robust and easy-to-use solution designed to automatically generate sitemaps for your Laravel application.
Installation
You can require the package and it's dependencies via composer:
composer require fuelviews/laravel-sitemap
You can manually publish the config file with:
php artisan vendor:publish --provider="Fuelviews\Sitemap\SitemapServiceProvider" --tag="sitemap-config"
This is the contents of the published config file:
return [ /** * Specifies the default filesystem disk that should be used. * The 'public_path' disk is typically used for files that need to be publicly accessible to users. * This setting can influence where files, such as generated sitemaps, are stored by default. */ 'disk' => 'public', /** * Determines whether the index page should be excluded from the sitemap. * Setting this to `true` will exclude the index page, `false` will include it. */ 'exclude_subcategory_sitemap_links' => true, /** * Controls whether redirect URLs should be excluded from the sitemap. * When set to `true`, all redirects are excluded to ensure the sitemap only contains direct links. */ 'exclude_redirects' => true, /** * An array of route names to be excluded from the sitemap. * Useful for excluding specific pages that should not be discoverable via search engines. */ 'exclude_route_names' => [ ], /** * Specifies paths that should be excluded from the sitemap. * Any routes starting with these paths will not be included in the sitemap, enhancing control over the sitemap contents. */ 'exclude_paths' => [ ], /** * An array of full URLs to be excluded from the sitemap. * This allows for fine-grained exclusion of specific pages, such as sitemap files or any other URLs not suitable for search engine indexing. */ 'exclude_urls' => [ '/sitemap.xml', '/pages_sitemap.xml', '/posts_sitemap.xml', ], /** * Specifies the model class to be used for fetching posts to be included in the sitemap. * This setting allows for customization of the source of content, enabling the sitemap to reflect the structure and content of your website accurately. * The specified model should implement any necessary logic to retrieve only the posts that should be visible to search engines. */ 'post_model' => [ //App\Models\Post::class, ], ];
Usage
You can also add your models directly by implementing the Spatie\Sitemap\Contracts\Sitemapable interface. You also need to define your post_model in the fv-sitemap.php config file.
namespace App\Models; use Illuminate\Database\Eloquent\Model; use App\Contracts\Sitemapable; use Spatie\Sitemap\Tags\Url; class Post extends Model implements Sitemapable { /** * Convert the Post model instance into a sitemap URL entry. * * @return \Spatie\Sitemap\Tags\Url */ public function toSitemapUrl() { $url = Url::create(url("{$this->id}")) ->setLastModificationDate($this->updated_at) ->setChangeFrequency('daily') ->setPriority(0.8); return $url; } }
You can generate the sitemap with:
php artisan sitemap:generate
You can link to the sitemap with:
route('sitemap', ['filename' => 'sitemap.xml'])
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
If you've found a bug regarding security please mail support@fuelviews.com instead of using the issue tracker.
Credits
Support us
Fuelviews is a web development agency based in Portland, Maine. You'll find an overview of all our projects on our website.
License
The MIT License (MIT). Please see License File for more information.