Naar de inhoud

Kennisbank · SEO

Zoekmachinevriendelijke URL’s.

15 min leestijd
Illustratie van een zoekmachinevriendelijke URL

Een zoekmachinevriendelijk webadres is kort, leesbaar en gaat over waar de pagina over gaat. Dus platformpro.nl/kennisbank/seo/ en niet platformpro.nl/?p=4821&cat=12.

De winst zit minder in je positie dan de meeste artikelen suggereren. Het adres is een klein signaal voor Google. Het is een groot signaal voor de mens die het ziet staan, en die moet erop klikken.

Waar een webadres uit bestaat

Een adres heeft vaste onderdelen. Het protocol (https), eventueel een subdomein (www), de domeinnaam, dan het pad met de mappen en de paginanaam, en soms nog parameters achter een vraagteken.

Voor dit artikel gaat het vooral om dat pad. Het protocol en het domein liggen vast zodra je site draait. De rest bepaal je bij elke pagina die je publiceert, en daar wordt het meest verprutst. Wat elk onderdeel precies doet staat uitgelegd in het artikel over de URL.

Het laatste stuk van het pad heet de slug. In WordPress is dat het veld dat automatisch uit je paginatitel wordt gevuld. Bij een titel van twaalf woorden krijg je dus een slug van twaalf woorden, en dat is bijna nooit wat je wilt.

Hoe een goed adres eruitziet

  • Kort. Twee tot vijf woorden na je domeinnaam. Een adres dat in de zoekresultaten wordt afgekapt helpt niemand.
  • Leesbaar. Woorden, geen nummers en geen afkortingen die alleen jij begrijpt.
  • Kleine letters. Hoofdletters kunnen op sommige servers een ander adres opleveren en dus dubbele inhoud.
  • Streepjes tussen woorden. Google leest een streepje als een spatie en een liggend onderstreepje niet.
  • Zonder stopwoorden. /de-beste-manier-om-een-dakgoot-te-reinigen/ mag gerust /dakgoot-reinigen/ worden.
  • Zonder datum. Een artikel uit 2023 in het adres ziet er over twee jaar oud uit, ook als je het hebt bijgewerkt.
  • Zonder bestandsextensie. Geen .php of .html, dat vertelt niemand iets.

Het zoekwoord in je adres mag erin, maar één keer. Een adres als /webdesign-webdesign-bureau-webdesign-utrecht/ ziet eruit zoals het bedoeld is: als een poging. Zet het woord waarop je gevonden wilt worden er gewoon in en laat het daarbij. Hoe je bepaalt welk woord dat is, staat bij zoekwoorden in SEO.

De structuur eronder

Mappen laten zien wat bij elkaar hoort. /kennisbank/seo/zoekwoorden/ vertelt zowel de bezoeker als Google waar deze pagina in je site staat.

Houd het ondiep. Twee of drie niveaus is genoeg voor vrijwel elke site. Vier niveaus of meer betekent meestal dat je structuur zelf te ingewikkeld is.

Wees consequent. Als je op de ene plek /diensten/ gebruikt en op de andere /wat-ik-doe/, dan wordt je site onvoorspelbaar voor bezoekers die het adres aanpassen om ergens te komen.

Die mappenstructuur is ook wat Google in de zoekresultaten laat zien. Het volledige adres staat er meestal niet meer; in plaats daarvan verschijnt een kruimelpad met de namen van de mappen erin. Dezelfde logica gebruik je op je pagina zelf, wat uitgelegd staat bij breadcrumbs.

Eén waarschuwing bij mappen: een pagina hoort op één plek te staan. Een productpagina die zowel onder /schoenen/ als onder /aanbieding/ bereikbaar is, staat twee keer op je site. Laat hem op de plek staan waar hij thuishoort en maak van de andere ingang een gewone link.

Tekens die problemen geven

Een webadres kan technisch gezien maar een beperkte set tekens bevatten. Alles daarbuiten wordt omgezet naar een code met procenttekens.

Een spatie wordt %20. Een e met een trema wordt %C3%AB. Zet je dus /café-openingstijden/ in je adres, dan is dat wat iemand in zijn adresbalk ziet zodra hij het kopieert: /caf%C3%A9-openingstijden/. Het werkt wel. Het is alleen niet te lezen en niet te delen. Schrijf cafe.

