/diensten/loodgieter-mijdrecht/. Voorbeeld slecht: /?p=124&cat=services. Wijzigen kan, maar altijd met 301-redirects.
De 9 regels voor goede URL's
1. Lowercase
Altijd /diensten/, nooit /Diensten/ of /DIENSTEN/. Sommige servers behandelen hoofdletter-URL's als andere pagina's — duplicate content-risico.
2. Streepjes, geen underscores
loodgieter-mijdrecht ✓ — Google leest dit als twee woorden. loodgieter_mijdrecht ✗ — Google leest dit als één onbekend woord.
3. Beschrijvend, niet cryptisch
- ✓
/diensten/loodgieter-mijdrecht/ - ✗
/?p=124 - ✗
/page-id-7-services/
Een mens moet aan de URL kunnen zien wat erop staat. Bonus: deelbaar op WhatsApp, beter klikbaar in mailings, leesbaarder in zoekresultaten.
4. Kort (max 60 karakters)
Onderzoek toont dat URL's onder 60 karakters meetbaar beter scoren in CTR uit zoekresultaten. Concreet:
- ✓
/diensten/loodgieter/(22 karakters) - ✗
/onze-uitgebreide-diensten/loodgieter-specialist-mijdrecht-en-omgeving/(74 karakters)
5. Hiërarchie reflecteert site-structuur
De map-structuur in je URL's moet de logische hiërarchie van je site weerspiegelen:
/diensten/— overzicht/diensten/loodgieter/— algemene dienst/diensten/loodgieter/mijdrecht/— stad-specifiek
Maar overdrijf het niet. Diepte boven 4 niveaus is meestal teveel.
6. Geen datums
WordPress' default-permalink-instelling (/2019/03/post-titel/) is schadelijk voor evergreen content. Een site die in 2026 een 2019-update plaatst kan z'n URL niet vernieuwen zonder redirect — en de lezer ziet "2019" en denkt: oud.
7. Geen ID's of parameters
URL's met ?id=124&cat=services krijgen lagere crawl-prioriteit van Google. Dit is een setting in je CMS — WordPress > Permalink-instellingen > Post Name. Klaar.
8. Geen stopwoorden tenzij nodig
Skip woorden als "de", "het", "en", "van" als ze niet écht nodig zijn:
- ✓
/diensten/loodgieter/ - ✗
/onze-diensten/de-loodgieter-en-zijn-werk/
9. Trailing slash consistent
Kies één variant: of altijd /diensten/ (met slash), of altijd /diensten (zonder). Beide werken, maar wissel niet binnen één site. Voeg een redirect-regel toe die de andere variant automatisch doorstuurt.
Voor MKB-sites: een logische structuur
Een typische MKB-site zoals we bouwen bij DesignCheck Mijdrecht heeft deze structuur:
/— homepage/over-ons//diensten//diensten/[dienst-naam]//diensten/[dienst-naam]-[stad]//projecten//projecten/[project-slug]//blog//blog/[artikel-slug].html/contact/
URL's wijzigen — wat te doen
Wil je je structuur veranderen? Kan, maar volg dit:
- 1. Maak een mapping-spreadsheet: oude URL → nieuwe URL
- 2. Voeg 301-redirects toe voor élke oude URL (in
.htaccess, Nginx config, of CMS-plugin) - 3. Update interne links naar de nieuwe URL's
- 4. Submit nieuwe sitemap.xml in Google Search Console
- 5. Monitor 30-60 dagen — rankings kunnen tijdelijk dalen, herstellen daarna
- 6. Houd redirects minstens 1 jaar actief
De grootste valkuil bij CMS-migraties
Van WordPress naar een nieuw CMS migreren zonder redirect-strategie = je verliest alle ranking-equity die je in jaren hebt opgebouwd. We zien dit elke maand bij audits — sites die op een nieuw platform staan, mooi design, maar 70% minder Google-verkeer dan voorheen. Oorzaak: URL's veranderd, geen redirects.
Bij elke rebuild bij DesignCheck brengen we eerst de bestaande URL's in kaart en bouwen een 1:1 redirect-laag. Standaard, geen extra kosten.
Onzeker over je huidige URL-structuur? De gratis audit checkt automatisch op de 9 regels hierboven plus de redirect-strategie. Reken eerst uit wat je vindbaarheid je nu kost in de verliescalculator — vaak verrassend hoog. Voor lokale SEO is goede URL-structuur trouwens stap 3, zie lokale SEO MKB 2026.
FAQ — URL/permalink-structuur
Mag ik datums in mijn URL hebben?
/2019/03/loodgieter-tips/ veroudert direct en wekt de indruk dat de inhoud uit 2019 stamt. Voor MKB bijna nooit nuttig.Hoe lang mag een URL zijn?
Wat doe ik als ik mijn URL-structuur wil veranderen?
Maakt het uit of ik .html in mijn URL heb?
.html voor blogposts (statische generatie) en clean URLs voor service-pagina's.Wat een URL eigenlijk doet voor SEO
Een URL is het enige stukje metadata dat zowel zoekmachines, mensen, mailclients, sociale platforms, AI-zoeksystemen als chat-apps gebruiken. Geen ander element op je site wordt zo vaak gekopieerd, geplakt, gedeeld, geknipt en getoond. Wie de URL goed ontwerpt, krijgt voor elk van die kanalen een gratis bonus: betere klikratio, betere voorvertoning, betere vindbaarheid op de bedrijfsnaam plus dienst.
Google's algoritme leest het pad-deel van je URL als een tweede titel. Wanneer je hoofdtitel iets generieks belooft maar je URL toont een specifieke dienst, lossen die twee samen vragen op die niet in de body voorkomen. Daarom is een URL die letterlijk de zoekvraag bevat zo krachtig: /diensten/cv-ketel-vervangen/ rankt op "cv-ketel vervangen" met minder content-zwaartekracht dan /services/?id=42 ooit zal lukken.
Daarnaast spelen URL's een rol in hoe AI-zoeksystemen je site lezen. Wanneer een large language model citeert wie een dienst aanbiedt in een bepaalde stad, kijkt het sterk naar URL-fragmenten. Een pad als /loodgieter/uithoorn/ wordt vaker gevonden dan een pagina met dezelfde inhoud op /?page=12&loc=3. Slechte URL's zijn niet alleen lelijk, ze maken je onzichtbaar in de zoeklaag die snel groter wordt.
Migraties zonder verkeer te verliezen
Eén van de meest voorkomende redenen dat een nieuw gebouwde site minder verkeer trekt dan de oude, is een onvolledige redirect-laag. Het patroon herhaalt zich elke maand bij onze audits: nieuwe site live, alle interne links werken, ranking-pagina's onbereikbaar omdat de oude paden niet zijn vertaald. Drie maanden later staat het bedrijf met paniek aan de telefoon: het organische verkeer is gehalveerd, terwijl het ontwerp objectief beter is geworden.
De aanpak die wel werkt begint twee weken vóór de migratie. We exporteren een volledige crawl van de oude site, sorteren de pagina's op inkomend organisch verkeer over de laatste twaalf maanden, en maken voor de top-200 pagina's een handmatige mapping. De rest wordt afgevangen door een regex-redirect-laag die patronen naar nieuwe paden vertaalt. Pas wanneer die mapping compleet is, gaat de nieuwe site live.
Bij de bouw van Keurmeesters hebben we 31 stadspagina's met BAG-API-koppeling gemaakt onder een strikte URL-conventie: /energielabel/[stad]/. Daardoor scoort elke stadspagina los op de combinatie "energielabel + plaatsnaam" en haalt het Lighthouse 96+. Geen enkele pagina hangt af van query-parameters, geen enkele heeft datums in het pad, en elke pagina is in één klik bereikbaar via een logische sitemap.
De URL-checklist die elke pagina passeert
- Lowercase: alle letters klein, ook bij stadnamen ("loosdrecht", niet "Loosdrecht").
- Streepjes tussen woorden, nooit underscores, nooit spaties of plus-tekens.
- Maximaal vier woorden in het pad-deel, samen onder 60 karakters.
- Geen datums, geen ID's, geen rauwe query-strings die als canonical pad fungeren.
- Geen accenten of niet-ASCII-tekens — vertaal "café" naar "cafe" om mojibake in beacons te voorkomen.
- Geen stopwoorden tenzij ze de leesbaarheid echt verbeteren.
- Hiërarchie reflecteert sitestructuur, niet de techniek van het CMS.
- Eén consistente trailing-slash-stijl per site, afgedwongen via server-config.
- Canonical-tag op elke pagina wijst naar precies de juiste variant (met of zonder slash).
- HTTPS-versie afgedwongen via HSTS en automatische redirect van HTTP.
- www of non-www: één keuze, beide varianten redirecten naar de gekozen variant.
- Geen URL-parameters voor sortering of filters die voor crawler-index relevant zijn.
- Pagina's die alleen via JavaScript bereikbaar zijn krijgen een echte URL die ook zonder JS werkt.
- Bij meertaligheid: aparte paden per taal (
/nl/,/en/) en hreflang correct gezet. - Bij verhuizing of rebrand: 301-redirects minimaal 12 maanden actief, log-bestanden checken op 404's.
Wat doe je vandaag?
- Open je sitemap of een crawler en sorteer alle URL's op lengte — zoek de top-10 langste en vervang ze.
- Zoek op je domein in Google met
site:jouwsite.nl inurl:?— elke hit is een kandidaat voor opschoning. - Controleer of beide varianten (met en zonder trailing slash) werken en consistent redirecten.
- Maak één spreadsheet met je top-20 verkeer-pagina's plus hun huidige URL — basis voor elke toekomstige migratie.
- Zet de canonical-tag op elke pagina, ook als de URL al schoon is — het is een gratis vangnet.
Mag een URL Nederlandse trema's of accenten bevatten?
/cafe-mijdrecht/ werkt op elk platform identiek, terwijl /café-mijdrecht/ in een vijfde van de tools een fout oplevert. Houd het pad ASCII-only.Moeten URL's hetzelfde zijn als de paginatitel?
/diensten/loodgieter-mijdrecht/. De URL bevat de kerntermen, de titel voegt context toe. Wie de titel letterlijk in de URL plakt, krijgt te lange paden die slecht delen op WhatsApp en in mailings.Wat als ik per ongeluk dezelfde slug op twee pagina's heb?
Server-config: waar URL-regels écht worden afgedwongen
Een mooie URL-strategie staat of valt bij wat de server daadwerkelijk doet wanneer iemand een variant aanroept. Wie alleen in het CMS-paneel kiest voor "schone URL's" zonder de webserver-config te checken, krijgt subtiele lekken: hoofdletter-varianten die als aparte pagina's worden geserveerd, parameter-versies die naast de canonical bestaan, trailing-slash-inconsistenties die per browser anders gerenderd worden. Allemaal kleine fouten die optellen tot duplicate-content-signalen en gedeelde ranking-equity.
Op een Nginx-server regel je dit in twee blokken. Eén regel forceert lowercase via een interne rewrite. Eén regel forceert de gekozen trailing-slash-stijl. Eén regel verwijdert query-parameters die geen canonical-status hebben. Vier regels in totaal, één keer goed gezet, geen onderhoud meer. Op Apache regel je hetzelfde via een .htaccess-bestand met mod_rewrite. Bij headless setups op Vercel of Cloudflare gebeurt het via een config-bestand in de repo. De technologie verschilt, de mindset is dezelfde: één canonical pad, alle andere routes redirecten netjes.
Bij Keurmeesters draait de hele site achter een Vercel-routing-laag die hoofdletter-paden lowercase maakt, trailing slashes consistent afdwingt, en bij elke 404 een nette redirect-suggestie geeft. Dat is geen luxe, dat is de hygiëne die het verschil maakt tussen een Lighthouse-score van 92 en de 96+ die we daar consistent halen. Webdesign-kwaliteit en SEO-kwaliteit zijn niet twee diensten — ze zijn één en dezelfde discipline, alleen vanuit twee verschillende invalshoeken bekeken.
Internal linking en URL-stabiliteit
Een URL is geen toevallige plek waar een pagina staat — het is een afspraak met elke andere site, elk e-mailprogramma, elke chat-app, en elke crawler over waar die pagina te vinden is. Wie z'n URL's elk jaar opnieuw uitvindt, breekt die afspraak. Externe links worden ineens nutteloos, interne verwijzingen vallen om, redirect-ketens groeien aan, en de gebruikerservaring verslechtert in stilte.
De vuistregel: kies een URL-conventie die over tien jaar nog logisch is. Dat betekent geen jaartallen, geen seizoenen, geen tijdelijke campagne-namen in het pad. Geen interne projectcode die alleen voor jouw team betekenis heeft. Geen technologie-stempel zoals /wp/ of /cms/. Wel: een patroon dat de structuur van je dienstverlening reflecteert en dat ook past wanneer je over vijf jaar een nieuwe dienst toevoegt of een stadspagina aanmaakt voor een buurgemeente.
Internal linking versterkt dit. Een homepage die naar diensten linkt, diensten die naar stadspagina's linken, stadspagina's die naar gerelateerde stadspagina's linken — dat patroon werkt alleen als de URL's stabiel zijn. Elke wijziging in een URL is een wijziging in alle interne links die ernaar wijzen. Daarom hoort URL-keuze niet bij "iets dat de developer regelt" maar bij de strategische ontwerpbeslissingen aan het begin van een rebuild.
Schema.org en de canonical URL
Veel Schema.org-blokken in JSON-LD bevatten een url-property en een mainEntityOfPage-property. Beide horen exact gelijk te zijn aan de canonical-tag in de HTML-head. Wie hier verschillende varianten gebruikt — soms met www, soms zonder, soms met trailing slash, soms zonder — geeft de crawler tegenstrijdige signalen over wat de echte URL van de pagina is. Google kiest dan zelf welke variant het indexeert, en die keuze valt niet altijd uit zoals je hoopt.
Een Organization-blok of LocalBusiness-blok in je head, met de officiële homepage-URL, het logo, het adres en de social-profielen, koppelt de hele site aan de canonical-domeinvariant. Een Service-blok per dienstpagina koppelt die pagina aan diezelfde organisatie en versterkt de hiërarchie. Een BreadcrumbList-blok per dieptepagina vertelt de crawler exact waar de pagina in de structuur thuishoort. Alle drie deze blokken hebben URL's nodig, en alle drie horen ze precies te wijzen naar de canonical paden die we hierboven beschreven.
Drie nieuwe valkuilen in 2026
- UTM-parameters die per ongeluk in canonical-tags belanden — gevolg: elke campagne creëert een duplicate URL.
- AI-chatbot-zoeklagen die paden met query-parameters niet citeren — gevolg: je antwoorden in ChatGPT en Perplexity verdwijnen.
- Headless CMS-platforms die per voorbeeld preview-URL's exporteren naar productie — gevolg: dubbele paden die per ongeluk geïndexeerd worden.
- Cookiebanners die een querystring toevoegen bij eerste bezoek — meet of die in je analytics als unieke pagina worden geteld.
- SPA-frameworks die hash-routing gebruiken in plaats van echte paths — gevolg: nul indexering van diepere pagina's.
- Server-side rendering die per ongeluk een #-fragment in canonical-tags plakt.
- Redirect-ketens van meer dan drie hops — Google volgt er nog steeds, maar de equity-overdracht halveert.
- Verouderde sitemap.xml-bestanden die naar paden verwijzen die intussen verhuisd zijn.
- 404-pagina's die een 200-status geven in plaats van een echte 404, waardoor "soft 404's" ontstaan.
- Internationale paden met taalcode in het subdomein én in het pad tegelijk (bv.
nl.site.com/nl/) — kies één conventie. - Tracking-parameters van advertentiekanalen die als canonical worden opgenomen omdat een plugin het canonical-veld dynamisch genereert.
- Pagina's die alleen via een POST-request bereikbaar zijn — onzichtbaar voor crawlers, niet linkbaar.
Wat doe je deze week?
- Draai een crawl van je hele site met een gratis tool en exporteer alle URL's naar een spreadsheet.
- Filter op paden met query-parameters of hoofdletters — zet elk geval om naar een 301-redirect naar de canonical variant.
- Open je sitemap.xml en check of elke vermelde URL daadwerkelijk een 200-status geeft (en niet een 301 of 404).
- Controleer in Search Console het rapport "Indexering > Pagina's" en kijk naar de gecategoriseerde fouten — daar zit vaak de URL-rommel.
- Voeg een canonical-tag toe aan elke pagina die er nog geen heeft, ook als je denkt dat de URL al schoon is.
Mag ik een URL veranderen als er nooit iemand naartoe heeft gelinkt?
Wat doe ik als mijn CMS geen schone URL's ondersteunt?
Helpt het om datums alsnog uit oude URL's te halen?
Verder lezen
Door Lorenzo Ruisi — DesignCheck. Laatst bijgewerkt 16 mei 2026.