Have you outgrown Magento an Adobe Commerce?

Yegor Shytikov
9 min readJun 25, 2021

--

Sooner or later, you will outgrow Magento an Adobe Commerce platform: the solution will be too complex, to slow, too hard to maintain and upgrade, and modify. At this point better to leave Magento 2 and develop a custom solution with modern technology using just a modern framework or some basic implementation and implement the functionality you need from the ground up. Or you can use microservices around Magento. I worked with dozen Fortune 500 merchants, only several of them were a good fit for Magento 2. Other eCommerce overgrow the platform.

How to understand that Magento and Adobe Commerce are not good feet for you? Let's check the original Magento documentation and best practices.

Adobe Commerce number of categories limits:

The best practices for a number of categories limit for Magento Commerce, and Magento Commerce Cloud is 300 overall.

What’s interesting in the August 2020 limitation was 2020, but after that, understand 300 they will not sell for a body, and they increased it to 3000–6000 categories without fixing anything. Magento 2 best practices and documentation is a sales-making tool when sales reps telling you a numbers. Don’t trust and check yourself.

Way back machine version: https://web.archive.org/web/20210127043311/https://support.magento.com/hc/en-us/articles/360048176832-Best-practice-Magento-number-of-categories-limits

The potential site impact of exceeding this limit is:

  • Tangible increase in response time on non-cached catalog pages
  • Long execution/timeouts during managing categories in the Admin Panel
  • Increase in size of corresponding DB tables
  • Growth of indexation time [category/product relation index]
  • Heavier operations on categories tree building, menu retrieval, and category rules management operations.

Magento 2 performance limitations on Complex Product Variations

Magento's recommendation is to have not more than 50 variations per product, as performance can be affected.

Potential site impacts can include:

  • Long request time and rendering times on product details and category pages containing complex products
  • Admin product save operations response time increases above optimal performance targets.
  • Increase in Product Edit form rendering time
  • Slow checkout.

Potential site impacts can include:

  • Long request time and rendering times on product details and category pages containing complex products
  • Admin product save operations response time increases above optimal performance targets.
  • Increase in Product Edit form rendering time
  • Slow checkout.

Each complex product variation leads to the creation of a detached product that can be treated as a multiplier. An outstanding number of options causes:
• Increase numbers of SQL queries (N+1 issue) for product display and management
• Increases PHP execution time because Magento 2 framework is slow and can’t process more than 1 product per page efficiently
• Increases Page rendering time because browser haves more DOM elements modification and rendering for swatches

For example 50 variants = 5 Sizes and 5 Colors and 2 Materials options.

Also, Related / Cross-sell / Up-sell product blocks on the product page also have the same performance problem. Basically, 1 related product = 1 Variant.

Have you ever seen an Enterprise platform with such pure performance?

Limitation to use Admin during the Busines Hours :

It is best practice not to conduct critical actions in the Magento Admin Panel during business hours to avoid performance degradation.

Examples of critical actions:

  • Save (update) a product attribute.
  • Flush caches after import.
  • Move product-subcategory to another category.

These critical actions lead to cache invalidation (a procedure for 1 or more objects that removes data regarding the objects from all caches) and cause a significant negative performance impact on the site during business hours, and can potentially be a root cause of site outages.

Reporting and

If you need Reports and Customer Segmentation

Magento recommends disabling the Reports functionality if you are not using it or the related dynamic customer segments functionality. Having it enabled might slow product page loading, causing performance degradation on the storefront catalog.

Magento product options limitation

Magento2 recommendation is to have not more than 100 options per product, as performance can be affected.

Many product options lead to an increase in data retrieved for each product on all read and write operations resulting in:

  • Increase in SQL queries traffic and heavier JOIN operations affecting database throughput
  • Increase of Magento indexes size and full-text search index

The increases listed above can cause these potential site impacts:

  • Response time will be increased for most storefront scenarios related to products containing a large number of options in attributes.
  • Product management operations in Admin will significantly slow down and can lead to timeouts, especially on scenarios related to attributes list and tree retrieval (including promo rules management).
  • Product mass actions functionality can be blocked.

Magento an Adobe Commerce product attributes limitation

This article provides best practices for the maximum recommended number of product attributes in Magento. There is a limit of 500. If you exceed the maximum recommended limit, performance can be affected.

A large number of product attributes affects the size of the Product template saved for each product (EAV structure). This leads to:

  • Increase of SQL queries related to EAV data retrieval and size of data processed and as a result decrease of DB throughput
  • Significant increase in full-text search index size
  • Increase in EAV index size
  • Reaching hard MySQL limits when building a FLAT index for oversized product templates and inability to use it.

Response time on most storefront scenarios related to catalog browsing, search (quick and advanced), and layered navigation will be decreased.

Product management operations in the Admin Panel will significantly degrade (slow down) and can lead to timeouts.

Product Mass Actions functionality can be blocked. Index re-build time for mid/large size catalogs cannot be performed on a daily basis due to long execution times.

The same as the categories number, Magento increased this number without any improvement. The same as they are closing bug fixes without any fixes.

