bringyourownideas / laravel-sitemap
A simple website crawler & sitemap generator without a headless browser for Laravel 5.8+
Fund package maintenance!
spekulatius
www.buymeacoffee.com/spekulatius
Installs: 7 791
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 2
Forks: 4
Open Issues: 6
Requires
- php: ^7.3|^8.0
- guzzlehttp/guzzle: ^7.2
- laravel/framework: ^6.20.12||^7.30.3||^8.4||^9.2
- nesbot/carbon: ^2.41
- spatie/robots-txt: ^1.0||^2.0
- vdb/php-spider: ^v0.6.3
Requires (Dev)
- symfony/thanks: ^1.0
README
A simple website crawler using php-spider and SimpleXMLElement to generate a sitemap.xml-file. The file will be stored in the public/
-directory. It is commonly used with the SEO-friendly CommonMark Blog Package at bring your own ideas.
The sitemap generator is using the meta tag article:modified_time
to identify the last modification. Noindex
in robots meta-tag will be considered and the page will be left out. If a canoncial URL is set in the document, this one will be used instead. Priorities are guessed based on the depth of the page in the website.
Why a Sitemap.xml?
Sitemaps are crawled by several search engines in the aim to identify changed pages on a website quicker and reduce crawling effort. While a sitemap technically isn't required, it can greatly support your efforts to rank higher.
Support
This package supports Laravel 6-9.
Installation
The package is managed using composer. You can install it using:
composer require bringyourownideas/laravel-sitemap
This ensures you receiving later updates automatically. Alternatively, you can install the package manually (not recommended) using the download functionality on GitHub.
Usage
The package registers a artisan command called sitemap:generate
. This triggers a crawl of your site and writing out of the sitemap. For convenience, you can add this to your deployment steps.
Regular Updates of the sitemap
If you'd like to update the sitemap.xml regularly, you can add a new line in app/Console/Kernel.php
, in the schedule function:
/** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { $schedule->command('sitemap:generate')->daily(); // ...or with a defined time... $schedule->command('sitemap:generate')->daily()->at('02:50'); }
MISC: Future ideas/development, issues, Contributing, License
This package was developed by Peter Thaleikis and is supported by bring your own ideas Ltd.. Bring Your Own Ideas Ltd. helps you to make your project ideas to reality! Get in touch to discuss your new adventure!