wizclumsy / sitemap
Sitemap generator for Laravel projects
Requires
- laravel/framework: >=5.1
README
Simple sitemaps for Laravel projects
Installing
Use Composer to install:
composer require clumsy/sitemap
In the config/app.php
file, add this to the providers
key:
Wizclumsy\Sitemap\SitemapServiceProvider::class,
Usage
The package automatically creates a route to resolve http://example.com/sitemap.xml. If there are no URLs to insert on your sitemap.xml
or an error occurs while parsing them, a 404
error will be thrown on that route.
In order to add URLs to your sitemap, add a sitemap.php
file inside the routes
folder of your Laravel app. Inside, return an array with the desired URLs. For example:
<?php return [ url('/') ];
This will yield the following entry in your sitemap.xml
:
...
<url>
<loc>http://workbench.local</loc>
</url>
...
To add tags to the URLs, make the array associative, using the links
key as your collection of URLs:
<?php return [ 'changefreq' => 'monthly', 'priority' => '0.8', 'lastmod' => '2016-08-04', 'links' => [ url('/'), ] ];
If you want different URLs to have different values for the supporting tags, use more than one array:
<?php return [ [ 'changefreq' => 'daily', 'priority' => '1.0', 'links' => [ App\Models\Resource::where('active', true)->get()->pluck('permalink'), ], ], [ 'changefreq' => 'monthly', 'priority' => '0.8', 'lastmod' => '2016-08-04', 'links' => [ url('/'), ], ], ];
Customizing
You can optionally edit the path of the sitemap.php
file which will contain your URLs and attach middleware to the sitemap route by publishing the default config to your local app:
php artisan vendor:publish --provider="Wizclumsy\Sitemap\SitemapServiceProvider" --tag=config
Legacy
For Laravel 4.1 or 4.2 projects, use the 0.1
branch. The 0.3
branch introduced a new default location of the sitemap.php
file to be more consistent with the file structure of Laravel 5.3.
Learn more
Visit sitemaps.org for more info on the protocol.