spatie/laravel-sitemap
Generate XML sitemaps for Laravel by crawling your site or building them manually. Add extra URLs, set last-modified dates, and include models via a simple interface. Write sitemaps to disk with a fluent, developer-friendly API.
If you don't want a crawled link to appear in the sitemap, just don't return it in the callable you pass to hasCrawled.
use Spatie\Sitemap\SitemapGenerator;
use Spatie\Sitemap\Tags\Url;
SitemapGenerator::create('https://example.com')
->hasCrawled(function (Url $url) {
if ($url->segment(1) === 'contact') {
return;
}
return $url;
})
->writeToFile($sitemapPath);
You can also instruct the underlying crawler to not crawl some pages by passing a callable to shouldCrawl.
shouldCrawlwill only work with the default crawlProfileor custom crawl profiles that implement ashouldCrawlCallbackmethod.
use Spatie\Sitemap\SitemapGenerator;
SitemapGenerator::create('https://example.com')
->shouldCrawl(function (string $url) {
// All pages will be crawled, except the contact page.
// Links present on the contact page won't be added to the
// sitemap unless they are present on a crawlable page.
return ! str_contains(parse_url($url, PHP_URL_PATH) ?? '', '/contact');
})
->writeToFile($sitemapPath);
How can I help you explore Laravel packages today?