14+ years building on WordPress / Replies in under 5 hours
Maintenance 11 min read · Updated October 2026

How to Update WordPress Plugins (Dashboard, Manual & WP-CLI)

Photo of Ajay Khandal
Ajay Khandal
WordPress Developer
How to Update WordPress Plugins Manually (Step-by-Step Guide)
TL;DR

To update a WordPress plugin, take a backup, then click "update now" next to it on Plugins > Installed Plugins. If the dashboard can't do it, upload the new ZIP through Upload Plugin and choose "Replace current with uploaded", swap the folder over FTP, or run wp plugin update plugin-slug over SSH. If the update breaks something, reinstall the previous version or restore the backup.

There are six ways to update a WordPress plugin: the Plugins screen, a bulk update, per-plugin auto-updates, uploading the new ZIP file, swapping the folder over FTP or File Manager, and WP-CLI. The dashboard is the normal route. The others are for when it fails, when wp-admin is down, or when a premium plugin won’t update.

This guide walks through each method, then covers checking the site, rolling back, and fixing an update that fails halfway.

What should you do before updating WordPress plugins?

Before updating any WordPress plugin, take a fresh backup and read the changelog. The backup is your undo button. The changelog tells you whether the release is a small fix or a major version that changes data, raises the PHP requirement or needs other plugins updated with it. Big releases go to staging first.

Every plugin in the WordPress.org directory has a changelog on its plugin page. Scan it for phrases like “breaking change”, “minimum PHP version”, “requires WooCommerce” or “database update”. For premium plugins, the changelog is usually in the vendor’s account area or on their release notes page.

Then run a backup now and wait for it to finish. A scheduled backup from 20 hours ago doesn’t help if the update breaks the site an hour later and an order came in between. Confirm the backup file reached remote storage before you continue.

For plugins that change the database, such as WooCommerce, membership and LMS plugins, test on a copy of the site first. Here is how to create a WordPress staging site if you don’t have one. Which order to run core, plugin and theme updates in, and how often, is covered in my guide to WordPress update best practices. This post sticks to the plugin steps.

How do you update WordPress plugins from the dashboard?

To update a plugin from the dashboard, go to Plugins → Installed Plugins, find the plugin with a “There is a new version available” notice and click “update now”. WordPress downloads the new version, swaps the files and confirms when it is done. Dashboard → Updates also lists every pending update on one screen.

  1. Go to Plugins → Installed Plugins.
  2. Find the plugin with the update notice under its row. Click “View version details” if you want the changelog.
  3. Click “update now” and wait for the confirmation before you start the next one.
  4. Load the front end and check the feature that plugin provides.

Updating one plugin at a time is slower, but when something breaks you know exactly which update did it.

Updating several plugins at once

The WordPress plugin documentation describes two bulk routes. On the Plugins screen, click the “Update Available” filter, tick the plugins, choose Update from the Bulk Actions menu and click Apply. Or go to Dashboard → Updates, tick the plugins and click Update Plugins. I bulk update on staging and go one by one on live.

When the update link is missing or fails

  • WordPress asks for FTP details: it can’t write to the plugin folder. On a VPS where the web server user owns the files, adding define( 'FS_METHOD', 'direct' ); to wp-config.php fixes this. On shared hosting, ask the host to correct file ownership instead.
  • No update shows for a premium plugin: the licence key isn’t active on this site. See the premium plugins section below.
  • The notice says the update doesn’t work with your version of WordPress or PHP: the new release needs a newer version than your site runs. Update core or PHP first.

How do you turn on automatic updates for one plugin?

Since WordPress 5.5, each plugin has its own auto-update switch. On Plugins → Installed Plugins, click “Enable auto-updates” in the Automatic Updates column for that plugin, or tick several and use the bulk action. WordPress checks twice a day and emails you after each auto-update attempt.

The auto-updates documentation notes that these runs depend on WP-Cron, so a low-traffic site can run them late. Since WordPress 6.6, an auto-update that causes a PHP fatal error is rolled back automatically. A broken layout or checkout is not, so I leave auto-updates off for WooCommerce, page builders and anything that changes database tables.

Over SSH, the same switch is one command:

wp plugin auto-updates enable akismet
wp plugin auto-updates status --all

How do you update a WordPress plugin manually by uploading a ZIP?

To update a plugin manually without FTP, download the new version’s ZIP, go to Plugins → Add Plugin → Upload Plugin, choose the file and click Install Now. WordPress spots the copy already installed, shows a table comparing the two versions, and offers “Replace current with uploaded”. Click it to finish the update.

