---
title: "Cara Membersihkan Malware WordPress Tanpa Kehilangan Data"
description: "Langkah membersihkan WordPress yang terinfeksi malware tanpa menghapus postingan, pesanan, dan media, dari salinan bukti sampai mengganti semua akses."
url: "https://nivelva.com/insight/cara-membersihkan-malware-wordpress-kehilangan-data"
category: "Keamanan/Cyber Security"
tags: ["wordpress","malware","website diretas","wp-cli","keamanan website"]
author: "Theresia Candiawan"
published: "2026-11-07T04:06:00+07:00"
updated: "2026-11-07T04:06:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Cara Membersihkan Malware WordPress Tanpa Kehilangan Data

> **Jawaban singkat:** Kuncinya adalah memisahkan data dari kode. Simpan dulu salinan situs apa adanya, ganti inti WordPress, plugin, dan tema dengan salinan bersih dari sumber resmi, periksa uploads dan database secara terarah, lalu ganti semua password dan kunci keamanan.

Website WordPress kamu tiba-tiba mengalihkan pengunjung ke situs judi, muncul pengguna admin yang tidak kamu kenal, atau hosting mengirim email bahwa akunmu dipakai menyebar spam? Jangan langsung menghapus semuanya dan memasang ulang dari nol. Postingan, halaman, pesanan WooCommerce, dan gambar yang sudah kamu kumpulkan bertahun-tahun hampir selalu bisa diselamatkan.

Prinsipnya sederhana: **data** (isi database dan file media) disimpan, sedangkan **kode** (inti WordPress, plugin, tema) diganti dengan salinan bersih. Malware hampir selalu bersembunyi di kode atau menyisipkan file PHP di tempat yang seharusnya hanya berisi gambar. Panduan berikut mengikuti alur itu langkah demi langkah.

## Langkah 1: Catat gejala dan amankan salinan apa adanya

Sebelum mengubah apa pun, catat apa yang kamu lihat: kapan mulai terjadi, halaman mana yang terdampak, dan perubahan apa yang terakhir kamu lakukan (plugin baru, update tema, akun baru). Dokumentasi resmi WordPress menyebut catatan ini sebagai dasar laporan insiden, dan akan sangat membantu bila nanti kamu melibatkan teknisi.

Lalu buat salinan lengkap situs **dalam keadaan terinfeksi**: seluruh folder website dan ekspor database. Kedengarannya aneh, tapi salinan ini adalah jaring pengaman. Kalau proses pembersihan merusak sesuatu, kamu masih punya data asli untuk dirujuk. Simpan di luar server, dan jangan pernah memulihkannya utuh ke server produksi.

Kalau kamu punya backup lama yang dibuat **sebelum** infeksi, catat tanggalnya. Backup itu nanti berguna untuk membandingkan file, tapi jangan langsung dipulihkan begitu saja, karena data baru sejak tanggal itu (pesanan, komentar, postingan) akan hilang.

## Langkah 2: Kunci akses dulu

Penyerang yang masih punya akses bisa memasang ulang malware saat kamu sedang membersihkan. Lakukan ini secepatnya:

1. Ganti password akun hosting (cPanel atau panel lain), FTP/SFTP, dan user database.
2. Buka daftar Pengguna di wp-admin, hapus akun admin yang tidak kamu kenal, dan reset password semua admin yang sah.
3. Ganti kunci dan salt di `wp-config.php` dengan nilai baru dari generator resmi `https://api.wordpress.org/secret-key/1.1/salt/`. Langkah ini memaksa semua sesi login yang masih aktif, termasuk milik penyerang, keluar.
4. Bila memungkinkan, pasang halaman maintenance sementara supaya pengunjung tidak terkena pengalihan berbahaya.

