October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk12 min

Can’t Install or Update WordPress Plugins? Causes and Fixes

A practical troubleshooting guide for WordPress plugin installation and update failures, covering account access, ZIP compatibility, ownership, permissions, network errors, conflicts, cron, maintenance mode, and manual recovery.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Plugin installation and update failures usually come from one of seven layers: account access, an invalid or incompatible package, file ownership and permissions, network or DNS connectivity, plugin conflicts and resource limits, automatic-update or cron policy, or a stale maintenance lock. Read the exact error first, make a current backup, then test those layers in that order. The correct fix may be a plan change, a clean ZIP, a filesystem repair, a host-side network fix, or a controlled manual update—not simply entering FTP credentials.

Start with a safe, evidence-based triage

Do not repeatedly click Update while the cause is unknown. A failed write or interrupted update can leave a partial plugin directory, and removing files without a backup can turn a recoverable problem into data loss.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Make a current backup. Keep both the database and the wp-content files, especially before deleting, renaming, reinstalling, or replacing a plugin. WordPress.org’s plugin-management guidance explicitly recommends a current backup before updating.
  2. Copy the exact error. “Download failed,” “Could not create directory,” “The package could not be installed,” an FTP-credential prompt, and a timeout point to different layers. Note whether the failure affects one plugin or every plugin.
  3. Check the site’s health report. In the administrator area, open Tools > Site Health. Review critical issues, loopback tests, REST API errors, scheduled-event or cron warnings, PHP version notices, and any filesystem-related message.
  4. Confirm your access context. Verify the signed-in account, its role, the site URL, and whether you are working on WordPress.com or a self-hosted installation. A plugin-enabled plan and an administrator capability are separate requirements.
  5. Test one low-risk action. If a single plugin update fails, do not assume the whole site is broken. If every plugin fails, prioritize permissions, ownership, host policy, and connectivity.

Take a maintenance window if the site is busy. A plugin can be deactivated during testing, but visitors may see missing functionality until it is restored.

Check account, plan, and administrator permissions

On WordPress.com, plugin installation depends on the site’s plan and the permissions attached to the signed-in account. WordPress.com documentation lists insufficient permissions, an incompatible plugin, incorrect plan information, and other site errors as possible reasons the install control is unavailable or fails. Confirm that the account is on the intended site, has the required administrator-level capability, and that the plan actually permits plugins.

On a self-hosted site, confirm that your user has the WordPress install_plugins capability. A role-management or security plugin can remove capabilities that normally belong to administrators. If only one administrator cannot install plugins, compare that account with another known-good administrator before changing server files.

  • If the Add New Plugin screen is missing, investigate role, multisite restrictions, plan limits, and policy constants before touching file permissions.
  • On multisite, installation may be restricted to a network administrator even when a site administrator can activate plugins.
  • If the dashboard says the plan is incompatible, resolve the plan or account issue with the platform rather than trying to bypass it with FTP.

Permissions in the dashboard do not guarantee that the web server can write files. Once account access is confirmed, continue with the filesystem checks below.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Validate the plugin ZIP and compatibility

A manual upload must contain one plugin package in the format WordPress expects. A common mistake is uploading a ZIP that contains another ZIP, or a vendor download that contains documentation and several unrelated folders instead of the plugin’s actual directory.

Prepare a clean package

  1. Download the plugin from the official WordPress directory or the vendor that supplied your license.
  2. Keep the original ZIP intact until you have a backup and a recovery plan. Do not install a file whose origin or integrity you cannot verify.
  3. Inspect the archive locally. The plugin files should resolve to one plugin directory, not a ZIP nested inside another ZIP. The directory normally contains the plugin’s main PHP file and its metadata header.
  4. Check the plugin’s stated minimum WordPress and PHP versions, supported versions, and required extensions. A package can be valid yet incompatible with your site.

If WordPress reports that the plugin already exists, inspect whether the existing directory is a healthy copy, a partial upload, or a name collision. Back up first, then deactivate the plugin if possible. Rename the old directory or remove it only when you have a verified replacement and a way to restore the backup. Reinstalling over a damaged directory can preserve broken files.

Do not confuse a plugin’s data with its code. Deleting a directory may leave database settings behind, but that is not guaranteed for every plugin. Treat removal as destructive unless the plugin’s own documentation says otherwise.

Repair ownership and write access without weakening the site

Updates require WordPress to write to the plugin directory and to temporary upgrade locations. The WordPress hardening guidance states: “When you tell WordPress to perform an automatic update, all file operations are performed as the user that owns the files.” If files were copied by a different deployment account, extracted by a hosting panel, or restored from a backup with mismatched ownership, WordPress may be unable to replace them.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recognize a filesystem problem

  • “Could not create directory” usually means the target path is missing, not writable, or owned by another account.
  • “Files could not be copied” often indicates a non-writable destination, immutable file, quota limit, or ownership mismatch.
  • An FTP-credential prompt means WordPress cannot use direct filesystem writes under the current setup. Credentials may provide an alternate transport, but they do not correct wrong ownership or a host policy that blocks changes.

