# PrestaShop’s internal search doesn’t find certain products

> A product exists and is live, yet the search bar never surfaces it: PrestaShop indexes product keywords in a table separate from the catalogue, and that table gets out of sync more often than people expect. In most cases, rebuilding the index from Preferences > Search fixes it.

- Source canonique : [https://allaux.fr/en/prestashop/problemes/recherche-interne-ne-trouve-pas-produits](https://allaux.fr/en/prestashop/problemes/recherche-interne-ne-trouve-pas-produits)
- Langue : EN
- Dernière mise à jour : 2026-09-30

## Direct answer

> Run a full reindex from Shop Parameters > Search: it clears and rebuilds ps_search_word and ps_search_index from the current catalogue. If the product still cannot be found afterwards, the term searched is shorter than the minimum word length set on that screen, or it sits in the list of ignored words.

## Why a product can be invisible to search

PrestaShop doesn’t search product records directly: when a product is saved, it’s broken down into keywords stored in dedicated tables, search_word and search_index. The search bar queries this index, not the catalogue itself. If the index hasn’t been rebuilt after a bulk change, it still reflects the catalogue’s previous state.

The Re-index button, under Preferences > Search, rebuilds this table entirely from the current catalogue. It’s the first thing worth trying when a product can’t be found.

## What makes a product invisible to search

- The index was never rebuilt after a bulk import or product update.
- The “Search only available products” setting excludes a disabled or out-of-stock product.
- Words under four characters are ignored by default by the MySQL full-text search PrestaShop relies on.
- The weight assigned to a keyword, the weight field in search_word, is too low and pushes the product far down the results without hiding it entirely.

## When a re-index is enough, and when it isn’t

> A product missing after an import or a bulk change is almost always fixed by re-indexing. Fuzzy matching for typos, synonym handling, or a ranking different from the native order aren’t settings, though: they’re custom development work on the search engine.

## Related pages

- **Category page filters have disappeared** — Another search-adjacent component, but one that relies on a different module and cache than the keyword index. ([/prestashop/problemes/filtres-page-categorie-disparus](/prestashop/problemes/filtres-page-categorie-disparus))
- **Bulk-importing products via CSV** — A large import is often what makes a re-index necessary. ([/prestashop/problemes/import-produits-masse-csv](/prestashop/problemes/import-produits-masse-csv))
- **PrestaShop store slow to load** — A poorly maintained search index can also weigh on back-office response times. ([/prestashop/boutique-lente](/prestashop/boutique-lente))
- **Custom PrestaShop module development** — For typo-tolerant search or a custom results ranking. ([/prestashop/module-sur-mesure](/prestashop/module-sur-mesure))

## FAQ

### Does re-indexing delete any data?

No, it only rebuilds the index tables from existing product records, without touching the catalogue or orders.

### Why doesn’t a disabled product show up in search anymore?

Because the “Search only available products” setting excludes disabled or out-of-stock products by default, depending on the shop’s configuration.

### A very short search term, like a two-letter reference, returns nothing: why?

The default MySQL full-text search ignores words under four characters. Searching a short reference needs specific configuration or development of the engine.

### Can typo tolerance be added to PrestaShop search?

Not natively. It’s a genuine development project, usually built around an external search engine or fuzzy-matching logic added on top of the native module.

### Does search also query the product description, or just the name?

It indexes the name, reference, and short and long descriptions, but weights them differently: a word in the name usually outranks the same word buried in a long description.
