Skip to content
· 9 min. leestijd

Uw WordPress-site bevat SEO-spam. Opschonen lost het niet op.

WordPress-SEO-spam komt na elke opschoning terug, omdat de achterdeur en het kwaadaardige beheerdersaccount die overleven. Hier zijn de audit van 20 minuten, de cijfers achter het falen van verwijdering en de herbouw die de cyclus beëindigt.

WordPressSecuritySEOBusiness Strategy
Delen

WordPress-SEO-spam blijft terugkomen omdat de opschoning het symptoom wist en de toegangsweg laat staan. Sucuri trof bij 49,21% van de gecompromitteerde websites op het moment van infectie een achterdeur aan, en bij 55% van de sites met malware in de database minstens één kwaadaardig beheerdersaccount.

U scant de pagina's, verwijdert de geïnjecteerde links, werkt elke plugin bij, en binnen een maand staan de apotheeklinks er weer. Het account dat ze opnieuw installeert, is bij de eerste inbraak aangemaakt en heeft de opschoning overleefd.

Wie ooit een gehackte WordPress-installatie heeft opgeschoond, weet het: de tweede infectie komt sneller dan de eerste. Hierna volgen de schade aan uw posities, een audit van 20 minuten zonder één scanner te kopen, de redenen waarom verwijdering faalt en de manier om het gat definitief te dichten.

  • SEO-spam hoort bij de meest voorkomende infecties die Sucuri opruimt. Het verscheen bij 20,30% van de geïnfecteerde websites tijdens het opschonen en bij 42,22% via scans op afstand.
  • Opschonen verwijdert de payload en laat de toegang staan. 49,21% van de gecompromitteerde sites had een achterdeur, en 55% van de sites met malware in de database een kwaadaardig beheerdersaccount.
  • Patchen is vaak onmogelijk. Patchstack telde in 2025 in totaal 11.334 nieuwe WordPress-kwetsbaarheden, 91% daarvan in plugins, en voor 46% bestond op de dag van publicatie geen oplossing.
  • Het meeste spam leeft in de database. 38,3% van de gecompromitteerde databases bevatte SEO-spam, en daarom meldt een bestandsscanner een schone site terwijl Google apotheektitels toont.
  • Een statische herbouw beëindigt de cyclus. Zonder database tijdens runtime en zonder pluginlaag valt er op de server niets te injecteren.

Wat een SEO-spaminjectie met een WordPress-site doet

De aanvaller is uit op de reputatie van uw domein. Een site die Google al vertrouwt, geeft dat vertrouwen door aan pagina's die vervalste medicijnen, casino-inschrijvingen of namaaksneakers verkopen. De links blijven voor u verborgen en gaan naar Googlebot. In de browser oogt de site vlekkeloos, in de index leest hij als een apotheek.

  • Verborgen linkblokken. Honderden anchor-tags die met CSS buiten beeld zijn geduwd, geïnjecteerd in de footer, een widgetgebied of een oud bericht dat niemand opent.
  • Gecloakte pagina's. De server controleert user-agent en referrer voordat hij besluit wat hij stuurt. Menselijke bezoekers krijgen uw homepage, Googlebot krijgt spam, en de eigenaar hoort het als laatste.
  • De Japanese keyword hack. Google Search Central documenteert deze onder die naam: duizenden automatisch gegenereerde pagina's met Japanse tekst en affiliate links, plus een vreemde eigenaar in Search Console zodat de aanvaller toegang houdt nadat u de bestanden hebt opgeschoond.
  • Voorwaardelijke doorverwijzingen. Bezoekers die via een zoekresultaat binnenkomen, belanden op de spambestemming. Wie het domein rechtstreeks intikt, ziet een normale site, en daarom geloven eigenaren de eerste melding zelden.

38,3% van de gecompromitteerde databases in de dataset van Sucuri bevatte SEO-spam, vooral verborgen links naar vervalste medicijnen en gokken. Dat cijfer verklaart het meest frustrerende deel. Een malwarescanner loopt het bestandssysteem door, meldt alles schoon, en de geïnjecteerde inhoud zit in een databasetabel die hij nooit heeft geopend.

Als er al spampagina's in uw zoekresultaten opduiken, telt de weg naar herbouw zwaarder dan de volgende scan. De WordPress-migratiedienst van webvise dekt de overstap naar een statische Next.js-frontend, inclusief de redirectmap die uw bestaande posities meeneemt.

De infectie in 20 minuten bevestigen

Voer deze vier controles uit voordat u iemand voor een opschoning betaalt. Elk kost een paar minuten, vraagt geen enkele plugin en vindt iets wat de scanner in uw dashboard mist.

