WordPress Maintenance Mode: How to Set It Up and Customize It
What Is WordPress Maintenance Mode?

When you update a plugin, theme, or WordPress core, the system briefly shows a default maintenance message. It tells visitors you’re working on the site. That’s the built-in maintenance mode. It works, but it’s pretty bare-bones.
A proper WordPress maintenance mode setup replaces that default message with something more professional. It keeps visitors from navigating your site while you’re making changes, so they don’t see broken layouts or error messages. More importantly, it stops them from submitting forms or making purchases during a critical update.
Maintenance mode isn’t just about appearances. It’s a practical safeguard. Without it, someone could hit a database error while you’re running an update, and that broken page could end up cached or indexed. That hurts your site’s reliability and can affect SEO.
This guide covers the methods I’ve used across dozens of client sites. Whether you’re new to this or comfortable with code, you’ll find something that works for your setup.

When Should You Use Maintenance Mode?
You don’t need it for every tiny change. But in certain situations, it’s a must.
Plugin and Theme Updates
Major updates often change the database. If something goes wrong mid-update, your site could show errors for hours. Best for: any update that touches core files or the database. Minor updates like security patches are usually safe to run without it, assuming the plugin is well-coded.
Theme Changes
Switching themes or heavily modifying your current one can break layouts, menus, and custom post types. The site becomes a mess until you sort out style conflicts. Best for: activating a new theme, reshaping your header or footer, or swapping page builder templates.
Major Content Edits
If you’re redesigning your homepage or building new landing pages, maintenance mode keeps visitors from seeing half-finished pages. Best for: any front-end change you can’t stage behind a password or dev environment.
Site Migrations
Moving hosts or domains is risky. During migration, DNS propagates, databases sync, files move around. Without maintenance mode, visitors might hit a 500 error, a redirect loop, or a blank page. Best for: every migration, always.
Security Patches
Security updates are urgent, but if they break something, you’ll want visitors locked out while you fix it. Best for: critical patches that change the database or file system.
Warning: never leave maintenance mode on for long. Search engines may de-index your site, and visitors will think you’ve closed shop. Set a clear timeline and take it down once things are stable.

Method 1: Using a Dedicated Maintenance Mode Plugin
If you don’t want to edit code, a maintenance mode plugin is the fastest way to get a professional-looking page. I’ve used SeedProd on over twenty client sites. It’s reliable, easy to customize, and doesn’t conflict with most common plugins.
Step-by-Step Tutorial (Using SeedProd)
Step 1: Install and Activate the Plugin
Go to Plugins > Add New and search for SeedProd. Install and activate it. The free version is fine for basic setups. If you want a countdown timer or email signup forms, the paid version is worth it.
Step 2: Activate Maintenance Mode
After activation, you’ll see a new menu item called SeedProd. Click it, then enable maintenance mode. You’ll pick a template or start from scratch.
Step 3: Customize Your Page
SeedProd’s drag-and-drop builder is straightforward. Add your logo, a short message, and an estimated return time. You can add a countdown timer too. I’ve found that a simple line like “Site under maintenance. Back by 5 PM EST” works better than something vague like “Be right back.”
Step 4: Save and Preview
Save your page and open an incognito window to test it. If you see your custom page and the admin area still works, you’re good.
Tradeoff: Maintenance mode plugins add some bloat. They load scripts and styles even when not active. SeedProd is fairly lightweight, but if you’re running a lean site, the PHP or .htaccess method might be better. It’s a tradeoff between convenience and overhead.
Method 2: The .htaccess Approach (for Developers)
If you want minimal bloat and don’t mind editing server files, the .htaccess method is clean and effective. It redirects all traffic except your IP address to a static HTML page.
Step-by-Step Tutorial
Step 1: Create a Maintenance Page
Create an HTML file called maintenance.html and upload it to your site’s root directory. Keep it simple: a logo, a message, and an estimated return time. No need for complex styling.
Step 2: Add the Redirect
Open your .htaccess file (at the root of your WordPress install). Add this code at the top:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
RewriteCond %{REQUEST_URI} !/maintenance\.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif|css|js) [NC]
RewriteRule ^(.*)$ /maintenance.html [R=302,L]
Replace 123.456.789.000 with your actual IP address. You can find your IP by searching “what is my IP” in Google.
Step 3: Test It
Open an incognito window. You should see your maintenance page. Logged-in users (by IP) will see the site normally.
Step 4: Remove the Code When Done
Delete or comment out the code block when you’re finished. Leaving it will break search engine crawlers.

