You upload a plugin ZIP, click Install Now, and WordPress stops cold: “Installation failed: Destination folder already exists.” Nothing is broken yet. WordPress is refusing to overwrite a folder it found sitting in the exact spot it wanted to unzip into.
The “destination folder already exists” error in WordPress is one of the easiest install errors to fix, but the fix you pick matters. Delete the wrong folder and you can wipe out a plugin’s settings screen or a theme’s customizations. This guide covers what actually causes it, the three safe ways to clear it, and how to stop it from coming back.
What Does “Destination Folder Already Exists” Mean in WordPress?
The “Destination folder already exists” error means WordPress tried to unzip a plugin or theme into wp-content/plugins/ or wp-content/themes/, and a folder with the same name was already there. WordPress aborts the install instead of overwriting that folder, so your existing files stay untouched.
Every plugin ZIP contains one top-level folder, for example contact-form-7/. WordPress extracts that folder name exactly as-is. If wp-content/plugins/contact-form-7/ already exists, the installer has two choices: overwrite it or stop. When it can’t confirm you want an overwrite, it stops and shows the error.
That safety check is a good thing. The annoying part is that the leftover folder is often junk you didn’t know was there.
Why Does WordPress Say the Folder Already Exists?
WordPress shows the destination folder error for one of four reasons: the plugin or theme is already installed, a previous install failed halfway and left a partial folder, a deletion didn’t finish, or a migration or restore copied old files back in. In every case, there is a real folder on the server with the same name as the one inside your ZIP.
- It’s already installed. Common with premium plugins and themes, where people upload a new version ZIP instead of using the built-in updater.
- A failed install left a half-finished folder. A timeout, a PHP memory limit, or a dropped connection mid-upload can leave a folder with only some of its files. WordPress may not list it as a plugin at all, because the main plugin file never arrived.
- A delete didn’t fully finish. You clicked Delete in the dashboard, WordPress removed what it could, and file permission problems left the folder behind.
- A migration or backup restore put old files back. Restoring
wp-contentfrom a backup brings back every plugin folder, including ones you thought you’d removed.
The second and third causes are the sneaky ones. The plugin doesn’t appear on the Plugins screen, so it looks like nothing is installed, but the folder is still sitting on the server.
Fix 1: Use “Replace Current With Uploaded” (Easiest)
If the existing plugin or theme is a working, recognized install, WordPress shows a comparison screen with a “Replace current with uploaded” button instead of a hard error. Clicking that button overwrites the old version with the files from your ZIP. This is the fastest and safest fix for updating a plugin or theme manually.
According to the WordPress core team’s developer notes on make.wordpress.org, WordPress 5.5 (released in 2020) added the ability to update plugins and themes by uploading a ZIP file, with a screen that compares the uploaded version against the installed one. Before 5.5, the only answer was the error.
- Go to Plugins > Add New Plugin > Upload Plugin (or Appearance > Themes > Add New Theme > Upload Theme).
- Choose the ZIP and click Install Now.
- Check the version comparison table: current version vs uploaded version.
- Click Replace current with uploaded.
Almost all plugin settings live in the database, not the plugin folder, so replacing the files keeps your settings. The exception: if someone edited files directly inside that plugin or theme folder, those edits get overwritten. That is exactly why theme customizations belong in a child theme or a snippets plugin, never in the parent theme’s files.
If you don’t see the comparison screen and get the plain error instead, WordPress doesn’t recognize the existing folder as a valid plugin or theme. That usually means it’s a broken leftover. Move on to Fix 2.
Fix 2: Delete the Leftover Folder via File Manager or FTP
When the existing folder is a broken or half-installed leftover, the fix is to remove that folder from wp-content/plugins/ or wp-content/themes/ using your host’s File Manager or an FTP client, then install the ZIP again. Take a backup first, and rename the folder instead of deleting it if you’re not sure what’s inside.
- Back up the site, or at minimum download a copy of the folder you’re about to remove. A solid WordPress backup plugin makes this a one-click step.
- Open cPanel File Manager (or connect with FTP/SFTP) and go to
public_html/wp-content/plugins/or/themes/. - Find the folder with the same name as the one inside your ZIP. Open the ZIP on your computer first if you’re not sure what that name is.
- Rename it, for example
plugin-name-old. Renaming is reversible; deleting isn’t. - Go back to the dashboard and install the ZIP again.
- Once the new install works, delete the renamed
-oldfolder.
If File Manager refuses to delete the folder, or the dashboard delete keeps failing, the cause is usually file ownership or permissions. That’s the same root problem behind WordPress asking for FTP credentials, and fixing it there tends to fix this too.
Fix 3: Force the Install With WP-CLI
If your host gives you SSH access, WP-CLI can overwrite an existing plugin or theme folder in one command using the --force flag. This skips the dashboard entirely and works even when the leftover folder isn’t recognized as a valid plugin.
# Plugin from a ZIP file
wp plugin install /path/to/plugin-name.zip --force
# Theme from a ZIP file
wp theme install /path/to/theme-name.zip --force
# Plugin from WordPress.org by slug
wp plugin install plugin-slug --force
The --force flag tells WP-CLI to overwrite the existing files. The same warning applies as Fix 1: any direct edits inside that folder are gone afterward.
Which Fix Should You Use?
Use “Replace current with uploaded” when WordPress offers it, delete or rename the folder when it doesn’t, and use WP-CLI when you have SSH and want the quickest route. The table below sums up when each fix makes sense.
| Fix | Best for | Needs | Risk |
|---|---|---|---|
| Replace current with uploaded | Updating a working plugin or theme from a ZIP | WordPress 5.5+, dashboard access | Low (direct file edits are overwritten) |
| Rename/delete via File Manager or FTP | Broken, half-installed or invisible leftover folders | Hosting panel or FTP login | Low if you rename first, higher if you delete blind |
| WP-CLI with –force | Developers, bulk fixes, no dashboard access | SSH access and WP-CLI | Low (same overwrite caveat) |
Watch Out for the Duplicate Plugin Trap
A ZIP whose internal folder name doesn’t match the installed one won’t trigger the destination folder error at all. WordPress installs it as a second, separate copy. You end up with two versions of the same plugin on the Plugins screen, and activating both can cause a fatal “cannot redeclare” error.
This happens a lot with ZIPs downloaded from GitHub or some marketplaces, where the folder gets a version suffix like plugin-name-2.4.1/ or plugin-name-main/. The fix is to rename the folder inside the ZIP to match the installed one before uploading. If you already have two copies, deactivate both, delete the older one, then reactivate. If the site does go down, the steps in fixing a WordPress critical error will get you back in.
How to Stop This Error From Coming Back
The destination folder error mostly comes from manual ZIP uploads and interrupted installs, so the best prevention is to update through the normal updater whenever possible and to fix the server issues that cause installs to fail halfway.
- Activate license keys for premium plugins. Licensed plugins like Elementor Pro or WP Rocket update from Dashboard > Updates, so you never touch a ZIP.
- Fix upload limits. Large theme ZIPs that hit the upload or execution limit fail midway and leave partial folders behind. The fixes in “The Link You Followed Has Expired” cover this.
- Don’t refresh during an install. Closing the tab or hitting refresh mid-install is a classic way to get a half-installed folder.
- Test big updates on staging. A WordPress staging site lets you try a ZIP replacement without risking the live site.
The Bottom Line
“Destination folder already exists” is WordPress protecting your files, not a sign your site is broken. If WordPress offers “Replace current with uploaded,” use it. If it doesn’t, the existing folder is almost certainly a broken leftover: rename it, reinstall, then clean up. Take a backup first, and keep custom code out of plugin and theme folders so an overwrite never costs you anything.
Frequently Asked Questions
Upload the ZIP again and click “Replace current with uploaded” if WordPress shows it. If you only see the error, rename or delete the existing folder in wp-content/plugins or wp-content/themes using File Manager or FTP, then install the ZIP again.
No. Almost all WordPress plugin settings are stored in the database, not in the plugin folder, so replacing the plugin files keeps them. Only edits made directly to files inside that plugin’s folder are overwritten.
A failed install or an incomplete delete can leave a plugin folder on the server without its main plugin file, so WordPress doesn’t list it on the Plugins screen. The folder still blocks new installs until you remove or rename it in wp-content/plugins.
Deleting a plugin folder through FTP is safe if you back up first, and WordPress simply deactivates that plugin on the next page load. Renaming the folder instead of deleting it is the safer option, because you can rename it back if something goes wrong.
WordPress creates a second copy when the folder name inside the ZIP is different from the installed plugin’s folder, such as plugin-name-main instead of plugin-name. Rename the folder inside the ZIP to match the installed one, or deactivate and delete the duplicate copy.

Leave a Reply