Sitemap Generator CLI
v3.0.7
Sitemap Generator CLI
- Updates and support included for 12 months
- License key delivered immediately by email
- 30-day money-back guarantee
- Full documentation included
- Composer-ready installation
Sitemap Generator CLI
Generate Google-compliant product sitemaps for million-product catalogs without melting your server. This module replaces Magento's native sitemap generator with a streaming, memory-efficient implementation that runs from the CLI or on a configurable cron schedule, auto-splits files at Google's 50,000 URL limit, and produces a sitemap index referencing every chunk.
If your store has 50,000 SKUs, the native generator is fine. If you have 200,000, half a million, or more than a million products, it stops being fine: memory pressure, broken cron jobs, partial sitemaps, missing URLs. This module is the rewrite you need when "more products" stops being a good problem to have.
Who it's for
- Mid-to-large catalogs (100k+ products) where the native sitemap generator runs out of memory or time
- B2B distributors and marketplaces with millions of products needing weekly or daily sitemap regeneration
- SEO-driven merchants who want image URLs in their sitemaps (
image:imagetags) to feed Google Image search
Key benefits
- Streaming XML generation — products are processed in configurable batches and written to disk in real time. Memory stays flat regardless of catalog size; we've tested it on catalogs of 1.6M+ products.
- Google-compliant auto-split — sitemaps are split at the 50,000 URL limit (configurable) and a sitemap index is generated automatically, so Search Console accepts the whole set in one URL.
- Product images included — optional
image:imagetags with image URL and product title, ready for Google Image search. - CLI with progress and ETA —
bin/magento wimakeit:sitemap:productsshows a progress bar with elapsed time, ETA and current memory usage, so you know when 1.6M products will be done. - Cron-driven for production — the same logic runs on a configurable schedule (default: Saturday 00:22) and walks every active store. Default
enabled=Yesso it starts working as soon as you install it. - Per-store output — files are named
{prefix}-{store_id}-{n}.xmland dropped into a configurable path underpub/. Easy to wire into your robots.txt or your CDN.
Compatibility
- Magento 2.4.6 or later / Mage-OS equivalent
- PHP 8.1, 8.2, 8.3
- Requires
wimakeit/module-core3.0 or later - Does not depend on
magento/module-sitemap— uses direct product collections to bypass that module's memory limits - Write access to the configured output path (default:
pub/media/sitemap/)
Install this module via Composer. Make sure your auth.json is configured with your Wimakeit credentials.
$ composer require wimakeit/module-sitemap-generator-cli:^3.0.7
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile
Installation notes
The standard composer require + setup:upgrade + setup:di:compile flow applies. The points below cover what's specific to this module.
Required dependency
This module requires wimakeit/module-core 3.0 or later. Composer pulls it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.
ACL permission
| Resource | Default |
|---|---|
Wimakeit_SitemapGeneratorCli::config (edit Sitemap Generator configuration) | granted to Administrator role only |
Configuration
Go to Stores → Configuration → Wimakeit → Sitemap Generator.
General settings
| Setting | Default |
|---|---|
| Enable | Yes |
| Include Product Images | Yes (adds image:image tags) |
| Batch Size | 1000 products per batch |
| Max URLs Per File | 50000 (Google's per-file limit) |
| Output Path | /media/sitemap/ (relative to pub/) |
| Filename Prefix | products — output: {prefix}-{store_id}-{n}.xml |
Cron settings
| Setting | Default |
|---|---|
| Enable Cron | Yes |
| Cron Schedule | **22 0 6** (Saturday 00:22) |
Cron job (registered automatically)
| Job | Schedule source |
|---|---|
wimakeit_sitemap_generator (group wmi_sitemap_generator) | reads wimakeit_sitemap/cron/schedule from admin config |
No setup needed beyond making sure Magento cron is running. The job walks every active store and writes one set of files per store.
Filesystem prerequisites
The web server user must have write access to the configured output path (default pub/media/sitemap/).
CLI usage
# Basic — all products for store 1
bin/magento wimakeit:sitemap:products
# With options
bin/magento wimakeit:sitemap:products \
--store=1 \
--batch=1000 \
--max-urls=50000 \
--filename=products \
--path=/media/sitemap/ \
--images \
--limit=1000
The --limit flag is useful for staging — generate a partial sitemap to verify XML structure before running against the full catalog.
robots.txt wiring
After the first run, point Google to your sitemap index:
Sitemap: https://your-store.com/media/sitemap/products-1.xml
Replace the path and store ID with whatever you configured.
- Version
- v3.0.7
- License
- Annual Subscription
- Support
- 12 months
- Last updated
- Aug 25, 2026
- Magento
- Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
- PHP
- PHP 8.1 PHP 8.2 PHP 8.3
- Hyvä
- Not compatible
- Package
-
wimakeit/module-sitemap-generator-cli
Compatibility checker
Pick your stack to see if this module fits.
Compatibility 4
Pricing & licensing 4
bin/magento module:disable; uninstall cleanup is automatic via the module's setup patch revert. vendor/wimakeit/ once you composer require the package, so you can read it, audit it, and patch it locally for your own Magento install. You may NOT redistribute it, sublicense it, publish it on a public package registry, or sell it on. One licence = one production domain + one staging/dev domain (see terms for the full EULA). Wimakeit modules are NOT part of Magento's open-source repository on packagist.org — they are distributed exclusively via the private Composer registry packages.wimakeit.be. Installation & updates 6
composer require wimakeit/module-sitemap-generator-cli:^3.0.4, then bin/magento setup:upgrade, bin/magento setup:di:compile, and finally bin/magento cache:flush. The Installation tab on this page lists every configuration step (ACLs, cron jobs, default values) so a deploy takes minutes, not hours. If you need a hand, Wimakeit offers Magento installation services from our Wallonian office (Presles, between Charleroi and Namur). auth.json: {"http-basic": {"packages.wimakeit.be": {"username": "YOUR-EMAIL", "password": "YOUR-TOKEN"}}}. Step 3: register the repo: composer config repositories.wimakeit composer https://packages.wimakeit.be. Step 4: composer require wimakeit/module-sitemap-generator-cli:^3.0.4. In CI/CD pipelines, inject COMPOSER_AUTH as a JSON env var instead of committing auth.json. composer require, same module code, same database schema — no fork to maintain, no licence change. composer update is safe within a major. app/design/frontend/{YourVendor}/{theme}/Wimakeit_{Module}/templates/ keeping the same relative path. Blocks, ViewModels and Helpers are overridable via DI preference in your own custom module — declare <preference for="Wimakeit\…\OriginalClass" type="YourVendor\Override\Class" /> in etc/di.xml. Layout XML is extended (preferred) or overridden the standard Magento way. Wimakeit modules never use the final keyword on classes you might reasonably want to override — overriding is a first-class scenario, not a hack. Support & security 3
contact@wimakeit.com with the module name, version, Magento/Mage-OS version and the steps to reproduce. Fixes ship in the next patch release. Wimakeit support is staffed in French, English and Dutch on business days (CET working hours). contact@wimakeit.com with a clear [SECURITY] subject prefix — please include the module name, version and the steps to reproduce. We acknowledge promptly on business days and credit reporters in the Changelog if they wish. Wimakeit is a Belgian SRL (société à responsabilité limitée) bound by Belgian and EU privacy and disclosure law. About Wimakeit 1
Found something not covered by the FAQ?
Report a bug or ask a question — the form is prefilled with this module.
Changelog
Categories: Security, Feature, Fix, Perf, Admin, Deps.
[3.0.6] - 2026-06-05
Deps
- Marketing documentation refreshed to list PHP 8.4 in the supported PHP range.
[3.0.5] - 2026-06-05
Deps
- PHP 8.4 certified — constraint widened to
>=8.1 <8.5.
[3.0.4] - 2026-05-08
Admin
- Admin menu group standardized — module appears under a top-level Wimakeit_SitemapGeneratorCli entry with a Settings child that opens directly on the configuration section.
[3.0.3] - 2026-04-29
Admin
- Internal release pipeline standardized (validate, tag, deploy, release stages). No functional change for merchants.
Deps
- Certified PHP 8.1 → 8.3 support. Composer
phpconstraint tightened to>=8.1 <8.4.
[3.0.2] - 2026-04-07
Admin
- Cron classes migrated to the shared
AbstractCronbase fromwimakeit/module-core— consistent logging (logInfo/logError/logDebug) across all Wimakeit cron jobs.
Deps
- Depends on
wimakeit/module-corefor shared cron and config abstractions.
[3.0.1] - 2026-03-17
Admin
- CLI command migrated to the shared
AbstractCommandbase fromwimakeit/module-core— consistent option handling, progress bar behavior and logging across all Wimakeit CLI commands.
[3.0.0] - 2025-02-12
Feature
- New admin configuration panel under Stores → Configuration → Wimakeit → Sitemap Generator with batch size, max URLs per file, output path, filename prefix, and cron schedule.
- Product image support: optional
image:imageXML tags with image URL and product title, ready for Google Image search. - Automatic sitemap index generation when output exceeds the per-file URL limit.
Perf
- Complete rewrite for catalogs up to 1.6M+ products: streaming XML generation, configurable batch size, flat memory profile.
- Auto-split into multiple files at Google's 50,000-URL limit (configurable).
Admin
- CLI command renamed to
wimakeit:sitemap:productswith progress bar showing elapsed time, ETA and memory usage. - Cron reads its schedule from admin config (
config_path), so changes take effect without code edits. - Default cron schedule: Saturday 00:22 (
22 0 6).
Deps
- Dropped dependency on
icamys/php-sitemap-generator(replaced by in-module streaming writer). - Dropped dependency on
magento/module-sitemap(uses direct product collections instead).
[2.0.0] - 2024-12-15
Feature
- New
wimakeit:sitemap:listcommand to show all configured sitemaps. --storeoption to filter by store ID;--dry-runfor simulation.- Progress bar during sitemap generation and a results table with per-sitemap status.
Fix
- Fixed critical undefined
_objectManageraccess that broke the cron in some setups. - Fixed incorrect
sitemapCollectionFactoryproperty name and a missingNoSuchEntityExceptionimport. - Fixed cron calling a non-existent
generateSitemap()method. - Fixed duplicate command registration in
di.xml.
Admin
- Cron now iterates through all sitemaps with proper per-sitemap error handling.
- Comprehensive logging via
Psr\LoggerInterface.
Deps
- Removed runtime dependency on
wimakeit/module-core(re-added in 3.x for the shared debug logger).
[1.0.0] - 2024-06-20
Feature
- Initial release: CLI command for sitemap generation and cron job for automatic generation.
Found a bug? Tell us about it.
A short form opens in a new tab — the module name and your language are already filled in. Share what you tried, what went wrong, and we will get back to you within one business day.
Report a bug for Sitemap Generator CLINeed help?
Our team is available to assist with integration.