← Terug naar kennisbank BEVEILIGING

Japanse SEO-spam in je WordPress — detecteren en grondig verwijderen

Iemand zoekt jouw bedrijfsnaam in Google en ziet… Japanse karakters, listings van Yeezy-sneakers, namaak Louis Vuitton-tassen of Gucci-handtassen onder jouw domein. Klik je op je site? Alles ziet er normaal uit. Dit is de Japanse SEO-spam — een geraffineerde cloaking-hack die specifiek Googlebot bedient en jou en je bezoekers verbergt wat er aan de hand is. Deze gids loopt detectie, opruiming en preventie door.

De symptomen waarmee mensen mij benaderen:

  • "Ik zoek mijn bedrijfsnaam in Google en zie Japanse tekst"
  • "Op zoekresultaten staan mijn URLs met titels als 'シャネル コピー' (Chanel kopie) of 'スーパーコピー' (super kopie)"
  • "Mijn site lijkt prima, maar zoekresultaten tonen producten die ik niet verkoop"
  • "Search Console rapporteert ineens 5.000 nieuwe pagina's geïndexeerd, allemaal Japans"
  • "Bezoekers zeggen dat ze via Google op een rare productpagina belanden"
  • "Verkeer is plotseling 10x zo veel — maar bouncerate is bijna 100% en niemand koopt"

Wat is de Japanse SEO-spam-hack precies?

Een aanvaller heeft toegang gekregen tot je WordPress-installatie en gebruikt jouw domein-reputatie om zoekresultaten te kapen voor namaak-merchandise. De boodschap is altijd hetzelfde: streetwear, luxury-merken, sneakers, designer-tassen — vrijwel altijd met namaak-trefwoorden in het Japans:

  • シャネル (Chanel)
  • ルイヴィトン (Louis Vuitton)
  • グッチ (Gucci)
  • ロレックス (Rolex)
  • スーパーコピー (super kopie / namaak)
  • ブランドコピー (merk-kopie)
  • 激安 (super goedkoop)
  • Sneaker-namen als イージー (Yeezy), ジョーダン (Jordan), シュプリーム (Supreme)

Doel: Google-rankings benutten van jouw (vaak goed-aangeschreven) domein om kopers van namaak naar buitenlandse webshops te leiden via redirect-pagina's. Voor de aanvaller is dat geld; voor jou is 't reputatie-schade én een Google-penalty die maanden kan duren om te herstellen.

De cloaking-truc: waarom je site er normaal uitziet

De hack toont aan verschillende bezoekers verschillende inhoud:

  • Jij (admin, ingelogd): site is normaal
  • Gewone bezoekers: site is normaal — of redirect naar externe shop
  • Googlebot / zoekmachine-crawlers: kilometers Japanse spam-pagina's
  • Bezoekers die via Google klikken: redirect naar buitenlandse namaak-shop

Detectie is daarom de eerste echte uitdaging. Hieronder hoe je het zichtbaar maakt.

Stap 1: detecteer de hack

Site:zoekopdracht in Google

De meest betrouwbare detectie. Type in Google:

site:jouwsite.nl

Krijg je je normale pagina's? Dan lijkt 't goed. Krijg je Japanse tekst tussen de resultaten? Dan ben je gehackt. Tip: scroll door — soms staat het op pagina 3-4 verstopt en val je 't bij snelle blik niet op.

Specifieke check: site:jouwsite.nl ヤフー of site:jouwsite.nl コピー — als er resultaten zijn, weet je 't zeker.

Google Search Console

In GSC zie je:

  • Coverage / Pages: plotselinge piek in geïndexeerde pagina's (van 50 naar 5.000+)
  • Performance: vreemde queries die jouw site triggeren ("シャネル コピー", "louis vuitton コピー")
  • Security & Manual Actions: vaak nog niet geflagged direct, maar checken

Zie ook Google Search Console voor site-eigenaren — uitgelegd als je GSC nog niet hebt gekoppeld.

URL Inspection met "Test Live URL"

In GSC → URL Inspection → typ een verdachte URL → "Test Live URL" → "View Tested Page" → "HTML" tab. Daar zie je letterlijk wat Googlebot ziet. Bij cloaking-hack is dat dus heel andere content dan wat jij in browser ziet.

User-Agent spoofen om Googlebot te imiteren

Via Chrome devtools: F12 → drie puntjes → More tools → Network conditions → User agent → Custom → vul in:

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Refresh een verdachte pagina (in incognito, niet ingelogd). Als de hack actief is zie je nu de Japanse spam.

Curl-command vanaf SSH of terminal

curl -A "Googlebot/2.1" https://jouwsite.nl/ | head -100

Vervolgens curl normal:

curl https://jouwsite.nl/ | head -100

Vergelijk de output. Wezenlijk verschillend? Cloaking actief.

Stap 2: zet de site eerst in lockdown

