wordpress stuck in maintenance mode how to restore the site — if you landed here, your site is probably showing the maintenance message after an update and you need to bring it back online quickly and safely.
This article explains what maintenance mode means, why WordPress sometimes gets stuck, and gives a clear, step-by-step recovery plan. I start with low-risk quick fixes you can try immediately, then explain deeper troubleshooting and when to stop and call a developer. Back up your site before making changes — that’s the single most important rule.
Table of contents
- Introduction
- What Causes WordPress To Be Stuck In Maintenance Mode
- Quick Safe Fix: Delete .maintenance File
- If Deleting The .maintenance File Doesn\'t Work
- Restore From Backup And Check File Permissions
- Debugging Update Failures
- Preventing Maintenance Mode Problems
- When To Stop DIY And Get Professional Help
- Checklist: Quick Troubleshooting Steps
- FAQ
- Conclusion And Next Steps
Introduction
What This Article Covers
This guide helps you recover a WordPress site that is stuck showing the maintenance message after an update. You will get practical instructions for safe, low-risk fixes, followed by deeper troubleshooting if needed. I assume you have basic access to your hosting control panel, FTP/SFTP, or SSH. Wherever possible I recommend backing up and working on staging.
What Maintenance Mode Means
When WordPress updates core, plugins, or themes it creates a temporary file named .maintenance in your site's root directory and shows a simple maintenance message to visitors. Normally the file is removed when the update finishes. If something interrupts the process the file can remain, leaving the site in maintenance mode.
Why Sites Get Stuck
- Update process interrupted (browser closed, network error, or server timeout)
- Large updates on low-resource hosting where PHP processes time out
- Conflicting plugins or theme code that prevents the update script from finishing
- Hosting automatic update processes or cron jobs that overlap
Back Up Your Site First (Important)
Before you change files or run rollbacks, create a full backup of both files and the database. Use your host backup tool if available, or download files via SFTP and export the database via phpMyAdmin or a plugin. If a fix makes things worse you must be able to restore the original state.
What Causes WordPress To Be Stuck In Maintenance Mode
Interrupted Core Or Plugin Update
Most stuck maintenance issues happen because the update was interrupted. WordPress writes a .maintenance file then runs update routines; if PHP crashes or the connection drops, the cleanup step may not run.
Large Updates Or Low Server Resources
On low-memory or low-timeout hosting, large plugin or theme packages can exceed execution limits. The update script may time out before removing the .maintenance file.
Conflicting Plugins Or Themes
A plugin or theme with buggy update hooks or fatal errors can halt execution. If an update triggers a PHP fatal error, WordPress doesn't complete the normal cleanup.
Hosting Update Processes And Cron Jobs
Some hosts run automatic updates or maintenance tasks. Overlapping processes can leave temporary files. Also, configuration differences between shared hosting and managed WordPress hosts change how long scripts can run and how updates are managed.
Quick Safe Fix: Delete .maintenance File
What The .maintenance File Is
The .maintenance file is a small PHP file WordPress places in the site root during updates. It tells WordPress to show a temporary maintenance message. Deleting this file is safe in most cases and often restores normal operation immediately. Always back up first.
Step By Step: Delete Using Hosting File Manager
- Log in to your hosting control panel (cPanel, Plesk, or your host portal).
- Open the File Manager and navigate to the WordPress root (usually public_html or a folder matching your site).
- Look for a file named .maintenance. It may be hidden — enable "show hidden files" if the file manager has that option.
- Select the .maintenance file and choose Delete.
- Clear any server or CDN cache and reload your site in a private browser window.
Step By Step: Delete Using FTP Or SFTP
- Open your FTP/SFTP client (FileZilla, Cyberduck, etc.) and connect with your credentials.
- Navigate to the WordPress root folder (the same place as wp-config.php).
- If you don\'t see .maintenance, enable showing hidden files in the client.
- Download a copy of .maintenance for backup, then delete it from the server.
- Reload the site in a browser and clear caches if needed.
Step By Step: Delete Using SSH (For Advanced Users)
- Connect via SSH: ssh username@server
- Change to your site directory: cd /path/to/public_html
- List files: ls -la to confirm .maintenance exists.
- Make a backup copy: cp .maintenance .maintenance.bak
- Remove the file: rm .maintenance
- Exit and check the site. If there's a problem, restore the backup copy with mv .maintenance.bak .maintenance
When This Fix Works And When It Doesn't
Deleting .maintenance resolves the problem when the site is otherwise healthy and the only issue is the lingering file. If updates partially applied files or a plugin caused fatal errors, the site may still be broken after removing the file. If the site fails to load or shows PHP errors after this step, stop and follow the restore and debugging steps below.
If Deleting The .maintenance File Doesn\'t Work
Check For Partial Or Stuck Update Files
Look in wp-content/plugins and wp-content/themes for folders with recent modification times. A plugin folder may be incomplete (missing files) or contain temporary files. If you find an incomplete plugin update, rename the plugin folder to disable it temporarily (for example, add -disabled) and check the site.
Clear Server, CDN, And Browser Caches
Caches can continue to show the maintenance message even after .maintenance is removed. Clear any server cache (Varnish, host cache), purge your CDN (Cloudflare or other), and load the site in a private browser tab. If you use a caching plugin, clear its cache too.
Temporarily Disable Auto Updates
If automatic updates are repeatedly failing, disable them temporarily by adding or setting constants in wp-config.php. Edit wp-config.php and add: define('AUTOMATIC_UPDATER_DISABLED', true); This stops background updates while you diagnose. Remember to re-enable once resolved.
Look For Locked Or Corrupted Plugin Files
On some hosts file locks or disk issues can prevent updates. Check disk usage and file system health in your hosting control panel. If a file is corrupted, replace it from a fresh plugin or theme zip. When replacing files, take care to keep configuration files intact.
Restore From Backup And Check File Permissions
How To Restore A Recent Backup Safely
- Locate a recent backup that predates the failed update.
- Restore files and database using your host's restore tool, or upload files via SFTP and import the SQL dump via phpMyAdmin.
- After restore, check the site in a private browser window. If the site is back, apply updates one at a time on a staging environment first.
Check And Fix File And Folder Permissions
Incorrect permissions can prevent WordPress from writing or deleting files. Typical permission settings are 755 for directories and 644 for files. If you have SSH access you can fix permissions carefully. Be cautious: incorrect ownership or overly permissive settings create security risks.
Set Correct File Owner And Group (Hosting Examples)
On shared hosting the webserver user (www-data, nobody, or a user-specific account) should own files. If you have SSH access and know the correct user, you can use chown to set ownership: chown -R username:group /path/to/site. If you are unsure, contact your host — incorrect chown commands can lock you out.
Rollback Plugins Or Themes If Needed
If a specific plugin or theme update caused the problem, replace the updated version with the previous working version. Many plugin developers provide previous versions for download. Perform rollbacks on staging first and test before applying to production.
Debugging Update Failures
Enable WP_DEBUG Safely
Turn on debugging in wp-config.php but keep it set to log-only on production sites. Add or update these lines:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
After reproducing the error, check the debug log at wp-content/debug.log for messages. Turn debugging off after you gather logs to avoid exposing errors to visitors.
Check PHP And Web Server Error Logs
Server error logs often show PHP fatal errors, memory limits, or permission problems. Access logs via your hosting control panel or ask your host for recent PHP and webserver logs. Look for fatal errors that reference plugin files or database connection issues.
Reproduce The Issue On A Staging Site
Clone the site to staging and run updates there. Staging lets you test without breaking production and helps isolate the failing plugin or theme. If the failure reproduces on staging, you can try different versions or debug with error display enabled.
Test Plugin And Theme Updates One At A Time
Update plugins and themes individually on staging. This approach helps identify which update triggers the failure. Once you find the culprit, check the plugin's changelog or support forum for known issues.
Preventing Maintenance Mode Problems
Use Reliable Hosting And Adequate Resources
Choose a host that supports your site's traffic and resource needs. Managed WordPress hosts often handle updates and provide safer update environments and larger execution limits.
Use Staging For Major Updates
Always test major plugin, theme, or core updates on staging. Staging environments reduce downtime risk and let you troubleshoot without affecting live visitors.
Update Plugins And Themes One At A Time
Updating one extension at a time makes it easier to identify problems and reduces the chance of multiple updates colliding or exhausting server resources.
Use A Maintenance Plugin With Safe Settings
If you use a maintenance plugin, choose one that creates reversible, well-documented maintenance states rather than relying solely on the WordPress .maintenance file. Maintenance plugins often use rewrite rules or database flags and provide an admin override.
Schedule Automatic Backups Before Updates
Have automated backups run before scheduled updates so you can always roll back to a known-good state if something fails.
When To Stop DIY And Get Professional Help
High Risk Situations To Avoid
- Site displays PHP fatal errors, database errors, or a white screen of death after removing .maintenance
- You cannot access the hosting control panel or do not have an adequate backup
- Unfamiliar with SSH, database import/export, or file ownership and permissions
- Site is ecommerce or high revenue and you need guaranteed quick recovery
What Information To Prepare Before Contacting A Developer
Provide the developer with:
- Hosting provider and level of access you have (cPanel, SSH, SFTP)
- Recent changes: plugin/theme updates, new plugins, or hosting changes
- Time and date the problem started and any recent error messages or screenshots
- Access to a backup or confirmation that a backup exists
- Any logs you collected (wp-content/debug.log and server error logs)
If you prefer professional help, Ask Ahmed to diagnose your WordPress issue — provide the items above to speed diagnosis.
Checklist: Quick Troubleshooting Steps
Immediate Safety Steps
- Create a full backup of files and database before changing anything.
- Use a private browser window to check results.
- If possible, work in staging rather than production.
Fast Fixes To Try In Order
- Delete the .maintenance file (hosting file manager, FTP, or SSH).
- Clear server, CDN, and browser caches.
- Check wp-content/plugins and themes for incomplete updates; rename offending folders to disable them.
- Enable wp debugging to collect logs (log only on production).
- If the site is still broken, restore a recent backup and try updates on staging.
If The Site Is Still Down
- Gather error logs and recent change notes.
- Contact your host for server-side logs, disk, and process status.
- Consider professional help to avoid extended downtime or data loss.
FAQ
What does "WordPress maintenance mode" mean?
It means WordPress has created a temporary file to display a maintenance message during updates. The file should be removed automatically when the update finishes.
Why did my site get stuck in maintenance mode after an update?
Usually because the update was interrupted by a timeout, network error, or a PHP fatal error from a plugin or theme. The cleanup step that removes .maintenance did not complete.
Is it safe to delete the .maintenance file?
Yes, deleting .maintenance is safe in most cases and is the first recommended step. Back up first so you can recover if the update partially applied and caused other issues.
How do I delete the .maintenance file if I only have FTP access?
Connect with an FTP client, enable viewing hidden files, navigate to the WordPress root, download a copy for backup, then delete .maintenance. Reload the site after clearing caches.
What should I do if deleting .maintenance doesn't fix the problem?
Check for partial update files, clear server/CDN caches, enable WP_DEBUG to collect logs, and consider restoring a recent backup. If you see PHP errors, stop and gather logs for a developer.
Can a caching plugin or CDN cause the maintenance page to persist?
Yes. Server caching, caching plugins, and CDNs can continue to serve the maintenance response after the .maintenance file is removed. Purge caches to ensure the updated response is served.
Will enabling WP_DEBUG help me find the problem?
Enabling WP_DEBUG with logging (WP_DEBUG_LOG) can reveal fatal errors and warnings that occurred during updates. Keep display disabled on production to avoid exposing errors to visitors.
How do I restore my site from backup if an update failed?
Use your host restore tool or upload the files and import the database dump. After restore, check the site and perform updates on staging first. Keep a copy of the failed update files for diagnosis if needed.
When should I stop troubleshooting and hire a developer?
Hire help if the site shows fatal errors, you lack backups or access, or the site is business-critical and downtime must be minimized. A developer can gather logs, repair files, and restore service quickly and safely.
What information should I provide to a developer to diagnose the issue?
Provide hosting access level, recent changes, error logs, backup details, and exact timings. This helps a developer reproduce and fix the issue faster.
Conclusion And Next Steps
Summary Of Recommended Fixes
Start by backing up. Delete the .maintenance file using your hosting file manager, FTP, or SSH. Clear caches and check the site. If the problem persists, check for incomplete updates, enable safe logging, and restore a backup if necessary. Test updates on staging going forward.
Primary Next Steps
- Create backups and attempt the .maintenance deletion steps.
- Collect debug logs if the site still fails.
- If you can\'t recover quickly or the site shows errors, get professional help to avoid data loss or extended downtime.
If you need expert help diagnosing or fixing your site, Ask Ahmed to diagnose your WordPress issue or for long-term improvements Request a WordPress website quote. You can also email ahmed@studiosimpact.com or call +44 788 3180004.