1. Vraag Google wat het heeft geïndexeerd

Zoek uw eigen domein met de site-operator en lees het aantal resultaten voordat u de resultaten leest.

  • site:uwdomein.nl viagra en site:uwdomein.nl casino leveren pagina's op die u nooit hebt geschreven. Eén treffer is genoeg.
  • site:uwdomein.nl op zichzelf levert veel meer pagina's op dan uw site heeft. Een brochuresite van 40 pagina's die 6.000 geïndexeerde URL's meldt, is al de volledige diagnose.
  • Resultaattitels verschijnen in Japanse, Cyrillische of Chinese tekens op een site die in het Nederlands of Engels publiceert.

2. Haal uw eigen site op als Googlebot

Gecloakte spam verschijnt alleen wanneer de server denkt dat Googlebot het vraagt. Vergelijk vanuit een terminal wat de twee bezoekers krijgen.

curl -s https://uwdomein.nl | grep -ci "casino\|viagra\|payday" geeft het aantal dat een gewone bezoeker ziet. Voer het commando opnieuw uit met -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" erbij. Verschillende aantallen bevestigen cloaking.

Gelijke aantallen pleiten de site niet vrij. Veel injecties richten zich op specifieke URL's in plaats van op de homepage. Herhaal de vergelijking daarom op twee of drie diepere pagina's voordat u op het resultaat vertrouwt.

3. Lees Search Console en controleer daarna wie dat nog meer kan

Open eerst de secties Handmatige maatregelen en Beveiligingsproblemen. Een handmatige maatregel wegens hackspam, een plotselinge piek in vertoningen voor zoekopdrachten die niets met uw bedrijf te maken hebben, of een onbekende geverifieerde eigenaar onder Instellingen wijzen allemaal dezelfde kant op. Dat laatste punt wordt vrijwel altijd over het hoofd gezien, en juist dat stelt een aanvaller in staat het domein opnieuw te verifiëren lang nadat de site is herbouwd.

4. Doorzoek de database, niet de bestanden

Hier is de bestandsscanner gestopt met kijken. Drie query's brengen het meeste boven water waar hij langs is gelopen.

  • SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%display:none%' OR post_content LIKE '%position:absolute;left:-%'; vindt verborgen linkblokken die in uw inhoud zijn opgeslagen.
  • SELECT user_login, user_registered FROM wp_users ORDER BY user_registered DESC LIMIT 10; toont de nieuwste accounts. Stel elk account ter discussie waar u geen gezicht bij kunt bedenken.
  • SELECT option_name FROM wp_options WHERE autoload='yes' AND LENGTH(option_value) > 100000; vangt overmaatse geïnjecteerde payloads die bij elk afzonderlijk verzoek worden geladen.

Waarom de opschoning telkens faalt

Een opschoning richt zich op de zichtbare payload. De toegangsweg is iets heel anders, en die overleeft de scan, de plugin-update en het terugzetten van de back-up dat de meeste bureaus als eerste stap uitvoeren.

De opruimgegevens van Sucuri leggen een achterdeur bij 49,21% van de gecompromitteerde websites op het moment van infectie. Bij sites met malware in de database kwam in 55% van de gevallen minstens één kwaadaardig beheerdersaccount erbij, waardoor de aanvaller de tweede keer gewoon door de voordeur inlogt en de exploit overslaat. Spamlinks wissen van een site die beide nog heeft, is huishoudelijk werk. De herinfectie is eerder ingepland dan verrassend.

WP Automatic maakt het patroon tastbaar. Patchstack publiceerde CVE-2024-27956 op 13 maart 2024, een niet-geauthenticeerde SQL-injectie met score 9,8, en de aanvallen die volgden gebruikten die om nieuwe beheerdersaccounts aan te maken. Onderzoekers registreerden meer dan 5,5 miljoen pogingen om hem te misbruiken. Elke site die werd geraakt en daarna opgeschoond zonder dat iemand de gebruikerstabel controleerde, gaf de aanvaller een werkende login in handen.

Wat de infectie heeft achtergelatenVerwijderd door een gebruikelijke opschoningDaarna nog steeds aanwezig
Geïnjecteerde links in de berichtinhoudJaBij de volgende ronde opnieuw ingevoegd
PHP-shell geüpload naar wp-content/uploadsMeestalTweede en derde kopie elders
Kwaadaardig beheerdersaccountWordt zelden gecontroleerdVolledige toegang tot het dashboard
Vreemde eigenaar in Search ConsoleWordt vrijwel nooit gecontroleerdToegang tot het domein na de herbouw
Cronjob die de payload herschrijftWordt zelden gecontroleerdDraait volgens schema
De ongepatchte plugin die de toegang gafAlleen als er een oplossing bestaat46% had geen oplossing bij publicatie