Voordat je begint met opruimen: voorkom dat de aanvaller herstelt wat je verwijdert.

  1. Verander alle wachtwoorden: WordPress admin (alle accounts), FTP/SFTP, hosting paneel, database. Gebruik wachtwoordmanager-gegenereerde wachtwoorden van 20+ tekens
  2. Roteer secret keys in wp-config.php (de AUTH_KEY, NONCE_KEY etc. block) — genereer nieuwe via api.wordpress.org/secret-key/1.1/salt/. Iedereen wordt uitgelogd, maar als de aanvaller een sessie had is die nu ook ongeldig
  3. Zet 2FA aan voor wp-admin (plugin als WP 2FA of Wordfence Login Security) — voorkomt dat een gestolen wachtwoord nog werkt
  4. Maak een complete backup van de huidige (gehackte) staat — bewaar als forensische kopie. Mocht je iets verkeerd verwijderen, kun je terug

Stap 3: zoek de geïnjecteerde pagina's

Drie hoofdverstopplekken: bestanden, database, en sitemap-injecties.

Bestanden — verdachte uploads en wijzigingen

Via SSH op de webroot:

# Bestanden gewijzigd in laatste 30 dagen (filter naar .php)
find . -name "*.php" -mtime -30 -type f

# Bestanden met verdachte naam-patronen (Japanse hack-files heten vaak random)
find . -type f -name "*.php" \( -name "wp-*.php" -newer wp-config.php \)

# Bestanden met functies die typisch in payloads zitten
grep -rn "eval(" . --include="*.php"
grep -rn "base64_decode" . --include="*.php"
grep -rn "preg_replace.*\/e" . --include="*.php"
grep -rn "gzinflate" . --include="*.php"

Specifiek voor Japanse SEO-hack zoek je naar:

  • Vreemde bestanden in wp-content/uploads/ die op .php eindigen (mag niet)
  • Een random-named bestand in webroot (vaak iets als wp-cron-x.php, wp-defunct.php of wpcache.php)
  • Een directory met Japanse content gemaakt op een specifieke datum
  • Aanpassingen in wp-config.php, index.php, .htaccess in webroot
  • Modifications in functions.php van actieve theme of een plugin

Bij elke "laatst gewijzigd op X" — check: heb ik daar iets gedaan? Zo nee, suspect.

Database — geïnjecteerde post records

De aanvaller voegt vaak duizenden nep-posts toe aan wp_posts. Via phpMyAdmin of WP-CLI:

# WP-CLI: tellen
wp post list --post_type=post --posts_per_page=-1 | wc -l

# Filter op Japanse karakters in titel of content
wp db query "SELECT ID, post_title FROM wp_posts \
  WHERE post_title REGEXP '[ぁ-ゖァ-ヺ一-龥]' LIMIT 50;"

Plus: kijk in wp_options, vooral de rij active_plugins. Soms is een schadelijke plugin geactiveerd waarvan je het bestaan niet wist:

wp option get active_plugins --format=json

Onbekende plugin-namen tussen de bekende? Verwijderen.

Sitemap-injecties

Aanvallers genereren vaak een eigen sitemap.xml of voegen URL's toe aan een bestaande, om Googlebot specifiek naar de geïnjecteerde pagina's te lokken. Check:

curl https://jouwsite.nl/sitemap.xml | grep -i "url"
curl https://jouwsite.nl/sitemap_index.xml

Zie je honderden URLs die jij nooit hebt aangemaakt? Sitemap is gehackt. Verwijder of regenereer via je SEO-plugin (Yoast, Rank Math).

Stap 4: opruimen

Verdachte bestanden verwijderen

Voor elk gevonden verdacht bestand: bekijk de inhoud (open via FTP of cat), wees zeker dat 't niet door jou gemaakt is, dan verwijderen. Forensische backup van stap 2 is je vangnet.

Database opruimen

# Verwijder alle posts met Japanse content (test eerst met SELECT!)
wp db query "DELETE FROM wp_posts \
  WHERE post_title REGEXP '[ぁ-ゖァ-ヺ一-龥]';"

# Verwijder bijbehorende post-meta
wp db query "DELETE FROM wp_postmeta \
  WHERE post_id NOT IN (SELECT ID FROM wp_posts);"

# Trash leegmaken
wp post delete $(wp post list --post_status=trash --format=ids) --force

Eerst altijd SELECT in plaats van DELETE om te zien wát je gaat verwijderen. Bij twijfel: handmatig één voor één in phpMyAdmin.

Vervang core en plugins

Aanvaller heeft mogelijk core-bestanden of plugin-bestanden aangepast. Re-install om zeker te zijn:

# WordPress core
wp core download --force

# Plugins opnieuw installeren
wp plugin install $(wp plugin list --status=active --field=name) --force

# Theme — als je geen custom changes hebt
wp theme install jouw-theme --force

Voor custom themes/plugins met eigen aanpassingen: vergelijk handmatig met je laatste schone backup.

Cleanup wp_options

Verwijder onbekende plugins van active_plugins, en check of siteurl/home niet zijn aangepast naar een vreemd domein:

