• Online Stores

Filter and search: so that the buyer reaches the product in the catalog for thousands of items

The filter for the online store is not a module, but a state of the product characteristics. The module itself takes an hour to install, but only works where the attributes are populated and named the same within the category, so the main work is in the directory, not in the code. Next, three things decide whether the buyer will reach the product: counters near the values, the behavior of addresses when selecting parameters, and a search that finds the article in the form in which it is entered. The store we measured at 54,302 items gives the first response in 413.8 ms.

See how it works
Price
after a free audit
Guarantee
30 days after project sign-off
The largest filter catalog we've measured
54,302 products and 635 categories, TTFB 413.8 ms
after a free audit
Price
30
Guarantee

days after project sign-off

54,302
The largest filter catalog we've measured

products and 635 categories, TTFB 413.8 ms

by two methods — site map and regular search, the difference is 0.4%
How to calculate the catalog
5,561
Second measured directory

products with a TTFB of 801.2 ms and a light HTML of 153.8 KB

10-25
Term

working days from the approval of the structure of characteristics

2-4
Directory audit

working days, free of charge, with the document in hand

advance payment of 50%, guarantee period of 30 calendar days
Conditions
Process steps

Transparent stages with approval at every step

Total duration:10–25 days

  1. Catalog audit and specification dictionary

    1-3 working days

    We count the fullness of attributes for each large category, remove the speed of the category to works, collect a list of values ​​with discrepancies in the names. The output is a list of parameters that go into the filter and those that will only interfere.

  2. Bringing attributes to order

    3-8 working days

    Summary of names of parameters and units of measurement, analysis of characteristics from descriptions, addition of values ​​from the price list. The longest stage and the only one, the duration of which cannot be honestly named before the audit — that is why it is always a separate line in the estimate.

  3. Facet filter and address rules

    2-5 working days

    A separate set of filters for each major category, counters with a cached count, a blank sample page with a tip. Here we record which combinations of parameters remain open for indexing, and which are closed.

  4. Internal search

    2-4 working days

    Normalization of articles on both sides — cleaning of spaces, hyphens and case, search by part of the name, resistance to typos, tips with a transition immediately to the card. We connect the collection of requests that did not give results.

  5. Sampling rate

    1-3 working days

    Viewing database indexes for actual filter queries, cache of category pages, repeated measurements of the first response with several active parameters. We compare with the numbers taken at the first stage.

  6. Reception and transmission

    1-2 working days

    Go through scenarios with your manager: selection by characteristics, search by article, empty selection. We transfer the dictionary of characteristics - after it, the catalog is filled further without us.

Technologies & integrations

What we build on and what it connects to

Stack

  • OpenCart 4.x - set by default; limitations: some of the Ukrainian filtering modules are still available only under 3.x
  • OpenCart 3.x — when you need a module that is not built under 4.x
  • PHP - limitation: the speed of the filter rests not on the language, but on the number of requests that the theme makes to the category page
  • MySQL with revised indexes for samples — limitations: the index speeds up reading and slows down writing, so we measure price import separately
  • OCFilter or similar — gives a facet out of the box; limitation: it does not decide the rules for indexing combinations for you, it is a manual decision
  • caching of category pages — limitation: the cache must be reset when balances are changed, otherwise the presence of yesterday is visible
  • nginx and HTTP/2 are limitations: they reduce the network part, not the page assembly time on the PHP side

Integrations

  • Google Tag Manager
  • GA4 with search and filter application events
  • Google Search Console
  • internal search query analytics
  • import of characteristics from the price
What's included