Hoofdletters zijn een apart geval. Het domeingedeelte maakt niets uit, maar het pad erna wel: op een Linux-server is /Diensten/ een ander adres dan /diensten/. Je krijgt er twee pagina's van waar er een hoort te staan, of een foutmelding. Gebruik altijd kleine letters.

Leestekens laat je weg. Een vraagteken start de parameters, een hekje start een verwijzing naar een plek op de pagina, en een ampersand scheidt parameters. Die hebben allemaal al een betekenis. Punten, komma's en uitroeptekens horen ook niet in een pad.

Adressen instellen in WordPress

In WordPress regel je dit op twee plekken. Onder Instellingen, Permalinks kies je de vorm voor de hele site. De optie Berichtnaam levert /titel-van-je-bericht/ op en dat is voor de meeste sites de juiste keuze.

Staat je site op de optie Simpel, dan krijg je adressen als /?p=123. Dat wil je omzetten, maar doe het één keer en aan het begin. Als je site al jaren draait, betekent zo'n omzetting dat elk adres verandert.

De tweede plek is het bewerkscherm van de pagina zelf, in het zijpaneel. Daar staat de slug die WordPress uit je titel heeft gemaakt. Kort hem in voordat je publiceert, want dat is het moment waarop het gratis is.

Wat WordPress goed doet: verander je later toch de slug van een bericht, dan onthoudt het systeem de oude en stuurt bezoekers automatisch door naar het nieuwe adres. Dat is een vangnet, geen vervanging van een echte doorverwijzing. Bij pagina's en bij categorieën werkt het niet altijd, en bij een verhuizing naar een ander domein helemaal niet.

Nog een WordPress-eigenaardigheid: categorieën krijgen standaard /category/ in het adres. Je kunt die basis aanpassen naar iets Nederlands, en er zijn plugins die hem helemaal weghalen. Dat laatste raad ik af. Zonder basis kan een categorie botsen met een gewone pagina met dezelfde naam, en dan is niet te voorspellen wat er verschijnt.

Parameters, filters en dubbele inhoud

Alles achter het vraagteken heet een parameter. Sommige veranderen de pagina, zoals een filter op kleur of maat. Andere veranderen niets, zoals een label dat bijhoudt waar een bezoeker vandaan komt.

Die tweede soort is de stille veroorzaker van dubbele inhoud. Een link uit een nieuwsbrief met utm-labels erachter, een klik vanuit Google Ads met gclid, een klik vanaf Facebook met fbclid: dat zijn allemaal net andere adressen naar dezelfde pagina.

De oplossing is een canonical tag. Dat is een regel in de kop van je pagina die zegt: dit is het echte adres van deze inhoud. Zet die op elke pagina, ook als hij naar zichzelf wijst. WordPress doet dat met een SEO-plugin vanzelf.

Bij webshops loopt het sneller uit de hand. Filters op merk, maat, kleur en prijs die elk een eigen adres krijgen, leveren in een middagje duizenden combinaties op. Google gaat die kruipen en verdoet daar tijd mee die hij aan je echte pagina's had kunnen besteden. Sluit ze uit in je robots.txt of laat je bouwer ze op noindex zetten.

Google had hier vroeger een hulpmiddel voor in Search Console, waarmee je per parameter kon aangeven wat hij deed. Dat is in 2022 weggehaald, met de uitleg dat de zoekmachine het inmiddels zelf goed genoeg inschat. Kom je een handleiding tegen die ernaar verwijst, dan is die verouderd.

Eén versie van je site, niet vier

Vrijwel elke site is technisch op meerdere adressen bereikbaar. Met www en zonder www, met http en met https, met een afsluitende schuine streep en zonder. Dat zijn in het ergste geval acht varianten van je voorpagina.

Kies er een en verwijs de rest permanent door. Welke je kiest maakt niet uit, als je maar kiest. Test het door alle varianten in te tikken en te kijken of je adresbalk daarna dezelfde vorm laat zien.

Http naar https is geen keuze meer. Zonder geldig SSL-certificaat waarschuwt de browser je bezoekers, en dan is de rest van dit artikel niet meer je grootste probleem.

De afsluitende schuine streep is een kwestie van consequent zijn. WordPress zet hem er standaard achter bij pagina's en berichten. Laat dat zo en zorg dat je interne links hem ook hebben.

Persoonsgegevens in een webadres

Dit punt komt in vrijwel geen enkel SEO-artikel voor en het kan je duurder komen te staan dan een verkeerde slug.