This upload-to-replace option arrived in WordPress 5.5, as the 5.5 developer notes describe. It is the easiest manual method for premium plugins and for sites where the automatic updater keeps failing.

  1. Download the new ZIP from the plugin’s WordPress.org page or your account on the vendor’s site. Don’t unzip it.
  2. Go to Plugins → Add Plugin and click Upload Plugin at the top.
  3. Choose the ZIP and click Install Now.
  4. Check the comparison table shows the version you expect, then click “Replace current with uploaded”.
  5. Go back to Installed Plugins and confirm the new version number. The plugin stays active.

The ZIP must contain the same folder name as the installed plugin. If the vendor’s file is named something like plugin-name-2.4.1.zip with a matching folder inside, WordPress may install it as a second copy. In that case, use the FTP method and rename the folder.

How do you update a WordPress plugin via FTP or File Manager?

Use FTP or your host’s File Manager when wp-admin is down or the dashboard updater keeps failing. Download and unzip the new version, rename the current plugin folder in /wp-content/plugins/ as a fallback, upload the new folder with the original name, then check the plugin is still active.

With an FTP client such as FileZilla

  1. Download the plugin ZIP and extract it on your computer. You need the plain plugin folder. A ZIP nested inside the download won’t upload correctly.
  2. Connect with the SFTP or FTP details from your host and open /wp-content/plugins/.
  3. Rename the current folder, for example contact-form-7 to contact-form-7-old. That copy is your rollback.
  4. Upload the new contact-form-7 folder.
  5. Open Plugins → Installed Plugins and check the version number. WordPress records active plugins by folder and file name, so a folder with the original name stays active.
  6. Once the site checks out, delete the -old folder.

Don’t leave the old copy on the server. It is outdated code, quite possibly with the very vulnerability the update fixed, and its files can still be requested directly.

With cPanel or Plesk File Manager

In cPanel, open File Manager and go to public_html/wp-content/plugins/. Right-click the plugin folder and choose Compress to keep a ZIP backup, then rename the folder with -old on the end. Upload the new ZIP into the same directory, right-click it and choose Extract. In Plesk, the same steps run from Files → httpdocs/wp-content/plugins/.

After extracting, check the structure. WordPress expects /wp-content/plugins/plugin-name/plugin-name.php. If you see a folder like plugin-name-2.4.1 or a nested folder inside the plugin folder, rename or move it so the main PHP file sits one level down.

How do you update WordPress plugins with WP-CLI?

With SSH access, WP-CLI updates plugins from the command line. Run wp plugin list --update=available to see what is pending, wp plugin update plugin-slug for one plugin, or wp plugin update --all for everything. Add --dry-run to preview and --exclude to skip plugins you want to test separately.

# See which plugins have updates
wp plugin list --update=available

# Preview without changing anything
wp plugin update --all --dry-run

# Update one plugin
wp plugin update contact-form-7

# Update everything except WooCommerce
wp plugin update --all --exclude=woocommerce

# Only take patch releases (1.3 to 1.3.3, never 1.4)
wp plugin update --all --patch

# Check plugin files match the WordPress.org release
wp plugin verify-checksums --all

Every option above is listed in the wp plugin update reference. The command switches on maintenance mode while it runs and prints a table of old and new version numbers, which I paste into the site’s update log. Run wp --version first to confirm WP-CLI is installed. Most managed WordPress hosts include it.

How do you update premium plugins that need a licence key?

Premium plugins update through the vendor’s own server, so the dashboard only shows their updates after you enter an active licence key, usually on the plugin’s settings or licence page. If the licence has expired or the site’s URL changed, download the latest ZIP from your account on the vendor’s site and upload it instead.

Watch for these cases:

  • A staging or development copy may need its own licence activation, or the vendor may ignore staging domains. Check their licence terms before you test there.
  • Plugins bundled with a theme often only update when the theme author ships a new bundle. If the bundled copy lags behind, buy a direct licence or ask the theme author.
  • Over SSH, install a downloaded ZIP over the current version with wp plugin install /path/to/plugin.zip --force.

What should you check after updating a plugin?

After updating a plugin, load the site in a private browser window and test whatever that plugin does. A form plugin means submitting a real form and checking the email arrives. A WooCommerce update means placing a test order. Then open the browser console for JavaScript errors and check wp-admin for new notices.

  • Look at the homepage, one inner page and every page that uses the plugin.
  • Open DevTools → Console. Front-end breakage from a plugin update almost always shows up there as an error.
  • Run any “database update required” prompt the plugin shows. WooCommerce and some form plugins ask for this after major releases. You already have a backup.
  • Clear the page cache and CDN so visitors get the new scripts and styles.

If something is broken but the cause isn’t obvious, two plugins may be clashing. My plugin conflict diagnosis guide covers the deactivate-and-bisect method for finding which pair is the problem.

How do you roll back a WordPress plugin update?

