Een goede sitemap is essentieel voor elke professionele website. Het helpt zoekmachines om je pagina’s sneller en vollediger te indexeren. Wat resulteert in betere posities in Google. Speciaal voor Laravel-projecten hebben wij daarom de Laravel SEO Sitemap package ontwikkeld.
In deze blog lees je hoe je de package installeert, configureert en inzet om je SEO te verbeteren.
🔧 Installatie
Je installeert de package eenvoudig via Composer:
composer require veiliglanceren/laravel-seo-sitemap
Publiceer vervolgens de config:
php artisan vendor:publish --tag=seo-sitemap-config
En optioneel ook de views:
php artisan vendor:publish --tag=seo-sitemap-views
🗺️ Automatische sitemap voor al je routes
Je kunt snel routes toevoegen aan je sitemap met eenvoudige chaining:
Route::get('/about', [PageController::class, 'about'])
->name('about')
->sitemap()
->priority('0.8')
->changefreq('monthly');
Dit maakt je route direct vindbaar in /sitemap.xml
, inclusief de juiste metadata.
🔍 SEO-boost: metadata & prioriteiten instellen
Je kunt elke route voorzien van:
priority
: hoe belangrijk is deze pagina?changefreq
: hoe vaak verandert de inhoud?lastmod
: automatisch of handmatig
Deze waarden helpen zoekmachines zoals Google om slimmer te crawlen.
✨ Geavanceerde features
✅ Ondersteuning voor meerdere sitemaps
✅ Dynamische routes via custom providers
✅ Automatisch updaten van
lastmod
op wijziging✅
meta
data per route (handig voor herkomsttracking)
Voorbeeld voor dynamische content:
namespace App\SitemapTemplates;
use Traversable;
use App\Models\BlogPost;
use Illuminate\Routing\Route;
use VeiligLanceren\LaravelSeoSitemap\Sitemap\Item\Url;
use VeiligLanceren\LaravelSeoSitemap\Sitemap\SitemapItemTemplate;
class BlogPostTemplate implements SitemapItemTemplate
{
public function generate(Route $route): iterable
{
return BlogPost::query()
->whereDate('published_at', '<=', now())
->cursor()
->map(fn (BlogPost $post) =>
Url::make(route($route->getName(), [
'category' => $post->categories->first()->slug,
'post' => $post->slug,
]))
->lastmod($post->updated_at)
->priority(0.6)
);
}
public function getIterator(): Traversable
{
yield from $this->generate(app(Route::class));
}
}
🧭 Route instellen
Door de route te registreren met .sitemap()
of .sitemapUsing()
geef je aan dat deze pagina’s meegenomen moeten worden in de sitemap.xml. Dit is essentieel voor de SEO van dynamische routes in Laravel, zoals blogs, producten of vacatures. Zo weet Google dat deze content bestaat en hoe vaak deze wordt bijgewerkt, wat direct bijdraagt aan een betere vindbaarheid. Met slechts één regel code koppel je je route aan de sitemap, zonder handmatig URLs te hoeven toevoegen.
Route::get('/blog/{category}/{post}', [BlogController::class, 'show'])
->name('blog.show')
->sitemapUsing(\App\SitemapTemplates\BlogPostTemplate::class);
✅ Wat doet sitemapUsing()
?
Met sitemapUsing()
geef je aan welke SitemapItemTemplate
gebruikt moet worden voor de dynamische URLs van die specifieke route.
📈 Waarom dit goed is voor je SEO
Snellere indexatie van nieuwe pagina’s
Minder kans dat waardevolle content wordt gemist
Betere controle over crawlbudget
Integratie met tools als Google Search Console
✅ Gebruik de kracht van structured sitemaps
Wil je serieus scoren in Google met je Laravel-project? Dan is een goed ingerichte sitemap geen luxe maar een must. Onze package helpt je daarbij. Professioneel, schaalbaar en gratis.
👉 Bekijk de package op GitHub:
🔗 Laravel SEO Sitemap