Een website niet onderhouden is zelden een bewuste keuze. Meestal is het een reeks kleine gebeurtenissen: de medewerker die het erbij deed vertrekt, zijn opvolger weet er niets van, en het onderwerp staat op geen enkele agenda. Zo ging het ook bij een groothandel in verpakkingsmateriaal met veertien medewerkers.
De marketingmedewerker die de site beheerde, vertrok in het voorjaar. Er kwam geen vervanger met dezelfde taken. Twee jaar later belde de directeur, niet vanwege een storing, maar omdat de bank bij een financieringsaanvraag vroeg hoe de digitale continuïteit geregeld was. Dat bleek een goede vraag.
Wat we aantroffen
De site deed het gewoon. Dat is het eerste dat opvalt bij dit soort gevallen en het is precies de reden dat er nooit iemand aan de bel trekt.
Onder de motorkap zag het er anders uit:
- Tweeënzeventig openstaande updates: WordPress zelf negen versies achter, plus zesentwintig plugins en het thema.
- PHP 7.3, sinds eind 2021 zonder beveiligingsupdates.
- Vier plugins met een bekend, actief misbruikt lek. Twee daarvan waren uit de officiële directory verwijderd.
- Drie beheerdersaccounts van mensen die niet meer bij het bedrijf werkten, waarvan één met een wachtwoord dat in een bekende lekkenlijst voorkwam.
- Geen enkele back-up anders dan de dagelijkse van de hostingpartij, die zeven dagen bewaard bleef.
- Een verlopen licentie op de formulierenplugin, waardoor die al veertien maanden geen updates meer had ontvangen.
- Een SSL-certificaat dat over vijf weken zou verlopen zonder automatische verlenging.
En het belangrijkste: de site was niet gehackt. Geen malware, geen vreemde bestanden, geen onbekende gebruikers behalve de oud-medewerkers. Dat is eerlijk om te melden, want het past niet in het schrikbeeld dat vaak wordt geschetst.
Wat er wél was misgegaan
De schade zat niet in de beveiliging maar in de dagelijkse gang van zaken, en niemand had het verband gelegd.
Het offerteformulier werkte al zeker een jaar niet meer. De verzendende plugin was gestopt met het versturen via de standaardmethode, waarschijnlijk na een serverwijziging bij de hosting. Aanvragen werden nog wel in de database opgeslagen, maar er ging geen mail uit. In die database stonden 63 onbeantwoorde aanvragen, waarvan de oudste veertien maanden oud was. Een deel daarvan had alsnog gebeld, een deel duidelijk niet.
De productcatalogus was drie prijsronden achter. Klanten belden regelmatig over prijzen die niet klopten, en de verkoopafdeling had dat opgelost door telefonisch te corrigeren. Niemand had bedacht dat de site aangepast kon worden.
De site was traag geworden. Ruim vier seconden op mobiel, vooral door foto’s van vijf megabyte die medewerkers rechtstreeks uit de camera hadden geüpload.
Dat eerste punt is verreweg het duurste. Drieënzestig gemiste aanvragen bij een gemiddelde orderwaarde in deze branche is een bedrag waar geen onderhoudsabonnement tegenop kan.
De aanpak: zes weken, gefaseerd
Bij tweeënzeventig updates is de verleiding om alles in één middag door te drukken. Dat levert vrijwel gegarandeerd een kapotte site op, en dan weet u niet welke van de tweeënzeventig de dader was.
- Week 1: veiligstellen en het formulier repareren. Eerst een volledige kopie buiten de server. Daarna direct het formulier, want dat kostte elke dag geld. Er is een verzendmethode via een externe maildienst ingesteld, waarna de aanvragen weer aankwamen. De 63 opgeslagen aanvragen zijn geëxporteerd en door de verkoopafdeling nagebeld.
- Week 1: de accounts opgeruimd. De drie oude beheerders verwijderd, wachtwoorden vernieuwd, tweestapsverificatie aangezet voor de twee accounts die overbleven.
- Week 2: testomgeving en de kwetsbare plugins. Een kopie opgezet en daar de vier lekke plugins aangepakt: twee bijgewerkt, twee vervangen.
- Week 3 en 4: de rest van de updates in blokken. Eerst WordPress zelf stap voor stap omhoog, dan de plugins in groepjes van vijf, met na elk blok een controleronde. Twee plugins gaven problemen; beide zijn vervangen.
- Week 5: PHP van 7.3 naar 8.2, in twee stappen en met testen tussendoor.
- Week 6: live zetten, foto’s optimaliseren, back-ups inrichten. De laadtijd ging van 4,3 naar 1,6 seconden, vrijwel volledig door de afbeeldingen en de nieuwe PHP-versie.
Totaal: 26 uur. Ter vergelijking: twee jaar regulier onderhoud was voor deze site op ongeveer de helft daarvan uitgekomen, en dan waren die 63 aanvragen niet blijven liggen.
Wat twee jaar een website niet onderhouden laat zien
Drie dingen die breder gelden.
Het risico is echt, maar het schrikbeeld klopt niet. Twee jaar zonder onderhoud leidt niet automatisch tot een hack. Het leidt wel bijna gegarandeerd tot iets dat stilletjes niet meer werkt, en dat merkt u pas als u ernaar zoekt. Dat is een ander soort schade, maar niet per se een kleinere.
Test wat u niet ziet. Formulieren, bevestigingsmails, de zoekfunctie, het downloaden van een brochure. Alles wat automatisch hoort te gebeuren, moet iemand periodiek met de hand controleren. Eén testverzending per maand had hier veertien maanden ellende voorkomen.
Leg vast wie het doet. Het echte probleem was niet technisch maar organisatorisch: bij het vertrek van één medewerker verdween een taak zonder dat iemand het merkte. Zet websitebeheer daarom in de overdracht bij uitdiensttreding, net als de sleutels en de bedrijfstelefoon.
Wilt u weten of uw eigen site in deze richting afdrijft, dan is een jaarlijkse technische keuring van uw site de goedkoopste manier om erachter te komen. En hoe snel achterstand zich opbouwt, ziet u terug in wat er in drie weken zonder toezicht al kan gebeuren.
De groothandel loopt inmiddels mee in beheer met een maandelijkse functietest, waarbij elke maand het offerteformulier daadwerkelijk wordt verstuurd en gecontroleerd. Dat is een handeling van twee minuten. Het is ook precies de handeling die hier twee jaar niet is gedaan.