To roll back a plugin, install the previous version over the new one. Download it from the plugin’s WordPress.org page under Advanced View, then upload it with “Replace current with uploaded”, or run wp plugin install plugin-slug --version=X.Y.Z --force over SSH. Restoring your pre-update backup is the safer route if the update changed the database.

  1. Open the plugin’s page on WordPress.org and click Advanced View.
  2. Scroll to Previous Versions, pick the version you were on and download it.
  3. Upload it through Plugins → Add Plugin → Upload Plugin and click “Replace current with uploaded”. Or, over FTP, swap the folder as described above.
  4. Check the version number on Installed Plugins and retest the site.

Over SSH, the --version and --force options on wp plugin install do the same thing in one step:

wp plugin install contact-form-7 --version=5.9.5 --force

For premium plugins, the vendor’s account area usually keeps older releases. Be careful with major versions that migrated data: the older code may not understand the new database structure. In that case restore the full backup from before the update.

WordPress also has a safety net of its own. Since 6.3, if a manual update fails during install, the previous copy is moved to wp-content/upgrade-temp-backup/ and put back automatically, as the 6.3 rollback dev note explains. It only covers updates that fail to install, so it won’t help when the new version installs fine but breaks something.

How do you fix a failed WordPress plugin update?

A failed plugin update usually leaves the site stuck on “Briefly unavailable for scheduled maintenance”, shows a critical error message, or leaves a half-copied plugin folder. Each one has a quick fix you can do over FTP or File Manager without restoring the whole site. Start with whichever message your visitors are seeing.

Stuck in maintenance mode

WordPress creates a .maintenance file in the site root during updates and deletes it when they finish. If the update was interrupted, the file stays and every visitor sees the maintenance message. Delete .maintenance from the root folder (it is a hidden file, so turn on “show hidden files” in your FTP client), or run wp maintenance-mode deactivate. According to the wp_is_maintenance_mode() reference, WordPress also ignores the file once it is more than 10 minutes old. The maintenance mode fix guide has the full steps.

“There has been a critical error on this website”

This is a PHP fatal error, usually from the plugin you just updated. Since WordPress 5.2, fatal error recovery mode emails the site’s admin address a special login link. Use it to log in with the faulty plugin paused, then deactivate it or roll it back. If the email never arrives, rename the plugin’s folder over FTP (for example akismet to akismet-disabled). WordPress can no longer find it and deactivates it on the next page load. My white screen of death guide covers the cases where renaming one folder isn’t enough.

The plugin vanished or is half-installed

If the update stopped partway, the plugin folder may be missing or incomplete. Upload a clean copy of the version you want using the FTP steps above. Then find out why it failed: a full disk and wrong file permissions are the usual causes, and both will break the next update too.

If the update corrupted data or broke checkout and putting the old files back doesn’t fix it, my WordPress bug fix and rescue service handles same-day repairs.

Frequently asked questions

No. The dashboard updater, the ZIP upload and WP-CLI all replace the files while the plugin stays active, and WordPress keeps it active afterwards. Over FTP, keeping the original folder name keeps it active too. The exception is a plugin whose changelog tells you to deactivate first, which is rare and usually tied to a major version with a database change.

The usual causes are file permissions, where WordPress asks for FTP details because it can't write to the plugins folder, an inactive licence key on a premium plugin, or a new release that needs a newer WordPress or PHP version than your site runs. Fix the cause, or upload the new ZIP through Upload Plugin and choose Replace current with uploaded.

On the Plugins screen, click the Update Available filter, tick every plugin, choose Update from Bulk Actions and click Apply. Dashboard > Updates has the same option. Over SSH, run wp plugin update --all. Bulk updates are fine on staging, but on a live site I update one plugin at a time so I know which one caused a problem.

wp plugin update is the WP-CLI command that updates plugins from the command line. Give it a plugin slug to update one plugin, or --all to update every plugin with a pending release. It puts the site in maintenance mode while it runs and prints a table of old and new versions. Options include --dry-run, --exclude, --minor and --patch.

For small plugins on a simple site, yes, as long as you take a fresh backup first and update one plugin at a time. For WooCommerce, page builders, membership plugins or any major version that changes the database, test on a staging copy first. A broken checkout on a live store costs far more than a staging test.

Normally no. Plugin settings and content are stored in the database, and an update only replaces the plugin's files. What you do lose is any change someone made directly to the plugin's PHP, CSS or JavaScript files, because the new files overwrite them. Move customisations into a child theme or a small custom plugin before you update.

Photo of Ajay Khandal

Written by Ajay Khandal

I'm a freelance WordPress developer with 14+ years of experience building, fixing, and speeding up sites for businesses, agencies, and store owners across the US, UK, Europe, and Australia. I specialize in custom themes, WooCommerce, and performance, the kind of work that shows up as faster load times and fewer support tickets. You work directly with me, and replies typically arrive within 5 hours.

Work with me →