Check before changing permissions

  1. Use the hosting control panel’s file manager or an administrator shell to inspect the owner and group of wp-content, wp-content/plugins, and the temporary upgrade directory.
  2. Check available disk space and the hosting account’s inode or file-count quota. A full account can look like a permissions error.
  3. Compare the ownership of a working WordPress file with the files that fail to update. Mixed owners are a strong clue that different deployment methods have been used.
  4. Ask the host which account runs PHP and which account owns the site files. Those identities must be compatible with the host’s recommended WordPress configuration.

Correct ownership and permissions through the host panel or a privileged shell, following the host’s documented least-privilege model. Do not make the entire site world-writable as a shortcut. Broad write access increases the impact of a compromised process and can hide the underlying deployment error. On managed hosting, request a filesystem repair rather than applying an unknown recursive command.

If you do have shell access, record the current owner, group, and modes before changing them so the host can reverse the change. Test a single plugin update after the repair. A successful test confirms write access without requiring a full-site permission reset.

Fix download, DNS, and outbound connection failures

“Download failed,” name-lookup timeouts, and stalled package retrieval indicate that the server may not be able to reach WordPress.org or the plugin vendor. Your browser reaching the dashboard does not prove that the server can make outbound HTTPS requests.

  • Check whether the host can resolve DNS for the download domain and establish an outbound HTTPS connection.
  • Review firewall, Web Application Firewall, proxy, and security rules that could block WordPress update requests.
  • Inspect the host’s status page for an outage or a temporary network restriction.
  • Check the PHP error log and the web-server log for DNS, TLS, certificate, or connection-timeout messages.
  • If only one vendor’s package fails, verify that vendor’s service and download URL; if every plugin fails, suspect the host or network path.

Retry only after the network condition is corrected. Repeated retries during a DNS or firewall failure can leave incomplete temporary files and obscure the original error. If the host blocks outbound requests by policy, the host must allow the required destinations or perform the update for you.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Isolate plugin conflicts and resource limits

A timeout can occur when the server cannot complete the update within its available memory, execution time, or process limits. A conflict with another plugin can also break the update screen, the REST API, or an update hook.

Controlled conflict test

  1. Schedule a maintenance window and make a backup.
  2. Deactivate all nonessential plugins. Keep any plugin required for the maintenance window active only if disabling it would lock you out or remove a necessary security control.
  3. Retry the installation or update once.
  4. If it succeeds, reactivate plugins one at a time. After each activation, revisit the failing operation and check the PHP and web-server logs.
  5. When the error returns, leave the suspected plugin inactive and contact its author or your host with the exact error, versions, and log entry.

If the dashboard is inaccessible, standard plugins can be disabled temporarily by renaming wp-content/plugins through SFTP or the host file manager. This preserves the plugin files and database data while preventing normal plugins from loading. Must-use plugins in wp-content/mu-plugins are loaded differently and require a separate, host-assisted procedure; renaming the standard directory will not disable them.

Do not increase memory or execution limits blindly. First establish whether one plugin triggers the failure. If resource limits are genuinely exhausted, the host may need to raise the PHP memory limit, process limit, or timeout, or move the site to a plan with sufficient capacity.

Restore automatic updates, cron, and host policy

Plugin and theme automatic updates were introduced in WordPress 5.5. When enabled, WordPress.org documents that they normally run twice per day. The controls can be hidden or disabled by a host, a management plugin, a deployment policy, or a constant in wp-config.php.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check the policy controls

  • Look in Plugins > Installed Plugins for the automatic-update control on a supported WordPress version.
  • Inspect wp-config.php for define( 'AUTOMATIC_UPDATER_DISABLED', true );. That constant blocks plugin and theme installation and update functionality in the administration area.
  • Check whether a security, staging, or deployment plugin deliberately disables dashboard updates. Removing the control without understanding the deployment process can cause files to be overwritten later.
  • Ask a managed host whether updates are centrally controlled. A host policy may intentionally require updates through its own workflow.

Check WordPress Cron

Automatic updates depend on WordPress Cron. In Tools > Site Health, investigate scheduled-event failures, loopback errors, or a notice that cron is not running. A site with a disabled pseudo-cron, blocked loopback requests, or a broken server cron may show the update control but never execute the job.

Fix the scheduled-event or loopback problem first, then run one manual update and monitor the logs. Do not enable automatic updates on a production site that is managed by a separate deployment pipeline unless the owner of that pipeline approves the change.

Clear a stale maintenance lock safely

