WordPress menggerakkan sekitar 4 dari 10 situs di internet. Popularitas itu membuatnya menjadi sasaran favorit peretas. Setiap hari ada bot otomatis yang mencoba menebak password admin, mencari plugin yang belum diperbarui, dan menyusupkan kode jahat ke situs yang lengah.
Kabar baiknya, sebagian besar peretasan WordPress bukan karena WordPress-nya lemah, melainkan karena hal-hal yang bisa dicegah: plugin usang, password lemah, plugin bajakan, dan tidak adanya backup. Artikel ini adalah panduan lengkap mengamankan WordPress, dari langkah paling dasar yang bisa dilakukan siapa saja hingga pengaturan server untuk yang lebih teknis.
Kenapa Situs WordPress Diretas?
Menurut laporan tahunan Patchstack, perusahaan keamanan yang khusus memantau ekosistem WordPress, sepanjang 2025 tercatat lebih dari 11.000 kerentanan baru di ekosistem WordPress. Hampir semuanya berasal dari plugin dan tema, bukan dari inti (core) WordPress. Patchstack juga mencatat bahwa 46% kerentanan belum punya perbaikan saat pertama kali diumumkan, dan kerentanan populer bisa mulai dieksploitasi massal hanya dalam hitungan jam.
Artinya, ancaman terbesar justru ada di “aksesori” yang kita pasang sendiri. Berikut penyebab peretasan yang paling umum:
| Penyebab | Contoh | Akibat |
|---|---|---|
| Plugin atau tema usang | Plugin form yang tidak diperbarui setahun | Peretas menyusupkan file berbahaya lewat celah yang sudah dikenal |
| Plugin atau tema bajakan (nulled) | Tema premium “gratis” dari situs tidak resmi | Sering sudah disisipi backdoor sejak awal |
| Password lemah | Username “admin”, password “admin123” | Ditebak bot dalam hitungan menit (brute force) |
| Akun bocor | Password yang sama dipakai di situs lain yang bocor | Peretas login seperti pemilik sah |
| Hosting dan PHP usang | PHP 7.x yang sudah tidak didukung | Celah di tingkat server |
| Hak akses berlebihan | Semua penulis diberi peran Administrator | Satu akun bocor, seluruh situs jatuh |
Dampaknya pun beragam: halaman diganti (deface), situs disisipi link judi online atau obat-obatan, pengunjung dialihkan ke situs penipuan, data pelanggan dicuri, situs masuk daftar hitam Google, hingga server dipakai untuk mengirim spam.
Bagian 1: Fondasi yang Wajib Dilakukan Semua Orang
Bagian ini tidak butuh keahlian teknis. Jika Anda hanya sempat melakukan satu bagian dari artikel ini, lakukan bagian ini.
1. Selalu Perbarui WordPress, Plugin, dan Tema
Ini langkah terpenting. Sebagian besar serangan memanfaatkan celah yang sudah diperbaiki di versi terbaru, tetapi pemilik situs belum memperbarui.
- Buka Dasbor → Pembaruan secara rutin, minimal seminggu sekali.
- Aktifkan pembaruan otomatis untuk plugin dan tema di halaman Plugin (tautan “Aktifkan pembaruan otomatis”). Untuk situs yang sangat penting, uji dulu di situs staging.
- Pembaruan keamanan inti WordPress (versi minor, misalnya 7.1.3 ke 7.1.4) sudah otomatis secara bawaan. Jangan dimatikan.
- Hanya versi terbaru WordPress yang didukung aktif. Situs yang tertinggal beberapa versi besar berisiko tinggi.
2. Hapus Plugin dan Tema yang Tidak Dipakai
Plugin yang dinonaktifkan tetap ada di server, dan file-nya tetap bisa diserang. Jadi:
- Hapus (bukan sekadar nonaktifkan) plugin yang tidak dipakai.
- Sisakan hanya satu tema aktif dan satu tema bawaan WordPress sebagai cadangan.
- Sebelum memasang plugin baru, cek: kapan terakhir diperbarui, jumlah instalasi aktif, rating, dan apakah pengembangnya merespons di forum dukungan. Plugin yang tidak diperbarui lebih dari setahun sebaiknya dihindari.
3. Jangan Pernah Memakai Plugin atau Tema Bajakan
Tema premium “gratis” dari situs tidak resmi hampir pasti membawa masalah: backdoor, link spam tersembunyi, atau kode yang mengirim data situs Anda ke pihak lain. Selain itu, versi bajakan tidak menerima pembaruan keamanan. Penghematan beberapa ratus ribu rupiah bisa berujung pada situs yang harus dibangun ulang dari nol.
4. Password Kuat dan Unik, Plus Password Manager
- Jangan memakai username admin. Ini tebakan pertama setiap bot.
- Gunakan password panjang (minimal 16 karakter) dan unik, tidak dipakai di layanan lain.
- Gunakan password manager seperti Bitwarden, 1Password, atau fitur bawaan browser agar tidak perlu menghafal.
- Ganti juga password hosting/cPanel, database, FTP/SFTP, dan email admin. Semua pintu masuk sama pentingnya.
5. Aktifkan Verifikasi Dua Langkah (2FA)
Dengan 2FA, peretas yang berhasil mendapatkan password tetap tidak bisa masuk tanpa kode dari ponsel Anda. Ini salah satu perlindungan paling efektif dengan usaha paling kecil.
- Pasang plugin seperti Two Factor (dikembangkan kontributor WordPress), atau fitur 2FA dari Wordfence maupun Solid Security.
- Gunakan aplikasi authenticator (Google Authenticator, Microsoft Authenticator, atau Authy), lebih aman daripada kode lewat SMS atau email.
- Wajibkan 2FA untuk semua akun Administrator dan Editor.
- Simpan kode cadangan (backup codes) di tempat aman, jangan sampai Anda sendiri terkunci.
6. Backup Otomatis dengan Prinsip 3-2-1
Backup adalah jaring pengaman terakhir. Jika semua pertahanan gagal, backup yang baik membuat situs bisa pulih dalam hitungan jam, bukan minggu.
- 3 salinan data, di 2 media berbeda, dengan 1 salinan di luar server (misalnya Google Drive, Dropbox, atau penyimpanan cloud lain).
- Backup database dan file (terutama folder
wp-content), bukan salah satunya saja. - Jadwalkan otomatis, misalnya harian untuk situs berita atau toko online, mingguan untuk situs yang jarang berubah.
- Simpan beberapa versi ke belakang (misalnya 30 hari), karena peretasan sering baru ketahuan berminggu-minggu kemudian.
- Uji pemulihan sesekali. Backup yang tidak pernah diuji belum tentu bisa dipakai.
Plugin seperti UpdraftPlus bisa mengirim backup otomatis ke Google Drive. Untuk server sendiri, skrip backup terjadwal dengan alat seperti rclone juga bisa digunakan.
7. Gunakan HTTPS
Pastikan situs memakai sertifikat SSL (alamat diawali https://). Sebagian besar hosting menyediakan sertifikat Let’s Encrypt gratis, dan Cloudflare juga menyediakan SSL gratis. Setelah aktif, pastikan alamat di Pengaturan → Umum sudah memakai https://.
Kami menerima jasa konsultasi WordPress: audit keamanan, pembersihan situs yang terkena malware, pengaturan backup otomatis, hingga optimasi server.
Hubungi kami via WhatsApp →
Bagian 2: Mengamankan Pintu Masuk (Login dan Akun)
8. Batasi Percobaan Login
Secara bawaan, WordPress mengizinkan percobaan login tanpa batas. Bot bisa mencoba ribuan password per jam. Batasi dengan plugin keamanan (Wordfence, Solid Security) atau plugin khusus seperti Limit Login Attempts Reloaded, sehingga IP yang gagal login beberapa kali diblokir sementara.
9. Atur Peran Pengguna dengan Prinsip “Seperlunya”
WordPress punya beberapa peran dengan hak akses berbeda:
| Peran | Hak Akses | Cocok Untuk |
|---|---|---|
| Administrator | Semua, termasuk pasang plugin dan kelola pengguna | Pemilik atau pengelola teknis saja (1–2 orang) |
| Editor | Kelola semua tulisan dan halaman | Pemimpin redaksi |
| Author | Menulis dan menerbitkan tulisan sendiri | Penulis tetap |
| Contributor | Menulis tapi tidak bisa menerbitkan | Penulis tamu |
| Subscriber | Hanya mengelola profil | Pembaca atau pelanggan terdaftar |
Periksa Pengguna → Semua Pengguna secara berkala. Hapus akun yang sudah tidak aktif, turunkan peran yang berlebihan, dan curigai akun Administrator yang tidak Anda kenal karena itu tanda klasik situs sudah dibobol.
Jika situs Anda membuka pendaftaran pengguna, pastikan Peran bawaan pengguna baru di Pengaturan → Umum adalah Subscriber, bukan peran yang lebih tinggi.
10. Jangan Tampilkan Username Asli
Bot sering mencari username dari halaman arsip penulis (/?author=1) atau dari REST API (/wp-json/wp/v2/users). Atur Nama tampilan publik di profil agar berbeda dari username login. Plugin keamanan umumnya juga punya opsi untuk memblokir pencarian username semacam ini.
11. Pertimbangkan Mengganti Alamat Login
Mengganti /wp-login.php ke alamat lain (misalnya dengan plugin WPS Hide Login) bukan perlindungan utama, tetapi efektif mengurangi serangan bot dan membuat log lebih bersih. Anggap ini sebagai lapisan tambahan, bukan pengganti password kuat dan 2FA.
12. Kelola Application Passwords dan XML-RPC
- Application Passwords (di halaman profil) dipakai aplikasi pihak ketiga untuk mengakses situs. Hapus yang tidak Anda kenali atau tidak dipakai lagi.
- XML-RPC (
xmlrpc.php) adalah fitur lama untuk aplikasi eksternal, dan sering dipakai untuk brute force. Jika Anda tidak memakai aplikasi WordPress mobile atau Jetpack, nonaktifkan lewat plugin keamanan atau blokir di server/Cloudflare.
Bagian 3: Pengaturan Teknis di wp-config.php dan Server
Bagian ini untuk pengelola yang punya akses ke file situs atau server. Selalu backup file sebelum mengubahnya.
13. Matikan Editor File di Dasbor
WordPress punya fitur untuk mengedit kode tema dan plugin langsung dari dasbor. Jika akun admin dibobol, fitur ini menjadi jalan pintas peretas untuk menyisipkan kode. Tambahkan baris ini di wp-config.php:
define( 'DISALLOW_FILE_EDIT', true );
Jika semua pembaruan dilakukan lewat SFTP atau sistem deploy, Anda bahkan bisa memakai DISALLOW_FILE_MODS untuk melarang pemasangan dan pembaruan plugin dari dasbor. Hati-hati: opsi ini juga mematikan pembaruan otomatis, jadi pastikan Anda punya prosedur pembaruan rutin sendiri.
14. Matikan Mode Debug di Situs Live
Pesan error bisa membocorkan lokasi file dan informasi server. Pastikan di situs live:
define( 'WP_DEBUG', false ); define( 'WP_DEBUG_DISPLAY', false );
15. Gunakan Kunci Keamanan (Salts) yang Unik
Bagian AUTH_KEY, SECURE_AUTH_KEY, dan seterusnya di wp-config.php mengamankan sesi login. Pastikan berisi nilai acak panjang, bukan teks bawaan. Anda bisa membuat yang baru di generator resmi WordPress. Mengganti salts juga akan mengeluarkan semua pengguna yang sedang login, langkah berguna setelah situs dibobol.
16. Atur Izin File dan Folder
| Objek | Izin yang Disarankan |
|---|---|
| Folder | 755 |
| File | 644 |
| wp-config.php | 600 atau 640 (sesuaikan dengan konfigurasi hosting) |
Hindari izin 777 karena berarti siapa pun di server bisa menulis ke file tersebut.
17. Cegah PHP Dijalankan di Folder Uploads
Folder wp-content/uploads seharusnya hanya berisi gambar dan dokumen. Jika peretas berhasil mengunggah file PHP ke sana, mereka bisa menjalankannya sebagai backdoor. Di server Apache, buat file .htaccess di dalam folder uploads:
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>
Untuk server Nginx, aturan serupa ditambahkan di konfigurasi server. Tanyakan ke penyedia hosting jika tidak yakin.
18. Matikan Directory Listing dan Lindungi File Sensitif
Jika folder tanpa file index bisa dibuka dan isinya terlihat, peretas bisa melihat struktur situs. Di Apache, tambahkan di .htaccess utama:
Options -Indexes
<Files wp-config.php>
Require all denied
</Files>
Jangan pula meninggalkan file cadangan seperti backup.zip, wp-config.php.bak, atau dump database di folder publik. File semacam ini bisa diunduh siapa saja yang menebak namanya.
19. Gunakan Versi PHP yang Masih Didukung
Versi PHP lama tidak lagi menerima perbaikan keamanan. Gunakan versi yang masih didukung resmi: minimal PHP 8.2, dan lebih disarankan PHP 8.3 atau yang lebih baru karena dukungan keamanan PHP 8.2 berakhir pada akhir 2026 dan cek kompatibilitas plugin sebelum memperbarui. Pengaturannya biasanya ada di panel hosting.
20. Database yang Aman
- Gunakan pengguna database khusus untuk setiap situs, dengan password kuat.
- Jangan memakai akun root database untuk WordPress.
- Pastikan database tidak bisa diakses langsung dari internet, hanya dari server web.
- Jika memakai phpMyAdmin, lindungi dengan password tambahan atau batasi aksesnya.
21. Pasang Security Headers
Header keamanan memberi instruksi tambahan ke browser pengunjung. Beberapa yang umum:
| Header | Fungsi |
|---|---|
| Strict-Transport-Security (HSTS) | Memaksa browser selalu memakai HTTPS |
| X-Content-Type-Options: nosniff | Mencegah browser salah menafsirkan jenis file |
| X-Frame-Options / frame-ancestors | Mencegah situs ditampilkan di dalam frame situs lain (clickjacking) |
| Referrer-Policy | Membatasi informasi alamat yang dikirim ke situs lain |
| Content-Security-Policy | Membatasi sumber skrip yang boleh dijalankan (perlu diuji hati-hati) |
Header bisa dipasang lewat konfigurasi server, plugin, atau Cloudflare. Cek hasilnya di securityheaders.com.
Bagian 4: Lapisan Pelindung Tambahan
22. Gunakan Web Application Firewall (WAF)
WAF menyaring lalu lintas berbahaya sebelum sampai ke situs. Ada dua jenis:
- WAF berbasis DNS/cloud seperti Cloudflare. Menyaring di luar server, sekaligus mempercepat situs dan menahan serangan DDoS. Paket gratisnya sudah sangat membantu, misalnya untuk membuat aturan yang memblokir
xmlrpc.phpatau memberi tantangan (challenge) ke halaman login. - WAF berbasis plugin seperti Wordfence. Berjalan di dalam WordPress, lebih paham konteks situs, tetapi memakai sumber daya server.
Patchstack juga menawarkan perlindungan “virtual patching”, yaitu memblokir serangan terhadap celah plugin yang belum punya perbaikan resmi.
23. Plugin Keamanan: Pilih Satu Saja
| Plugin | Kekuatan |
|---|---|
| Wordfence | Firewall, pemindai malware, 2FA, batas login |
| Solid Security (dulu iThemes Security) | Pengaturan pengerasan (hardening), 2FA, batas login |
| Sucuri Security | Pemantauan integritas file dan audit aktivitas |
| Patchstack | Pemantauan kerentanan plugin dan virtual patching |
Jangan memasang beberapa plugin keamanan sekaligus. Fiturnya saling tumpang tindih, bisa bentrok, dan memperlambat situs.
24. Pantau Aktivitas dan Perubahan File
- Pasang plugin log aktivitas (misalnya WP Activity Log atau Simple History) untuk mencatat siapa login, mengubah apa, dan kapan.
- Aktifkan pemantauan perubahan file agar Anda diberi tahu jika ada file inti atau plugin yang berubah tanpa pembaruan resmi.
- Pasang pemantau uptime (misalnya UptimeRobot) agar segera tahu jika situs mati atau berubah.
- Daftarkan situs di Google Search Console. Google akan memberi tahu jika menemukan malware atau konten spam di situs Anda.
25. Hati-Hati dengan Fitur AI dan Integrasi Baru
WordPress versi terbaru mulai membuka jalan bagi integrasi AI, termasuk plugin yang menghubungkan situs dengan agen AI. Fitur semacam ini memberi pihak luar kemampuan membaca atau bahkan mengubah konten. Aktifkan hanya jika benar-benar dipakai, batasi izinnya, dan perlakukan kunci API seperti password.
Bagian 5: Checklist Rutin
| Frekuensi | Tugas |
|---|---|
| Harian (otomatis) | Backup database dan file, pemantauan uptime |
| Mingguan | Cek dan pasang pembaruan, tinjau notifikasi plugin keamanan |
| Bulanan | Tinjau daftar pengguna dan peran, hapus plugin tak terpakai, cek log aktivitas |
| Tiga bulanan | Uji pemulihan backup, ganti password penting, cek versi PHP |
| Tahunan | Audit keamanan menyeluruh, tinjau ulang semua plugin dan hosting |
Bagian 6: Jika Situs Sudah Telanjur Diretas
Tanda-tanda situs diretas: muncul halaman atau link judi online, pengunjung dialihkan ke situs lain, ada akun admin asing, Google menampilkan peringatan “situs ini mungkin diretas”, atau hosting menangguhkan akun karena spam.
Langkah penanganan:
- Jangan panik, dan jangan langsung menghapus semuanya. Buat salinan kondisi situs saat ini untuk dianalisis.
- Aktifkan mode pemeliharaan atau batasi akses sementara jika situs menyebarkan malware ke pengunjung.
- Ganti semua password: WordPress, hosting, database, FTP/SFTP, dan email. Ganti juga salts di
wp-config.php. - Hapus akun asing dan Application Passwords yang tidak dikenal.
- Pindai malware dengan Wordfence atau layanan pemindai lain. Periksa folder
uploadsdari file PHP, dan file yang baru berubah. - Pasang ulang inti WordPress dan semua plugin/tema dari sumber resmi, jangan hanya menghapus file yang terlihat mencurigakan.
- Periksa database dari skrip atau link spam yang disisipkan di tulisan, opsi, atau widget.
- Atau pulihkan dari backup bersih sebelum tanggal peretasan, lalu segera perbarui semua komponen.
- Tutup celahnya. Cari tahu bagaimana peretas masuk (plugin tertentu, password bocor), karena tanpa itu situs akan diretas lagi.
- Minta peninjauan ulang di Google Search Console setelah situs bersih.
Pembersihan situs yang terinfeksi bisa rumit, karena backdoor sering disembunyikan di banyak tempat. Jika ragu, mintalah bantuan profesional agar tidak terulang.
Penutup
Keamanan WordPress bukan pekerjaan sekali jadi, melainkan kebiasaan. Tidak ada situs yang 100% kebal, tetapi situs yang rutin diperbarui, memakai password kuat dan 2FA, memiliki backup teruji, serta dilindungi firewall akan jauh lebih sulit diretas dibandingkan jutaan situs lain yang lengah. Peretas yang memakai bot otomatis biasanya mencari sasaran termudah. Pastikan situs Anda bukan salah satunya.
Jika Anda hanya punya waktu 30 menit hari ini, lakukan lima hal ini: perbarui semua komponen, hapus plugin tak terpakai, aktifkan 2FA, pastikan backup otomatis berjalan dan tersimpan di luar server, lalu batasi percobaan login.
Situs Anda pernah diretas, terasa lambat, atau ingin diaudit keamanannya? Kami membantu audit keamanan, pembersihan malware, pemulihan situs, pengaturan backup otomatis, migrasi hosting, dan optimasi WordPress.
Chat via WhatsApp →
Sumber
- WordPress Developer Resources: Hardening WordPress
- WordPress Developer Resources: Editing wp-config.php
- WordPress Documentation: Roles and Capabilities
- Patchstack: State of WordPress Security in 2026
- ManageWP: What you can do about plugin vulnerabilities
- WordPress.org: Plugin Two Factor
- PHP: Supported Versions
- OWASP Secure Headers Project
[…] Panduan langkah demi langkahnya kami bahas lengkap di artikel Cara Mengamankan WordPress dari Peretas: Panduan Lengkap 25 Langkah. […]