WordPress Permalinks (SEO friendly urls) werken niet

Door D-Hosting.nl

Permalinks (permanent links) zijn de permanente URL-structuur die WordPress gebruikt voor berichten, pagina's en andere inhoudstypen. SEO-vriendelijke permalinks bevatten leesbare woorden in plaats van onbegrijpelijke ID-nummers, wat zowel voor bezoekers als voor zoekmachines veel duidelijker is. Wanneer permalinks niet werken, krijg je vaak een 404-foutmelding te zien bij het bezoeken van berichten of pagina's, terwijl alleen de homepage nog toegankelijk is.

Er zijn twee essentiële zaken nodig om permalinks correct te laten werken in WordPress.

1. Juiste .htaccess configuratie

Het .htaccess bestand is een configuratiebestand voor Apache webservers dat zich in de hoofdmap (root) van je WordPress-installatie bevindt. Dit bestand wordt standaard automatisch aangemaakt tijdens een WordPress-installatie, maar verschillende factoren kunnen ervoor zorgen dat het bestand ontbreekt, onjuist is geconfigureerd of wordt overschreven:

  • Plugins kunnen de .htaccess wijzigen (bijvoorbeeld beveiligings- of caching-plugins)
  • Thema's kunnen in zeldzame gevallen aanpassingen doorvoeren
  • Handmatige wijzigingen door gebruikers of ontwikkelaars
  • Bestandspermissies die voorkomen dat WordPress het bestand kan aanmaken of wijzigen
  • Servermigraties waarbij het bestand niet is meegenomen

Vereiste .htaccess regels

De volgende regels moeten exact aanwezig zijn in je .htaccess bestand om permalinks correct te laten functioneren:

# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Uitleg van de .htaccess regels

Laten we elke regel kort toelichten zodat je begrijpt wat er gebeurt:

  • RewriteEngine On - Activeert de Apache mod_rewrite module die URL-herschrijving mogelijk maakt
  • RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] - Zorgt ervoor dat HTTP-authenticatie headers correct worden doorgegeven (belangrijk voor REST API en externe verbindingen)
  • RewriteBase / - Definieert de basis-URL voor de herschrijfregels (bij een subdirectory-installatie moet dit worden aangepast, bijvoorbeeld /blog/)
  • RewriteRule ^index\.php$ - [L] - Voorkomt dat index.php zichzelf herhaaldelijk aanroept (oneindige lus)
  • RewriteCond %{REQUEST_FILENAME} !-f - Controleert of het opgevraagde bestand niet daadwerkelijk bestaat op de server
  • RewriteCond %{REQUEST_FILENAME} !-d - Controleert of de opgevraagde directory niet daadwerkelijk bestaat op de server
  • RewriteRule . /index.php [L] - Als aan bovenstaande voorwaarden wordt voldaan, stuur dan alles door naar index.php (waar WordPress de routing afhandelt)

.htaccess bestand controleren en herstellen

Controleren of .htaccess aanwezig is:

  1. Log in op het adminpanel (bv. Plesk) en bekijk met de File Manager de map httpdocs.
  2. Zoek naar het .htaccess bestand (let op: begint met een punt!)

Als het bestand ontbreekt of incorrect is:

  1. Maak een nieuw bestand aan met de naam .htaccess (let op de punt aan het begin)
  2. Kopieer de bovenstaande code exact naar dit bestand

Belangrijk: Maak altijd eerst een backup van je bestaande .htaccess bestand voordat je wijzigingen doorvoert!

WordPress installatie in een subdirectory

Als je WordPress hebt geïnstalleerd in een subdirectory (bijvoorbeeld domein.nl/blog/), dan moet je de RewriteBase regel aanpassen:

RewriteBase /blog/

En de laatste RewriteRule wordt dan:

RewriteRule . /blog/index.php [L]

Naast het correcte .htaccess bestand moet je ook binnen WordPress zelf de juiste permalink-structuur selecteren.

  1. Log in op je WordPress beheeromgeving (dashboard)
  2. Ga naar Instellingen > Permalinks (of Settings > Permalinks bij Engelse installatie)
  3. Kies voor de optie 'Berichtnaam' (of 'Post name')
    • Dit resulteert in URL's zoals: https://eenvoorbeeld.nl/voorbeeld-bericht/
    • Voor pagina's: https://eenvoorbeeld.nl/over-ons/
  4. Klik onderaan de pagina op 'Wijzigingen opslaan'

Waarom 'Berichtnaam' de beste keuze is

De permalink-structuur 'Berichtnaam' wordt sterk aanbevolen omdat:

  • SEO-vriendelijk: Zoekmachines kunnen de inhoud van je pagina aflezen uit de URL
  • Gebruiksvriendelijk: Bezoekers zien direct waar de pagina over gaat
  • Deelbaar: De URL's zijn gemakkelijk te onthouden en te delen
  • Professioneel: Ziet er cleaner uit dan URL's met cijfers en datums

