the-3labs-team/laravel-googlenews-sitemap


README

Logo Laravel Shortcode Plus

Laravel Google News (GNews) Sitemap

Latest Version on Packagist GitHub Tests Action Status Github PHPStan GitHub Code Style Action Status Maintainability Test Coverage License Mit Total Downloads

This package helps you to create a Google News Sitemap. It is useful when you have a blog/news website and you are involved in Google Published Center.

Don't forget to create your Google News Sitemap and submit it in Google Search Console, as a standard sitemap.

Prerequisites

  • PHP 8.1 or higher
  • Laravel 10.x or higher

Installation

You can install the package via composer:

composer require the-3labs-team/laravel-googlenews-sitemap

You can publish the config file with:

php artisan vendor:publish --tag="googlenews-sitemap-config"

This is the contents of the published config file:

return [
    'path' => 'public/google-news-sitemap.xml',
];

Optionally, you can publish the views using

php artisan vendor:publish --tag="laravel-googlenews-sitemap-views"

Usage

You can use the package as follows:

// Init the sitemap
$sitemap = LaravelGooglenewsSitemap::create();

// Add urls
// $articles = App\Models\Article::wherePublished()...
foreach($articles as $article) {
    $sitemap->add(
        url: route('articles.show', $article->slug),
        authorName: $article->authorName,
        title: $article->title,
        lastModificationDate: $article->updated_at,
        language: 'it',
    );
}

// Write sitemap to disk
$sitemap->writeToDisk();

You can use it as a scheduled command, observer etc...

Note: according to (Google), you should provide articles that are:

  • No older than 2 days
  • No more than 60 items

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.