You launched an e-commerce store on Laravel with a thousand products. A month later, you notice Google indexed only the homepage and a couple of categories, while new products wait weeks for their turn. This familiar scenario: without a properly configured XML sitemap, search engine robots wander blindly, missing important pages. We help automate sitemap generation so every page gets indexed on time.
What problems we solve
Poor indexing of new pages
If a sitemap isn't updated, new pages can stay unindexed for a long time. Dynamic generation solves this: the sitemap is regenerated with every content update—immediately after a product or article is published.
Incorrect priorities and frequencies
Many set priority="1.0" for all pages, confusing robots. The homepage should be priority 1.0, categories 0.8, products 0.6, blog 0.5. For changefreq, use weekly for blog, daily or hourly for products, never for contacts.
Sitemap size limits
One sitemap file holds up to 50,000 URLs. For large sites, use an index sitemap: it combines multiple files (pages, products, blog). Otherwise, part of the pages remains unnoticed.
How to set priorities correctly in a sitemap?
Priorities help search engines understand which pages are most important. Use a scale from 0.0 to 1.0. Homepage — 1.0, categories — 0.8, products — 0.6, blog articles — 0.5, contacts — 0.3. Update frequency (changefreq) defines dynamics: daily for products, weekly for blog, monthly for static pages.
How we do it: a case study on Laravel
Recently we configured a sitemap for an electronics e-commerce store running Laravel 11 with PostgreSQL. The database contains 15,000 products, 500 categories, and 300 blog articles. We implemented dynamic generation via a controller:
// routes/web.php Route::get('/sitemap.xml', [SitemapController::class, 'index']); // SitemapController.php public function index() { $pages = Page::where('is_published', true)->get(['slug', 'updated_at']); $products = Product::where('is_active', true)->get(['slug', 'updated_at']); return response() ->view('sitemap.index', compact('pages', 'products')) ->header('Content-Type', 'text/xml'); } The sitemap.index.blade.php template builds the file with correct tags, priorities, and frequencies, and adds product images for Google Images. The result is a fully functional sitemap.xml that automatically updates with every database change.
Work process
| Stage | Duration | Result |
|---|---|---|
| Site structure analysis | 1–2 hours | List of all page types and their priorities |
| Generation setup | 3–6 hours | Working sitemap, auto-updating |
| Index sitemap creation (if needed) | 2–4 hours | Split into files by content type |
| Registration and testing | 1–2 hours | Validation in Google Search Console and Yandex.Webmaster |
| Final documentation | 1 hour | Update guide and recommendations |
Timeline: from 1 day for sites up to 5,000 URLs, up to 3 days for large projects (over 50,000 URLs). Pricing is determined individually after audit.
Why choose dynamic generation?
Dynamic sitemap updates 3 times faster than a static one. According to the Sitemaps protocol, a sitemap file can hold up to 50,000 URLs. For large projects we use an index sitemap—it simplifies management and speeds up parallel processing by search engines.
| Criterion | Static | Dynamic |
|---|---|---|
| Freshness | Only at creation | Always up-to-date |
| Update effort | Manual editing | Automatic |
| Suitable for | Sites with rare changes | E-commerce, blogs, news |
| Error risk | High (misses, duplicates) | Low |
How an index sitemap works
For sites with more than 50,000 URLs, create an index file that references multiple sitemap files:
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>https://example.ru/sitemap-pages.xml</loc> </sitemap> <sitemap> <loc>https://example.ru/sitemap-products.xml</loc> </sitemap> <sitemap> <loc>https://example.ru/sitemap-blog.xml</loc> </sitemap> </sitemapindex> This approach simplifies management, and search engines process each file in parallel.
Registration in robots.txt
Add a single line:
Sitemap: https://example.ru/sitemap.xml After that, manually submit the sitemap in Google Search Console and Yandex.Webmaster—this speeds up initial indexing by 2–3 times.
How to create a sitemap manually for a small site
- Collect all page URLs that should be indexed.
- Determine priority and update frequency for each.
- Create an XML file using any editor, following the template from Google's sitemap guidelines.
- Upload the file to the site root.
- Add the line to robots.txt.
What's included in the work
- Analysis of current site structure and detection of issues
- Setup of automatic sitemap generation (Laravel, WordPress, any framework)
- Creation of index sitemap if necessary
- Registration in robots.txt and submission to Google Search Console / Yandex.Webmaster
- Error testing (format, dates, accessibility)
- Documentation and recommendations for ongoing maintenance
Guarantee: if the sitemap is not accepted by search engines, we will fix it free of charge within 2 days.
Contact us for a consultation. Order a turnkey sitemap setup and get results in 1–3 days. Our experience: 7+ years of hands-on work, 50+ successful projects.