Jangan lupa memindai laptop yang biasa dipakai login ke wp-admin atau FTP. Dokumentasi WordPress mengingatkan bahwa banyak kasus berawal dari komputer pemilik situs yang terinfeksi trojan pencuri password. Penjelasan jenis malware ini ada di artikel [infostealer pencuri password browser](https://nivelva.com/insight/infostealer-malware-pencuri-password-browser).

## Langkah 3: Ganti inti WordPress dengan salinan bersih

Folder `wp-admin` dan `wp-includes` tidak berisi data milikmu, jadi aman diganti seluruhnya. Pastikan versinya **sama** dengan versi yang sedang terpasang, supaya struktur database tetap cocok.

Kalau server punya WP-CLI, cek dulu file inti mana yang berubah:

```
wp core verify-checksums
```

Perintah ini membandingkan file inti dengan checksum resmi dari WordPress.org dan menampilkan file yang tidak cocok atau yang seharusnya tidak ada. Catat versi yang terpasang dengan `wp core version`, hapus folder `wp-admin` dan `wp-includes`, lalu unduh ulang inti tanpa menyentuh `wp-content`:

```
wp core download --version=VERSI --skip-content --force
```

Ganti `VERSI` dengan angka dari `wp core version` tadi. Tanpa WP-CLI, unduh paket versi yang sama dari wordpress.org, lalu unggah folder `wp-admin` dan `wp-includes` lewat SFTP setelah folder lama dihapus. Menghapus dulu itu penting: menimpa saja tidak membuang file asing yang ditambahkan penyerang.

## Langkah 4: Pasang ulang plugin dan tema dari sumber resmi

Plugin dan tema adalah tempat persembunyian favorit. Untuk plugin dari direktori WordPress.org, WP-CLI bisa membantu memeriksa:

```
wp plugin verify-checksums --all
```

Cara paling aman tetap memasang ulang: hapus folder plugin lama, unduh versi terbaru dari sumber resmi atau akun pembelian (untuk plugin premium), lalu aktifkan kembali. Pengaturan plugin umumnya tersimpan di database, jadi biasanya tidak hilang. Untuk tema, unduh ulang dari pembuatnya. Kalau kamu memakai child theme dengan kode buatan sendiri, periksa file seperti `functions.php`, `header.php`, dan `footer.php` baris demi baris.

Plugin yang sudah lama tidak diperbarui pembuatnya, atau versi "nulled" (bajakan), sebaiknya dibuang dan dicarikan pengganti. Versi bajakan sering sudah berisi backdoor sejak awal.

## Langkah 5: Periksa wp-content/uploads dan file konfigurasi

Folder `uploads` berisi media milikmu, jadi tidak bisa diganti begitu saja. Kabar baiknya, folder ini seharusnya tidak berisi file PHP sama sekali. Cari dari terminal:

```
find wp-content/uploads -type f -name "*.php"
```

Hampir semua hasilnya patut dicurigai. Periksa juga `.htaccess` di folder utama dan subfolder, karena file ini sering diubah untuk mengalihkan pengunjung. Bandingkan `wp-config.php` dengan isi yang kamu harapkan: tidak boleh ada baris `include` atau kode acak di bagian atas. Cara menelusuri file mencurigakan lebih rinci dibahas di [backdoor PHP di hosting](https://nivelva.com/insight/backdoor-php-hosting-cara-menemukan-menghapusnya).

## Langkah 6: Bersihkan database secara terarah

Database menyimpan seluruh isi situs, jadi jangan dihapus. Cukup periksa bagian yang biasa disusupi:

- Tabel `wp_users`: akun admin asing yang tadi terlewat.
- Tabel `wp_options`: nilai `siteurl` dan `home` yang diubah, atau opsi berisi kode JavaScript panjang.
- Tabel `wp_posts`: tag `<script>` atau iframe asing yang disisipkan ke isi postingan.

Pakai fitur pencarian di phpMyAdmin untuk kata seperti `<script`, `eval(`, atau `base64_decode`. Hapus hanya potongan yang jelas asing, bukan seluruh baris postingan.

## Langkah 7: Pindai, perbarui, lalu ganti password sekali lagi

Pindai situs dengan plugin pemindai dan pemindai luar, lalu perbarui inti, plugin, dan tema ke versi terbaru. Setelah situs dipastikan bersih, ganti semua password **sekali lagi**. Password yang diganti saat situs masih terinfeksi bisa saja ikut tercuri.

Kalau Google sempat memberi peringatan merah di browser, ikuti proses peninjauan di [website diblokir Google Safe Browsing](https://nivelva.com/insight/website-diblokir-google-safe-browsing-cara-memulihkannya).

## Bagian mana yang disimpan dan mana yang diganti?

| Bagian | Isi | Tindakan |
|:--|:--|:--|
| `wp-admin`, `wp-includes` | Kode inti WordPress | Hapus, ganti salinan resmi versi sama |
| `wp-content/plugins` | Kode plugin | Pasang ulang dari sumber resmi |
| `wp-content/themes` | Kode tema | Unduh ulang, periksa child theme manual |
| `wp-content/uploads` | Media milikmu | Simpan, buang file PHP di dalamnya |
| `wp-config.php`, `.htaccess` | Konfigurasi | Periksa baris demi baris, ganti salt |
| Database | Postingan, pesanan, pengguna | Simpan, bersihkan bagian yang disusupi |

## Pertanyaan yang sering diajukan

### Apakah cukup memulihkan backup lama saja?

Bisa, asal backup itu dibuat sebelum infeksi dan kamu rela kehilangan data sejak tanggal itu. Celah yang dipakai penyerang tetap harus ditutup, kalau tidak situs akan terinfeksi lagi.

### Apakah plugin keamanan bisa membersihkan semuanya otomatis?

Plugin pemindai membantu menemukan file mencurigakan, tapi tidak menjamin semua backdoor tertangkap. Mengganti kode dengan salinan bersih tetap lebih bisa diandalkan.

### Kenapa malware muncul lagi setelah dibersihkan?

Biasanya karena masih ada backdoor yang terlewat, password belum diganti, atau celah plugin yang dipakai masuk belum diperbarui.

### Apakah pengaturan plugin hilang kalau plugin dipasang ulang?

Umumnya tidak, karena pengaturan disimpan di database. Hapus folder plugin lewat SFTP, bukan lewat tombol hapus di wp-admin, supaya data pengaturannya tidak ikut terhapus.

### Berapa lama proses pembersihan ini?

Tergantung ukuran situs dan seberapa dalam infeksinya. Situs kecil bisa selesai dalam beberapa jam, sedangkan toko online dengan banyak plugin butuh waktu lebih lama untuk diperiksa.

Checklist singkat sebelum situs dibuka lagi:

- Salinan situs terinfeksi tersimpan di luar server.
- Semua password dan salt `wp-config.php` sudah diganti dua kali.
- Inti, plugin, dan tema berasal dari salinan resmi.
- Tidak ada file PHP di folder `uploads`.
- Pemindaian ulang bersih dan semua komponen sudah versi terbaru.
- Backup otomatis terjadwal ke lokasi terpisah dari server.

## Sumber

- <https://wordpress.org/documentation/article/faq-my-site-was-hacked/>
- <https://wordpress.org/documentation/article/hardening-wordpress/>
- <https://developer.wordpress.org/cli/commands/core/verify-checksums/>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/cara-membersihkan-malware-wordpress-kehilangan-data
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
