Kualo / docs
On this page

How to spot slow running extensions in Magento

Use Magento's built-in Profiler to find extensions and SQL queries that are slowing down your store.

2 min read Updated 9 Jun 2026

Magento's extensibility is one of its strengths, but poorly coded third-party extensions can seriously harm your site's performance. If your store is slow and otherwise well optimised, the Varien Profiler can help you pinpoint exactly what is causing the bottleneck.

Quick check: disable unused extensions first

Before reaching for the Profiler, try disabling any modules or extensions you do not actively need. This is often the fastest way to recover performance without any code changes.

About the Profiler

The Varien Profiler monitors the time and memory allocation of your application's loading cycle. It breaks down each block of code so you can see which extensions or queries are the slowest.

Never run the Profiler on a live production site. It exposes detailed information about how your pages load and how your system is configured - information that could be exploited by anyone trying to compromise your store. Use it only in a development environment.

Enable the Profiler

  1. In the Magento admin panel, go to System > Configuration > Advanced > Developer > Debug.
  2. Set Profiler to Yes.

Profiler setting in Magento admin

Tell the Profiler what to monitor

With the Profiler switched on, you need to activate it in code. The simplest approach is to edit Magento's index.php file.

  1. Open index.php in the root of your Magento installation.
  2. Find the following line near the bottom of the file:
#Varien_Profiler::enable();
  1. Remove the # at the start to uncomment it:
Varien_Profiler::enable();
  1. Save the file.

Read the Profiler output

Reload any Magento page and scroll to the bottom. You will see a [Profiler] link. Click it to expand a table of statistics.

Profiler output table

The table columns are:

Column What it shows
Code Profiler The name of the timer or code block being measured
Time How long that block of code took to execute
Cnt How many times the timer with that name was started
Emalloc Memory allocated to PHP, using memory_get_usage() without the true parameter, minus timer values
RealMem Memory allocated to PHP, using memory_get_usage(true), minus timer values

Look for rows with a high Time value - these are your performance bottlenecks. Extension-related blocks will typically show their module name in the Code Profiler column.

Enable SQL profiling

To see database query statistics alongside the standard output, open your Magento local.xml configuration file and add the following inside the connection node:

<profiler>true</profiler>

SQL profiler setting in local.xml

Reload a page and scroll to the bottom of the Profiler output. You will now see SQL query statistics alongside the standard code profiling data.

SQL profiler output

If you need any further help, please contact us.

Was this helpful?
Your feedback helps us find gaps in the docs.
Still need a hand?
Real people, around the clock - start a chat or open a ticket and we'll help you put it right.