✦ Oplossingen · HTTP-foutcodes

404 Not Found: pagina niet gevonden op je website

Geeft je website 404 Not Found? Zo vind je kapotte links, zet je 301-redirects, herstel je permalinks en voorkom je soft 404’s in Google Search Console. Met stappen.

Zo ziet de foutmelding eruit

  • 404 Not Found
  • HTTP ERROR 404
  • Error 404
  • The requested URL was not found on this server.
  • Pagina niet gevonden

Waarom gebeurt dit?

Een 404 Not Found betekent dat de server bereikbaar is, maar op dat adres niets heeft staan. Voor een bezoeker is dat een doodlopende weg; voor jou als eigenaar een signaal dat een link, menu of zoekresultaat naar een adres wijst dat niet (meer) bestaat.

De gebruikelijke oorzaken op een eigen site: een pagina is verwijderd of hernoemd zonder doorverwijzing, de structuur van adressen (permalinks) is veranderd, de site is verhuisd en de rewrite-regels zijn niet meegekomen, of iemand linkt met een tikfout naar je site. Werkt alleen de homepage en geven álle andere pagina’s 404, dan ontbreken bijna altijd de rewrite-regels van de webserver.

Een losse 404 is normaal en schaadt je site niet. Het wordt een probleem als belangrijke pagina’s, pagina’s waar veel links naartoe gaan of pagina’s die goed vindbaar waren in Google ineens 404 geven.

Zo herken je dit probleem

  • Je krijgt een foutpagina op één adres, terwijl de rest van de site werkt.
  • Alleen de homepage werkt en elke subpagina geeft 404: een rewrite- of permalinkprobleem.
  • De pagina toont ‘niet gevonden’, maar de server antwoordt met status 200: dat heet een soft 404.
  • Geeft de server ‘geen toegang’ in plaats van ‘niet gevonden’, kijk dan bij 403 Forbidden.

Zo los je het op, stap voor stap

Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.

  1. Bezoeker: controleer het adres

    Kijk of het adres een tikfout bevat of half is gekopieerd. Haal het laatste deel van het adres weg en ga één niveau hoger, of gebruik het menu of de zoekfunctie van de site. Een oude bladwijzer kan verwijzen naar een pagina die verplaatst is.

  2. Stel vast welke status de server echt geeft

    Een foutpagina moet ook status 404 (of 410) teruggeven. Met curl zie je de status; dat maakt meteen duidelijk of je met een echte 404 of een soft 404 te maken hebt.

    curl -sI https://www.voorbeeld.nl/oude-pagina/ | head -n 1
  3. Vind de kapotte links

    In Google Search Console staat onder Indexering › Pagina’s welke adressen Google als ‘Niet gevonden (404)’ of als ‘Soft 404’ ziet. Daarnaast laat het toegangslog van de webserver zien welke adressen bezoekers het vaakst met een 404 opvragen. Ook een crawl met de website-scan vindt interne links die nergens heen gaan.

    awk '$9 == 404 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -n 20
  4. Herstel interne links

    Wijzen je eigen menu, footer of teksten naar een verkeerd adres, pas die links dan aan. Dat is beter dan een redirect ertussen: bezoekers en zoekmachines gaan dan direct naar de goede pagina.

  5. Zet een 301-redirect voor verplaatste pagina’s

    Is een pagina verhuisd of hernoemd, stuur het oude adres dan met een 301 (permanente doorverwijzing) naar het nieuwe. Zo komen bezoekers en externe links op de juiste plek en neemt Google het nieuwe adres over. Verwijs naar een pagina met dezelfde inhoud, niet alles naar de homepage.

    # nginx
    location = /oude-pagina/ {
        return 301 /nieuwe-pagina/;
    }
    
    # Apache (.htaccess, mod_alias)
    Redirect 301 /oude-pagina/ /nieuwe-pagina/
  6. Controleer permalinks en rewrite-regels

    Geven alle pagina’s behalve de homepage een 404, dan stuurt de webserver mooie adressen niet door naar de applicatie. Op Apache zorgt een .htaccess met rewrite-regels daarvoor; nginx leest geen .htaccess en heeft een try_files-regel nodig. Bij WordPress kun je de permalinks opnieuw opslaan zodat de regels worden herschreven.

    # nginx: stuur onbekende adressen naar index.php
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
  7. Geef een echte 404-status met een nuttige pagina

    Maak een eigen foutpagina met een zoekveld en links naar de belangrijkste onderdelen, maar zorg dat de status 404 blijft. Een foutpagina met status 200, of alle onbekende adressen doorsturen naar de homepage, ziet Google als soft 404.

    # nginx
    error_page 404 /404.html;
    
    # Apache
    ErrorDocument 404 /404.html
  8. Gebruik 410 voor wat bewust weg is

    Is een pagina definitief verwijderd en is er geen vervanger, dan kun je 410 Gone teruggeven. Dat zegt duidelijk dat de pagina met opzet weg is en niet terugkomt.

    # nginx
    location = /actie-2024/ {
        return 410;
    }
    
    # Apache
    Redirect gone /actie-2024/

Let op: Stuur niet alle onbekende adressen door naar de homepage. Bezoekers vinden zo niet wat ze zochten en zoekmachines behandelen het als soft 404.

404, 410 en soft 404

Deze drie lijken op elkaar, maar zoekmachines gaan er verschillend mee om.

  • 404 Not Found: hier staat niets; het kan tijdelijk zijn.
  • 410 Gone: dit was er en is bewust verwijderd.
  • Soft 404: de pagina zegt ‘niet gevonden’ of is vrijwel leeg, maar de server geeft status 200. Of een onbekend adres wordt naar een algemene pagina doorgestuurd.

Na een verhuizing of nieuwe site is een lijst met oude en nieuwe adressen het belangrijkste hulpmiddel. Zie ook website verhuizen naar andere hosting.

Wanneer schakel je hulp in?

  • Na een nieuwe website of verhuizing geven veel oude adressen een 404 en je bezoekers of posities in Google lopen terug.
  • Alle subpagina’s geven 404 en je weet niet hoe je de rewrite-regels instelt.
  • Search Console meldt veel soft 404’s en je weet niet waar ze vandaan komen.
  • Je wilt een lijst met honderden redirects opzetten zonder lussen of fouten.

Lukt het niet? Wij helpen

Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.

Aanvraag

Hulp aanvragen

Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.

Veelgestelde vragen

Vragen over dit probleem

Zijn 404-fouten slecht voor mijn positie in Google?

Losse 404’s op pagina’s die echt weg zijn zijn normaal. Het wordt een probleem als belangrijke pagina’s of veel gelinkte adressen 404 geven; zet die door met een 301.

Wat is het verschil tussen 404 en 410?

Een 404 zegt dat er niets staat, een 410 dat de pagina bewust en blijvend is verwijderd. Gebruik 410 als er geen vervangende pagina is.

Wat is een soft 404?

Een pagina die ‘niet gevonden’ zegt of vrijwel leeg is, maar status 200 teruggeeft. Google merkt die als soft 404 aan; geef dan een echte 404 of zet een redirect naar een passende pagina.

Alleen mijn homepage werkt, de rest geeft 404.

De webserver stuurt de adressen niet door naar de applicatie. Op nginx ontbreekt meestal een try_files-regel, op Apache een .htaccess met rewrite-regels of AllowOverride.