Technische SEO-checklist voor webshops: Shopify en WooCommerce

Technische SEO voor je webshop checken: noindex, robots.txt, sitemaps, titels, H1’s, canonicals, gestructureerde productgegevens, Open Graph en alt-tekst.

FixReports-redactie13 min. leestijd

Met een technische SEO-checklist voor een webshop controleer je drie dingen: zoekmachines kunnen de pagina’s die gevonden moeten worden crawlen en indexeren, ze begrijpen wat elke pagina is, en ze kunnen die goed tonen in de zoekresultaten. In de praktijk betekent dat: geen verdwaalde noindex-regels, een robots.txt die geen belangrijke pagina’s blokkeert, een sitemap met canonieke URL’s, per pagina een unieke paginatitel en meta description, één duidelijke H1, canonical tags die duplicaten van varianten en collecties samenvoegen, geldige gestructureerde gegevens voor producten, Open Graph-tags, beschrijvende alt-tekst en geen kapotte interne links. Deze controles nemen technische obstakels weg; ze garanderen geen rankings of verkeer.

De belangrijkste punten

  • robots.txt regelt het crawlen, niet het indexeren. Wil je een pagina uit Google houden, gebruik dan noindex en blokkeer die pagina niet in robots.txt, want anders ziet Google de regel nooit (Google Search Central (opent in een nieuw tabblad)).
  • Eén sitemapbestand mag maximaal 50.000 URL’s of 50 MB ongecomprimeerd bevatten, en Google negeert <priority> en <changefreq> (Google Search Central (opent in een nieuw tabblad)).
  • Volgens Google bestaat er geen ideaal aantal koppen, maar één H1 die het product noemt, is de duidelijkste hoofdtitel voor shoppers en schermlezers.
  • Verkopersvermeldingen (merchant listings) vereisen een productnaam, een afbeelding en een geneste Offer (geen AggregateOffer) met een prijs boven nul en een valuta (Google Search Central (opent in een nieuw tabblad)).

Wat regelen Shopify en WooCommerce standaard?

Shopify regelt de meeste technische SEO-basics in het platform en het thema, terwijl een WooCommerce-webshop voor een aantal ervan afhankelijk is van de WordPress-kern plus een SEO-plugin.

OnderdeelShopifyWooCommerce (WordPress)
XML-sitemap/sitemap.xml, automatisch/wp-sitemap.xml sinds WordPress 5.5, of die van een SEO-plugin
robots.txtAutomatisch; aan te passen met robots.txt.liquidVirtueel bestand van WordPress dat de kernsitemap vermeldt
Canonical tagsWorden automatisch toegevoegdDe kern voegt ze alleen toe op afzonderlijke pagina’s
Meta descriptionVeld in de zoekmachinevermelding van elk productSEO-plugin of thema
Gestructureerde productgegevensThema, via de filter structured_dataJSON-LD van de WooCommerce-kern op productpagina’s
Open Graph-tagsThema (Dawn: meta-tags.liquid)SEO-plugin of thema
Winkelwagen en afrekenenUitgesloten (Disallow) in robots.txtDoor WooCommerce gemarkeerd als noindex

Hieronder volgen per rij de details en bronnen (stand van oktober 2026).

Hoe zorg je dat de pagina’s van je webshop geïndexeerd kunnen worden?

Een pagina kan worden geïndexeerd als die statuscode 200 teruggeeft, niet door robots.txt wordt geblokkeerd en geen noindex-regel bevat.

Een noindex-regel kan in een metatag of in een HTTP-header staan; binnen robots.txt ondersteunt Google die regel niet (Google (opent in een nieuw tabblad)):

<meta name="robots" content="noindex">
X-Robots-Tag: noindex

robots.txt beheert het verkeer van crawlers; een geblokkeerde URL kan nog steeds in de resultaten verschijnen, zonder beschrijving, als andere pagina’s ernaar linken (Google (opent in een nieuw tabblad)). Het rapport Pagina-indexering (opent in een nieuw tabblad) in Search Console toont elke niet-geïndexeerde URL met een reden, zoals “URL marked ‘noindex’” (de URL is gemarkeerd met noindex). Niet elke URL hoeft geïndexeerd te worden, maar je producten en collecties wel.