De laatste rij bepaalt de hele strategie. Patchstack telde 11.334 nieuwe WordPress-kwetsbaarheden in 2025, 42% meer dan het jaar ervoor, waarvan 91% in plugins en 46% zonder oplossing op de dag van publicatie. Voor bijna de helft van alles wat vorig jaar bekend werd, was patchen simpelweg geen beschikbare optie.

Precies dat maakt van een onderhoudsvraag een platformvraag. Dezelfde redenering loopt door de beveiligingsrisico's van een verouderde installatie, en de rekensom wordt slechter met elk jaar dat het aantal kwetsbaarheden stijgt.

Wat de spam u werkelijk kost bij Google

De schade aan posities loopt ver voor op de ontdekking. Wanneer een spampagina opduikt in een site-zoekopdracht, crawlt en indexeert Google die al weken, en het patroon dat Google over uw domein heeft geleerd, zit er al in.

Herstel volgt een vaste volgorde en niets eraan gaat snel. Site opschonen, vreemde accounts en eigenaren verwijderen, een verzoek om herbeoordeling indienen, dan wachten tot de handmatige maatregel wordt opgeheven. Google noemt geen doorlooptijd voor die beoordeling. Pagina's die als spam zijn gedeïndexeerd, keren niet terug met hun oude posities.

Een site die twee maanden lang gecloakte apotheekpagina's serveerde, draagt die voorgeschiedenis mee in alles wat daarna wordt gebouwd, en dat verhoogt de inzet van de herbouw zelf. Hoe posities een relaunch doorstaan is het lezen waard voordat iemand aan de DNS komt.

Het aanvalsoppervlak verwijderen in plaats van het te patchen

WordPress draait PHP op uw server, leest en schrijft bij elk verzoek een database, en laat plugincode van derden lopen met vrijwel volledige toegang tot beide. Juist die drie eigenschappen heeft een SEO-spaminjectie nodig. Een statisch gegenereerde Next.js-site biedt er tijdens runtime geen enkele van.

  • Geen database tijdens runtime. Pagina's worden bij de deployment gebouwd en als bestanden vanaf een CDN geserveerd. Er is geen wp_posts-tabel waarin iemand verborgen divs kan schrijven.
  • Geen pluginlaag. 91% van de WordPress-kwetsbaarheden van 2025 zat in plugins. Een site zonder pluginlaag erft er geen enkele van.
  • Niets beschrijfbaars op de server. Alleen een deployment verandert wat bezoekers zien, en die vertrekt vanuit versiebeheer. Een geïnjecteerd bestand verschijnt als diff voordat het ooit wordt uitgeleverd.
  • Geen beheerpaneel aan het publieke internet. Het probleem van het kwaadaardige beheerdersaccount houdt op te bestaan zodra er geen inlogformulier te bereiken valt.
AanvalsoppervlakWordPressStatische Next.js
Code van derden die op uw server draaitEen typische installatie gebruikt 20 tot 50 pluginsGeen
Database beschrijfbaar tijdens een verzoekBij elke paginaladingGeen tijdens runtime
Openbaar inlogformulierwp-admin, standaard bereikbaarGeen
Nieuwe kwetsbaarheden gepubliceerd in 202511.334 in het hele ecosysteemFramework-updates, toegepast via redeployment
Oplossing beschikbaar zodra een lek openbaar wordt46% had er geenDependency-update en redeployment

De migratie zelf is een bekende grootheid: een volledige audit van de bestaande site, herbouw in Next.js met statische generatie, een 301 voor elke URL die vandaag bestaat, daarna monitoring van de posities na de omschakeling. webvise werkt precies in die volgorde, met een werkend prototype vroeg genoeg om uw inhoud op zijn plek te zien voordat u zich aan de overstap verbindt. Of de stap bij uw site past, hangt af van hoeveel ervan werkelijk een server nodig heeft.

Doe eerst de vier controles. Levert een site-zoekopdracht pagina's op die u nooit hebt geschreven, dan moet de toegangsweg dicht voordat er iets anders gebeurt, en de opschoonofferte in uw postvak koopt een paar rustige weken in plaats van een oplossing. webvise onderzoekt de bestaande installatie, rapporteert de bevindingen en bouwt opnieuw op een fundament waarin niets te injecteren valt: boek de audit hier.

De werkwijzen van webvise zijn afgestemd op de ISO 27001- en ISO 42001-normen.