Skip to content
Simple sitemaps for Laravel projects
Branch: master
Clone or download
Pull request Compare This branch is 2 commits ahead of tbuteler:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.gitignore
.travis.yml
composer.json
phpunit.xml
readme.md

readme.md

Clumsy Sitemap

Simple sitemaps for Laravel projects

Latest Stable Version Latest Unstable Version Codacy Badge SensioLabsInsight

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.

You can’t perform that action at this time.