Products per page limit Magento

You can configure Magento to allow shoppers to view all category products on a single page. But if the number of category products significantly exceeds 48 products, it may take a long time for them to render. However, the real number is about 10 products.

Number of products in cart in Magento 2

The maximum recommended number of simple products is 100. Remember Configurable products can be created as 50 simple products;)

The potential site impact of exceeding the limit is:

  • An increase in data retrieval operations, validation of cart items, checks for price rules applications, tax calculations, and totals calculations.
  • An increase in the time for mini-cart rendering, including cart rendering time, checkout flow rendering, and execution, leading to performance degradation.
  • Increase in the page loading time for all site pages where the mini-cart is present, leading to performance degradation.

Magento Best Practices for cart limits are:

  • Up to 100 products in a cart: the product works, meeting performance targets for response time.
  • Up to 300 products in a cart: the product works, but response time increases above targets.
  • Above 500 products in a cart: the cart and checkout flows are not guaranteed to work.

However, it is a limit for the default Luma Magento version without any customization. So if you want a greater user experience, this number much less.

Sales Rule limitation:

The maximum recommended a total number of sales rules (cart price rules) for all websites is 1000 in Magento. Having many sales rules can have a negative impact on performance. The limitation is due to needing to validate cart contents against all rules registered in the system to apply the necessary rules.

Having too many sales rules will cause degraded performance on the site, including:

  • Adding products to cart response time increases above performance targets.
  • Mini-cart loading and rendering time increase.
  • Cart page rendering time increases above performance targets.
  • On the Checkout page, there is a section called Totals (Final price, Subtotal), and a number of sales rules have a direct performance impact on this block rendering time.

Best practices of sites, stores, and store view numbers

Having a large number of stores, websites, or store views can slow your site down. The maximum recommended sites, stores, and store views counts are:

  • sites = 50
  • stores = 50
  • store view count = 50

However, the real number is around 5.

Websites and stores are multipliers for catalog data, so having a large number of websites and stores results in:

  • an increase in the size of index tables
  • longer indexation process
  • longer retrieval of configuration
  • slower save operations in admin as data is saved for each website separately.

Maximum number of the products

It is best practice to minimize the number of product Stocking Keeping Units (SKUs) to avoid performance degradation. The recommended effective product max is 10M.

The effective Number of SKU is calculated as the following:

Effective SKU = N[SKUs] * Stores/Websites * Customer Groups

High Effective SKU slows down product data retrieval and increases admin operations time.

So, if your site has 5 store views, 100 000 simple products (SKUs), and 100 Customer Groups = 10 000 000. So we have reached our limit.

You can easily reach 100 customers because too many functions create customer groups, especially Shared Catalog B2B functionality.

Third-party/First-st Party extensions limitation

Magento third-party extensions have the potential to cause various issues that may lead to performance degradation in your store. Simply saying limitation for PGP, PLP modification extension is around 5 to avoid performance issues caused by third-party extensions. I also saw customization where trusted Adobe Partners installed hundreds of extensions + customizations, and the site was just unusable and unfixable. What you can do to fix this website remove everything and start from scratch. Also, a lot of extensions produce more bugs and upgradeability hell.

Magento is extendable, but all extensibility is against performance and upgradability.

Also, Magento 2 has a really low-quality extension because they are cheap and reuses the Magento core framework with performance issues. Some of them don’t work at all. Some work only with a small number of products.

Ajax HTTP requests Limitation

If you want to use Ajax to load dynamic content or implement some functionality.

Ajax requests from the storefront to the server have a performance impact, especially in high-load (high-volume and high-traffic) conditions. So it is better to avoid usage of the AJAX requests. The best practice is 0–1 request per page.

Technology limitation

Magento 2 (Adobe Commerce) uses outdated technology stack and has a huge technical debt. PHP Zend framework 1, KnockoutJS, jQuery, PrototypeJS, Require, Less, uses updated composer dependencies. The list is huge. If you want to be in step with the times, Magento 2 is not for you. Even React PWA studio will not fix the issues. It can slightly patches a frontend, but the backend will be the same slow and outdated.

Limitations for High-Load High-traffic websites

Magento is not suitable for high-load websites, any super expensive cloud infrastructure cannot fix core performance and technical debt. Megento has published Performance White Papers that show how bad is Magento 2 for a high load:

And this test is using an Average response time to improve the result, not a 95% percentile to show a real user performance. And the load was just 20-25 concurrent requests.

We can see that the Luma theme without any customization on good hardware has 3414–12311ms server response time (TTFB)!

For this article, I have used only official documentation and material. You can find everything on the Adobe website. So you decide to overgrow Magento 2 or struggle. If you spend even $15M on implementation done by the best Adobe Partner Magento 2 will not become faster and stable, only slower and buggy. When sales guys talking about success stores, it is just a marketing advertisement, not more. I heard those stories many times, and after checking a real website, it uses Shopify or something else.

--

--

Yegor Shytikov

True Stories about Magento 2. Melting down metal server infrastructure into cloud solutions.