If the WordPress admin dashboard is inaccessible — because a plugin triggered a fatal error, white screen, or redirect loop — you can delete the plugin directly from your server using FTP or your hosting control panel’s file manager. Both methods work without needing the WordPress admin. This guide shows each one step by step.
Contents
Which method should I use?
| Method | Ease | Needs FTP credentials | Works when admin is broken | Best for |
|---|---|---|---|---|
| FTP (FileZilla) | Moderate | Yes | Yes | Any hosting environment |
| Hosting file manager (cPanel) | Easy | No | Yes | cPanel-based hosts |
| WP-CLI | Advanced | No | Yes (SSH required) | Developers with shell access |
| cPanel plugin manager | Easy | No | Yes | Hosts using cPanel |
For most site owners on shared hosting, the cPanel file manager is the fastest path because it requires no extra software. If your host doesn’t offer cPanel, use FileZilla — the steps in Method 1 work with any FTP or SFTP client.
Method 1: Delete a WordPress Plugin via FTP (FileZilla)
Step 1: Connect to your site via FTP
Download and install FileZilla from the official FileZilla site if you don’t have it. Open it and enter the FTP credentials shown in your hosting control panel:
- Host: your domain name or the dedicated FTP hostname provided by your host
- Port:
21for plain FTP, or22for SFTP — check your hosting documentation; SFTP is preferred because it encrypts the connection - Username / Password: your hosting FTP credentials — these are not the same as your WordPress login
Click Quickconnect. The right-hand panel shows your server’s file tree once connected. If the connection fails, double-check the port: some hosts use a dedicated SFTP hostname that differs from the main domain. If FileZilla reports a connection refused or timeout, also check that your host’s firewall allows outbound connections on port 21 or 22, and try switching to passive mode in FileZilla’s connection settings.
In the right-hand panel, open the root of your WordPress installation. On most shared hosting accounts this is the public_html/ folder. From there, navigate to:
wp-content/plugins/
You will see one subfolder per installed plugin, each named after the plugin’s slug (for example, contact-form-7, woocommerce, wp-staging).
Step 3: Delete the plugin folder
Find the folder for the plugin you want to remove. Right-click it and choose Delete. FileZilla sends a delete command to the server immediately — the folder and all its files are removed.
In our testing, FileZilla’s delete is permanent: there is no server-side recycle bin. Create a backup of your site before proceeding (see "Important notes" below).
Step 4: Check for residual database data
Deleting the plugin folder removes its PHP files, but most plugins also write data to the WordPress database on activation — option records in wp_options, custom tables, or post-meta entries. These rows remain after the folder is gone.
If you need a complete removal, check the plugin’s documentation for the database tables it creates. Plugin-specific tables are typically prefixed with your WordPress table prefix (default wp_) followed by a plugin-specific identifier — the plugin’s documentation or README will list any custom tables it creates. Drop them via phpMyAdmin by selecting each table and running Drop. Plugin option rows stored in wp_options can be identified by searching for the plugin’s slug in the option_name column using phpMyAdmin’s search feature.
If you are unsure which tables belong to the plugin, a safer path is: re-install the plugin temporarily, use its built-in "Delete data on uninstall" setting (if it has one), run its normal uninstall from Plugins › Delete, and then delete the folder via FTP if any files remain. Refer to the WordPress Plugin Handbook for guidance on plugin uninstall routines.
Step 5: Verify plugin removal
Return to your WordPress dashboard and go to Plugins › Installed Plugins. The deleted plugin should no longer appear in the list. If it still appears with an error, clear your object cache if you use one.
Method 2: Delete a WordPress Plugin via the Hosting File Manager (cPanel)
If you have access to cPanel or a similar hosting control panel, you can delete the plugin folder directly from your browser — no FTP client required.
Step 1: Open the file manager
cPanel: log into your hosting account, go to the Files section, and click File Manager.
WordPress file manager plugin: if you have a plugin such as WP File Manager installed and active, open it from the WordPress dashboard. If the admin dashboard itself is broken by the plugin you are trying to remove, use cPanel instead.
In the file manager’s directory tree, navigate to:
wp-content/plugins/
Step 3: Delete the plugin folder
Select the folder for the plugin you want to remove. For example, to remove WP Staging, select /wp-content/plugins/wp-staging/. Right-click and choose Delete, then confirm when prompted.
From WP STAGING support tickets, the most common cause of a failed deletion in cPanel’s file manager is a file permission error. If the delete fails, see the troubleshooting section below before retrying.
Step 4: Check for residual database data
The same database caveat applies as in Method 1: deleting the folder does not remove database rows the plugin created. Clean those up via phpMyAdmin if you need a full removal.
Step 5: Verify plugin removal
Go to Plugins › Installed Plugins in your WordPress dashboard. Confirm the plugin is no longer listed.
Troubleshooting: What to do if the plugin folder won’t delete
File permission errors (chmod)
From WP STAGING support tickets, file-permission blocks are the most common failure mode after users follow this guide. The plugin folder’s permissions may prevent deletion by your FTP user or cPanel account.
Fix via FileZilla: right-click the plugin folder, choose File Permissions, set the numeric value to 755, and apply recursively to all subdirectories and files. Then retry the delete.
Fix via cPanel: select the folder, click Permissions in the file manager toolbar, set it to 755, apply recursively, then delete.
Locked files on Windows-based hosting
Some Windows hosting environments lock files that are in active use by the server process. If the delete fails with "access denied" or "file in use", contact your hosting provider’s support and ask them to delete the folder from the server side — this is a routine operation for any managed hosting team.
cPanel file manager returns a 403 error
A 403 from cPanel’s file manager usually means the folder is owned by a different system user than your cPanel account. Open a support ticket with your host and ask them to delete the folder as root.
Identifying which plugin is causing the error
If WordPress shows a white screen or fatal error and you don’t know which plugin is responsible, enable WordPress debug logging to identify it. Open wp-config.php via FTP or your file manager and confirm these lines are present:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
With WP_DEBUG_LOG enabled, PHP errors are written to wp-content/debug.log. Download that file via FTP and look for the plugin folder name in the error message — it will appear in the file path of the failing include or require statement. Once identified, delete that plugin folder and remove the debug constants from wp-config.php.
Plugin causes a fatal error that locks the admin
If the plugin you need to remove has already triggered a fatal PHP error or white screen, the WordPress admin will be inaccessible. Use Method 1 (FTP) or Method 2 (cPanel file manager) directly — both work without needing the admin. Once the plugin folder is deleted, WordPress automatically detects the missing plugin files and removes it from its active plugin list.
Important notes
- Back up before deleting. Before removing any plugin folder, create a backup of your site files and database. How to Backup a WordPress Website Manually Using cPanel covers cPanel-based backups. WP STAGING can create a full staging clone as a backup alternative.
- Database data persists. Deleting the plugin folder does not remove database rows or custom tables the plugin created. Clean those up via phpMyAdmin if you need a complete removal.
- Deactivate first when possible. If the WordPress admin is accessible, deactivate the plugin normally before deleting via FTP or file manager. Many plugins run cleanup code on deactivation that will not execute if you delete the folder directly.
- Test on a staging site first. If you are unsure whether the plugin is the cause of your issue, reproduce the problem on a staging environment before removing it from production.