- By Kiwi Commerce
- 07 Aug, 2025
- Magento
Advanced Indexing in Magento 2: How to Customise and Optimise for Large Catalogues
Handling a large product catalogue in Magento 2 can be a real headache. While Magento is powerful and highly adaptable, managing tens—or even hundreds or thousands of products often causes slowdowns, mainly due to the way indexing is handled. If your admin panel feels sluggish, changes don’t appear quickly on the frontend, or site search isn’t working as expected, poor indexing could be the culprit.
In this article, we’ll explain what indexing in Magento 2 actually does, why it’s critical for large catalogues, and how you can customise and optimise it for peak performance—without diving too deep into the technical weeds.
What Is Indexing in Magento 2?
Indexing is Magento’s method of reformatting core data (like product details, pricing, and category assignments) into a structure that loads quickly on your website. Each time you update a product—whether it’s a price change or a new category assignment—Magento must reindex that data to ensure it displays correctly on the frontend.
Magento 2 comes with a set of default indexers, including:
- Product Prices
- Category Products
- Product Attributes
- Stock Levels
- Catalogue Search
- …and several others.
Why Indexing Becomes a Challenge for Large Stores
For small stores, reindexing happens in seconds. But when you’re working with 50,000+ products, the process can take several minutes—or even longer. This leads to:
- Slow product saving actions
- Outdated content on the frontend
- Cron jobs failing or stalling
- Admin users facing timeouts
In most cases, indexing is the performance bottleneck.
How to Optimise Magento 2 Indexing for Large Catalogues
Here are several effective ways to improve indexing efficiency and overall site performance:
1. Switch to “Update by Schedule” Mode
Always configure your indexers to “Update by Schedule” rather than “Update on Save”. The latter forces a full reindex every time you make changes—something that can cripple performance on a large catalogue.
Run the following CLI commands to check and set the indexer modes:
php bin/magento indexer:show-mode Â
php bin/magento indexer:set-mode schedule
Also, confirm that your cron jobs are set up properly, as scheduled reindexing relies on them.
2. Enable Partial Reindexing
Magento supports partial indexing—only updating items that have changed. This drastically reduces indexing time, especially when adjusting prices or stock for a subset of products.
Check whether any custom modules or third-party extensions are triggering full reindexes unnecessarily. Where needed, develop custom indexers that respond to specific events and process only relevant data.
3. Create a Dedicated Cron Group for Indexing
On high-traffic stores, the default cron setup can become overloaded. Isolate indexing tasks into their own cron group to prevent conflicts with newsletters, sitemap generation, and other scheduled jobs.
Add a new group in crontab.xml:
<group id=”index”>
    <schedule>*/5 * * * *</schedule>
    <job name=”indexer_reindex_all_invalid”
         instance=”Magento\Indexer\Cron\ReindexAllInvalid”
         method=”execute”/>
</group>
Then update your server’s crontab to run this group separately.
4. Tune MySQL for Indexing
Since indexing is heavily database-driven, optimising your MySQL configuration can have a significant impact. Key adjustments include:
- Increasing innodb_buffer_pool_size
- Enabling slow query logging
- Regularly optimising large tables (e.g. catalog_product_index_price)
It’s worth collaborating with your hosting provider or DevOps team for this.
5. Use Asynchronous Indexing (Where Applicable)
If you’re running a large-scale or enterprise-level Magento installation, implementing asynchronous indexing via Magento’s Message Queue (e.g. RabbitMQ) is a smart move. It decouples indexing from real-time frontend and admin operations, improving overall site speed and admin responsiveness.
Creating Custom Indexers
Got a bespoke feature—like vendor-based pricing or a complex shipping matrix—that needs regular updates? Building a custom indexer can keep your core indexers lightweight and efficient.
Magento provides a framework interface for this:
\Magento\Framework\Indexer\ActionInterface
Make sure your custom indexer is optimised for incremental reindexing to handle large datasets with ease.
Final Thought
Indexing is often a hidden bottleneck in Magento 2 performance, particularly for stores with large or complex product catalogues. By scheduling indexers, enabling partial updates, separating cron processes, and considering advanced techniques like custom or asynchronous indexing, you can significantly reduce delays and improve backend responsiveness.
At Kiwi Commerce, we’ve helped many merchants unlock the full potential of their Magento 2 setup by tackling indexing issues head-on. If your store is struggling with performance, start with indexing—you might be surprised just how much of a difference it makes.
Need help scaling your Magento store? Get in touch with Kiwi Commerce for expert Magento performance solutions.