Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

Module 7 · 7.1

Producten vindbaar maken

Module 7: Gevonden worden en hosting · Leestijd: 10 minuten

Leerdoel: Na deze les kun je productpagina's maken die zoekmachines begrijpen, controleren welke gestructureerde gegevens WooCommerce meestuurt, en de valkuilen van uitverkochte producten, filters en dubbele inhoud vermijden.

Kernbegrippen: productpagina, producttitel, productbeschrijving, categoriepagina als landingspagina, gestructureerde gegevens, JSON-LD, Product, Offer, AggregateOffer, availability, GTIN, SKU, uitverkocht, filters en parameters, canonical, productsitemap, gratis productvermeldingen

Wat er anders is aan een shop

De basis van vindbaarheid staat in de WordPress-cursus, les 9.2: titels, metabeschrijvingen, koppen, de sitemap, noindex, Search Console en doorsturen bij gewijzigde adressen. Dat geldt allemaal ook voor een shop. Een shop heeft daarnaast drie eigen uitdagingen:

  1. Veel pagina's die op elkaar lijken. Tien theepotten met bijna dezelfde tekst, variaties, filters op kleur en prijs: een zoekmachine moet kiezen welke pagina ertoe doet.
  2. Pagina's die komen en gaan. Producten raken uitverkocht, gaan uit het assortiment of komen terug.
  3. Zoekmachines tonen productgegevens zelf. Prijs, voorraad en beoordelingen kunnen in het zoekresultaat staan, als de zoekmachine ze uit je pagina kan lezen.

Deze les gaat over die drie. Meer over zoekwoorden, teksten schrijven en lokale vindbaarheid komt in de cursus Online gevonden worden (in ontwikkeling).

Een productpagina die iets zegt

Een zoekmachine en een klant willen hetzelfde weten: wat is het, waarom dit en niet een ander, en wat kost het. Bij Theehuis Example ziet een zwakke productpagina er zo uit:

  • titel "Theepot 3";
  • beschrijving overgenomen van de leverancier, dezelfde als bij twintig andere winkels;
  • één foto zonder alt-tekst.

Een sterke versie:

  • titel met wat mensen zoeken: "Gietijzeren theepot 0,8 liter, zwart";
  • een korte beschrijving van twee of drie zinnen met het belangrijkste (inhoud, materiaal, voor wie);
  • een lange beschrijving in je eigen woorden: hoe je hem gebruikt, onderhoud, wat erbij hoort, maten, en de vragen die klanten echt stellen;
  • meerdere foto's met een beschrijvende alt-tekst (WordPress-cursus, les 4.4);
  • SKU en, als je hem hebt, de GTIN (EAN-code) ingevuld (les 3.1).

Leveranciersteksten zijn verleidelijk, maar dan staat dezelfde tekst op veel sites. Een zoekmachine toont meestal er maar één van. Schrijf in elk geval de eerste alinea zelf.

Categoriepagina's zijn vaak belangrijker dan je denkt. Iemand die zoekt op "gietijzeren theepot" wil een keuze zien, geen enkel product. Geef je categorieën daarom een korte inleidende tekst en een duidelijke naam, en houd de structuur eenvoudig (Theepotten > Gietijzer, niet vijf niveaus diep).

Gestructureerde gegevens: wat WooCommerce meestuurt

Gestructureerde gegevens zijn een stukje code in je pagina dat in een vaste vorm vertelt wat er op de pagina staat. WooCommerce gebruikt daarvoor JSON-LD: een blok <script type="application/ld+json"> dat het onderaan de productpagina zet (in de voettekst van de HTML). Daarin staat een object van het type Product met:

  • name, url, description (de korte beschrijving, of anders de lange) en image;
  • sku (of het product-ID als je geen SKU invulde) en gtin als je een geldige GTIN invulde;
  • offers: een Offer met de prijs (in een priceSpecification), priceCurrency, availability en de verkoper (je winkelnaam). Bij een variabel product met verschillende prijzen wordt het een AggregateOffer met de laagste en hoogste prijs;
  • availability als schema.org-adres: https://schema.org/InStock, OutOfStock of BackOrder (bij nabestellingen);
  • bij beoordelingen ook de gemiddelde score en reviews.

Zo ziet een ingekort voorbeeld eruit:

{
  "@type": "Product",
  "name": "Gietijzeren theepot 0,8 liter, zwart",
  "sku": "TP-GIJ-08",
  "offers": [{
    "@type": "Offer",
    "price": "39.95",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock"
  }]
}

Wat gestructureerde gegevens wel doen: de zoekmachine weet zeker wat de prijs en de voorraad zijn, en kan ze tonen. Wat ze niet doen: je hoger laten scoren of een uitgebreid zoekresultaat garanderen. Google bepaalt zelf of het iets toont.

Drie valkuilen:

  • Dubbel schema. Een SEO-plugin of thema voegt ook een Product toe. Dan staan er twee, soms met verschillende prijzen. Kies één bron en zet de andere uit.
  • Prijs uit de cache. Na een prijswijziging toont een oude, opgeslagen pagina de oude prijs, in de tekst en in het schema. Leeg de cache na prijswijzigingen (les 6.4).
  • Verkeerde btw-weergave. Het schema neemt de prijs zoals je winkel hem toont. Toon je consumenten de prijs inclusief btw (les 4.1), dan staat die ook in het schema.

Controleren doe je met de validator van schema.org of de test van Google (zie Verder lezen), of met de opdracht van deze les.

