Indexer Optimizer
v1.0.14
Indexer Optimizer
- Updates and support included for 12 months
- License key delivered immediately by email
- 30-day money-back guarantee
- Full documentation included
- Composer-ready installation
Indexer Optimization
Cut Magento reindex times on large catalogs from hours to minutes. This module intercepts the native Magento indexers (price, EAV, category-product, catalog rule, stock, fulltext) with optimized batch routines and configurable batch sizes, runs them in the correct dependency order, and skips redundant work — for example when catalog_category_product and catalog_product_category would otherwise rebuild the same shared table twice.
A single CLI command, bin/magento wimakeit:indexer:reindex-all, replaces the usual sequence of indexer:reindex calls. It shows a real-time progress bar, runs every indexer in the right order, and exposes a --skip-fulltext flag for stores that delegate search to Meilisearch or a separate worker.
Who it's for
- Merchants with large catalogs (10k+ SKUs, bundle products, or many customer groups) where native reindex is painfully slow
- Stores running an ERP-driven import where partial or full reindex is triggered multiple times per day
- Stores running Meilisearch or OpenSearch as the search engine, where catalog indexers must run but fulltext is handled separately
- DevOps teams that want a single, scriptable reindex command for deploys and cron
Key benefits
- One command to reindex everything —
wimakeit:indexer:reindex-allruns all catalog indexers in dependency order with a global progress bar and per-indexer timing summary. - Configurable batch sizes — tune price, EAV, category-product, catalog rule, bundle, and stock batch sizes from the admin to match your server's memory and database profile.
- Per-indexer toggles — keep the native Magento indexer for any specific index you don't want to override; the optimizer is opt-out per index.
- Skips redundant reindex —
catalog_category_productandcatalog_product_categoryshare a table; when one is already valid, the other is skipped. Saves minutes on every deploy. - Dependency-checked fulltext — before
catalogsearch_fulltextruns, the module verifies that prerequisite indexers are valid and reindexes them if needed. - OPTIMIZE TABLE after full reindex — optional MySQL table optimization reclaims space and defragments index tables after large reindex jobs.
- Stale indexer detector — hourly cron logs a warning to
system.logif an indexer has been stuck in "invalid" state longer than the configured threshold.
Compatibility
- Magento 2.4.x / Mage-OS equivalent
- PHP 8.1, 8.2, 8.3
- Requires
wimakeit/module-core3.0.9 or later - Works alongside
wimakeit/module-meilisearch-engine(use--skip-fulltextand let Meilisearch handle search) - Compatible with native MySQL search and OpenSearch
Install this module via Composer. Make sure your auth.json is configured with your Wimakeit credentials.
$ composer require wimakeit/module-indexer:^1.0.14
$ 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.
Prerequisites
The price indexer must run in dimension mode none. The optimized routines write to the base catalog_product_index_price table with a website_id column; the dimensional modes (website, customer_group, website_and_customer_group) create per-dimension tables (_ws0, _cg0, ...) that this module does not populate. The price plugin transparently falls back to Magento's native indexer when dimension mode is anything other than none, and wimakeit:indexer:fast-reindex aborts with an explicit error.
Verify and configure:
bin/magento indexer:show-dimensions-mode catalog_product_price
bin/magento indexer:set-dimensions-mode catalog_product_price none
bin/magento indexer:reindex catalog_product_price
bin/magento cache:flush
Required dependency
This module requires wimakeit/module-core 3.0.9 or later. Composer will pull it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.
ACL permissions
After installation, one ACL resource is registered under System → Permissions → User Roles:
| Resource | Default |
|---|---|
Wimakeit_Indexer::config (edit module configuration) | granted to Administrator role only |
Configuration
The module ships with safe production defaults. Go to Stores → Configuration → Catalog → Catalog → Wimakeit Indexer Optimization only if you want to change them.
General
| Setting | Default |
|---|---|
| Enable Optimized Indexers | Yes |
| Enable Performance Logging | No — turn on temporarily to measure batches |
| Enable Table Optimization | Yes (runs OPTIMIZE TABLE after full reindex) |
| Stale Indexer Threshold (hours) | 4 |
Per-indexer toggles
| Setting | Default |
|---|---|
| Enable Price Optimizer | Yes |
| Enable EAV Optimizer | Yes |
| Enable Category Optimizer | Yes |
| Enable Catalog Rule Optimizer | Yes |
| Enable Stock Optimizer | Yes |
Batch sizes
| Setting | Default |
|---|---|
| Price Indexer Batch Size | 1000 (recommended 500–2000) |
| Bundle Price Batch Size | 2000 (recommended 500–2000) |
| Category-Product Batch Size | 5000 |
| EAV Indexer Batch Size | 5000 |
| Catalog Rule Batch Size | 5000 |
| Stock Indexer Batch Size | 5000 |
CLI commands
# Reindex all catalog indexers in dependency order, with progress bar
bin/magento wimakeit:indexer:reindex-all
# Skip fulltext (when Meilisearch handles search)
bin/magento wimakeit:indexer:reindex-all --skip-fulltext
# Without progress bar (cron/scripts)
bin/magento wimakeit:indexer:reindex-all --no-progress
# Detailed indexer status
bin/magento wimakeit:indexer:status --detailed
# Category-product reindex (full or per-id)
bin/magento wimakeit:indexer:category-product --full
bin/magento wimakeit:indexer:category-product --product-ids=123,456
# Fast bundle-price reindex
bin/magento wimakeit:indexer:fast-reindex
Cron jobs (registered automatically)
| Job | Schedule |
|---|---|
wimakeit_indexer_stale_detector (warn if indexer stuck invalid) | hourly |
No setup needed — just make sure Magento cron is running.
- Version
- v1.0.14
- License
- Annual Subscription
- Support
- 12 months
- Last updated
- Jun 5, 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-indexer
Compatibility checker
Pick your stack to see if this module fits.
Compatibility 4
Pricing & licensing 4
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-indexer:^1.0.11, 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-indexer:^1.0.11. 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.
[1.0.12] - 2026-06-02
Fix
- Price plugin now falls back to Magento's native indexer when the price indexer dimension mode is not
none, instead of silently leaving the per-dimension tables (_ws0,_cg0, ...) stale and causing 1146 "table doesn't exist" errors on bundle product saves. wimakeit:indexer:fast-reindexaborts with a clear error and the exactindexer:set-dimensions-modefix command when dimension mode is notnone.
[1.0.11] - 2026-05-10
Admin
- Enable Debug Logging now defaults to off on fresh installs, matching the convention adopted across every Wimakeit module after the core 3.0.9 rollout. Existing deployments with the value explicitly saved are not affected.
Perf
- Fresh deploys no longer write ~100+ info/debug/warning traces per indexer run into
var/log/system.log. Hard errors still log unconditionally.
[1.0.10] - 2026-05-10
Feature
- New Enable Logging toggle (Stores → Configuration → Catalog → Wimakeit Indexer → Logging). Four logger consumers (fulltext indexer plugin, stock indexer plugin, product-category plugin, optimized stock indexer) emit
info/debug/notice/warningonly when the toggle is on;error/criticalalways log.
Deps
- Requires
wimakeit/module-core3.0.9+ for the shared debug logger virtual type.
[1.0.9] - 2026-05-08
Admin
- Admin menu group standardized — module appears under a top-level Wimakeit_Indexer entry with a Settings child that opens directly on the native catalog configuration where the Wimakeit Indexer group lives.
Deps
- Certified PHP 8.1 → 8.3 support. Composer
phpconstraint tightened to>=8.1 <8.4.
[1.0.8] - 2026-04-29
Admin
- Internal release pipeline standardized (validate, tag, deploy, release stages). No functional change for merchants.
[1.0.7] - 2026-04-07
Deps
- Depends on
wimakeit/module-corefor shared CLI and config abstractions.
[1.0.6] - 2026-03-17
Admin
- CLI commands and config readers refactored to extend the shared abstractions provided by
wimakeit/module-core3.0 — consistent logging and option handling across all Wimakeit CLI commands.
[1.0.5] - 2026-03-12
Fix
wimakeit/module-corecomposer dependency now points to the published package (wimakeit/module-core) instead of the legacy nested path that brokecomposer installon stores that bypassed the GitLab registry.
[1.0.4] - 2026-03-12
Fix
- Indexer table-clear step now uses the context-aware
clearTableutility — safer when an indexer runs against a custom store scope or a partial dataset.
[1.0.3] - 2026-02-27
Admin
- New
wimakeit:indexer:statusandwimakeit:indexer:bundle-pricesCLI commands stabilized; admin tab definition consolidated under the shared Wimakeit_Core admin section.
[1.0.2] - 2025-12-18
Fix
- Added stock and
catalogrulecoverage to the optimized indexer plugins. Saving a product or price rule now triggers the optimized partial reindex path instead of falling back to a full reindex.
[1.0.1] - 2025-12-15
Admin
- Initial post-launch hotfix release — pipeline and package-name corrections so the module installs cleanly from the Wimakeit GitLab Composer Registry.
[1.0.0] - 2024-12-15
Feature
- Initial release with optimized bundle price indexer (
BundlePriceOptimized) and EAV attribute indexer (EavOptimized). - Delta indexing plugin to reduce work on incremental reindex.
- Auto-adjusted batch sizes for large catalogs.
- New CLI commands
wimakeit:indexer:fast-reindex,wimakeit:indexer:status,wimakeit:indexer:bundle-prices.
Admin
- New admin panel under Stores → Configuration → Catalog → Catalog → Wimakeit Indexer Optimization to tune batch sizes and toggle per-indexer optimizers.
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 Indexer OptimizerNeed help?
Our team is available to assist with integration.