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.
- Verander alle wachtwoorden: WordPress admin (alle accounts), FTP/SFTP, hosting paneel, database. Gebruik wachtwoordmanager-gegenereerde wachtwoorden van 20+ tekens
- Roteer secret keys in
wp-config.php(deAUTH_KEY,NONCE_KEYetc. 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 - Zet 2FA aan voor wp-admin (plugin als WP 2FA of Wordfence Login Security) — voorkomt dat een gestolen wachtwoord nog werkt
- 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.phpofwpcache.php) - Een directory met Japanse content gemaakt op een specifieke datum
- Aanpassingen in
wp-config.php,index.php,.htaccessin webroot - Modifications in
functions.phpvan 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:
- In GSC → Removals: tijdelijk URL's verwijderen uit zoekresultaten (paar uur, paar dagen). Werkt als bandage voor de eerste paar honderd
- Genereer een schone sitemap.xml (Yoast / Rank Math doet dat automatisch na opschoning) en submit in GSC
- URL Inspection → "Request Indexing" voor je belangrijkste pagina's
- 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:
- Update WordPress core, alle plugins en theme's
- Verwijder ongebruikte plugins en theme's volledig (niet alleen deactiveren)
- 2FA op alle admin-accounts
- Wachtwoordbeleid verstrengen (manager-gegenereerd, 20+ tekens)
- Brute-force protectie via een security-plugin (Wordfence, iThemes Security)
- Disable file editing in
wp-config.php:define('DISALLOW_FILE_EDIT', true); - 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:
- Chinese SEO-spam — vergelijkbaar patroon, andere doelmarkt. Zie Chinese spam in je WordPress — detecteren en verwijderen
- Pharma hack — Viagra/Cialis-spam. Zie Pharma hack — Viagra-spam in je WordPress site verwijderen
- Backdoors: aanvaller laat vaak meerdere webshells achter — als je er één vindt, zoek door
- Hidden admin-users: check
wp_usersenwp_usermetaop accounts met admin-role die je niet kent - Cron-jobs die niet van jou zijn:
wp cron event list
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,.cfof.tk-domeinen — als je in.htaccessredirects ziet naar zo'n domein, weg ermee
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.