Naar hoofdinhoud

Dirty data in je productcatalogus: 8 voorbeelden en hoe je ze oplost

Dirty data in productdata: dubbele EAN's, rommelige eenheden, HTML, placeholders, oude prijzen en kapotte afbeeldingen. Met test en oplossing per type.

Dirty data in je productcatalogus: 8 voorbeelden en hoe je ze oplost

Dirty data, of vervuilde data, is data die je niet kunt vertrouwen voor de taak die ze moet doen: waarden die fout, leeg, dubbel, inconsistent of verouderd zijn, of in het verkeerde veld staan. In een productcatalogus zie je dat als twee producten met dezelfde EAN, een gewichtsveld met "N/A", HTML van de leverancier in een omschrijving, een prijs die drie maanden geleden bij de leverancier is gewijzigd of een afbeeldings-URL die een 404 geeft.

De meeste uitleg over dirty data gaat over CRM: dubbele contactpersonen en oude e-mailadressen. Dit artikel gaat over productdata. Je krijgt acht soorten vervuilde productdata, elk met een herkenbaar voorbeeld, een test om het in een export te vinden en de oplossing. De algemene aanpak van fouten opsporen en herstellen staat in ons woordenboekartikel over data cleansing; hier blijven we bij concrete gevallen.

Zes regels uit één leveranciersbestand, en wat er mis is

Hieronder een fragment uit een typisch leveranciersbestand voor een webshop in keukenartikelen. Niemand heeft deze regels expres slecht gemaakt: elk probleem komt in echte catalogi voor, vaak in hetzelfde bestand. De EAN is het demonstratienummer van GS1 zelf, dus geldig maar van geen enkel echt product.

Eén leveranciersbestand, zes soorten vervuiling

1KN-20409506000134352Koksmes 20 cm0,21 kg39,95Niets: de referentieregel
2KN-2040 (spatie erachter)9506000134352Koksmes 20cm zwart210 g39,95Zelfde product nog eens; eenheid anders geschreven
3KN-20419.50600E+12Broodmes 22 cmN/A34,95EAN in wetenschappelijke notatie; placeholder als gewicht
4KN-2042950600013435Santoku 18 cm0.19kg0,00EAN één cijfer te kort; decimale punt; prijs nul
5BD-11009506000134352Snijplank eiken1,2 kg29,95EAN van het koksmes op een snijplank gekopieerd
6BD-1101(leeg)Schneidebrett Eiche XL2.6 lbs44,95Duitse titel in een Nederlandse catalogus; imperiale eenheid
6 van 6 rijen
Alleen de eerste regel is schoon; elke andere regel breekt een andere regel, en twee regels beschrijven ongemerkt hetzelfde mes.

Dit is geen randprobleem. Toen we zo'n 50 catalogi bekeken op het moment dat ze in WISEPIM werden geïmporteerd, nog voor enige verrijking, had een kwart van de producten geen omschrijving, ruim een derde geen afbeelding en bijna twee derde zat in geen enkele categorie. Cijfers en methode staan in Staat van productdata 2026.

Producten zonder de basis bij import

CategorieAandeel producten
Geen omschrijving25%
Geen afbeelding36%
In geen categorie64%
Ontbrekende data is de makkelijkste vervuiling om te tellen. Elke balk is het gemiddelde aandeel producten per catalogus, gemeten bij import en vóór verrijking.Bron: WISEPIM, Staat van productdata 2026 (circa 50 catalogi bij import)

Acht soorten vervuilde productdata en de test die ze blootlegt

Elk type hieronder volgt hetzelfde patroon: hoe het eruitziet, hoe je het vindt in een CSV- of spreadsheetexport en hoe je het oplost zodat het opgelost blijft. De kwaliteitsdimensies erachter (uniciteit, validiteit, consistentie, actualiteit) leggen we uit in ons artikel over dimensies van datakwaliteit.

1. Dubbele SKU's en gedeelde EAN's