Een webadres wordt overal opgeslagen. In je serverlogboeken, in je statistiekenpakket, in de geschiedenis van de browser, en het wordt meegestuurd naar elke andere site waar iemand vanaf jouw pagina naartoe klikt. Alles wat in dat adres staat, reist dus mee.

Zet er daarom nooit persoonsgegevens in. Een bedanktpagina als /bedankt/?email=jan@voorbeeld.nl lekt een e-mailadres naar elke partij die een script op die pagina heeft staan. Hetzelfde geldt voor een klantnummer, een reserveringscode of een naam in het pad.

Onder de AVG is dat gewoon een verwerking van persoonsgegevens, en een die je nergens voor nodig hebt. Geef zulke gegevens door in de achterkant van je systeem, niet in het adres. Formulierplugins die de ingevulde velden in de doorverwijzing meesturen zijn hier de meest voorkomende oorzaak; kijk daar als eerste.

Submappen, subdomeinen en talen

Voor een blog of een kennisbank kun je kiezen tussen voorbeeld.nl/blog/ en blog.voorbeeld.nl. Neem de eerste. Een subdomein wordt door zoekmachines grotendeels als een aparte site behandeld, dus alles wat je daar opbouwt komt je hoofddomein maar half ten goede.

Een subdomein is wel logisch voor iets dat echt apart staat, zoals een webshop op een ander systeem of een klantomgeving waar je toch niet gevonden wilt worden.

Bij meerdere talen zet je de taal vooraan in het pad: /nl/ en /en/. Dat is voor bezoekers duidelijk en voor jou makkelijk te beheren binnen één site. Vertaal daarbij ook de slug zelf, want een Engelse pagina op /en/schoenen-kopen/ komt op geen enkele Engelse zoekopdracht binnen.

Wat je erbij nodig hebt is een hreflang-verwijzing per pagina, waarmee je de taalversies aan elkaar koppelt. Zonder die verwijzing kan Google de Nederlandse versie tonen aan een Engelse bezoeker en andersom.

Waar het misgaat

Adressen wijzigen zonder doorverwijzing. Dit is de duurste fout op deze pagina. Elke link van buitenaf en elke opgeslagen bladwijzer wijst dan naar een foutmelding, en je positie begint bij nul.

Doorverwijzingen die achter elkaar staan. Oud adres naar nieuwer adres naar nieuwste adres. Elke stap kost tijd bij het laden en op een gegeven moment stopt Google met volgen. Verwijs altijd rechtstreeks naar de eindbestemming en werk oude regels bij.

Een tijdelijke doorverwijzing gebruiken voor een permanente verhuizing. Een 302 zegt: kom straks weer terug op het oude adres. Google houdt dan het oude adres in de index. Voor een verhuizing die blijft, gebruik je een 301.

Adressen die je systeem zelf verzint bij een dubbele titel. Maak je twee pagina's met dezelfde naam, dan plakt WordPress er een cijfer achter en krijg je /contact-2/. Dat blijft jaren staan omdat niemand het merkt.

De datum in je adres. Veel WordPress-sites staan nog op de instelling met jaar en maand erin. Je artikelen zien er daardoor oud uit in de zoekresultaten, ook als je ze net hebt bijgewerkt. Bij een nieuwe site zet je die instelling meteen goed.

Een adres wijzigen zonder schade

Soms moet het toch. Doe het dan in deze volgorde.

Zet eerst een permanente doorverwijzing van het oude naar het nieuwe adres, een 301. Die vertelt Google dat de pagina verhuisd is en draagt je opgebouwde waarde over.

Werk daarna je eigen interne links bij zodat ze rechtstreeks naar het nieuwe adres wijzen. Een link naar een doorverwijzing werkt wel, maar het is een omweg die je zelf kunt weghalen. Vergeet je menu en je footer niet, want daar staan de meeste links van je site.

Houd de oude doorverwijzing daarna gewoon staan. Er is geen reden om hem ooit weg te halen, en er is altijd wel ergens een oude link die je vergeten was.

Kijk de weken erna in Search Console of er foutmeldingen binnenkomen. Reken op een dip van een paar weken, ook als je alles goed doet. Google moet elk adres opnieuw langs voordat de verhuizing overal is verwerkt, en dat gaat bij je belangrijkste pagina's sneller dan bij de rest.

Een hele site verhuizen

Een nieuwe domeinnaam of een overstap van een oude sitestructuur naar een nieuwe is hetzelfde werk, maar dan honderden keren tegelijk.

