This article explains how to splash a website while avoiding any SEO penalty in the process. It is intended for anyone acting in the role of web developer or web designer that uses WordPress. It covers splash pages for pre-launch and maintenance, and setting up a preview account for your client before the site is available to the public using a WordPress maintenance mode plugin.
There are many WordPress maintenance mode plugins out there, but I’m stuck on Maintenance Mode plugin by Michael Wohrer (right now its version 5.4). The reason I like this one so much is the ease-of-use and ability to produce custom branded splash pages for pre-launch and maintenance. It also features configurable access control so you can offer your client the means to preview the site while it is splashed to the public.
503 and Retry-After Preserve SEO
One of the main things you must do when your site is not available to the public for any reason (including pre-launch) is send out an HTTP 503 response to requests. This is super important because the HTTP 503 ‘Service Unavailable’ status in the HTTP response header tells Google and other bots not to downgrade you in search results just yet, preserving your SEO work.
- E-Code Studio
There is More to The Story
You also have to specify a “Retry-After” time in the response header, or your SEO work is likely just as doomed as if you responded with a full blown server error.
A 500 would indicate to search engines that the site is broken, which should be avoided to preserve your SEO work. You can’t risk allowing search engines to take on this interpretation of your 503, so you must also supply a Retry-After header in the response. Here are the controls you need to use with the Wohrer plugin:
Branded Splash Pages
The Wohrer plugin allows easy control of both the 503 and the Retry-After time, but also allows you to use custom branded splash pages. In your theme folder, place a 503.php file with the custom look and content for your splash event (pre-launch or maintenance). Then, set the Wohrer plugin to use it:
We recommend having at least two 503.php files ready to go – One for pre-launch and one for maintenance. The active file will always be named 503.php in your current theme directory. Unfortunately, you won’t have access to most WordPress functions in the 503.php (e.g. get_header, get_sidebar), but you do have access to constants (e.g. bloginfo). You can also still reference stylesheets and images, so a simple 503.php page is all you really need for a consistent, custom branded splash page.
You need to be able to allow your clients to preview your work before it goes public. This is where the Wohrer plugin and WordPress work wonders together. To set this up, you first create “preview” user account with the “subscriber” role. A user account with the “subscriber” role requires login, but only allows read access to the site. It also allows the user to update his own profile (color scheme, name, contact info, biographical info, and password via the toolbar). When setting up the “subscriber” user account, if you set the personal settings to not show the toolbar when viewing site (recommended), once they start viewing the site, they cannot see or access their profile until they log back in. Plus, the site looks more like it will for public users during their preview.
Next, setup access control using the Wohrer plugin. To set the site up so that the client can login and preview your work, set “Access to blog front-end with capability (role)” to subscriber. This allows “subscriber” accounts to login with a wp-admin URL and view the site. Here is the Wohrer Plugin control:
Instruct the client to visit the site using the wp-admin URL. Once they login, instruct the client to click “Visit Site” in the upper left on the toolbar (this will be initially visible). The client will have access to a full preview of the website even though you are sending a 503 with a Retry-After header to everyone else.
It’s important to note that the client will remain logged in as the “preview” user on future visits, without having to log back in, within 48 hours (or on browser close). However, it will be 14 days if they checked the “remember me” option on login. These time periods are controllable with another plugin. However, you can always just change the password on the “preview” user account, and change the access control on the Wohrer plugin back to Administrator. This way, the client can’t accidentally view the site while you are working on it, nor can any other “subscriber” role users you may have.