Error “Sorry, you are not allowed to access this page” di WordPress berarti sistem mengenali akun Anda, tetapi menolak hak aksesnya. Login bisa berhasil. Website masih hidup. Database masih terhubung. Masalahnya ada pada izin admin, role, capability, prefix database, plugin, cache, atau konfigurasi server.
Kasus ini sering muncul setelah migrasi hosting, restore backup, pindah dari localhost ke server live, perubahan domain, update WordPress, update PHP, atau instalasi plugin keamanan. Pesannya terlihat sederhana, tetapi sumber masalahnya bisa masuk sampai tabel usermeta.
CodeF menangani masalah seperti ini dengan urutan yang rapi: amankan backup, baca konfigurasi, cocokkan prefix database, periksa role administrator, matikan konflik plugin, bersihkan cache, lalu uji akses admin. Jika website bisnis sedang bermasalah dan tidak bisa ditinggal lama, CodeF juga membantu lewat jasa pembuatan website yang mencakup audit teknis, perbaikan error, dan pengembangan ulang bila struktur lama sudah terlalu rapuh.
Kenapa Error Ini Bisa Muncul di WordPress?
WordPress tidak memberi akses admin hanya karena username dan password benar. Setelah login, WordPress membaca user ID, role, capability, prefix tabel, session, cookie, dan beberapa data internal lain.
Jika salah satu data itu tidak sinkron, WordPress menolak halaman admin. Dari luar terlihat seperti akun diblokir. Di dalam sistem, WordPress sebenarnya gagal membuktikan bahwa akun tersebut masih punya izin administrator.
Artikel Terkait:
- 9 Fitur Wajib Website Sales Mobil untuk Banjir Prospek & SPK
- Fitur Website Kantor Hukum: Elemen Wajib dan Opsional untuk Membangun Kredibilitas Digital
- Panduan Teknis Fitur Website Organisasi: Arsitektur Sistem untuk Nirlaba dan Keagamaan
- Fitur Aplikasi Sekolah Modern Terlengkap 2026: Blueprint Teknis untuk Developer & Institusi
- Panduan Konfigurasi Cloudflare WAF: Strategi Membuat Firewall Rules untuk Keamanan Website Maksimal
Penyebab yang paling sering muncul:
- Prefix database di
wp-config.phptidak cocok dengan tabel. meta_keyuntuk capabilities masih memakai prefix lama.- Role administrator rusak setelah import database.
- Search replace dilakukan secara kasar dan merusak serialized data.
- Plugin keamanan atau plugin role mengubah izin user.
- Object cache menyimpan session lama.
- Website multisite membaca role dari site ID yang salah.
- Versi PHP baru membuat plugin lama berhenti bekerja.
Data Ubersuggest untuk topik ini menunjukkan variasi pencarian seperti wordpress sorry you are not allowed to access this page, wp sorry you are not allowed to access this page, sorry you are not allowed to access this page woocommerce, dan wordpress admin access denied. Artinya, search intent-nya jelas: pengguna ingin akses admin kembali, bukan sekadar membaca definisi error.
Langkah Aman Sebelum Memperbaiki
Jangan mulai dari edit acak. Error permission WordPress sering melibatkan database. Satu query salah bisa membuat akses makin jauh.
Lakukan 5 langkah awal ini:
- Backup file website dan database.
- Catat pesan error lengkap.
- Pastikan akun masih bisa login ke halaman
/wp-login.php. - Periksa apakah error muncul di semua halaman admin atau hanya menu tertentu.
- Siapkan akses hosting, File Manager, phpMyAdmin, dan FTP.
Jika error muncul setelah migrasi, jangan langsung install ulang WordPress. Banyak kasus selesai hanya dengan memperbaiki prefix database dan capability user.
Untuk website yang dipindahkan dari server lama, CodeF sering menggabungkan perbaikan ini dengan jasa cloning website, terutama saat file, database, domain, dan konfigurasi hosting harus dipindahkan tanpa merusak akses admin.
Cek Prefix Database di wp-config.php
Prefix database adalah penyebab besar pada error “Sorry, you are not allowed to access this page” pasca migrasi. WordPress membaca prefix dari file wp-config.php.
Contohnya seperti ini:
$table_prefix = 'wp_';
Jika file wp-config.php memakai wp_, WordPress mencari tabel seperti wp_users, wp_usermeta, wp_options, dan wp_posts.
Masalah muncul saat database hasil restore memakai prefix lain, misalnya codef_, tetapi wp-config.php masih berisi wp_. WordPress bisa membaca sebagian data dengan aneh, membuat tabel baru, atau gagal menemukan role yang benar.
Cara Memeriksa Prefix
- Buka File Manager atau FTP.
- Masuk ke folder utama WordPress.
- Buka file
wp-config.php. - Catat isi variabel
$table_prefix. - Buka phpMyAdmin.
- Cocokkan prefix tersebut dengan nama tabel database.
Jika wp-config.php berisi codef_, maka tabel harus terlihat seperti codef_users, codef_usermeta, dan codef_options.
Perbaiki wp_capabilities dan wp_user_level
Ini bagian yang paling sering terlewat. Meski nama tabel sudah cocok, nilai meta_key di tabel usermeta bisa masih memakai prefix lama.
Contoh kasus:
wp-config.phpmemakaicodef_.- Tabel database sudah bernama
codef_usermeta. - Namun kolom
meta_keymasih berisiwp_capabilities.
Dalam kondisi itu, WordPress mencari codef_capabilities. Karena yang tersedia masih wp_capabilities, akun admin dianggap tidak punya izin.
Query SQL untuk Mengganti Meta Key
Jalankan query ini hanya setelah backup database. Ganti wp_ dan codef_ sesuai prefix lama dan prefix baru di website Anda.
UPDATE codef_usermeta
SET meta_key = REPLACE(meta_key, 'wp_', 'codef_')
WHERE meta_key IN ('wp_capabilities', 'wp_user_level');
Jika ingin memeriksa dulu tanpa mengubah data, jalankan query baca berikut:
SELECT user_id, meta_key, meta_value
FROM codef_usermeta
WHERE meta_key LIKE '%capabilities%'
OR meta_key LIKE '%user_level%';
Untuk akun administrator, nilai capability umumnya mengandung role administrator.
a:1:{s:13:"administrator";b:1;}
Jika nilai ini kosong, hilang, atau tidak sesuai prefix, WordPress bisa menolak akses dashboard.
Reset Role Administrator Lewat functions.php
Jika capability rusak, Anda bisa memulihkan role administrator melalui file functions.php. Metode ini harus dipakai sementara. Setelah akses kembali, kode wajib dihapus.
Gunakan saat Anda yakin user ID admin benar. ID tersebut bisa dilihat di tabel users melalui phpMyAdmin.
add_action( 'init', function () {
$user_id = 1;
$user = new WP_User( $user_id );
if ( $user->exists() ) {
$user->set_role( 'administrator' );
update_user_meta( $user_id, 'wp_user_level', 10 );
}
} );
Catatan penting: ganti wp_user_level sesuai prefix database. Jika prefix aktif adalah codef_, gunakan codef_user_level.
Setelah berhasil masuk dashboard, hapus kode tersebut. Jika dibiarkan, setiap kunjungan akan menjalankan reset role. Itu bukan praktik yang sehat untuk website live.
Jika Anda tidak yakin mengedit tema aktif, CodeF dapat membantu melalui jasa maintenance website, terutama untuk website bisnis yang butuh pemulihan akses tanpa trial-error berlebihan.
Gunakan WP-CLI Jika Hosting Mendukung
WP-CLI lebih bersih untuk beberapa tindakan teknis. Anda bisa memeriksa user, mengganti role, menonaktifkan plugin, dan membersihkan cache dari terminal.
Pastikan Anda menjalankan perintah di folder WordPress yang benar. Untuk server dengan banyak website, tambahkan --path agar tidak salah target.
Cek Daftar User
wp user list --path=/home/user/public_html
Set Ulang Role Admin
wp user set-role 1 administrator --path=/home/user/public_html
Matikan Plugin Sementara
wp plugin deactivate --all --path=/home/user/public_html
Bersihkan Cache WordPress
wp cache flush --path=/home/user/public_html
Untuk migrasi domain atau perubahan URL, hindari search replace manual lewat text editor. Gunakan WP-CLI agar serialized data tetap dihitung dengan benar.
wp search-replace 'https://domain-lama.com' 'https://domain-baru.com' --dry-run --path=/home/user/public_html
Jika hasil dry run masuk akal, baru jalankan tanpa --dry-run.
Untuk pekerjaan WordPress yang melibatkan PHP, Laravel, custom script, atau perbaikan teknis lintas stack, CodeF juga menyediakan bantuan coding PHP Laravel WordPress.
Migrasi dari Localhost ke Server Linux
Perpindahan dari localhost Windows ke hosting Linux bisa memicu error akses karena perbedaan case sensitivity. Windows tidak ketat terhadap huruf besar dan kecil. Linux membedakannya.
Contoh masalah:
$table_prefix = 'WP_';
Di Windows, tabel WP_users dan wp_users bisa terasa seperti sama. Di Linux, keduanya berbeda. WordPress akan mencari tabel sesuai huruf yang tertulis di wp-config.php.
Gunakan huruf kecil untuk prefix database. Pastikan nama tabel, $table_prefix, dan meta_key capability memakai pola yang sama.
Jika migrasi juga melibatkan perubahan domain, SSL, atau Cloudflare, baca panduan DNS record Cloudflare agar routing domain tidak menjadi sumber masalah tambahan.
Periksa Plugin Keamanan dan Plugin Role
Plugin keamanan, membership, WooCommerce extension, LMS, atau plugin role editor bisa mengubah capability user. Setelah update PHP atau restore backup, plugin seperti ini dapat memblokir menu admin tertentu.
Jika dashboard tidak bisa dibuka, matikan plugin dari luar WordPress.
- Buka File Manager atau FTP.
- Masuk ke folder
wp-content. - Rename folder
pluginsmenjadiplugins-off. - Coba login ulang ke
/wp-admin/. - Jika berhasil, kembalikan nama folder menjadi
plugins. - Rename plugin satu per satu untuk menemukan sumber konflik.
Untuk website WooCommerce, cek plugin yang mengatur checkout, membership, wholesale, role customer, atau dashboard vendor. Query Ubersuggest juga menunjukkan variasi sorry you are not allowed to access this page woocommerce, sehingga konflik WooCommerce cukup relevan dengan topik ini.
Jika toko online Anda ikut terdampak, struktur fitur dan alur transaksi bisa dievaluasi ulang melalui jasa pembuatan web toko online.
Cek Tema Aktif dan Custom Code
Tema WordPress bisa memuat kode yang mengatur redirect admin, menyembunyikan menu dashboard, atau memodifikasi capability. Setelah update PHP, kode lama bisa gagal dan membuat akses admin bermasalah.
Uji dengan mengganti tema aktif melalui database atau WP-CLI. Jika memakai WP-CLI, perintahnya seperti ini:
wp theme activate twentytwentysix --path=/home/user/public_html
Jika akses admin kembali setelah tema diganti, sumber masalah berada di tema atau custom function.
Untuk website yang memakai tema custom, CodeF bisa meninjau struktur tema melalui jasa buat tema WordPress. Pendekatan ini berguna saat error akses bukan hanya masalah database, tetapi juga berasal dari kode tema.
Bersihkan Transient, Object Cache, dan CDN
WordPress menyimpan data sementara di transient. Server modern juga bisa memakai Redis, Memcached, plugin cache, page cache, dan CDN. Setelah migrasi, cache lama dapat membuat WordPress membaca session yang tidak cocok.
Untuk membersihkan transient lewat SQL:
DELETE FROM wp_options
WHERE option_name LIKE '\_transient\_%'
OR option_name LIKE '\_site\_transient\_%';
Ganti wp_options sesuai prefix database.
Jika memakai WP-CLI:
wp transient delete --all --path=/home/user/public_html
wp cache flush --path=/home/user/public_html
Jika website memakai Cloudflare, purge cache dari dashboard Cloudflare. Untuk konfigurasi keamanan yang lebih detail, artikel Cloudflare WAF untuk keamanan website bisa membantu memisahkan masalah akses WordPress dan blokir firewall.
Cek File Permission dan .htaccess
File permission yang salah bisa membuat server menolak eksekusi file tertentu. Ini berbeda dari capability WordPress, tetapi efeknya bisa mirip: admin tidak bisa dibuka.
Patokan umum pada banyak hosting:
- Folder:
755. - File:
644. wp-config.php: bisa600atau640tergantung server.
Jangan gunakan 777 untuk folder WordPress live. Izin itu terlalu longgar dan bisa membuka risiko keamanan.
Untuk menguji .htaccess, rename file tersebut menjadi .htaccess-bak. Coba login lagi. Jika akses kembali, buat ulang permalink dari dashboard setelah berhasil masuk.
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Untuk website perusahaan yang tidak boleh lama down, perbaikan seperti ini bisa dimasukkan dalam jadwal pemeliharaan melalui maintenance web untuk semua jenis website.
Update PHP Bisa Memicu Error Akses Admin
Setelah hosting menaikkan versi PHP, plugin lama bisa memunculkan error fatal tersembunyi. Kadang halaman depan masih terbuka, tetapi area admin gagal karena plugin tertentu hanya berjalan di dashboard.
Langkah diagnosis:
- Cek versi PHP saat ini di hosting.
- Aktifkan debug log sementara.
- Matikan plugin dari FTP atau WP-CLI.
- Ganti tema aktif jika perlu.
- Baca file
wp-content/debug.log.
Aktifkan debug log dengan hati-hati:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Setelah selesai, matikan kembali debug agar detail teknis tidak tersimpan terlalu lama di server.
Jika website memakai pendekatan WordPress modern, Timber, Twig, atau headless, struktur teknisnya perlu dibaca lebih teliti. Referensi lanjutan: Twig dan Timber di WordPress serta Headless WordPress.
Kasus Multisite: Prefix dan Blog ID Harus Tepat
Pada WordPress multisite, role user bisa tersimpan per site. Admin jaringan dan admin site punya konteks berbeda. Error akses bisa muncul saat user punya role di site A, tetapi tidak punya izin di site B.
Tabel multisite dapat memakai pola seperti:
wp_userswp_usermetawp_2_optionswp_2_posts
Capability untuk site tertentu bisa terlihat seperti wp_2_capabilities. Jika Anda hanya memperbaiki wp_capabilities, akses ke site lain belum tentu pulih.
Gunakan WP-CLI dengan parameter --url saat bekerja pada multisite.
wp user set-role admin administrator --url=https://subsite.domain.com --path=/home/user/public_html
Jangan menjalankan perintah network-wide jika Anda belum memastikan target site. Multisite punya risiko lebih besar karena satu tindakan bisa memengaruhi banyak properti.
Urutan Diagnosis Cepat untuk Error Access Denied WordPress
Jika Anda ingin memulihkan akses dengan cepat, ikuti urutan ini. Jangan lompat ke query SQL sebelum membaca prefix.
- Backup database dan file.
- Cek
$table_prefixdiwp-config.php. - Cocokkan prefix dengan nama tabel database.
- Cek
capabilitiesdanuser_leveldi tabelusermeta. - Matikan plugin dari FTP atau WP-CLI.
- Bersihkan transient, object cache, dan CDN.
- Cek file permission dan
.htaccess. - Turunkan versi PHP sementara jika error muncul setelah update PHP.
- Reset role admin lewat WP-CLI atau
functions.php. - Uji login ulang dari browser incognito.
Untuk proyek bisnis, CodeF tidak hanya mengembalikan akses admin. CodeF juga meninjau penyebab awalnya agar error tidak berulang saat website dipindahkan, diupdate, atau dikembangkan lagi. Jika akar masalahnya ada di struktur WordPress lama, layanan pembuatan website WordPress bisa menjadi jalur yang lebih bersih daripada terus menambal instalasi yang sudah tidak stabil.
FAQ Error “Sorry, You Are Not Allowed to Access This Page” WordPress
Apa arti error “Sorry, you are not allowed to access this page” di WordPress?
Error ini berarti WordPress menolak hak akses user ke halaman tertentu. Akun bisa saja benar, tetapi role, capability, session, plugin, atau konfigurasi database tidak terbaca sesuai kebutuhan halaman admin.
Artikel Lainnya:
Apakah error ini berarti website kena hack?
Tidak selalu. Banyak kasus muncul setelah migrasi, restore, update PHP, konflik plugin, atau prefix database berubah. Namun, jika ada user asing, file aneh, atau redirect mencurigakan, lakukan audit keamanan.
Kenapa error muncul setelah migrasi WordPress?
Penyebab utamanya sering berada pada prefix database. Tabel bisa sudah memakai prefix baru, tetapi wp_capabilities dan wp_user_level masih memakai prefix lama.
Kenapa dashboard WordPress tidak bisa dibuka padahal login berhasil?
Login hanya membuktikan username dan password valid. Dashboard membutuhkan capability admin seperti manage_options. Jika capability user rusak, WordPress menolak akses dashboard.
Bagaimana cara memperbaiki akses admin WordPress lewat database?
Periksa tabel usermeta. Pastikan ada meta key capability sesuai prefix aktif. Jika prefix berubah, ubah meta key seperti wp_capabilities menjadi prefixbaru_capabilities.
Apakah aman mengedit functions.php untuk reset admin?
Aman jika dilakukan sementara, user ID benar, dan kode segera dihapus setelah akses pulih. Jangan tinggalkan kode reset role di website live.
Kenapa WooCommerce memunculkan error yang sama?
WooCommerce memakai role dan capability tambahan. Plugin membership, vendor, wholesale, checkout, atau security bisa mengubah izin sehingga halaman tertentu menolak akses.
Apakah mengganti versi PHP bisa memperbaiki error ini?
Bisa, jika sumber masalahnya plugin atau tema lama yang tidak kompatibel dengan PHP baru. Turunkan sementara untuk masuk dashboard, lalu update kode yang bermasalah.
Kapan perlu bantuan teknis?
Butuh bantuan saat website live tidak bisa menunggu, database tidak punya backup, multisite terlibat, WooCommerce tidak bisa menerima order, atau error muncul berulang setelah diperbaiki. CodeF dapat membantu audit, pemulihan akses, migrasi ulang, dan pengembangan struktur WordPress yang lebih siap dirawat. Hubungi 0813-989-12341 untuk pemeriksaan awal.