Tradeoff: No visual customization without editing HTML. You can’t easily add countdown timers or email signups without JavaScript. This method is best for developers who want a lightweight solution with zero plugin overhead. For editing .htaccess, a good code editor or FTP client is handy.
Method 3: Adding a Maintenance Mode Page with PHP
This approach adds a custom function to your theme’s functions.php file or a site-specific plugin. It’s more flexible than .htaccess because you can use WordPress functions for conditional logic.
Step-by-Step Tutorial
Step 1: Create a Maintenance Template
Create a file called maintenance-template.php in your theme directory. Add basic HTML with your logo and message. You can use WordPress functions like get_header() and get_footer() for consistency.
Step 2: Add the Function
Open your theme’s functions.php file or a custom plugin file. Add this code:
function custom_maintenance_mode() {
if ( is_user_logged_in() && current_user_can( 'administrator' ) ) {
return;
}
include( get_stylesheet_directory() . '/maintenance-template.php' );
exit;
}
add_action( 'template_redirect', 'custom_maintenance_mode' );
Step 3: Customize Access
The code above lets logged-in administrators bypass maintenance mode. You can change the capability check or add IP-based exceptions if others need access.
Step 4: Test It
Open an incognito window. Logged-out users should see your maintenance template. Administrators will see the normal site.
Comparison to .htaccess: The PHP method uses WordPress hooks, so it respects user roles and capabilities. It’s more flexible for sites with multiple admin users. But it loads more of the WordPress stack, so it’s slightly heavier. This method is best for advanced users building custom themes or handling complex access scenarios.
Customizing Your Maintenance Page: Key Elements
A good maintenance page does three things: informs visitors, sets expectations, and collects leads. Here’s what to include.
Clear Message
State what’s happening and when you’ll be back. “We’re updating our site to serve you better. Expected completion time: 2 hours.” Avoid vague phrases like “Be right back” — they sound unprofessional and don’t give visitors useful info.
Estimated Return Time
Give a specific timeframe. If you’re not sure, be conservative. “We’ll be back by 6 PM EST” is better than vague promises. Visitors appreciate knowing when to check back.
Contact Info or Email Signup
Add a simple email field so visitors can get notified when you’re back. This is especially useful for e-commerce sites where people might be ready to buy. If you don’t want to collect emails, at least provide a contact form or a note about social media updates.
Minimal Logo
Include your logo so visitors know they’re in the right place. Keep the design clean. No carousels, no complex animations. Just a logo, a message, and a call to action if you’re collecting emails.
How to Test Your Maintenance Page
Always test in an incognito browser window. Check that the page loads, the message is readable, and any forms work. If you have a staging environment, test there first. That way, if something breaks, your live site stays unaffected.
Common Mistakes to Avoid
After managing maintenance mode on dozens of sites, here are the mistakes I see most often.
Mistake 1: Forgetting to Deactivate After Updates
It’s easy to get distracted after a long update. You might leave maintenance mode on for hours or even days. This kills SEO because search engines get a 503 status or a redirect. Set a timer or schedule a reminder to turn it off once things are stable.
Mistake 2: Blocking Admin Access
Many maintenance mode plugins or custom code blocks all traffic by default. You need to whitelist your IP or allow admin access. Otherwise, you’ll lock yourself out of the admin panel and have to fix things via FTP. Always test that you can still log in before going live.
Mistake 3: Using a Generic Message
“We’ll be back soon” doesn’t help anyone. Visitors don’t know if you’ll be back in 10 minutes or 10 hours. Use specific language and include a timestamp. It’s a small change that builds trust.
Mistake 4: Leaving It On for Days
If your update takes longer than expected, remove maintenance mode temporarily or update the message with a new timeframe. Leaving it on for days looks unprofessional and hurts your site’s reputation. Search engines may treat it as a dead site.
Mistake 5: Not Having a Backup Plan
Before entering maintenance mode, take a full backup of your site files and database. If something goes wrong, you can restore quickly. A reliable WordPress backup solution can make this step easy.
Plugin Comparison: SeedProd vs. Maintenance by WebFactory vs. Elementor (Pro)
Each plugin has strengths and tradeoffs. Here’s how they compare.
SeedProd
SeedProd is my go-to for most client sites. It offers a drag-and-drop builder, dozens of templates, a countdown timer, and email integration. The free version is limited but functional. The paid version is affordable and includes features like coming soon mode and landing pages. Best for: site owners who want an easy, professional-looking page without coding. I’ve used it on over 20 client sites and never had compatibility issues.
Maintenance by WebFactory
This plugin is more minimal. It has a simple interface, basic customization options, and a few templates. It’s less bloated than SeedProd but also less flexible. Best for: small sites that only need maintenance mode occasionally. It’s lightweight and gets the job done.
Elementor (Pro)
If you already use Elementor for your site, you can create a maintenance page using its theme builder. The design flexibility is unmatched — you can use any Elementor widget, template, or popup. The tradeoff is that Elementor Pro is expensive if you only need it for maintenance mode. Best for: sites that already use Elementor Pro and want a unified design. Not worth buying just for maintenance mode unless you plan to use it for other features.