Complete list of work and what you get as a result

  • A set of filters for each large category separately - the characteristics of dishes and tools should not be in the same list
  • Bringing the attributes to a single view within the category: one parameter name, the same units of measurement
  • Faceted filter with correct behavior of addresses: we index only meaningful combinations, we close the rest
  • Counters in the filter: the buyer sees how many items each parameter will give, and does not fall into an empty sample
  • Internal search with article normalization, search by part of the name and resistance to typos
  • Hints in the search with the transition immediately to the card or category
  • An empty sample page with an offer to remove an extra filter, not a dead end
  • Optimization of requests to the database and indexes so that the filter does not slow down on tens of thousands of items
  • Before and after measurements: first category response, sampling time with active filters
  • Search analytics: what is being searched for and what queries are not producing results
  • Terms: 50% advance payment, warranty period of 30 calendar days after acceptance
When this service isn't right

What's not included — so there are no surprises at delivery

  • Filling in product characteristics manually beyond the agreed volume is a separate service
  • Rewriting product descriptions
  • An external search engine with a separate infrastructure without a separate rating
  • Post-launch advertising
  • Hosting, domain, acquiring
Who it's for

Situations where this service delivers results

Scenario 1 of 5

Buyers ask the manager what they should choose themselves

"Is there a key for 17?", "is it under 220 or under 380?" — ten such messages per day. This is a sign that the parameter that people are choosing does not exist as a separate field on the site. The filter moves this selection to the catalog. We take the list of parameters from these questions, not from the price.

We'll review your situation in a free audit
Facet on regular attributes against an external search engine

How this option differs from the alternative

Where does the work begin?from the dictionary of characteristics: no option will work without it
Selection by characteristicsrequest to the store database with indexes for actual samples
Relevance of availabilitythe selection is based on the same base as the card — there is no discrepancy
Who fixes it when it's brokenany PHP developer: everything inside the store
What is added after launchnothing but regular store hosting

Free audit of the directory before the filter

The filter is not a module that is installed in an hour. This is a consequence of how carefully the characteristics are set. The audit shows how much work is standing between your catalog and the working filter.

What we measure

  • The state of the characteristicsHow many items have filled attributes and how similarly they are named within a category. Different names for the same parameter are the main reason for a non-working filter.
  • Catalog volumeWe calculate using two methods — a site map and regular search. Measured benchmarks for the large catalogs of our sample: 5,561, 6,486, 13,428, and 54,302 items.
  • Sampling rateHow long does a category page take and what happens when multiple filters are active. The measured reference point of a good result for 54 thousand items: 413.8 ms of the first response.
  • Filter addressesWhat happens to the address when choosing parameters and does it not produce infinite combinations in the index. This is the main SEO risk of faceted navigation.
  • Internal searchDoes it find the product by article number, part of the name and with an error in the word. More often than not, no, and this is evident from the very first inspection.
  • Empty samplesWhat a buyer sees when a combination of filters doesn't produce results. A blank page is the easiest way to lose an order.

What you get

  • Assessment of the fullness of characteristics for each major category.
  • A list of parameters that should be included in the filter and those that will only interfere.
  • Measure the speed of the category before the works — so that you can compare the numbers later.
  • Conversation for 30–40 minutes on the document.

Timeline: 2-4 working days

Why is it free

Because in nine cases out of ten, the real task is not to "install a filter", but to "get the characteristics in order". Showing it in numbers is more honest than selling a module that won't work.

What's next

After the audit - the amount and term by stages with dates, contract, invoice, act.

Short form: your contact and site URL

Did not find your case?

Describe how it works on your side — we will tell you whether “Filter and search for a large catalog” fits and what it means in your situation. No brief and no call: one question, one answer.

  • Contract, act and 30-day warranty

    Every project gets a written contract: scope, deadlines, amount, acceptance procedure. After delivery — act and invoice, then 30 calendar days of warranty.

  • Sole proprietor & bank transfer

    The contractor is a registered sole proprietor. Payment by invoice with closing documents.

  • Rights & access — yours

    Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.

  • Client portal instead of email chains

    During the project you get access to a portal: contracts, invoices, acts and project status in one place.

  • European clients

    Among our work — projects for Norway, Bulgaria, Moldova and Spain.

  • Verifiable numbers

    Every case in the portfolio comes with a link to a live site and a technical measurement.

  • Audit first, then pricing

    There is no price list on the site intentionally: the scope of the same work differs multiples between clients.

  • We say "no" when unsure

    If the task isn't ours or the deadline is unrealistic — we tell you upfront.