Regel 1 en 2 zijn hetzelfde koksmes. De tweede SKU heeft een spatie aan het eind, dus een simpele vergelijking ziet twee producten. Andere varianten van hetzelfde probleem: "kn-2040" in kleine letters, één product dat van twee leveranciers binnenkomt onder twee SKU's, of een leverancier die de EAN van het hoofdproduct op elke kleurvariant zet. Regel 5 is de vervelendste: een echte, geldige EAN aan het verkeerde product, en die vang je met geen enkele formaatcontrole.

  • Zo vind je het: haal spaties weg, zet de SKU-kolom in kleine letters en tel hoe vaak elke waarde voorkomt (AANTAL.ALS in Excel). Doe hetzelfde met de EAN-kolom. Alles boven 1 is een groep om na te lopen.
  • Zo los je het op: kies het record dat blijft (meestal het record met orders en live listings), zet unieke waarden daarop over en archiveer het andere. Geef elke variant een eigen GTIN. De gids over ontdubbelen behandelt ook fuzzy matching voor titels die op elkaar lijken.

In WISEPIM markeert de CSV-import herhaalde SKU's, SKU's die alleen in spaties verschillen en SKU's die zich herhalen als je hoofdletters negeert, nog voordat er iets wordt geïmporteerd. Na de import heeft het rapport Datakwaliteit een paneel Dubbele SKU's en EAN's dat producten met dezelfde SKU of EAN groepeert.

2. Barcodes die een spreadsheet heeft verminkt

In regel 3 staat 9.50600E+12. Iemand heeft het bestand in Excel geopend, en Excel leest een barcode als getal. Op de supportpagina van Microsoft staat dat Excel voorloopnullen weghaalt, grote getallen in wetenschappelijke notatie toont en hooguit 15 significante cijfers bewaart. Een EAN van 13 cijfers past daar nog in, dus eerst is alleen de weergave fout. Het gaat mis als iemand het blad weer opslaat als CSV: dan kan de afgeronde waarde van het scherm in het bestand belanden, en staat er eenmaal 9.50600E+12 in de CSV, dan zijn de laatste zeven cijfers weg. Voorloopnullen verdwijnen al bij het openen: een GTIN van 13 cijfers die met 0 begint, komt binnen als 12 cijfers en lijkt een andere code.

  • Zo vind je het: een GTIN bevat alleen cijfers, heeft er 8, 12, 13 of 14 en klopt met het controlecijfer. Alles met een E, een komma of een punt valt meteen af. Plak een steekproef in de gratis EAN- en GTIN-validator om het controlecijfer te testen.
  • Zo los je het op: probeer het nummer niet terug te rekenen uit 9.50600E+12; de cijfers staan niet meer in het bestand. Vraag de leverancier om een nieuwe export met de kolom als tekst, of haal de codes uit het bronsysteem. Wil je het voortaan voorkomen, open CSV-bestanden dan via Gegevens > Van tekst/CSV en zet de barcodekolom op Tekst, of zet in de opties van Excel de automatische gegevensconversie uit (Microsoft 365 en Excel 2024).

3. Eenheden, decimalen en notaties die niet kloppen

Kijk naar de gewichtskolom: 0,21 kg, 210 g, 0.19kg, 1,2 kg en 2.6 lbs. Een mens leest ze alle vijf. Een filter, een verzendtabel of een marketplace-import niet. Hetzelfde zie je bij afmetingen (30x20x10, 30 x 20 x 10 cm, L30 B20 H10), kleuren (Zwart, zwart, ZW, Black) en maten (M, Medium, 38/40). Nederlandse en Belgische leveranciers gebruiken vaak een decimale komma, Duitse en Engelse soms een punt, en dan wordt 1.200 ineens twaalfhonderd.

  • Zo vind je het: zet per attribuut alle unieke waarden onder elkaar en sorteer ze. Tien schrijfwijzen van één kleur zie je dan in één scherm. Bij getallen laat een patroon als 'getal gevolgd door eenheid' zien welke cellen beide in één tekstveld stoppen.
  • Zo los je het op: sla getal en eenheid in aparte velden op, kies per attribuut één basiseenheid en reken de rest om (één pound is precies 0,45359237 kg, dus 2,6 lb is 1,18 kg). Vervang vrije tekst bij kleuren en maten door een vaste lijst toegestane waarden. Onze gids over attribuutstandaardisatie heeft naamgevings- en eenheidsafspraken die je kunt overnemen.
