1. Go to this page and download the library: Download coderden/sitemap-generator library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
$generator = new SitemapGenerator('/path/to/public', 'https://example.com');
// Set custom file name prefix
$generator->setFileNamePrefix('my-sitemap');
// Set custom limit (default: 50000)
$generator = new SitemapGenerator('/path/to/public', 'https://example.com', 1000);
// Add 1500 URLs
for ($i = 1; $i <= 1500; $i++) {
$url = new Url("https://example.com/page{$i}");
$generator->addUrl($url);
}
// Generates:
// - my-sitemap-1.xml (1000 URLs)
// - my-sitemap-2.xml (500 URLs)
// - my-sitemap-index.xml (links to both files)
$files = $generator->generate();
$indexGenerator = new SitemapIndexGenerator('/path/to/public', 'https://example.com');
$indexGenerator->addSitemap('sitemap-pages.xml', new DateTime())
->addSitemap('sitemap-posts.xml', new DateTime('-1 day'))
->addSitemap('https://cdn.example.com/sitemap-images.xml', new DateTime());
$indexFile = $indexGenerator->generate('custom-index.xml');
namespace App\Services;
use Coderden\SitemapGenerator\SitemapGenerator;
use Coderden\SitemapGenerator\Url;
use App\Models\Post;
use App\Models\Page;
class SitemapService
{
public function generate()
{
$generator = new SitemapGenerator(
public_path(),
config('app.url'),
1000
);
// Add static pages
$generator->addUrl(
(new Url(route('home')))
->setLastModification(now())
->setChangeFrequency('daily')
->setPriority(1.0)
);
// Add dynamic content
Post::published()->chunk(100, function ($posts) use ($generator) {
foreach ($posts as $post) {
$generator->addUrl(
(new Url(route('posts.show', $post)))
->setLastModification($post->updated_at)
->setChangeFrequency('weekly')
->setPriority(0.7)
);
}
});
return $generator->generate();
}
}