What affects the price

Why two seemingly identical tasks are priced differently

  • Where are the specs nowIndividual attributes in the card — the filter is assembled quickly. The characteristics inside the text of the description have to be extracted by a parser with manual reconciliation for each category, and this becomes the main part of the work, not an addendum to it.
  • Number of large categoriesEach category has its own dictionary of parameters, its own set of measurement units, and its own decision about what to filter. Two categories and twenty are different volumes, although the module is the same in both cases.
  • How variously named are the attributesSummary "40 W", "40 W." and "power 40 W" to one value is made by the script only where there are dozens of options. When there are hundreds of them and a part with content errors, manual proofreading of the list of values ​​is required.
  • Internal search statusNormalizing the article and searching by part of the name is a short job. Typoproofing, prompts with a jump to the card, and analytics for queries without results are added in separate blocks.
  • Directory size and current speedOn tens of thousands of items, the work includes viewing the base indexes and caching counters: otherwise, each click on the filter recalculates the number of items. At several thousand this is usually not necessary.
  • Solutions for indexing combinationsIf you already have organic traffic to your filter pages, you need to analyze the current addresses before closing anything. When the store is new, the rules are set immediately - and it is noticeably shorter.
Cases

Tasks and results in numbers — all metrics measured by us

online store of tactical equipment with a catalog of more than 50,000 items

Task
Maintain an extremely large assortment with detailed filtering by characteristics and do not lose the speed of rendering pages.
Solution
Store on OpenCart 3 with filtering modules by Cloudflare, two language versions. The complete local store markup — nine types of structured data. Six methods of payment in checkout.
Result
Catalog of 54,302 products and 635 categories, site map as an index — a total of 110,096 addresses; cross-checking by standard search yielded a discrepancy of 0.4%. TTFB 413.8 ms, full download 511.1 ms with an HTML weight of 421.5 KB — on a catalog of 54,000 items. Measured on 07/31/2026.

online store of professional cosmetics with a catalog of more than 5,000 items

Task
Collect a large assortment in one catalog with navigation by brands and types of means.
Solution
Store on OpenCart with a catalog by brands and types of means, terms of free delivery from the amount and two methods of payment.
Result
Catalog 5,561 products - calculated by regular search: 55 pages of 100 items plus 61. TTFB 801.2 ms, full download 930.7 ms with HTML weight 153.8 KB. Found: markup limited to Organization and PostalAddress, no merchandise; with light markup, the first response is slow - server-side bottleneck and requests, not layout. Measured on 07/31/2026.
What we need from you

We can't start without this — best to prepare in advance

  1. Access to the site and database or a test copy.
  2. Price with characteristics, if they need to be added to the catalog.
  3. The list of parameters that buyers actually ask the manager about is the best source for the filter.
  4. Deciding which filter combinations should be in the index and which are closed.
  5. Access to Search Console if rights are confirmed.
  6. One person with the right to approve the structure of characteristics.

If something is missing — let us know, we'll help you gather it or do it as a separate task.

FAQ

Most frequently asked questions — with concrete answers

installed the filter module, but it shows garbage - what's the matter?

Almost always in the characteristics. The module builds a filter from attributes: if they are empty in half of the products, and in the other half the same parameter is named in three ways, duplicates and empty lines appear in the list of values. The buyer makes one click, gets three items instead of thirty or more, does not use the filter. Therefore, the work begins with a dictionary of characteristics for each large category, and not with the module settings. A fair margin: A filter doesn't add demand to an unsearched product—it just removes the barrier between the intent and the card.

won't the facet filter fill the index with combinations?

