0

I get it, Magento 2 is slow. We are following all the official best practices from Magento docs and suggestions and tips you can find out there: Varnish, Redis, no bundling, AWS, etc. In conclusion, our store works fine on cached pages, loading under 1 second... which is good "in theory", but we are still dealing with 2 major problems:

  1. Our product catalog gets updated constantly so we are forced to flush cache several times during the day. When this this happens, every single page goes slow the first time it is visited by any customer.

  2. There are some dynamic pages, ie. Customer's My Dashboard that are not meant to be cached based on the URL.

In these 2 scenarios, we are talking about loading times of around 10-15 seconds. Which is simply unacceptable.

All suggestions point to cache. But cache doesn't cater for a store that requires constant updates and dynamic pages.

Are we missing something or is this just the reality of Magento 2?

Thank you.

1
  • this is the way it works, but 10-15 sec you have something wrong, load profiler or newrelic, average non-cached speed is ~5 sec
    – MagenX
    Sep 8 '20 at 7:43
1

Magento 2 definitely isn't a fast platform without it's cache, but it shouldn't be taking 10 - 15 secs on a customer dashboard page or even on catalog pages unless you have some serious code issues (like loading too many products at once or other unoptimized code).

The cache mechanizm is a good way to help speed up the site, but it's also many times used to hide all the bad (unoptimized) coding in the background.

A quick suggestion would be to flush only the full page cache if it's enough for the dynamic changes to be shown on your pages.

It shouldn't take your pages so long to "recover their speed" by only flushing the full page cache.

Flushing the entire cache removes all of the caches (layouts, configuration, translations etc.) which most probably doesn't change on these dynamic updates you mentioned.

I would also susggest to check for possible issues in your code (e.g. calling a "heavy" function in a foreach loop instead of once outside the loop) or using pagination if you're loading too many items (products or other stuff) on a page at once... but these are just general suggestions since I have no idea what is actually causing the slow load speeds.

There could also be some database queries that could be optimized.

This is all really highly dependant on your shop and how it was built and configured, so it would require a detailed analysis to offer any really meaningful suggestions.

1
  • Thanks for your input.
    – James
    Sep 8 '20 at 6:53
0

Magento 2 is not the fastest application on the planet, and if you said that it takes 4-5 seconds, I would understand. But 10-15 seconds is not standard on any at least regular hardware.

If you flush caches (assuming you are flushing all of them), then the first page you visit may take longer. (because stuff like layout or config cache takes time to build).

However, if every single page takes this long, then the problem is in the application and most likely is caused by poor customization.

There may be a clear cause, like the server not being able to resolve DNS over IPv6.

At the same time, it can be caused by many issues on top of each other.

In any case, you will have to learn how to use a profiler and determine what is really happening in your application.

You can use default magento tool:

https://devdocs.magento.com/guides/v2.4/config-guide/bootstrap/mage-profiler.html

and there are also many extensions like: https://www.mgt-commerce.com/documentation/magento2-mgt-developer-toolbar

Please note that the enabled profiler does have impact on systems performance. Do not enable it on production :)

1
  • Thanks for your suggestions.
    – James
    Sep 8 '20 at 6:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.