Maak vooraf een lijst van elk bestaand adres met het nieuwe adres ernaast. Dat is saai werk en het is het enige dat werkt. Een algemene regel die alles naar de voorpagina stuurt is geen doorverwijzing maar een verlies: bezoekers komen ergens uit waar ze niets zoeken, en Google behandelt het als een verdwenen pagina.

Meld de verhuizing daarna in Search Console met de functie voor adreswijziging, en zorg dat je nieuwe sitemap alleen de nieuwe adressen bevat. Houd de oude domeinnaam aan en laat hem doorverwijzen; hem laten verlopen is de zekerste manier om alles kwijt te raken wat je had.

Zorg dat je DNS-instellingen pas overgaan als de nieuwe site echt klaarstaat. Een uur waarin er niets staat kost je meer dan een week extra voorbereiding.

Hoe je het controleert en meet

Begin in Search Console bij het rapport over pagina's. Daar staat per reden waarom een adres niet in de index zit: dubbele inhoud zonder canonical, doorverwijzing, uitgesloten door robots.txt. Dat rapport is de snelste manier om te zien of je structuur ergens lekt.

Voor een volledig beeld gebruik je een crawler zoals Screaming Frog, die je hele site langsloopt zoals een zoekmachine dat doet. In de gratis versie zit een limiet op het aantal adressen, wat voor een gewone bedrijfssite ruim genoeg is. Je ziet er doorverwijzingen die achter elkaar staan, foutmeldingen en adressen die nergens meer vandaan gelinkt worden.

Kijk in je statistieken naar de pagina's die het meeste bezoek trekken en of de adressen daarvan kloppen. Zie je dezelfde pagina onder twee adressen terug, dan splitst je meting zich en zie je van allebei te weinig.

Controleer tot slot je 404-meldingen, want daar staan de adressen die mensen echt proberen te bereiken. Elke terugkerende melding is een doorverwijzing die je vergeten bent. Meer over hoe zoekmachines je pagina's oppikken staat bij indexering door zoekmachines.

Hoeveel het uitmaakt

Eerlijk gezegd minder dan de hoeveelheid tekst die er over dit onderwerp bestaat. Het zoekwoord in je adres weegt licht.

Waar het wel om gaat: een leesbaar adres wordt vaker aangeklikt, is makkelijker te delen en het dwingt je om na te denken over je structuur. Dat laatste is de echte winst.

Een adres dat iemand in een appje ziet staan, moet hem vertellen waar hij terechtkomt. Dat is ook waarom een net adres helpt bij linkbuilding: wie naar je verwijst, plakt vaak het kale adres in zijn tekst.

Bestaat je site al jaren met lelijke adressen die het prima doen, laat ze dan staan. Het risico van een grote verhuizing is groter dan wat je ermee wint. Doe het goed bij nieuwe pagina's en laat de rest met rust.

Veelgestelde vragen over zoekmachinevriendelijke URL's

Wat is een slug?

De slug is het laatste stuk van een webadres, het deel dat de pagina zelf aanduidt. In /kennisbank/seo/zoekwoorden/ is zoekwoorden de slug.

WordPress maakt hem automatisch uit je paginatitel en je kunt hem in het bewerkscherm aanpassen. Doe dat voordat je publiceert.

Mag ik een URL veranderen nadat de pagina online staat?

Het mag, maar alleen met een permanente doorverwijzing van het oude naar het nieuwe adres. Zonder die doorverwijzing verlies je elke externe link naar die pagina en begint hij in Google weer bij nul.

Voor een pagina die al goed gevonden wordt, zou ik het alleen doen als het echte winst oplevert. Een adres netter maken is dat zelden waard.

Moet ik streepjes of liggende streepjes gebruiken in een URL?

Streepjes. Google leest een streepje tussen twee woorden als een spatie en behandelt een liggend onderstreepje als een verbinding, waardoor dakgoot_reinigen als één woord wordt gelezen.

Hoe lang mag een URL zijn?

Technisch is er ruimte zat, dus dat is niet de grens waar je tegenaan loopt. De praktische grens ligt bij wat er in de zoekresultaten past en wat iemand nog kan overzien.

Houd het pad na je domeinnaam op twee tot vijf woorden. Heb je er meer nodig, kijk dan of je structuur klopt.

Zijn hoofdletters in een URL een probleem?

