De homepage doet het prima. Maar klik op een willekeurige pagina of een blogbericht en u krijgt: Pagina niet gevonden. Alles stond er gisteren nog. Het enige wat u, uw collega of een bureau heeft aangepast, is iets in de instellingen bij Permalinks, misschien omdat de adressen “mooier” moesten worden of omdat een SEO-advies dat aanraadde.
Deze WordPress 404 na permalinks wijzigen is een van de meest voorkomende storingen die wij zien, en gelukkig ook een van de snelst op te lossen. In de meeste gevallen is het in twee minuten klaar. In een paar gevallen zit er meer achter, en dat behandelen we ook.
Wat er gebeurt als u permalinks wijzigt
WordPress slaat pagina’s niet op als losse bestanden. Elk adres wordt door de server naar één bestand gestuurd (index.php), waarna WordPress zelf uitzoekt welke inhoud bij dat adres hoort. Die doorsturing regelt de server via herschrijfregels. Op Apache staan die in het bestand .htaccess; op Nginx in de serverconfiguratie.
Zodra u een andere permalinkstructuur kiest, moet WordPress die regels opnieuw wegschrijven. Lukt dat niet, bijvoorbeeld omdat het bestand niet beschrijfbaar is, dan blijft de oude situatie staan en weet de server niet wat hij met de nieuwe adressen aan moet. Resultaat: een 404 op alles behalve de homepage.
Het symptoom is herkenbaar: de homepage werkt, adressen met ?p=123 werken ook, maar de nette adressen zoals /diensten/ of /contact/ niet.
De snelle fix: herschrijfregels opnieuw laten schrijven
Dit is de stap die het probleem in negen van de tien gevallen oplost, zonder dat u iets hoeft te typen.
- Log in op het beheer van WordPress.
- Ga naar Instellingen → Permalinks.
- Verander niets. Klik alleen onderaan op Wijzigingen opslaan.
- Open een pagina die zojuist nog een 404 gaf, en ververs.
Door op te slaan dwingt u WordPress de herschrijfregels opnieuw te genereren en naar .htaccess te schrijven. Twijfelt u, kijk dan meteen even op die instellingenpagina: als het bestand niet beschrijfbaar is, toont WordPress onderaan een melding met de regels die u er zelf in moet zetten.
Werkt de site daarna nog niet, leeg dan de cache van uw cacheplugin en, als u die heeft, van Cloudflare of een andere tussenlaag. Een cache kan een oude 404-pagina blijven serveren terwijl de site zelf alweer in orde is.
Als de snelle fix niet werkt: vijf andere oorzaken
Blijft de 404 staan, ga dan deze mogelijkheden na, van meest naar minst waarschijnlijk.
- .htaccess is niet beschrijfbaar of ontbreekt. Controleer via FTP of het bestand in de hoofdmap staat. Zo niet, maak het aan met de standaardregels van WordPress (te vinden in de melding op de permalinkpagina). Zo wel, geef het tijdelijk rechten 644 en sla de permalinks opnieuw op.
- Het bestand is beschadigd. Een plugin, een cacheregel of een handmatige bewerking kan er een rommeltje van hebben gemaakt. Hoe u dat oplost staat in ons stappenplan voor een corrupt .htaccess-bestand.
- mod_rewrite staat uit. Op sommige goedkope hostingpakketten is de Apache-module die herschrijven mogelijk maakt niet actief. Dat merkt u pas bij een permalinkwijziging. Alleen de hostingpartij kan dit aanzetten.
- Uw site draait op Nginx. Dan doet .htaccess niets. De regels staan in de serverconfiguratie en meestal heeft uw host die goed staan, maar na een verhuizing of een nieuw pakket kan dat blok ontbreken. Ook hier: bellen met de hosting.
- Een plugin kaapt de adressen. Meertaligheidsplugins, sommige SEO-plugins en plugins voor aangepaste berichttypen schrijven eigen regels. Na een update kunnen die botsen. Schakel ze één voor één uit en sla de permalinks steeds opnieuw op.
Oude adressen netjes doorsturen
Stel dat de fix werkt en alle pagina’s zijn weer bereikbaar. Dan bent u er nog niet helemaal. Als de structuur echt is veranderd (bijvoorbeeld van /2023/05/titel/ naar /titel/), dan staan de oude adressen nog in Google, in nieuwsbrieven, op social media en in de bladwijzers van uw klanten. Iedereen die daarop klikt, komt op een 404 terecht.
De nette oplossing is een 301-redirect van elk oud adres naar het nieuwe. Dat kan met een redirectplugin (zoals Redirection of de redirectfunctie van uw SEO-plugin) of met een patroonregel in .htaccess die alle datumadressen in één keer doorstuurt. Kies bij een handvol pagina’s voor losse redirects; bij honderden berichten voor een patroon.
Controleer daarna in Search Console onder Pagina’s of het aantal niet-gevonden adressen afneemt. Dat duurt enkele weken; Google moet de oude adressen eerst opnieuw bezoeken.
Voorkomen: permalinks veranderen zonder verrassingen
Een adreswijziging is geen dagelijkse handeling. Als u het toch doet, houd dan dit aan:
- Maak vooraf een back-up van de database en van .htaccess.
- Doe het buiten drukke uren, of op een staging-omgeving als u die heeft.
- Exporteer eerst een lijst van alle bestaande adressen (een sitemapbestand volstaat), zodat u weet wat u moet doorsturen.
- Test na de wijziging niet alleen de homepage, maar minstens tien verschillende pagina’s, berichten, categorieën en zoekresultaten.
- Laat de nieuwe structuur daarna met rust. Elke volgende wijziging vermenigvuldigt het aantal redirects.
Een bezoeker van een fysiotherapiepraktijk in Zwolle merkte het pas na drie dagen: een medewerker had de permalinks “even” op de naam van de categorie gezet, wat voor het afsprakenformulier een 404 opleverde. Drie dagen zonder online aanmeldingen. De fix duurde twee minuten; het inhalen van de gemiste aanvragen aanzienlijk langer. Wie de permalinkstructuur liever met rust laat en de site door iemand anders laat bewaken, kan dit soort aanpassingen ook via een bugfixingdienst laten uitvoeren, inclusief redirects en controle achteraf.
Conclusie
Bij een 404 na een permalinkwijziging is de eerste stap altijd hetzelfde: Instellingen → Permalinks → Opslaan, en de cache legen. Helpt dat niet, kijk dan naar .htaccess, mod_rewrite, Nginx en plugins, in die volgorde. En vergeet de redirects niet; een werkende site met honderden dode links in Google is maar half opgelost.