During an update, WordPress creates a file named .maintenance in the WordPress root. If the process fails, the file can remain and display a maintenance notice even though the update process has stopped.

  1. Confirm that no update, backup restore, deployment, or host maintenance job is still running.
  2. Address the original failure first or at least record it. Removing the lock does not repair a failed download, wrong ownership, or incompatible package.
  3. Using SFTP, FTP, or the host file manager, open the WordPress root—the directory that contains wp-admin, wp-includes, and wp-content.
  4. Delete only the .maintenance file, then reload the site.
  5. Retry the update after confirming the backup, package, and filesystem conditions.

If the notice returns immediately, another process may still be failing or recreating the file. Do not repeatedly delete it without checking logs and scheduled jobs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Use a manual update when the dashboard cannot write

A manual update is a fallback, not a substitute for fixing recurring ownership or policy errors. Keep the backup and use only a trusted plugin ZIP.

  1. Record the current plugin version and deactivate the plugin if its documentation recommends doing so.
  2. Download the matching ZIP from the official directory or trusted vendor and verify that it is not nested inside another archive.
  3. In Plugins > Add New Plugin, choose Upload Plugin, select the ZIP, and install it. If the dashboard cannot write files, use the host file manager or SFTP instead.
  4. For a file-manager or SFTP replacement, upload the new plugin directory beside the old one, preserve the backup, and follow the host’s documented replacement procedure. Do not overwrite a live directory blindly if an interrupted copy could leave mixed versions.
  5. Activate the plugin and test its key feature, the front end, the administration area, and any integrations it controls.
  6. Review logs and Site Health after the update. Keep the previous copy until the site has passed your verification window.

When the administrator area is unavailable, temporarily renaming wp-content/plugins disables standard plugins and can restore access for investigation. It does not disable must-use plugins, and it should be reversed promptly after identifying the cause.

Choose the repair method that fits your access and risk

Method Can it write under the current ownership model? Access required Rollback and auditability Compatibility checks and downtime
Dashboard update Only when the PHP process can write the required directories Administrator capability and a working dashboard Easy to record in update history; rollback depends on your backup WordPress performs its normal checks; usually the least disruptive option
Manual ZIP update Uses dashboard or host file access; it bypasses a broken dashboard path but not a host policy Administrator, file-manager, FTP, or SFTP access Good if the old copy and backup are retained; manual steps need a change record You must verify package structure and compatibility; schedule a maintenance window if replacing files
WP-CLI Runs as the shell user, so ownership and permissions still determine success Shell access and permission to run WordPress commands Commands are highly auditable; restore depends on a tested backup Useful for repeatable operations, but confirm dependencies and test on staging when possible
Host-assisted repair The host can correct ownership, quotas, firewall rules, cron, or policy Hosting support access Often provides the clearest record of server-side changes May require a scheduled window; best for managed or restricted environments

Use the dashboard when it works and the site is backed up. Choose a manual method when the dashboard cannot write but you have reliable file access. Use WP-CLI for repeatable, logged administration when you understand the shell user. Escalate to the host when the problem involves ownership, quotas, DNS, firewall rules, cron, or a managed policy.

Error-specific decision guide

“Could not create directory”

Check the target path, disk and inode quotas, owner, group, and write mode. Repair ownership through the host’s supported method, then test one update. Do not solve it by making every directory writable by everyone.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

WordPress keeps asking for FTP credentials

WordPress is falling back to an FTP transport because direct writes are unavailable. Verify the PHP process owner and file owner first. FTP credentials can work only when the account has permission to modify the target directories; they cannot override a read-only mount, a host restriction, or incorrect ownership.

“Download failed” or a name-lookup timeout

Investigate server-side DNS, outbound HTTPS, firewall and WAF rules, and the availability of the download service. A local browser test is not enough. Retry after the host confirms connectivity.

The update times out

Test with nonessential plugins deactivated, inspect memory and execution limits, and review logs. Reactivate plugins individually to identify a conflict. If the server cannot handle the workload, the host must address its resource limits.

The site is stuck in maintenance mode

Confirm that no update is still running, correct the underlying failure, and remove the root-level .maintenance file through SFTP, FTP, or the host file manager. Then retry once, with a backup.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prevent the next failed update

  • Keep WordPress core, PHP, and plugins within the versions supported by each plugin.
  • Maintain tested database and file backups, not merely an unverified backup job.
  • Use one consistent deployment owner and method so files do not alternate between a hosting panel, shell account, and PHP process.
  • Review Tools > Site Health regularly for cron, loopback, REST, PHP, and filesystem warnings.
  • Document which host policy or deployment system controls automatic updates before enabling dashboard auto-updates.
  • Stage major plugin changes when possible, and keep a maintenance window for plugins that alter database tables, caching, security rules, or public-facing features.
  • Keep a recovery path—host file manager, SFTP, or an equivalent administrative channel—available before starting an update.

The reliable sequence is simple: back up, read the exact error, verify account and plan access, check Site Health, test package compatibility, confirm ownership and connectivity, isolate conflicts, and only then choose a dashboard, manual, command-line, or host-assisted repair. That sequence fixes the layer that is actually failing instead of masking it with broader permissions or repeated retries.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.