Skip to content
OpenCart · Problem

Why is OpenCart search slow?

Because every search is a wildcard scan of your product table, run on the same server that renders pages and takes orders. It is an architecture problem rather than a hosting problem, and it has an architectural fix.

The cause

A leading wildcard cannot use an index

OpenCart splits the search box into words and matches each one with a leading-and-trailing wildcard against the product description table. A pattern that begins with `%` cannot use a B-tree index, so MySQL reads the rows — every product, in every language you have installed, on every search.

Tick “Search in product descriptions” and it adds the same scan across the description column, which is the largest text in your catalogue.

-- both majors, simplified
WHERE pd.name LIKE '%running%'
  AND pd.name LIKE '%shoes%'
   OR pd.description LIKE '%running shoes%'   -- when the box is ticked

What does not fix it

Bigger hosting and page caches

A faster server scans the same rows a little faster, and search still competes with page loads and checkout for the same PHP workers and the same database connection pool. It buys margin, not a different shape.

Page caches do not help either: cached pages are ones many people request, and every search term is close to unique. Search is the opposite of a cacheable page.

What does

Move the query off the shop

NitroSearch keeps a copy of your catalogue in a dedicated search engine and answers queries straight from the shopper’s browser. Your server is never in the search path, so search adds no load to your hosting at all — and the result comes back in around a tenth of a second regardless of how busy the shop is.

Questions

More about OpenCart search

Why is my OpenCart search so slow?

Every query runs `LIKE ‘%term%’` against your product table. The leading wildcard makes the database index unusable, so it reads through the rows — and the work grows with every product and every language you add.

Will better hosting fix it?

It buys margin. The query shape is unchanged, and search still shares PHP workers and the database with page loads and checkout. The durable fix is to stop running search on the shop.

Do OpenCart caching extensions speed up search?

Not meaningfully. Caches help pages that many shoppers request identically; search terms are close to unique, so almost every search is a cache miss by definition.

How fast is NitroSearch?

Typically around a tenth of a second, from a dedicated engine, with your own server not involved in the query at all. It stays that fast while your shop is under load, because the two no longer share anything.

OpenCart behaviour on this page last checked against live OpenCart 4.1.0.3 and 3.0.5.0 installs on 2026-08-05.

Give your shoppers search that finds things

Free up to 100 search results, no card, no time limit. Paid plans start at $5.99/mo and are priced by catalogue size — never per search.