Uitverkocht, uit het assortiment, terug op voorraad

Wat doe je met een product dat even op is? Bij WooCommerce > Instellingen > Producten > Voorraad kun je uitverkochte producten verbergen in de catalogus. Doe dat niet zomaar bij tijdelijke uitverkoop: de pagina blijft bestaan, maar valt uit je categoriepagina's, en klanten die hem via een zoekmachine vinden, zien hem nog wel. Voor een product dat terugkomt is het beter om de pagina te laten staan met "uitverkocht", een verwachte datum of een alternatief. Het schema zegt dan OutOfStock, en dat is eerlijk.

Gaat een product definitief uit het assortiment, dan heb je drie keuzes:

  1. de pagina laten staan met een duidelijke melding en links naar opvolgers (als er nog veel bezoekers komen);
  2. een 301-doorsturing naar de opvolger of de categorie (als er een echte vervanger is);
  3. de pagina verwijderen, zodat hij een 404 of 410 geeft (als er niets vergelijkbaars is).

Wat je niet doet: elk verdwenen product naar de homepage sturen. Zoekmachines zien dat als een soort 404, en bezoekers zoeken zich suf.

Filters, sorteren en dubbele inhoud

Filters op kleur, maat en prijs, en sorteren op prijs, maken adressen als /theepotten/?filter_kleur=zwart&orderby=price. Elke combinatie is een nieuw adres met bijna dezelfde inhoud. Bij veel filters ontstaan er duizenden. Een zoekmachine besteedt dan tijd aan die varianten in plaats van aan je producten.

Wat helpt:

  • een canonical op elke gefilterde pagina naar de pagina zonder filter (WordPress en de meeste SEO-plugins doen dat bij parameters niet altijd vanzelf: controleer het);
  • geen links naar gefilterde adressen in je menu;
  • variaties niet als losse producten aanmaken als het eigenlijk één product is (les 3.2);
  • één adres per product, ook als het in meer categorieën zit. WooCommerce gebruikt standaard /product/<naam>/ zonder categorie in het adres; laat dat zo, tenzij je weet wat je doet.

De productsitemap

WordPress maakt sinds versie 5.5 zelf een sitemap (/wp-sitemap.xml) met per berichttype een deel. Producten zijn een berichttype, dus er is een deelsitemap zoals /wp-sitemap-posts-product-1.xml. Gebruik je een SEO-plugin, dan maakt die vaak een eigen sitemap met een ander adres (en zet die van WordPress uit). Controleer dat je producten erin staan, dat winkelwagen, afrekenen en Mijn account er niet in staan (die hebben noindex, les 2.2), en meld de sitemap aan in Search Console.

Wil je dat je producten ook in de producttabbladen van zoekmachines verschijnen, dan kan dat met een productfeed, bijvoorbeeld via de gratis vermeldingen in Google Merchant Center. Dat valt buiten deze cursus; de gestructureerde gegevens hierboven zijn wel de basis.

Samenvatting

  • Een productpagina heeft een titel waarop mensen zoeken, een eigen beschrijving, goede foto's met alt-tekst en een ingevulde SKU en GTIN.
  • WooCommerce zet een Product-schema in JSON-LD op de productpagina met prijs, valuta, voorraad en verkoper; het garandeert geen uitgebreid zoekresultaat.
  • Voorkom dubbel schema en oude prijzen in de cache.
  • Tijdelijk uitverkocht: pagina laten staan; definitief weg: opvolger, 301 of 404/410, niet naar de homepage.
  • Filters maken dubbele inhoud; gebruik canonicals en controleer je productsitemap.

Quiz

1. Wat doet het Product-schema dat WooCommerce op een productpagina zet?



2. Een theepot is twee weken uitverkocht en komt daarna terug. Wat is de beste aanpak?



3. In de broncode van een productpagina staan twee Product-blokken met verschillende prijzen. Wat is de oorzaak meestal?



4. Waarom kunnen filters op kleur en prijs een probleem zijn voor zoekmachines?



Opdracht

Opdracht A7.1: Begrijpt een zoekmachine je product? Vul het adres van je shop in en de slug of het adres van een product (leeg laten: het programma neemt het eerste product uit je Store API). Het programma haalt het product op via de Store API, vraagt de productpagina op en leest alle blokken application/ld+json. Daarna kijkt het in robots.txt of /wp-sitemap.xml naar de sitemap met producten. Groen als er precies één Product staat met een naam, een offers met prijs en priceCurrency, een availability die past bij de voorraad, een afbeelding en een SKU of GTIN; als de prijs in het schema gelijk is aan die in de Store API; als de pagina geen noindex heeft en een canonical naar zichzelf; en als het product in een productsitemap staat. Oranje bij twee of meer Product-blokken, geen SKU en geen GTIN, een afwijkende prijs, geen canonical, geen afbeelding of als het product niet in de sitemap staat. Rood als er geen Product-schema is, de pagina noindex heeft of de prijs (offers) ontbreekt.

Vraag voor jezelf (niet nagekeken): plak het adres van je productpagina ook in de validator van schema.org. Ziet die hetzelfde als het programma?

Opdracht A7.1: Begrijpt een zoekmachine je product?



Wat je invult en wat we vinden, slaan we niet op. Je browser onthoudt je antwoorden en of je de opdracht hebt gehaald. Ben je aangemeld, dan bewaren we alleen dat je de opdracht (bijna) goed had in Mijn cursussen; daar kun je het ook verwijderen.

Verder lezen

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…