PrestaShop zoekfunctie werkt niet: de index, zoektermen van klanten en codes met een streepje
Als de PrestaShop-zoekfunctie niet werkt, ligt dat meestal aan een verouderde woordindex, niet aan een storing. De webshop doorzoekt een aparte lijst met woorden die wordt opgebouwd als een product wordt opgeslagen. Komen producten binnen via een import of een groothandelsmodule, dan kan die lijst ontbreken. Andere oorzaken zijn de zoekinstellingen, codes met een streepje en woorden van klanten die niet in je beschrijvingen staan.
Auteur: Het TellMyShop-team. Een gids voor eigenaren van PrestaShop-winkels: de oorzaak, de oplossing met de hand en hetzelfde werk in een gesprek met de chat.
Laatst bijgewerkt: · 6 min lezen
Hoe vindt de PrestaShop-zoekfunctie producten?
Hij doorzoekt de index, niet de live catalogus. Bij het opslaan van een product splitst PrestaShop de naam, referentie, beschrijvingen, categorie, merk, tags, kenmerken en attributen op in losse woorden. Elk woord krijgt een gewicht dat afhangt van het veld waar het vandaan komt. Tikt een klant een zoekterm in, dan vergelijkt de webshop die met deze lijst en sorteert hij de resultaten op de som van de gewichten.
Daaruit volgen drie dingen. Een product dat niet via een normale opslag is gegaan, heeft misschien geen woorden in de index. Een woord dat in geen enkel veld staat, vindt het product niet, ook al heeft de klant gelijk. Een veld met een laag gewicht verliest van de naam van een ander product. Alle instellingen staan beschreven in de documentatie over zoekparameters.
Zo zie je welk deel van de zoekfunctie faalt
Aan wat de klant precies ziet. Controleer het in een privévenster van de browser, zonder in de backoffice ingelogd te zijn.
| Symptoom | Meest voorkomende oorzaak | Wat je doet |
|---|---|---|
| Geen enkele zoekterm vindt iets | lege of beschadigde index | volledige herbouw van de index |
| Nieuwe producten verschijnen niet, oudere wel | producten via import toegevoegd zonder indexering | de ontbrekende producten aan de index toevoegen |
| Code “LG-2041” vindt niets, “LG” vindt er tientallen | het streepje splitst de code in delen | een paar schrijfwijzen testen, een alias of de code in de naam |
| Een typfout van een klant geeft nul resultaten | geen fuzzy zoeken en geen aliassen | aliassen voor veelgemaakte fouten |
| Het juiste product staat op pagina drie van de resultaten | gewichten per veld, woord alleen in de beschrijving | het woord in de naam of andere gewichten |
| Eén product verschijnt niet, de rest werkt | zichtbaarheid op “alleen catalogus” of ontbreekt in de index | dat product onderzoeken |
De laatste rij gaat over één product. De volledige lijst met redenen waarom producten verdwijnen, beschrijven we in het stuk product niet zichtbaar in de webshop.
Zo bouw je de zoekindex stap voor stap opnieuw op
Een herbouw kost een paar klikken en verandert de inhoud van producten niet.
- Open in de backoffice Winkelparameters > Zoeken.
- Controleer in het deel over indexering het aantal geïndexeerde producten en vergelijk het met het aantal actieve producten in de catalogus.
- Ontbreken er een paar, kies dan voor het toevoegen van de ontbrekende producten aan de index.
- Ontbreken er veel of is de index leeg, start dan een volledige herbouw. Doe het bij een grote catalogus buiten de drukke uren.
- Draai je elke nacht een automatische import, kopieer dan het adres van de indexeringstaak en geef het aan wie de server beheert.
- Tik in de webshop drie zoektermen in die eerst niet werkten en noteer het resultaat.
Zijn de resultaten na de herbouw nog steeds oud, dan kan de cache de oorzaak zijn. Dat behandelen we in het stuk PrestaShop wijzigingen niet zichtbaar.
Waarom vinden klanten een product niet met een code met een streepje?
Omdat de index tekst opsplitst in woorden, en een streepje soms als woordgrens geldt. De code “LG-2041” kan in de index terechtkomen als “LG” en “2041”. De klant tikt de hele code in, en de webshop zoekt naar andere woorden dan die hij heeft opgeslagen. Het probleem staat uitgebreid beschreven in de handleiding van Pro-Link over de PrestaShop-zoekfunctie (in het Pools).
De minimale woordlengte werkt op een vergelijkbare manier. Woorden die korter zijn dan het ingestelde minimum komen helemaal niet in de index. Een maat als “XL” of een serie als “A4” kan dus uit de resultaten verdwijnen. Er zijn ook bekende fouten in de indexering. Woorden die in een beschrijving door een regeleinde gescheiden zijn, kunnen bijvoorbeeld aan elkaar worden geplakt, zoals beschreven in deze issue in het PrestaShop-project op GitHub.
Wat je zonder ontwikkelaar kunt doen:
- Test de code in drie schrijfwijzen: met een streepje, met een spatie en aan elkaar.
- Zet in Winkelparameters > Zoeken de optie aan om binnen woorden te zoeken en vergelijk de resultaten.
- Voeg een alias toe voor de schrijfwijze die je klanten gebruiken.
- Zet bij technische producten de code ook in de naam of de korte beschrijving.
Onderzoek van Baymard naar soorten zoekopdrachten in webshops laat zien dat zoeken op afkortingen en symbolen bij veel webshops problemen geeft. Het is niet alleen een eigenaardigheid van PrestaShop.
Zo stel je gewichten en aliassen in zodat de resultaten kloppen
Begin met de standaardgewichten en wijzig ze alleen als de resultaten duidelijk fout zijn. Standaard wegen de referentie en de naam van het product het zwaarst en de beschrijvingen het minst. Dat is een verstandige opzet. Zoeken klanten op materiaal of toepassing, en staan die woorden alleen in de beschrijvingen, zet ze dan liever in de naam. Een hoger gewicht voor beschrijvingen verandert de resultaten in de hele webshop.
Aliassen zijn een lijst met correcties voor veelgemaakte fouten. Je vult “lantaren” in en verwijst die naar “lantaarn”. Zoektermen voor aliassen vind je in de statistieken over zoekopdrachten in de winkel, waar woorden met nul resultaten staan. Een voorbeeld van zo’n probleem is deze forumdraad over een zoekfunctie die niet werkt (in het Pools).
Zo controleert de chat waarom een zoekterm een product niet vindt
Je geeft de zoekterm en het product dat moet verschijnen. Je chat (Claude of ChatGPT) controleert of het product actief is, zichtbaar in de zoekfunctie en aanwezig in de index, en in welke velden het gezochte woord voorkomt. Deze diagnose leest alleen gegevens, dus hij werkt in TellMyShop Free.
Jij: Waarom vindt de zoekfunctie “lantaarn LG-2041” niet? Het product bestaat en opent via een link.
Je chat: Ik heb het product Nora-lantaarn 30 cm (referentie LG-2041) gecontroleerd. Het is actief, overal zichtbaar en staat in de index.
Het woord “lantaarn” staat alleen in de lange beschrijving, en de naam is “Nora 30 cm zwart”. De zoekfunctie kan de code met het streepje in delen splitsen.
Jij: Laat een voorbeeld zien voor alle lantaarns zonder dat woord in de naam.
Je chat: Voorbeeld: 14 producten, alleen de naam verandert. Ik sla het op na jouw ‘ja’, en elke opslag ververst de index voor die producten.
Ik stel voor het type product aan de naam toe te voegen:
oude versie: Nora 30 cm zwart
nieuwe versie: Nora-lantaarn 30 cm zwart
TellMyShop Pro slaat wijzigingen aan namen en beschrijvingen op in batches van maximaal 50 producten, en elke batch kun je vanuit de wijzigingsgeschiedenis terugdraaien. De hele index opnieuw opbouwen en gewichten en aliassen instellen doe je zelf in de backoffice. De chat wijzigt instellingen van de webshop pas als je de schakelaar Onderhoud aanzet, die je apart voor 3 uur aanzet. Een kant-en-klaar voorbeeldverzoek is de zoekfunctie vindt een product niet. Zijn de zwakke beschrijvingen in de hele catalogus het probleem, lees dan het stuk over productbeschrijvingen bulk aanpassen.
Vragen en antwoorden
Waarom vindt de zoekfunctie niets, welke zoekterm ik ook intik?
Meestal is de zoekindex leeg of beschadigd, bijvoorbeeld na een verhuizing van de webshop of na een import. Controleer in Winkelparameters > Zoeken hoeveel producten er geïndexeerd zijn. Is het aantal nul of veel lager dan in de catalogus, start dan een volledige herbouw van de index. Helpt dat niet, kijk dan in het foutenlog.
Kan het opnieuw opbouwen van de zoekindex mijn webshop schaden?
Het wijzigt geen producten of hun inhoud. Een herbouw zet alleen de lijst met woorden die de zoekfunctie gebruikt opnieuw op een rij. Bij een grote catalogus duurt het langer en belast het de server, en tijdens het draaien kunnen resultaten onvolledig zijn. Doe het dus ’s avonds of op rustige momenten, niet midden in een actie.
Hoe zie ik waar klanten in mijn webshop naar zoeken?
PrestaShop slaat de zoektermen uit de zoekfunctie op in Statistieken, in het rapport over zoekopdrachten in de winkel. Je ziet de woorden en het aantal resultaten. Zoektermen met nul resultaten zijn een kant-en-klare lijst om te verbeteren: typfouten voeg je toe als alias en ontbrekende woorden zet je in productnamen of beschrijvingen.
Moet ik een zoekmodule kopen in plaats van de ingebouwde zoekfunctie te gebruiken?
Met een paar honderd producten is een goed ingestelde ingebouwde zoekfunctie meestal genoeg: een actuele index, verstandige gewichten per veld en aliassen. Een module met fuzzy zoeken en suggesties is zinvol bij een grote catalogus of veel technische codes. Controleer voor je koopt of het probleem in de index of in de inhoud van de producten zit.
Wie bouwt de index opnieuw op als je TellMyShop gebruikt?
Dat doe jij, in de backoffice. De module heeft er geen apart commando voor, en de knop voor de herbouw staat in Winkelparameters > Zoeken. In TellMyShop Free controleert de chat of een bepaald product in de index staat en waarom het niet in de resultaten verschijnt. In TellMyShop Pro verbetert hij namen en beschrijvingen, en elke opslag ververst de index van dat product.
PrestaShop is een geregistreerd handelsmerk van PrestaShop SA. Claude is een handelsmerk van Anthropic PBC. ChatGPT en OpenAI zijn handelsmerken van OpenAI. TellMyShop is niet gelieerd aan deze bedrijven.