wp option get siteurl
wp option get home

Stap 5: vraag Google om herindexering

Geïnjecteerde pagina's blijven in Google's index totdat Google ze opnieuw crawlt. Je kunt versnellen:

  1. In GSC → Removals: tijdelijk URL's verwijderen uit zoekresultaten (paar uur, paar dagen). Werkt als bandage voor de eerste paar honderd
  2. Genereer een schone sitemap.xml (Yoast / Rank Math doet dat automatisch na opschoning) en submit in GSC
  3. URL Inspection → "Request Indexing" voor je belangrijkste pagina's
  4. Wacht: volledige cleanup in Google's index duurt 1-4 weken. Heb geduld

Mocht Google een Manual Action geplaatst hebben (Search Console → Security & Manual Actions): nadat je 100% zeker weet dat alles weg is, klik "Request Review" met uitleg wat je hebt gedaan.

Stap 6: stop het entry-vector

Belangrijkste vraag: hoe kwam de aanvaller binnen? Zonder dat te weten ben je over een paar weken weer gehackt. Veelvoorkomende vectoren:

  • Verouderde plugin/theme/core met bekende kwetsbaarheid. Check WPScan-database (wpscan.com/wordpress-vulnerabilities) op je geactiveerde plugins
  • Zwak wachtwoord op admin-account dat brute-force gekraakt is. Logfiles van wp-login.php controleren
  • Gestolen credentials via phishing of malware op een lokaal apparaat
  • Hosting-niveau breach (zeldzaam maar gebeurt) — andere site op zelfde shared account heeft toegang gegeven
  • Lekke nulled plugin/theme (gratis-gedownload van een gekraakte versie van betaalde software) — bevatte vanaf installatie al een backdoor

Stappen na opruiming, in volgorde van prioriteit:

  1. Update WordPress core, alle plugins en theme's
  2. Verwijder ongebruikte plugins en theme's volledig (niet alleen deactiveren)
  3. 2FA op alle admin-accounts
  4. Wachtwoordbeleid verstrengen (manager-gegenereerd, 20+ tekens)
  5. Brute-force protectie via een security-plugin (Wordfence, iThemes Security)
  6. Disable file editing in wp-config.php: define('DISALLOW_FILE_EDIT', true);
  7. WordPress beveiligen: zie 10 essentiële stappen of laat het door mij regelen

Verwante hacks — vaak co-existent

Aanvallers exploiteren één toegangspunt vaak voor meerdere monetisaties tegelijk. Als je Japanse SEO-spam hebt gevonden, check ook:

Specifieke aandachtspunten voor Japanse variant

  • Sitemap-injectie is hier extra agressief — Aanvallers genereren vaak losse XML-sitemaps in subdirectories. Check niet alleen je hoofd-sitemap.xml maar ook /sitemap_*.xml, /sitemap-*.xml, en directories als /wp-content/uploads/ waar geen XML mag staan
  • Spam-pagina's hebben vaak Japans keyword in URL-slug — zoek naar URLs met %E3% of %E4% (URL-encoded Japans)
  • Cloaking is op user-agent én IP-range — sommige varianten zijn slim genoeg om ook Bing en Yandex te bedienen, niet alleen Google. Test dus met meerdere bot-UAs
  • Redirects gaan vaak naar .cn, .cf of .tk-domeinen — als je in .htaccess redirects ziet naar zo'n domein, weg ermee
Tip: Japanse SEO-spam blijft soms maandenlang onopgemerkt omdat de site in normaal gebruik er prima uitziet. Stel een wekelijkse site:jouwdomein.nl Google-check in als routine, of gebruik tools als Sucuri SiteCheck of Wordfence Vulnerability Scanner die specifiek op cloaking-patronen letten.

Wanneer schakel je hulp in?

  • Je vindt geïnjecteerde pagina's maar weet niet zeker of je alles weg hebt — gemiste backdoor = hack komt binnen weken terug
  • Site staat in Google's "This site may be hacked"-warning en je wilt zo snel mogelijk een review-aanvraag indienen, maar moet eerst echt clean zijn
  • Hosting heeft je account geschorst vanwege spam-activiteit en wil bewijs van complete cleanup
  • Je vermoedt een hack maar je vindt geen verdachte bestanden — vraagt diepere forensische analyse
  • WooCommerce-shop met live transacties die niet uit kan terwijl je opruimt
  • Hacker komt steeds terug ondanks updates en wachtwoord-wijzigingen — toegangspunt nog niet dichtgetimmerd
  • Je hebt geen SSH/WP-CLI-toegang en moet alles via FTP/phpMyAdmin doen — vergroot kans op fouten

Een Japanse SEO-spam-hack is op te ruimen, maar het is detective-werk: detect, contain, clean, harden, monitor. Doe je 't half, dan komt 'ie binnen 2-4 weken terug. Doe je 't goed, dan herstelt Google ranking binnen 4-8 weken zonder blijvende reputatie-schade. Die laatste route is de moeite waard.