WordPress biedt ook andere permalink-opties, hoewel deze minder aanbevolen zijn:

  • Eenvoudig (?p=123): Niet SEO-vriendelijk, alleen bruikbaar als laatste redmiddel
  • Dag en naam (/2024/01/15/voorbeeld-bericht/): Goed voor nieuwssites, maar maakt URL's langer
  • Maand en naam (/2024/01/voorbeeld-bericht/): Compromis tussen datum en leesbaarheid
  • Numeriek (/archives/123/): Niet SEO-vriendelijk
  • Aangepast: Voor gevorderde gebruikers die volledige controle willen

Voor gevorderde gebruikers is er ook de optie 'Aangepaste structuur'. Hier kun je zelf een structuur definiëren met behulp van tags:

  • %year% - Jaar (2024)
  • %monthnum% - Maand (01-12)
  • %day% - Dag (01-31)
  • %postname% - Naam van het bericht
  • %category% - Categorie
  • %author% - Auteur

Bijvoorbeeld: /%category%/%postname%/ geeft URL's zoals https://jouwdomein.nl/technologie/wordpress-tips/

Veelvoorkomende problemen en oplossingen

Oplossing:

  1. Ga opnieuw naar Instellingen > Permalinks
  2. Klik op 'Wijzigingen opslaan' zonder iets te wijzigen (dit regenereert de .htaccess regels)
  3. Ververs de cache van je browser (Ctrl+F5 of Cmd+Shift+R)
  4. Leeg (purge) eventuele caching-plugins (W3 Total Cache, WP Super Cache, etc.)
  5. Controleer of de .htaccess daadwerkelijk is bijgewerkt

Probleem 2: Conflicterende plugins

Sommige plugins kunnen interfereren met permalinks:

Stappen om te controleren:

  1. Deactiveer alle plugins via Plugins > Geïnstalleerde plugins
  2. Test of permalinks nu werken
  3. Activeer plugins één voor één opnieuw
  4. Test na elke activatie welke plugin het probleem veroorzaakt
  5. Zoek naar een alternatieve plugin of neem contact op met de plugin-ontwikkelaar

Plugins die vaak problemen veroorzaken:

  • Beveiligingsplugins (die .htaccess wijzigen)
  • SEO-plugins (met eigen permalink-instellingen)
  • Caching-plugins (met aggressive caching-regels)
  • Redirect-plugins

Probleem 3: Hoofdletter/kleine letter gevoeligheid

Op Linux-servers zijn URL's hoofdlettergevoelig:

  • https://jouwdomein.nl/Voorbeeld-Bericht/ is niet hetzelfde als
  • https://jouwdomein.nl/voorbeeld-bericht/

WordPress converteert standaard alles naar kleine letters, maar handmatige aanpassingen kunnen problemen veroorzaken.

Nginx webserver

Let op: De bovenstaande .htaccess configuratie werkt alleen op Apache webservers. Als je website draait op een Nginx-server, heeft je hostingprovider de rewrite-regels al voor je geconfigureerd in de Nginx-configuratie. Bij D-hosting.nl wordt dit automatisch afgehandeld voor WordPress-installaties.

Bij Nginx zijn de equivalent rewrite-regels anders en worden opgenomen in het server-configuratieblok (meestal niet toegankelijk voor eindgebruikers bij shared hosting).

Na het doorvoeren van bovenstaande stappen kun je als volgt testen:

  1. Bezoek een bestaand bericht via de permalink (niet via de WordPress admin)
  2. Publiceer een nieuw testbericht en bekijk de permalink
  3. Controleer een categoriepagina (bijvoorbeeld https://jouwdomein.nl/category/naam/)
  4. Test een tag-pagina
  5. Open een gewone pagina (geen bericht)

Als al deze pagina's correct laden zonder 404-foutmeldingen, werken je permalinks correct!

Waarschuwing: Het wijzigen van je permalink-structuur op een bestaande website met veel inhoud kan leiden tot:

  • Gebroken externe links
  • Verlies van social media shares
  • SEO-ranking dalingen
  • Gebroken interne links

Als je tóch wilt wijzigen:

  1. Installeer een redirect-plugin zoals Redirection of Simple 301 Redirects
  2. Documenteer alle belangrijke URL's vóór de wijziging
  3. Wijzig de permalink-structuur
  4. Stel 301-redirects in van oude naar nieuwe URL's
  5. Update interne links
  6. Update je XML-sitemap
  7. Dien de nieuwe sitemap in bij Google Search Console

Hulp nodig?

Als permalinks na het volgen van bovenstaande stappen nog steeds niet werken, kun je contact opnemen met de D-hosting.nl support. Houd de volgende informatie bij de hand:

  • Je domeinnaam
  • Welke foutmelding je precies ziet (liefst een screenshot)
  • Of je recent plugins hebt geïnstalleerd of geüpdatet
  • Of je wijzigingen hebt aangebracht aan de .htaccess
  • Of het probleem alleen specifieke pagina's betreft of alle permalinks

Het support-team kan je verder helpen met het diagnosticeren en oplossen van het probleem.

Tags: wordpress htaccess seo permalinks friendly

Toch ondersteuning nodig?

Ons supportteam helpt u graag verder.

Maak een ticket aan