Shopify

De standaard-robots.txt blokkeert de paden voor beheer, winkelwagen, afrekenen, account en bestellingen, plus gefilterde (/collections/*+*) en gesorteerde (sort_by) collectie-URL’s die collectiepagina’s dupliceren. Je kunt het bestand aanpassen met een robots.txt.liquid-template, maar Shopify noemt dat een niet-ondersteunde aanpassing en waarschuwt dat fouten een webshop al zijn verkeer kunnen kosten (Shopify Help Center (opent in een nieuw tabblad)).

Wil je een pagina, blogpost of product verbergen, stel dan een metaveld van het type integer met de naam seo.hidden in op 1. Dat verbergt het item voor sitemaps, zoekmachines en de zoekfunctie van je webshop; de productstatus Unlisted (niet vermeld) verbergt producten bovendien in collecties en aanbevelingen (Shopify Help Center (opent in een nieuw tabblad)). Zolang een webshop met een wachtwoord is beveiligd, kunnen zoekmachines de sitemap niet lezen.

WooCommerce

Controleer Instellingen > Lezen > Zichtbaarheid voor zoekmachines (Settings > Reading > Search engine visibility). Als “Zoekmachines ontmoedigen deze site te indexeren” (Discourage search engines from indexing this site) is aangevinkt, voegt WordPress (sinds 5.3) een robots-metatag met noindex, nofollow toe aan je pagina’s (WordPress.org (opent in een nieuw tabblad)) en schakelt het de kernsitemap uit. Is de webshop op een stagingsite gebouwd, controleer dan of het vinkje bij de lancering is weggehaald. WooCommerce markeert zelf de pagina’s Winkelwagen, Afrekenen en Mijn account als noindex en stuurt X-Robots-Tag: noindex mee op endpoints zoals de bevestiging van een ontvangen bestelling (order received) (broncode van WooCommerce (opent in een nieuw tabblad)); dat is zo bedoeld.

Wat hoort er in de XML-sitemap van een webshop?

De sitemap hoort alleen canonieke, indexeerbare URL’s te bevatten die je in de zoekresultaten wilt hebben: producten, collecties of categorieën, contentpagina’s en blogposts.

De regels van Google: maximaal 50.000 URL’s of 50 MB per bestand, een sitemapindex voor grotere sets, absolute URL’s, alleen URL’s die je in de resultaten wilt tonen, en <lastmod> alleen als die klopt (Google (opent in een nieuw tabblad)). Dien de sitemap in via het rapport Sitemaps in Search Console of verwijs ernaar in robots.txt:

Sitemap: https://example.com/sitemap.xml

Bij Shopify heeft elk domein een automatische sitemap.xml die linkt naar onderliggende sitemaps voor producten, collecties, blogs en pagina’s, en die wordt bijgewerkt als je die toevoegt; elk internationaal domein krijgt een eigen sitemap (Shopify Help Center (opent in een nieuw tabblad)).

Bij WooCommerce leveren WordPress 5.5 en later een sitemapindex van de kern op /wp-sitemap.xml, waarnaar de robots.txt van WordPress verwijst, met standaard maximaal 2.000 items per sitemap. SEO-plugins zoals Yoast SEO vervangen die door hun eigen sitemap (Make WordPress Core (opent in een nieuw tabblad)). Controleer welke sitemap echt live staat voordat je hem indient.

Hoe schrijf je producttitels en meta descriptions?

Geef elke pagina een unieke, beschrijvende titel en een meta description die de pagina samenvat, met de belangrijkste woorden vooraan, want Google kort beide in zodat ze op het scherm passen.

De richtlijnen van Google voor titels: maak titels beschrijvend en beknopt, vermijd keyword stuffing en herhaalde standaardtekst, en zet de sitenaam aan het begin of het eind, gescheiden door een scheidingsteken. Er is geen maximale lengte, maar titellinks worden afgekapt op de breedte van het apparaat (Google (opent in een nieuw tabblad)). Google kan de titellink ook uit andere tekst opbouwen, zoals de H1 of og:title.

Voor snippets gebruikt Google vooral de content van de pagina, en de meta description als die de pagina nauwkeuriger beschrijft. Google raadt aan productgegevens zoals de prijs of de fabrikant op te nemen, en zegt dat automatisch gegenereerde beschrijvingen prima zijn als ze leesbaar en gevarieerd zijn (Google (opent in een nieuw tabblad)).

<title>Linen shirt, natural, relaxed fit | Example Store</title>
<meta name="description" content="Relaxed-fit shirt in European linen. Sizes XS to XXL, $68, free returns within 30 days.">
  • Shopify: pas de Paginatitel (Page title), Metabeschrijving (Meta description) en URL-handle (URL handle) aan in het gedeelte voor de zoekmachinevermelding van elk product (Shopify Help Center (opent in een nieuw tabblad)). Shopify accepteert maximaal 70 tekens in de titel, raadt er ongeveer 60 aan en adviseert 160 tekens voor de beschrijving (Shopify Help Center (opent in een nieuw tabblad)).
  • WooCommerce: de WordPress-kern geeft geen meta description weer (gecontroleerd in de broncode van 7.1.3), dus gebruik een SEO-plugin of je thema.

Heeft elke pagina precies één H1 nodig?

Google eist geen specifiek aantal, maar één H1 die de pagina benoemt, is de duidelijkste hoofdtitel voor shoppers, schermlezers en zoekmachines.

De SEO-starthandleiding van Google zegt dat er geen ideaal aantal koppen is en dat de volgorde van koppen voor Google Zoeken niet uitmaakt, al helpt een semantische volgorde schermlezers (Google (opent in een nieuw tabblad)). De richtlijnen voor titellinks raden aan de hoofdtitel de meest opvallende tekst te maken, bijvoorbeeld als eerste zichtbare <h1>. De tutorial van W3C voegt toe dat koppen de opbouw van de pagina overbrengen en dat je geen kopniveaus moet overslaan (W3C WAI (opent in een nieuw tabblad)).

Veelvoorkomende fouten in webshops: het logo in een H1 op elke pagina, de productnaam in een <div> of H2, een tweede H1 uit een app, en collectiepagina’s zonder H1.

Hoe lossen canonieke URL’s duplicaten van varianten en collecties op?

Een canonical tag vertelt Google welke van meerdere URL’s met dezelfde content geïndexeerd moet worden, dus URL’s met variantparameters en collectiepaden horen naar één voorkeurs-URL van het product te verwijzen.

Google beschouwt redirects en rel="canonical" als sterke signalen en opname in de sitemap als een zwak signaal. Gebruik absolute URL’s, en gebruik geen robots.txt of noindex om een canonieke URL te kiezen (Google (opent in een nieuw tabblad)). Voor varianten via een optionele queryparameter zoals ?color=green raadt Google de URL zonder de parameter aan als canonieke URL. Google negeert #-fragmenten, dus varianten hebben paden of parameters nodig. Verder raadt Google naar zichzelf verwijzende canonicals aan op indexeerbare pagina’s, en consistente URL’s in links, sitemaps en canonical tags (Google (opent in een nieuw tabblad)).

<link rel="canonical" href="https://example.com/products/linen-shirt">

Negeert Google jouw keuze, dan toont het rapport Pagina-indexering “Duplicate, Google chose different canonical than user” (Google heeft een andere canonieke URL gekozen dan jij), meestal een teken van tegenstrijdige signalen.

  • Shopify: canonical tags worden automatisch gegenereerd (Shopify Help Center (opent in een nieuw tabblad)); het thema Dawn geeft <link rel="canonical" href="{{ canonical_url }}"> weer. Thema’s die de filter within gebruiken, maken product-URL’s die de collectie bevatten (/collections/summer/products/linen-shirt), en Shopify merkt op dat die de standaardproductpagina dupliceren (Shopify (opent in een nieuw tabblad)). Controleer of hun canonical naar /products/linen-shirt verwijst.
  • WooCommerce: de WordPress-kern geeft alleen een canonical tag weer op afzonderlijke weergaven zoals producten en pagina’s (WordPress developer reference (opent in een nieuw tabblad)), dus de shoppagina en categoriearchieven zijn afhankelijk van je SEO-plugin of thema. Wijzig je de permalinkstructuur voor producten, dan verandert elke product-URL en geven oude links een 404-fout, tenzij je redirects toevoegt (WooCommerce (opent in een nieuw tabblad)).

Hoe stel je gestructureerde productgegevens in voor verkopersvermeldingen?

Voeg Product-markup toe met een geneste Offer die overeenkomt met de prijs en beschikbaarheid op de pagina, en test die daarna in de Test voor uitgebreide resultaten (Rich Results Test) van Google.

Google gebruikt productfragmenten (product snippets) voor productpagina’s waar mensen niet direct kunnen kopen, en verkopersvermeldingen (merchant listings) voor pagina’s waar dat wel kan (Google (opent in een nieuw tabblad)). Over het algemeen raadt Google JSON-LD aan (Google (opent in een nieuw tabblad)). Verkopersvermeldingen vereisen name, image en offers als Offer, met een price boven nul en priceCurrency in ISO 4217-notatie. Aanbevolen eigenschappen zijn onder meer availability, gtin, brand, aggregateRating, shippingDetails en hasMerchantReturnPolicy (Google (opent in een nieuw tabblad)). Voor varianten ondersteunt Google ProductGroup met hasVariant, variesBy en productGroupID (Google (opent in een nieuw tabblad)).

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Linen shirt, natural",
  "image": ["https://example.com/images/linen-shirt-1x1.jpg"],
  "sku": "LS-NAT-M",
  "brand": { "@type": "Brand", "name": "Example Store" },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/linen-shirt",
    "price": "68.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
</script>

Markeer alleen wat shoppers kunnen zien; Google garandeert niet dat gestructureerde gegevens in de resultaten verschijnen (Google (opent in een nieuw tabblad)).

  • Shopify: {{ product | structured_data }} geeft een Product weer voor producten zonder varianten en een ProductGroup voor producten met varianten (Shopify (opent in een nieuw tabblad)); Dawn neemt dit op in de productsectie. Voegt een review- of SEO-app eigen markup toe, controleer dan op duplicaten.
  • WooCommerce: de kern geeft Product-JSON-LD weer op productpagina’s, met SKU, aanbiedingen (offers), beoordelingen als er reviews zijn, en een GTIN als het veld GTIN, UPC, EAN of ISBN (toegevoegd in WooCommerce 9.2 (opent in een nieuw tabblad)) is ingevuld. Variabele producten met verschillende prijzen per variatie krijgen een prijsbereik als AggregateOffer, tenzij de URL één variatie selecteert (broncode van WooCommerce (opent in een nieuw tabblad)). Test ze dus, want verkopersvermeldingen hebben een Offer nodig.

Voor retouren accepteert Google ook een retourbeleid op organisatieniveau in de markup, maar instellingen in Merchant Center of Search Console hebben voorrang (Google (opent in een nieuw tabblad)).

Welke Open Graph-tags horen op productpagina’s?

Productpagina’s horen og:title, og:type, og:image en og:url te hebben, plus og:description en og:image:alt, zodat gedeelde links de juiste titel en foto tonen.

Het Open Graph-protocol noemt die vier als verplicht, definieert og:url als de canonieke URL en zegt dat bij elke og:image een og:image:alt hoort (ogp.me (opent in een nieuw tabblad)).

<meta property="og:type" content="product">
<meta property="og:title" content="Linen shirt, natural">
<meta property="og:url" content="https://example.com/products/linen-shirt">
<meta property="og:image" content="https://example.com/images/linen-shirt-1200x630.jpg">
<meta property="og:image:alt" content="Natural linen shirt on a hanger">
<meta property="og:description" content="Relaxed-fit shirt in European linen.">

Waarom is alt-tekst belangrijk voor productafbeeldingen?

Alt-tekst vertelt zoekmachines en gebruikers van schermlezers wat een productafbeelding laat zien, en Google gebruikt die samen met computer vision en de content van de pagina.

De afbeeldingsrichtlijnen van Google vragen om nuttige, specifieke alt-tekst zonder keyword stuffing; het beste voorbeeld daar is “Dalmatian puppy playing fetch” (een dalmatiërpup die een bal apporteert). Google indexeert geen CSS-achtergrondafbeeldingen, dus productfoto’s horen in <img>-elementen (Google (opent in een nieuw tabblad)). Voor een webshop betekent dat alt-tekst zoals “Linnen overhemd in naturel, achteraanzicht”, niet “overhemd overhemd linnen kopen”.

Crawl je webshop, maak een lijst van interne links die een 4xx-fout geven, en werk elke link bij of stuur de oude URL met een 301-redirect door naar de best passende live pagina.

Google crawlt links die zijn opgebouwd als <a>-elementen met een href, en raadt aan om naar elke belangrijke pagina te linken vanaf minstens één andere pagina (Google (opent in een nieuw tabblad)). URL’s die 4xx-codes geven, worden niet geïndexeerd, en URL’s die al geïndexeerd waren, worden verwijderd; een 301 is een sterk redirectsignaal, een 302 een zwak signaal (Google (opent in een nieuw tabblad)). Links in webshops gaan kapot als producten worden verwijderd of hernoemd, handles veranderen of collecties worden opgeheven, terwijl de oude links in menu’s, beschrijvingen en blogposts blijven staan.

  • Shopify: ga naar Content > Menu’s > URL-omleidingen bekijken > URL-omleiding maken (Content > Menus > View URL redirects > Create URL redirect). Shopify stuurt alleen URL’s door die echt kapot zijn (Shopify Help Center (opent in een nieuw tabblad)).
  • WooCommerce: voeg serverregels of een redirectplugin toe zodra je slugs of permalinkinstellingen wijzigt.

Een gratis scan signaleert veel van deze problemen in ongeveer een minuut. Het SEO-rapport controleert titels, meta descriptions, H1’s, canonicals, noindex, robots.txt, de sitemap, gestructureerde productgegevens, Open Graph, alt-tekst en kapotte interne links op maximaal 25 pagina’s, met oplossingen voor jouw platform.

Veelgestelde vragen

Garandeert het oplossen van technische SEO-problemen betere rankings?

Nee. Deze verbeteringen nemen redenen weg waardoor een pagina niet gecrawld, geïndexeerd of begrepen kan worden; rankings hangen nog steeds af van relevantie en veel andere factoren.

Moet elke productvariant een eigen geïndexeerde URL hebben?

Dat hangt af van hoe de varianten zijn opgebouwd. Delen ze één pagina en verschillen ze alleen door een optionele queryparameter, dan raadt Google de URL zonder de parameter aan als canonieke URL; heeft elke variant een eigen pagina, dan behandelen de richtlijnen van Google voor varianten elke pagina afzonderlijk.

Waarom toont mijn product geen uitgebreide resultaten, ook al is de markup geldig?

Google garandeert geen uitgebreide resultaten (rich results) voor geldige gestructureerde gegevens. Controleer of de markup overeenkomt met de zichtbare content, een Offer gebruikt met een prijs boven nul, en slaagt voor de Test voor uitgebreide resultaten (Rich Results Test).

Moet ik gefilterde collectiepagina’s blokkeren in robots.txt?

Bij Shopify sluit de standaard-robots.txt gefilterde en gesorteerde collectie-URL’s al uit, omdat die collectiepagina’s dupliceren. Pas je robots.txt.liquid aan, houd die regels dan aan, tenzij je een specifieke reden hebt om ze te wijzigen.

Bronnen