Sitemaps & URL discovery
Your sitemap is the single source of truth for what gets warmed. Add one URL, and the warming list keeps itself up to date.
Adding a sitemap
In your project settings, paste the URL of your sitemap — for most sites that's
https://example.com/sitemap.xml. Both plain sitemaps and
sitemap indexes work: if the URL points to an index, we fetch every
child sitemap recursively and collect all page URLs.
<!-- Both of these work: -->
https://example.com/sitemap.xml
https://example.com/sitemap-index.xml
Automatic re-discovery
Before every scheduled run, the sitemap is fetched again. That means:
- New pages you publish are picked up automatically — no manual step.
- Removed pages disappear from the warming list, so we never keep hammering deleted URLs.
- Discovery requests identify themselves with the
WarmupRocks user agent plus a
sitemap discoverymarker.
Extra URLs
Some URLs belong in the cache but not in a sitemap — critical CSS/JS bundles, API endpoints that return cacheable JSON, or a search page. Add them as extra URLs in the project settings; they're warmed alongside the sitemap URLs but never touch your public sitemap.
Keep your sitemap clean. A sitemap is for pages you want indexed by search engines. Don't add assets to it just to get them warmed — that's what extra URLs are for.
URL limits per plan
| Plan | URLs per run |
|---|---|
| Pebble | 500 |
| Boulder | 2,500 |
| Summit | 10,000 |
If your sitemap contains more URLs than your plan allows, we warm the first N in sitemap order. Sitemaps usually list important pages first, so priority follows your own ordering.
Troubleshooting
- HTTP 404 on discovery — double-check the sitemap URL in a browser.
A common mix-up: the file is
sitemap.xml, notsitemap-index.xml(or vice versa). - Empty URL list — some sitemap plugins render the XML with JavaScript or behind a redirect chain. The sitemap must be plain XML at a stable URL.
- Blocked by WAF — allow the WarmupRocks user agent or configure a secret header. See Analytics & WAF filtering.