So I’m lazy. Because I’m lazy, I started a development site for a client in my Multisite install because I wasn’t in the mood to install WordPress in a new subdomain and configure it and all that fun stuff. Well I added menus, widgets etc. for theme testing, and when I showed them the first draft they were ready to load content.
All of a sudden I ended up stuck with a lot of extra work late in the game to move all of those things to a standalone install. I knew I was going to have to move to a standalone install before going live anyway to prevent downtime, so I don’t know why I made such a dumb decision. Nevertheless, I’ll continue on with more specific reasons why it can be a bad idea.
Fortunately I was able to use the WordPress importer / exporter tool to transfer my content, but that still has its issues. For instance, currently you have to export everything in order to actually get the media attachments. You can’t just export certain post types. This can sometimes be a problem, either if you don’t want to import the blog (posts), or like me, your host puts a limit on your php.ini. I had to wait until my support ticket was fulfilled to increase my memory limit from 10MB to 20MB so that I could import the entire site content just so it included my uploads folder.
Moral: create a new installation of WordPress in a subdomain for development sites, and then copy the directory and dump the database (after running a search and replace script on URLs) to the primary domain when you’re done.
You can’t move Multisite Subsites easily to standalone installs (yet). (Update: I was totally wrong. BackupBuddy added this feature, and it looks incredible. It’s now the total backup solution in my mind. So if you have BackupBuddy, my post is irrelevant.)
If you’re working in a lot of dev sites, BackupBuddy is an awesome way for migrating from one install to another seamlessly, in addition to the actual backing up part.
And if your purpose is indeed Multisite, I personally love my WP Replicator plugin, that can replicate exactly one subsite on a network to another subsite on the same network in no time at all. It’s seriously awesome. At my day job, I’m using it to rapidly create new content-only sites (I don’t have the php.ini issue there) so clients can simultaneously populate pages with content while we’re still under development in order to reduce the waiting game for content after we are ready to launch.