In het domeingedeelte niet, in het pad erna wel. De meeste webservers draaien op Linux en die maken onderscheid tussen /Diensten/ en /diensten/.

Het gevolg is dezelfde pagina op twee adressen, of een foutmelding voor wie het verkeerd overtikt. Gebruik altijd kleine letters.

Helpt een zoekwoord in de URL voor mijn positie in Google?

Een beetje. Het is een van de lichtste signalen die er zijn en het weegt niet op tegen de inhoud van je pagina.

Het echte effect loopt via de mens: een adres waarin het gezochte woord staat, wordt vaker aangeklikt in de zoekresultaten.

Moet ik de datum uit mijn WordPress-adressen halen?

Bij een nieuwe site: zet die instelling meteen goed en gebruik alleen de berichtnaam. Bij een bestaande site met honderden artikelen betekent het dat elk adres verandert, en dat is een verhuizing met risico.

Ik doe het dan alleen als de site toch al op de schop gaat, en met een volledige lijst van doorverwijzingen erbij.

Wat is een canonical tag?

Een regel in de kop van je pagina die aangeeft welk adres de officiële versie van die inhoud is. Bereikt Google dezelfde pagina via een ander adres, dan weet hij welke hij moet indexeren.

Elke fatsoenlijke SEO-plugin voor WordPress zet die tag automatisch, ook naar de pagina zelf. Dat laatste is gewenst gedrag.

Waarom staat mijn pagina twee keer in Google, met en zonder www?

Omdat je server allebei de varianten serveert zonder de een naar de ander door te sturen. Voor een zoekmachine zijn dat twee sites.

Kies er een en zet een permanente doorverwijzing op de andere. Bij WordPress stel je daarnaast de site-URL in de instellingen op dezelfde variant in.

Hoe stel ik permalinks in WordPress in?

Ga naar Instellingen, Permalinks en kies daar de vorm. Voor de meeste sites is Berichtnaam de juiste keuze, eventueel met een eigen structuur als je categorieën in het pad wilt.

Doe dit voordat je begint met publiceren. Later omzetten betekent dat elk bestaand adres een doorverwijzing nodig heeft.

Wat doe ik met de /category/ in mijn WordPress-adressen?

Je kunt die basis onder Instellingen, Permalinks vervangen door een Nederlands woord. Dat is prima en het verandert alleen de adressen van je categoriepagina's.

Hem helemaal weghalen met een plugin raad ik af, omdat een categorie dan kan botsen met een gewone pagina die dezelfde naam heeft.

Moet mijn URL eindigen op een schuine streep?

Dat mag je zelf weten, als het maar overal hetzelfde is. WordPress zet er standaard een achter bij pagina's en berichten en verwijst de versie zonder streep automatisch door.

Ga dus mee met wat je systeem doet en zorg dat je eigen links dezelfde vorm gebruiken.

Is een URL met parameters slecht voor SEO?

Niet per se. Google kan adressen met parameters prima kruipen en indexeren.

Het probleem ontstaat als dezelfde inhoud onder tientallen parameterversies bereikbaar is. Dan verdeel je je signalen over adressen die allemaal hetzelfde tonen. Een canonical tag lost dat op.

Kan ik accenten of leestekens in een webadres gebruiken?

Het kan technisch, maar het adres wordt dan omgezet naar codes met procenttekens zodra iemand het kopieert. Een e met trema wordt %C3%AB.

Schrijf woorden zonder accenten en laat leestekens weg. Alleen kleine letters, cijfers en streepjes.

Hoeveel doorverwijzingen achter elkaar zijn te veel?

Meer dan een is er al een te veel. Elke tussenstap kost laadtijd voor je bezoeker, en zoekmachines volgen een keten niet eindeloos.

Loop na een tweede verhuizing je oude regels na en laat ze rechtstreeks naar het uiteindelijke adres wijzen.

Dit artikel hoort bij SEO. Daar vind je meer uitleg over hetzelfde onderwerp.

Een vraag over dit onderwerp?

Vertel waar je tegenaan loopt.

Maurits denkt met je mee en geeft je een praktisch antwoord.

reactie dezelfde werkdag
Maurits van Platform Pro

Vertel kort waar je aan denkt

Nu gesloten, ik reageer de volgende werkdag

Maurits leest je bericht en neemt persoonlijk contact met je op.

Dit veld is bedoeld voor validatiedoeleinden en moet niet worden gewijzigd.
Dit veld is verborgen bij het bekijken van het formulier