It will collapse if you leave it without rules. Each selected parameter creates an address, combinations multiply, and a catalog of several thousand products is capable of generating hundreds of thousands of almost identical pages. Working rule: only those combinations for which there are real requests remain open, the rest receive canonical per category and are closed from bypassing. For scale: even without any facet, we recorded 33,493 sitemap entries for 8,690 unique addresses. We immediately warn about a side effect - after cleaning, the number of pages in the index drops for some time. This is a normal course of events, not a deterioration.

will the filter slow down the catalog with tens of thousands of items?

Not necessarily. The gear store we measured held 54,302 products and 635 categories and had a first response of 413.8ms, a full HTML load of 511.1ms. The second store with a catalog of 5,561 items with a tenfold smaller volume and a light HTML of 153.8 KB gives the first answer in 801.2 ms: it's not about the number of products, but about the indexes of the base, the cache, and how many requests the theme makes. Let's clarify the limit right away: our dimension is the server part. What a particular buyer will see depends on their device, network and the weight of the pictures in the category.

the buyer selected three options and received a blank. What to do with it?

Don't show a blank page at all. The minimum is counters next to each value: a person sees the number of items before a click and simply does not enter an empty sample. The second layer is a "nothing found" page with a named filter that filters out the most and a button to remove it. A technical detail: the count for counters in a large catalog must be cached separately from the page, otherwise each click recalculates the count for all values ​​— and the filter, which was supposed to speed up the selection, starts to slow down the page.

why does the search not find the product by article number?

Because of the recording format. In the database, the article is with a hyphen, the buyer enters without it - or vice versa, with a space in the middle or in another case. It is necessary to normalize from both sides: we clean both what was entered and what is in the database, and we keep the result as a separate field for searching. Next — search by part of the name and resistance to typos. This is the cheapest of the improvements that generally affect sales in a large catalog. The limit here is obvious: the search helps someone who already knows the name or article number. A buyer who is still choosing needs categories and a filter.

we have the characteristics inside the descriptions. Is it realistic to pull it off?

Really, and this is usually what the project is all about. The procedure is as follows: we analyze the descriptions with a parser one category at a time, get a list of the found values, read it by hand - at this step, both the print and the units of measurement in three variants always come out - and only after that we fill in the attributes. No one will say how long it will last until the audit, so the stage is a separate line in the estimate and a separate line in the calendar. If some of the items have no parameters in the text at all, we honestly say how many there are, and you decide whether to add them manually or leave them out of the filter.

how long will it take and what is the deadline?

10-25 working days. Layout: audit and feature dictionary days 1–3, attribute tuning 3–8, address filter and rules 2–5, search 2–4, sampling rate 1–3, acceptance 1–2. The deadline is postponed by exactly one thing - the second stage. If the attributes are populated and named the same, this is a setup and optimization at the bottom of the range. If they need to be extracted from the descriptions of several thousand items, the main time will be spent on this. The second reason for the shift in our memory is non-technical: the decision about which parameters to put in the filter is made by someone from your side, and without this person, the stage stands still.

why don't you mention the cost right away?

Because it is not determined by the number of goods, but by the state of the characteristics, which cannot be seen from the outside. Two stores with the same catalog of 6,000 items can differ in the amount of work by many times: in one the attributes are established and it remains to assemble the facet, in the second everything lies in the text of the descriptions. Calling a fork for inspection is either to frighten someone whose work is short, or to promise an amount that will not be enough. Therefore, first, a free audit of the catalog in 2-4 working days with the document in hand, then the amount and term by stages with dates, the contract, the invoice, the act.

Send the address of the store - we will check the characteristics, filter and search.

The answer is the completeness of attributes for each large category, a list of parameters that should be taken out in the filter, speed measurements for work and an assessment by stages.

From measured casesCatalog of 54,302 products and 635 categories, site map as an index

View cases
  • Reply within 2 hours
  • No commitment
  • We work under a contract

There is no price list on the site on purpose: the same work differs several times over between two clients, and a “from” figure explains nothing in that case. First a free audit — we count your pages, duplicates and speed — then we name the sum and the deadline and fix both in the contract.