
For a large Magento catalog, a good XML sitemap is one that generates reliably, splits cleanly into files Google accepts, lists only canonical indexable URLs, and carries an honest lastmod date. Adobe Commerce handles splitting automatically, but its defaults, image settings, and generation method need deliberate tuning once a catalog passes tens of thousands of products.
Most guides stop at the admin click-path. This one covers what changes at scale: the file limits that actually trigger first, the batch generation method Adobe now documents for large catalogs, the image setting that can slow generation dramatically, how multi-store and Commerce Cloud paths work, and which sitemap fields Google ignores entirely.
How Magento builds a sitemap
Magento generates sitemaps from the backend. You create one under Marketing, SEO and Search, Site Map, give it a filename such as sitemap.xml and a path such as / or /sitemap/, and click Save and Generate. Adobe’s site map documentation notes that the path must be writable by the web server.
The sitemap can include categories, products, CMS pages, and the store base URL. Each type has its own frequency and priority settings at the store view scope. When the output exceeds the configured limits, Magento writes several sitemap files and a sitemap index that points to them.
One point that surprises teams mid-migration: the storefront theme has no effect on the sitemap. Luma, Hyva, and a headless frontend all get the same backend-generated XML. Moving to Hyva changes how fast pages render once Google crawls them, not which URLs the sitemap lists.
The limits that matter: Magento defaults vs Google’s rules
Two sets of limits interact. Magento’s settings decide when it splits a file. Google’s rules decide what it will accept.
| Limit | Magento / Adobe Commerce default | Google’s rule |
|---|---|---|
| URLs per sitemap file | 50,000 (Maximum No of URLs per File) | 50,000 |
| Size per sitemap file | 10,485,760 bytes, about 10 MB (Maximum File Size) | 50 MB uncompressed |
| Entries per sitemap index | Generated automatically | Up to 50,000 loc tags |
| Sitemap indexes per site | Not applicable | Up to 500 per Search Console property |
| Images per URL | None, Base Only, or All | Up to 1,000 image:image tags |
| priority and changefreq | Configurable per content type | Ignored by Google |
| lastmod | Written by Magento | Used only if consistently accurate |
Magento’s file size default is about a fifth of Google’s limit. On a catalog with long URLs and images included, a file can hit 10 MB well before it reaches 50,000 URLs. That is not a problem in itself, since Magento simply writes more files. It does mean the number of files grows faster than many teams expect, so check the index after the first full run.
Google’s sitemap guidelines put it plainly: Google ignores the <priority> and <changefreq> values. Many Magento SEO guides still recommend careful tuning of priority by content type. That time is better spent on making sure only canonical URLs appear and that lastmod reflects real changes.
Google’s guidance on large sitemaps adds two rules for split sitemaps. Every sitemap referenced by an index must be on the same site as the index, and in the index’s directory or below it. That constraint matters for multi-domain setups and CDN rewrites, covered below.
Standard vs batch generation
Generation is where large catalogs run into trouble. Adobe’s documentation lists two generation methods:
- Standard, which “processes all data in memory.”
- Batch, described as “memory-optimized processing for large catalogs,” available from Adobe Commerce and Magento Open Source 2.4.9.
To use batch generation on a scheduled run, the same documentation says to replace the sitemap_generate cron job with sitemap_generate_batch in the Sitemap module’s cron configuration, keeping the 0 0 * * * schedule. Adobe states that this change “enables batch sitemap generation, which is recommended for large catalogs.” In practice you should make that change through your own module’s configuration rather than editing a core file, so that it survives upgrades.
If you are on a release before 2.4.9, Standard is what you have. Common symptoms of a catalog outgrowing it are generation runs that hit PHP memory limits, cron jobs that never finish, and sitemap files with old modification times because the last few runs failed. The Error Email Recipient setting under Generation Settings sends a notice when a scheduled run fails. Set it; a silent sitemap failure can go unnoticed for weeks.
Sitemap generation also competes with every other cron job on the server. If your indexers and queue consumers already struggle overnight, the sitemap run makes it worse. Our guide to Adobe Commerce cron and indexer health covers how to find and fix a backed-up cron schedule.
The image setting that slows everything down
The Add Images into Sitemap option accepts None, Base Only, or All. Image entries can help image search, and Google allows up to 1,000 images per URL. On a large catalog, though, images are expensive to generate.
Adobe published a quality patch, ACSD-67603, for exactly this: “Sitemap generation has long processing times for products with image inclusion enabled.” The patch applies to Adobe Commerce 2.4.6 through 2.4.7-p7, requires Quality Patches Tool 1.1.71 or later, and the issue is listed as scheduled for a fix in 2.4.9.
Practical guidance:
- If you sell on image-driven search, use Base Only rather than All. One strong image per product is usually what matters.
- If you are on 2.4.6 or 2.4.7 and generation is slow with images enabled, check whether ACSD-67603 applies before tuning anything else.
- Measure generation time with images off and on. If the difference is large, decide whether image search traffic justifies it.
Google has also simplified image sitemaps. Only image:image and image:loc are required, and the caption, title, geo_location, and license tags have been removed from Google’s documentation. Extensions that promise richer image metadata in the sitemap are adding fields Google no longer documents.
What to include and what to leave out
A sitemap is a hint to Google, not a guarantee of indexing, and Google asks that it list canonical URLs only. For large catalogs, that rule does most of the work:
- Exclude non-canonical URLs. Layered navigation URLs, sort and limit parameters, and duplicate category paths should not appear. Magento’s sitemap does not list filter URLs by default, but custom modules sometimes add them. Our guide to canonical tags, pagination, and hreflang on Magento and Hyva covers how canonical choices and the sitemap should agree.
- Check product URL format. If products are reachable both with and without a category path, make sure the sitemap uses the same form as the canonical tag.
- Decide on out-of-stock products. The core sitemap leaves out disabled and not-visible products, but it does not offer an out-of-stock exclusion. Extensions add that option. Whether to exclude is a business decision: a product that is back in stock next week usually deserves to stay indexed, while a discontinued product should be redirected and dropped.
- Review CMS pages. Thank-you pages, internal landing pages, and test pages often slip into the CMS list.
- Validate lastmod. Google uses lastmod only when it is “consistently and verifiably” accurate. Open a generated file and compare lastmod values against actual product update dates. If every URL shows the same date, or dates change without real content changes, Google will learn to ignore the field.
Multi-store, multi-domain, and Commerce Cloud
Each store view can have its own sitemap. For multiple domains on one installation, Adobe’s documentation describes creating one folder per domain, such as /sitemaps/domain_1/, setting each store’s sitemap path to its folder, and listing one Sitemap: line per domain in robots.txt. Adobe also notes that all sites must be verified in Google Search Console, and that Apache setups need an .htaccess update. For the broader architecture, see our guide to running multiple stores on one Magento install.
Older Magento releases had bugs in this area: images linked to the base store domain on other websites, and sitemap index files that picked up the cron user’s file path when generated by cron rather than the admin. These were fixed in later 2.x releases, but if you inherit an old installation, open the index and confirm that every URL uses the correct domain and path.
On Adobe Commerce on Cloud, the application file system is read-only outside specific directories. Adobe’s cloud documentation says that writing a sitemap to the root fails with a writable-path error and that you must use the /media/ path. A Fastly VCL snippet can then rewrite requests for /sitemap.xml to /media/sitemap.xml, and multi-domain setups use per-domain filenames with host matching in the VCL. Keep Google’s same-site rule in mind: the index and the files it references must resolve on the same host.
Finally, the Enable Submission to Robots.txt setting adds the sitemap location to robots.txt automatically. Use it, then also submit the index in Search Console so you can see processing errors per file.
A scale checklist for Magento sitemaps
Run through this list after any major catalog import, upgrade, or migration:
- Confirm the generation method. On 2.4.9 or later with a large catalog, use Batch.
- Confirm the scheduled job runs and finishes. Check file modification times, not just the cron schedule.
- Set an error email recipient for failed runs.
- Decide on image inclusion and measure its generation cost.
- Open the index and count the files. Check that every referenced file loads and is on the same host.
- Spot-check 20 URLs from each file against their canonical tags.
- Compare lastmod values against real update dates.
- Confirm robots.txt lists the right sitemap for each domain.
- Submit the index in Search Console and review the per-file processed and discovered counts.
- Stop tuning priority and changefreq. Google ignores both.
A clean sitemap also helps beyond Google. AI search engines and answer engines crawl from many of the same signals, which we cover in making an Adobe Commerce catalog citable by ChatGPT and Perplexity.
Getting help with a large catalog
Bemeir is a Brooklyn ecommerce agency. Our Magento development services and Hyva development services cover technical SEO, cron health, and storefront performance for Magento Open Source and Adobe Commerce. Teams comparing platforms can also look at our work in Shopify development, Shopware development, and BigCommerce development, each of which generates sitemaps differently. Read more about Bemeir, see our technology partners, or visit the Bemeir home page.
FAQ
How many URLs can a Magento sitemap file hold?
Magento’s Maximum No of URLs per File setting defaults to 50,000, which matches Google’s limit. The Maximum File Size setting defaults to 10,485,760 bytes, about 10 MB. Whichever limit is reached first causes Magento to start a new file and list it in the sitemap index.
Does Hyva change the Magento XML sitemap?
No. Magento generates the sitemap on the backend, so Luma, Hyva, and headless storefronts produce the same XML. Hyva affects how quickly the listed pages load when they are crawled, not which URLs the sitemap contains.
Should I include images in my Magento sitemap?
Include them if image search matters to your business, and prefer Base Only over All. Image inclusion makes generation slower, and Adobe released patch ACSD-67603 for long processing times with images enabled on 2.4.6 through 2.4.7-p7.
Do priority and changefreq matter for Google?
No. Google’s documentation states that it ignores both values. Focus on listing only canonical, indexable URLs and keeping lastmod accurate, which Google does use when it is consistently reliable.
Why does sitemap generation fail on my large Magento catalog?
The Standard generation method processes all data in memory, which can exhaust PHP memory or time out on large catalogs. From 2.4.9, Adobe documents a Batch method recommended for large catalogs. Image inclusion and an overloaded cron schedule are other common causes.





