Skip to content

fuelviews/laravel-sitemap

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a2d1d65 · Aug 5, 2024

History

28 Commits
Jun 17, 2024
Mar 6, 2024
Jul 11, 2024
Apr 5, 2024
Mar 6, 2024
Mar 6, 2024
Mar 6, 2024
Jun 5, 2024
Jul 11, 2024
Mar 6, 2024
Jul 7, 2024
Jun 13, 2024
Aug 5, 2024
Mar 6, 2024

Repository files navigation

Laravel sitemap package

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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.