WordPress hacket? Sådan rydder du op trin for trin (2026-guide)
Et hacket WordPress-site er stressende — men panik er din værste fjende. De fleste hacks følger det samme mønster, og oprydningen følger en fast metode. Følg trinene herunder i rækkefølge, så får du sitet rent igen uden at gøre skaden værre. Arbejder du metodisk, undgår du at overse den ene bagdør, der ellers ville lukke angriberen ind igen i morgen.
Står sitet ned lige nu og koster det dig kunder? Du behøver ikke gøre det alene. Få akut oprydning — svar inden for 4 timer.
Er du sikker på at dit WordPress er hacket? 7 tegn
Før du river alt ned, så bekræft at det faktisk er et hack og ikke en fejlkonfiguration. Typiske tegn:
- Uventede redirects — besøgende sendes videre til spam-, casino- eller medicinsider.
- Ukendte admin-brugere i Brugere som du ikke selv har oprettet.
- En Google-advarsel ("Dette website kan skade din computer") eller en advarsel i Search Console.
- Spam i søgeresultaterne — Google viser japansk tekst eller pille-/lån-spam under dit domæne.
- Ændrede eller nye filer — især i
wp-content/uploads, hvor der normalt ikke ligger PHP-filer. - Pludselig langsomhed eller udgående mails — serveren bruges til at sende spam.
- Du er låst ude af dit eget admin, eller adgangskoden er ændret.
Genkender du to eller flere, så behandl det som et hack og fortsæt.
Stop blødningen NU: vedligeholdelsestilstand og skift alle adgangskoder
Det første mål er at begrænse skaden og smide angriberen ud.
- Sæt sitet i vedligeholdelsestilstand eller tag det midlertidigt offline, så besøgende ikke smittes og Google ikke når at indeksere det inficerede indhold.
- Skift alle adgangskoder: WordPress-admins, FTP/SFTP, databasen, hosting-kontrolpanel og din e-mail. Genbrug ikke gamle kodeord.
- Skift de hemmelige nøgler (salts) i
wp-config.php, så alle eksisterende login-sessioner ugyldiggøres og angriberen logges ud:
// Hent friske nøgler fra https://api.wordpress.org/secret-key/1.1/salt/
// og erstat hele blokken i wp-config.php:
define('AUTH_KEY', '...');
define('SECURE_AUTH_KEY', '...');
define('LOGGED_IN_KEY', '...');
define('NONCE_KEY', '...');
define('AUTH_SALT', '...');
define('SECURE_AUTH_SALT', '...');
define('LOGGED_IN_SALT', '...');
define('NONCE_SALT', '...');
Har du SSH-adgang, kan WP-CLI gøre det på ét sekund:
wp config shuffle-salts
Tag en fuld backup af det inficerede site
Det lyder bagvendt at sikkerhedskopiere noget inficeret, men gør det alligevel — før du ændrer noget. En komplet kopi af filer og database giver dig et sikkerhedsnet, hvis oprydningen sletter for meget, og den lader dig undersøge angrebet bagefter.
# Filer
tar -czf site-backup-$(date +%F).tar.gz /sti/til/public_html
# Database
wp db export inficeret-db-$(date +%F).sql
Mærk kopien tydeligt som "inficeret", så den aldrig forveksles med en ren backup.
Scan for malware: Wordfence, MalCare og manuel gennemgang
Brug både et plugin og en server-scanning — de fanger forskellige ting.
- Wordfence kører en signatur- og fil-integritetsscanning inde fra WordPress og sammenligner core-filer mod de officielle.
- MalCare scanner i skyen, så en tung scanning ikke belaster din server, og er god til at finde sløret kode.
- Manuel gennemgang er uundværlig, fordi nyere malware ofte gemmer sig uden for det plugins kigger efter.
Kig især efter PHP-filer, hvor de ikke hører hjemme, og efter for nylig ændrede filer:
# Find PHP-filer i uploads-mappen (der bør normalt INGEN være)
find wp-content/uploads -name "*.php"
# Find filer ændret inden for de seneste 7 dage
find . -type f -mtime -7 -name "*.php"
Find og fjern bagdøre i wp-config.php, .htaccess og uploads
Bagdøre er små stykker kode, der lader angriberen komme tilbage, selv efter du har skiftet kodeord. De er det vigtigste at få fjernet. Typiske kendetegn er sløringsfunktioner som eval, base64_decode, gzinflate, str_rot13 og assert:
grep -RinE "eval\(|base64_decode\(|gzinflate\(|str_rot13\(|assert\(" \
wp-content/ wp-includes/ wp-config.php .htaccess
Tjek også .htaccess for uventede RewriteRule-linjer, der sender trafik videre, og gennemgå bunden af wp-config.php for indsat kode. Vær kritisk, men forsigtig: nogle plugins bruger base64 legitimt. Er du i tvivl om en konkret fil, så sammenlign med en ren kopi af samme plugin.
Bagdøren gemmer sig stadig, og du tør ikke selv slette i kernen? Jeg finder og fjerner alle bagdøre — fast pris fra 2.000 kr.
Rens databasen for injicerede admin-brugere og spam
Hacks lever ikke kun i filerne. Tjek databasen for:
- Falske admin-brugere under Brugere → Alle brugere. Slet dem, og overfør deres indhold til en ægte konto.
- Mistænkelige poster i tabellerne
wp_options(fx ukendtesiteurl/home) ogwp_users/wp_usermeta. - Spam-injektioner i indlæg og kommentarer — skjulte links og scripts.
# List alle brugere med admin-rettigheder
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
Find du en bruger, du ikke kender, så slet den med det samme og undersøg, hvornår den blev oprettet.
Geninstaller WordPress core og plugins fra rene kilder
Den sikreste vej til rene filer er at udskifte dem helt:
# Geninstallér WordPress-kernen (overskriver core-filer, rører ikke wp-content)
wp core download --force --version=$(wp core version)
# Geninstallér alle plugins fra det officielle repository
wp plugin install $(wp plugin list --field=name) --force
Slet plugins og temaer, du ikke bruger — også de deaktiverede. Inaktiv kode kan stadig indeholde en bagdør. Brug aldrig nulled (piratkopierede) temaer eller plugins; de er en af de hyppigste smittekilder.
Fjern dit site fra Googles blokliste og Search Console-advarsler
Når sitet er rent, skal advarsler og blokeringer fjernes, ellers fortsætter trafiktabet:
- Åbn Google Search Console → Sikkerhedsproblemer og bekræft, at problemerne er løst.
- Send en anmodning om fornyet gennemgang med en kort beskrivelse af, hvad du har ryddet op.
- Tjek også, om dit domæne er blokeret hos din browser eller hos sikkerhedslister, og bed om en ny vurdering.
Vigtigt: malwaren skal være væk først, ellers genindsætter Google bare advarslen — og gentagne afvisninger forlænger processen.
Hærd sitet så det ikke sker igen (10-punkts checklist)
Oprydning uden hærdning betyder bare, at du ses her igen om en måned. Som minimum:
- Hold core, temaer og plugins automatisk opdateret.
- Slå tofaktor-godkendelse til på alle admins.
- Begræns login-forsøg og skjul
wp-login.php. - Installér et sikkerhedsplugin med en firewall (WAF).
- Sæt automatiske, offsite-backups op — og test en gendannelse.
- Ret filtilladelser (typisk 644 for filer, 755 for mapper) og deaktivér fil-redigering i admin med
define('DISALLOW_FILE_EDIT', true);. - Fjern ubrugte plugins, temaer og brugere.
- Beskyt
wp-config.phpog overvej et nyt databasepræfiks. - Tving stærke adgangskoder for alle konti.
- Overvåg sitet løbende, så du fanger næste forsøg med det samme.
En dybere gennemgang finder du i guiden WordPress sikkerhed: 12 ting du SKAL gøre.
Når du ikke har tid eller tør: få professionel oprydning
Et hack rammer ofte midt i en travl hverdag, og ét overset stykke kode betyder, at angrebet kommer igen. Er du i tvivl, eller står det til at koste dig salg hver time, så er det både hurtigere og billigere at få det gjort rigtigt første gang. Jeg renser sitet, fjerner alle bagdøre, geninstallerer rene filer, får Google-advarsler væk og hærder bagefter — til en fast pris, og du betaler først, når sitet er bekræftet rent.