wizclumsy/sitemap

Sitemap generator for Laravel projects

0.3.2 2017-03-24 11:27 UTC

This package is not auto-updated.

Last update: 2024-12-22 02:42:35 UTC


README

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.