I have a running Wordpress site (3.9.6). Now a new theme should be used and for this theme also some customizations have to be made (content, some WP files like page.php and so on). Additionally, I have to update to Wordpress 4. All changes shouldn't be noticed by visitors or at least as small as possible. Before the site goes live also an editor should get access to edit and add content.

I think this should happen very often and I want to know how do you do that.

  • Should a completely new WP site be set up? Should this be done locally or in a subdirectory of the server?
  • Is it possible to work live on the current webserver in a preview environment?
  • Or is the only way to set up a XAMPP environment, import everything, make the changes, and finally upload it to the real server (including adaptions to paths and so on)?
  • Is the new theme and plugins you have on your site compatible with WordPress 4? If the plugins and theme are downloaded from WordPress.org then you can find such info in theme or plugin page.
    – emilushi
    Commented Jul 14, 2015 at 11:12
  • The new theme requires WP 4. Thats the main reason for the update. Which option is the best?
    – testing
    Commented Jul 14, 2015 at 11:25
  • I use XCLONER plugin first to make a site backup in any case, than i do everything on live server
    – emilushi
    Commented Jul 14, 2015 at 11:27
  • How do you work on the live server? Do you add the theme, switch to theme and make the adaptions? Then every user would see the errors/changes until you are finished with the adoptions.
    – testing
    Commented Jul 14, 2015 at 11:29
  • It depends from the theme and site, If the new theme is completely different from old one and if the site has continuous traffic than i clone the website to a new directory make changes than i change domain folder which is more quickly than cloning changes to the old site. But if the site doesn't have much traffic i do it on the existing folder.
    – emilushi
    Commented Jul 14, 2015 at 11:35

2 Answers 2


In this case i will do:

  • create a new folder inside website root folder (ex: mynewsite)
  • create a new db and import the old website db to it
  • copy old website files and folders to the new directory (mynewsite)
  • change db name, user etc in wp-config on mynewsite folder
  • define site url by adding to wp-config.php


after doing this visit http://youdomain.com/mynewsite and start making changes on it, after finishing with the changes you have to change your domain destination to the new directory mynewsite that you created and thats all.

  • You setup a Wordpress site in a subdirectory/subdomain or any url of your choice. So, the path structure is up to you. Add all the files and database info in this site. Activate the same plugins and themes.
  • Disable search engine indexing for this site.
  • Set up so that published posts and everything else on the live site are added automatically in this site periodically.

All the post link won't work for this site as new posts are added. If you want, you can also fix this, but that's not the real goal and extra work without any benefit.

If someone knows the url, they can still access the test site. You might choose some obscure url so that end users don't find it easily and that might be enough. But if this bothers you, password protect it.

Now whenever you need to activate a plugin/do any kind of test use this site. You can be certain about plugin compatibility or any other issue as it is a mirror of the live site. Once you are satisfied, make those changes to the live site.

I like this issue mostly because of the plugin conflicts that arise. More often which works on the development environment breaks the main site for minor issues. This method of testing eliminate that problem.

But it's a lot more work initially and it's up to you whether it's suitable for you. I've found that if you are working on a site for a long time, it saves up lots of hassle and time in the long run.

  • How do you sync between the different sites?
    – testing
    Commented Jul 14, 2015 at 19:37
  • At this point I do it manually as I don't need to sync it post by post. But you can use wp_cron to do it automatically weekly or monthly.
    – sakibmoon
    Commented Jul 15, 2015 at 13:09

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.