Free tools Windows power users keep installed
One-click scans. No signup required.
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.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
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.
- Make a current backup. Keep both the database and the
wp-contentfiles, especially before deleting, renaming, reinstalling, or replacing a plugin. WordPress.org’s plugin-management guidance explicitly recommends a current backup before updating. - 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.
- 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.
- 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.
- 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.
#1 Best Overall
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.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteValidate 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
- Download the plugin from the official WordPress directory or the vendor that supplied your license.
- 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.
- 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.
- 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.
Rank #2
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.
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
- 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. - Check available disk space and the hosting account’s inode or file-count quota. A full account can look like a permissions error.
- 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.
- 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.
Recommended Free Tools
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
- Schedule a maintenance window and make a backup.
- 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.
- Retry the installation or update once.
- If it succeeds, reactivate plugins one at a time. After each activation, revisit the failing operation and check the PHP and web-server logs.
- 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.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Check the policy controls
- Look in Plugins > Installed Plugins for the automatic-update control on a supported WordPress version.
- Inspect
wp-config.phpfordefine( '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.
Rank #4
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.
- Confirm that no update, backup restore, deployment, or host maintenance job is still running.
- Address the original failure first or at least record it. Removing the lock does not repair a failed download, wrong ownership, or incompatible package.
- Using SFTP, FTP, or the host file manager, open the WordPress root—the directory that contains
wp-admin,wp-includes, andwp-content. - Delete only the
.maintenancefile, then reload the site. - 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.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →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.
- Record the current plugin version and deactivate the plugin if its documentation recommends doing so.
- Download the matching ZIP from the official directory or trusted vendor and verify that it is not nested inside another archive.
- 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.
- 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.
- Activate the plugin and test its key feature, the front end, the administration area, and any integrations it controls.
- 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.
Best Value
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.
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.
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.
Quick Recap
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.




