Hi all,
I’m almost done with building a small website using Laravel. I’m now working on the SEO side of things and I want to be able to automatically generate the sitemap.xml file on let’s say daily basis.
Has anyone done this before and is there a package that you could suggest? Or is it better for me to create the logic myself?
Thanks!
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Hello,
I usually use the following package for all of my sites to generate the
sitemap.xml
file automatically:https://github.com/spatie/laravel-sitemap
The setup goes something like this:
If you would like to change the default options, you could publish the config by using the following command:
This will copy the config to
config/sitemap.php
where you would be able to change it depending on your needs.To generate a sitemap for your website with all of the found links, you can use the following:
To automate the process what you could do is create an artisan command and then add it to your scheduler.
To do that just run the following:
And then update the content of the
app/Console/Commands/GenerateSitemap.php
file accordingly. I would usually use something like this:Then to generate your sitemap just run:
To schedule this to run on daily basis just add the following to your
app/Console/Kernel.php
file:That is pretty much it, then your sitemap.xml should be available at
example.xml/sitemap.xml
.For more information I would recommend going through the official repo here:
https://github.com/spatie/laravel-sitemap/blob/master/README.md
Hope that this helps! Regards, Bobby
Many thanks for your swift response. I believe, at least in my case, the line that is in the crontab has another folder, html, to get to my domain folder. ***** cd /var/www/html/app_folder && php artisan schedule:run >> /dev/null 2>&1
Thank you David
Thank you for the above. Very helpful. Wondering if anyone would have a good tutorial on setting up the cron to reference the kernel to run this.
Thank you