I have a WOrdPress site that a client wants to go ahead and launch the site while under development onto there live domain and web hosting account. The catch is that they want all visitors to see a fake homepage.

They can then either enter a password on this placeholder homepage or possible detect based on their IP in either case they would instead see the WordPress site that is being developed.

I am thinkig that this is likely fairly easy but was curious as to how others would go about doing it or maybe there is a simple plugin already?

Some ideas I have are to use the .htaccess file and based on IP, redirect them to the placeholder page if there IP is not in a list. Same could be done from the index PHP file. Same idea would also work but using a password which would then set a cookie or session variable.

Just looking for ideas from other on how they would do this and perhaps there is some more clever way out there?

Another idea I just thought of is I have used a plugin before which allows admin users to use a different Theme than a guest user on the WordPress site. With this method, logged in user could see the live under development site and a guest could be shown a theme that does not show any post or pages and has just basic HTML of the content we want to show guest users! I think I really like this idea as it does not require changing any code and when we go live we simply set guest to view the new theme.

4 Answers 4


I really don't see the point of "launching" a website that is still in development, only to be seen by the developers and the client. By all definitions, that's not 'launching a website' :)

If the client can accept the fact that the website is still in development and the launch part takes place only after the website is ready and can be seen by everyone, I would recommend to setup a simple landing page on the root domain, continue to develop the website on a sub-domain / folder and protect it by a password (either with htaccess/htpasswd or using a plugin). This setup also prevents the errors and other development issues that might arise (unlikely, but still possible) to be seen by the regular users of the website. It's also very easy to modify the Site URL afterwards so that the new site will replace the root landing page.

And to answer your original question, I would choose the plugin option, for its ease of use.


For this purpose I use one of two methods.

(1) use a subdomain routed to and a separate VPS. For example development.domain.com.

(2) Use a completely separate domain such as www.domainsandbox.com

You could use a header in the index.php file based on if the user is logged in or not.

if (!is_user_logged_in()) header ("Location: development.domain.com")

There are quite a few plugins that provide this kind of pre-launch functionality, search for "maintenance mode" or "coming soon" in the WordPress plugins directory and you'll find quite a few with varying levels of functionality.


Hiding your website can be done easily with the right methods. Besides modifying .htaccess file to block your visitors' IP addressed, you can set a password for directories in cPanel’s Password Protected Tool. Your audiences have to enter a proper username and a password in the pop-up login form to view the under development site.

Out of the box, for your question, I highly recommend adding a plugin.

You can install a maintenance mode and coming soon page plugin. This plugin allows you to show a user-friendly notice for your visitors that you’re constructing the site and that it will be ready soon.

A password protection plugin would be worth your consideration as well. By installing the plugin, your visitors have to enter a password to access your under development website. It's simpler than cPanel’s Password Protected Tool due to the elimination of username. Some password protection plugins like Password Protect WordPress offer more advanced features. For example, admins and other roles such as editors and authors are can access the site directly without entering the password.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.