Meeteenheid wijzigen rekent de opgeslagen waarden om met de omrekenfactor, niet alleen het label, en kan producten zonder waarde overslaan.

4. HTML-resten en leveranciersteksten in omschrijvingen

Leveranciersomschrijvingen zijn vaak gekopieerd van een website of uit een Word-bestand. Ze komen binnen met tags als span style="font-family:Arial", entities voor harde spaties, dubbel gecodeerde ampersands (&) en tekst die nooit voor klanten bedoeld was: interne artikelnummers, "prijs op aanvraag", het telefoonnummer van de leverancier of een zin als "bekijk onze website voor meer modellen".

  • Zo vind je het: zoek in de omschrijvingskolom naar de tekens < en &, naar http, naar de naam van de leverancier en naar zinnen als "klik hier". Tel de treffers per leverancier; meestal veroorzaakt één bron het grootste deel.
  • Zo los je het op: bepaal welke opmaak je kanalen accepteren. Marketplaces zoals bol en de meeste feeds willen platte tekst; je eigen webshop mag vaak een korte lijst tags (alinea's, lijsten, vet). Haal de rest weg, decodeer entities één keer en verwijder verwijzingen naar de leverancier. Houd één schone mastertekst aan en geef elk kanaal bij export zijn eigen formaat.

Twee WISEPIM-functies passen hier: een Quality Guard-regel kan testen of een veld HTML bevat of platte tekst is (de voorwaarden bevat HTML en is platte tekst), en Contentlogica kan HTML uit een veld halen voor één kanaal terwijl je webshop de opgemaakte versie houdt. Voor eenmalige opruimacties werkt Zoeken en vervangen in bulkbewerking ook met reguliere expressies.

5. Twee talen in één product

Regel 6 heeft een Duitse titel in een Nederlandse catalogus. Gemengde talen sluipen erin als een leverancier maar één taal levert, als een vertaalveld wordt gevuld met een kopie van de brontekst om een verplicht veld te omzeilen, of als een product een Engelse titel en een Nederlandse omschrijving krijgt. Dat kost omzet: volgens CSA Research koopt 76% van de online shoppers liever producten met informatie in de eigen taal, en 40% koopt nooit op websites in een andere taal.

  • Zo vind je het: vergelijk elke vertaling met de bron; identieke tekst betekent dat er niets vertaald is. Voor een snelle taalcheck zoek je in een taalversie naar veelvoorkomende woorden uit een andere taal (der, und, mit of the, and, with in een Nederlands veld).
  • Zo los je het op: leg per veld een brontaal vast, vertaal alleen vanuit die bron en houd per taal een status bij, zodat een onvertaald veld als ontbrekend zichtbaar wordt in plaats van compleet te lijken.

6. Placeholders die zich voordoen als echte waarden

N/A, een los streepje, nnb, 0, 999, test, zie omschrijving, lorem ipsum, 01-01-1900, een afbeelding met de naam no-image.jpg. Placeholders zijn erger dan lege velden, omdat volledigheidschecks ze als gevuld tellen. Een gewicht van 0 levert gratis verzending op voor een pakket van 20 kg. Een prijs van 0,00, zoals in regel 4, kan het product weggeven als hij een kanaal bereikt.

  • Zo vind je het: houd een lijst bij van bekende placeholders en zoek in elk tekstveld naar exacte treffers. Bij getallen kijk je naar nullen, ronde waarden als 999 of 9999 en uitschieters: een koksmes van 3 kg in een familie waar de rest rond de 0,2 kg weegt, is vrijwel zeker een typfout of een eenhedenmix.
  • Zo los je het op: maak van placeholders eerst echte lege waarden, zodat je rapporten de werkelijke gaten tonen, en vul ze pas daarna of zet ze uit bij de leverancier.

Het rapport Datakwaliteit in WISEPIM heeft een kaart Verdachte waarden die getallen markeert die ver afwijken van het gemiddelde van vergelijkbare producten in dezelfde productfamilie (daarvoor zijn minstens 10 producten in een familie nodig). Een Quality Guard-regel met de voorwaarde is geen van houdt waarden als N/A voortaan buiten een veld.

7. Prijzen, voorraad en specificaties die verouderd zijn

Data veroudert. De leverancier verhoogde de prijzen op 1 januari, een product is uit het assortiment maar toont nog een voorraad van 999, de accu van een boormachine ging van 2,0 Ah naar 4,0 Ah en de oude specificatie bleef in je feed staan. Verouderde prijzen zijn ook een compliance-probleem: Google eist dat de prijs die je aanlevert overeenkomt met de prijs op je productpagina en in de checkout, en vraagt je die bij elke wijziging bij te werken.

  • Zo vind je het: vergelijk je prijzen met de nieuwste prijslijst van de leverancier, markeer actieprijzen die hoger zijn dan de normale prijs en zet producten op een rij die niemand in 90 dagen heeft bewerkt of die langer dan 30 dagen geleden voor het laatst naar een kanaal zijn geëxporteerd.
  • Zo los je het op: geef elk veld dat vaak verandert (prijs, voorraad, beschikbaarheid) één eigenaar en één bron, en ververs het op een vast schema in plaats van wanneer iemand het toevallig ziet.

De kaart Actualiteit catalogus in het rapport Datakwaliteit van WISEPIM toont producten die nooit zijn gecontroleerd of geëxporteerd, producten die langer dan 30 of 90 dagen niet zijn bijgewerkt en producten die meer dan 30 dagen geleden naar een kanaal zijn geëxporteerd.

8. Afbeeldingslinks die kapot, tijdelijk of fout zijn

Ook afbeeldingsvelden vervuilen: http-links die browsers blokkeren in een https-webshop, URL's met spaties, deellinks van Dropbox of Google Drive die een webpagina teruggeven in plaats van een foto, hotlinks naar de leverancier die breken zodra die zijn site vernieuwt, een plaatje met "foto volgt", of de foto van de zwarte variant bij alle vijf kleuren. Google zegt duidelijk dat de hoofdafbeelding precies het verkochte product moet tonen en dat je placeholders als "Coming soon" of "Photo pending" niet moet insturen; spaties en symbolen in afbeeldings-URL's moeten URL-gecodeerd zijn.

  • Zo vind je het: vraag elke afbeeldings-URL op en noteer statuscode en contenttype; alles behalve een 200 met een afbeeldingstype is kapot. Bereken een hash van de bestanden om één afbeelding te vinden die bij veel producten terugkomt.
  • Zo los je het op: download afbeeldingen naar opslag die je zelf beheert, bewaar de URL's in één veld en koppel de juiste foto aan elke kleurvariant.
Regels als Primary image present en EAN / GTIN required houden een product tegen bij export tot het slaagt; lichtere regels geven alleen een waarschuwing.

In deze volgorde opschonen, zodat je elk record maar één keer aanraakt

De volgorde maakt uit. Vertaal je omschrijvingen voordat je dubbelingen weghaalt, dan vertaal je hetzelfde product twee keer. Vul je ontbrekende gewichten voordat je eenheden omrekent, dan mix je nieuwe grammen met oude kilo's. Deze volgorde werkt voor de meeste opschoonprojecten:

Volgorde voor het opschonen van productdata

0 van 10 klaar0%

Vervuiling buiten het volgende leveranciersbestand houden

Een catalogus één keer opschonen is een project; schoon houden hangt af van wat je binnenlaat. Drie gewoontes doen het meeste werk:

  • Een data-afspraak per leverancier: de kolommen die je verwacht, de eenheid per getal, toegestane waarden voor kleuren en maten, de taal, en dat barcodes als tekst komen. Stuur die mee vóór het eerste bestand, niet na het derde slechte.
  • Valideren vóór de import, niet erna: weiger of parkeer regels met herhaalde SKU's, foute EAN's, negatieve prijzen of een actieprijs boven de normale prijs, en geef de leverancier de regelnummers.
  • Regels bij de uitgang: een product dat een verplichte check niet haalt, hoort geen kanaal te bereiken. In ons artikel over een datakwaliteit-framework lees je meer over eigenaren, regels en controlepunten.

Lijsten met toegestane waarden helpen vooral bij de import, omdat ze een nieuwe schrijfwijze van een kleur tegenhouden voordat die zich verspreidt. In WISEPIM bepaal je per attribuut met een optieset wat er gebeurt als een import een waarde aanlevert die niet op de lijst staat: automatisch toevoegen (Auto-toevoegen), toevoegen met een controlevlag (Eerst controleren) of het product overslaan tot de waarde is toegevoegd (Product overslaan).

Elke optieset heeft een eigen beleid voor onbekende waarden uit een import: Colors staat op Review first (Eerst controleren), Apparel sizes op Skip product (Product overslaan).

Wil je zien waar je eigen catalogus staat? Het rapport Datakwaliteit in WISEPIM brengt deze checks samen: dubbele SKU's en EAN's, verdachte waarden, actualiteit van de catalogus en de vulgraad per veld, met een kwaliteitsscore per product. Quality Guard maakt van die oplossingen vervolgens regels, zodat dezelfde vervuiling vóór de volgende export wordt tegengehouden.

Diego Nijboer

CTO and Co-Founder at WISEPIM, building AI-powered solutions that transform product data management for e-commerce businesses. Over 10 years of experience solving complex technical challenges in e-commerce and PIM systems.

Veelgestelde vragen

Nog vragen?

Kan je het antwoord niet vinden? Neem contact op met ons team.

Contact opnemen

Een typisch voorbeeld is een leveranciersbestand waarin twee producten dezelfde EAN hebben, het ene gewicht N/A is en het andere 2.6 lbs terwijl de rest in kilo's staat, en een omschrijving nog HTML-tags van de leverancierssite bevat. Elk van die fouten breekt iets verderop: listings worden samengevoegd of afgewezen, verzendkosten kloppen niet en tekst ziet er rommelig uit op marketplaces.

Ontbrekende data is één soort dirty data, en meestal de makkelijkste om te tellen. Dirty data omvat ook waarden die er wel staan maar fout, dubbel, inconsistent of verouderd zijn. Placeholders als N/A of 0 zitten ertussenin: het veld lijkt gevuld, dus volledigheidschecks slagen, maar de waarde is waardeloos. Maak placeholders leeg voordat je gaten meet.

Het meeste komt binnen via imports: leveranciersbestanden met eigen eenheden en talen, spreadsheets die barcodes in getallen veranderen en omschrijvingen die van websites zijn gekopieerd. Handmatige bewerkingen voegen typfouten en wisselende schrijfwijzen toe, en de tijd doet de rest, omdat prijzen, voorraad en specificaties veranderen nadat de data is ingevoerd. Zonder validatie bij import legt elk nieuw bestand er een laag bovenop.

Doe de grote opschoning één keer en controleer daarna doorlopend in plaats van in jaarlijkse projecten. Valideer elke import voordat hij binnenkomt, laat kwaliteitsregels draaien vóór elke export en controleer velden die vaak veranderen, zoals prijs en voorraad, in het ritme waarin ze veranderen. Een maandelijkse blik op dubbelingen, uitschieters en producten die 90 dagen niet zijn bijgewerkt vangt de rest.

Validatie controleert of een waarde aan een regel voldoet, bijvoorbeeld dat een EAN 13 cijfers en een kloppend controlecijfer heeft, en meldt wat niet slaagt. Cleansing verandert de data: het voegt dubbelingen samen, rekent eenheden om, haalt HTML weg en vult of leegt velden. Validatie laat zien waar de vervuiling zit; cleansing haalt haar weg. Daarna heb je validatie opnieuw nodig om te bewijzen dat het gelukt is.

Verder ontdekken

Zorgvuldig gekozen vervolgstappen om dieper te gaan.

Betere productdata, betere resultaten.Verkoop meer producten.

4,7