Recommendation
If you need a simple, reliable solution, SeedProd is the best all-around choice. For minimal setups, Maintenance by WebFactory works well. For design-heavy sites already using Elementor, stick with that.
How to Test Maintenance Mode Before Going Live
Testing is straightforward, but I’ve seen people skip it and regret it. Here’s how to do it right.
Step 1: Use an Incognito Window
Open a private browser window (Chrome Incognito, Firefox Private, etc.). Navigate to your site’s URL. If you’re logged into WordPress in your main browser, the incognito window will show the maintenance page.
Step 2: Test on Mobile
Open your site on a mobile device (or use browser dev tools to simulate mobile view). Check that the layout adjusts, text is readable, and any forms work.
Step 3: Verify Login Access
Navigate to your site’s /wp-admin URL. Make sure you can still log in. If you can’t, something’s wrong with your IP whitelist or role-based access.
Step 4: Check Non-Logged-in Users
Have a friend or colleague check the site without logging in. They should see the maintenance page, not any content.
Step 5: Use a Staging Site First
If you have a staging environment, test the maintenance mode setup there before applying it to your live site. This catches issues before they affect visitors.
Should You Use a Landing Page Builder for Maintenance Mode?
Some landing page builders like Beaver Builder or Divi can create maintenance pages. The advantage is design flexibility — you can use your existing builder’s widgets, including forms, countdown timers, and social icons.
Tradeoff: Landing page builders are heavier than dedicated maintenance mode plugins. They load additional scripts and styles, even if you only use a small portion of the builder’s features. For a simple maintenance page, this overhead is unnecessary.
Practical recommendation: If you already have a landing page builder installed and are comfortable with it, use it. The maintenance page will be a tiny fraction of your site’s total load. But don’t buy a landing page builder just for maintenance mode. A lightweight plugin like SeedProd is cheaper and more efficient.
What About Maintenance Mode for E-Commerce Sites?
E-commerce sites face unique challenges during maintenance. Every minute of downtime can cost sales. Plus, search engines may penalize product pages if they return 503 errors for a day.
Best Practices
WooCommerce-specific considerations: Use a custom maintenance page that disables checkout but still displays products. That way, visitors can browse but can’t add items to cart or complete purchases. This preserves SEO because product pages remain accessible.
SEO impact: If you must take the whole site offline, use a 503 header (which temporary maintenance mode should do by default). This tells search engines the site is temporarily down, not gone. Avoid 404 or redirect codes.
Customer trust: Include an email signup on your maintenance page so customers can get notified when you’re back. This keeps them engaged and reduces the chance they’ll go to a competitor.
Schedule carefully: If possible, run maintenance during off-peak hours. For most e-commerce sites, that’s late at night or early morning. Some plugins let you schedule maintenance mode for a specific time.
Frequently Asked Questions
Can I still access the admin area during maintenance mode?
Yes, as long as you’ve configured maintenance mode correctly. The best plugins allow admin access by default. For manual methods, you need to whitelist your IP address or user role. Always test this before going live.
Will maintenance mode affect SEO?
Only negatively if you leave it on for too long. Temporary use (a few hours) should not hurt your rankings, especially if you return a 503 header. This tells search engines the site is temporarily down. If left on for days, search engines may treat your site as inactive or permanently gone.
How long should I leave maintenance mode on?
As short as possible. A few hours is typical for most updates. If your changes take longer, remove maintenance mode temporarily or update the message with a new timeframe. Never leave it on for more than 24 hours without a good reason.
Can I schedule maintenance mode?
Yes, several plugins offer scheduling. SeedProd Pro has this feature, as do WooCommerce-specific plugins. Scheduling is especially useful for e-commerce sites that want to run maintenance overnight.
What happens if my maintenance mode breaks?
If visitors see an error page instead of your maintenance page, you’ve got a server configuration issue. Check your .htaccess file or plugin settings. Always have a backup plan (like an FTP client) to disable maintenance mode manually. If everything fails, you can delete the plugin via FTP or rename the plugin folder.

Final Thoughts
Maintenance mode is one of those small details that separates a professional site from an amateur one. It protects visitors from broken pages, preserves SEO, and shows you take your site’s reliability seriously.
The method you choose depends on your comfort level. For most users, a plugin like SeedProd is the safest and most efficient option. For developers, the .htaccess or PHP methods offer more control with less overhead.
The important thing is to actually use it. Don’t skip maintenance mode just because you think it’s unnecessary. One broken update without it can cost you visitors, sales, and search rankings.
If you’d like help setting up a custom maintenance mode plan for your site, feel free to contact us. We can also set up a maintenance schedule so you never have to worry about this again.
Have you run into any issues with maintenance mode? Let us know in the comments — I’d be happy to help you troubleshoot.