As others have already mentioned, this can be a long process. But it can also be relatively straightforward, and I’ve done this to migrate other non-WP sites to WordPress in the past.
Export your site
First things first, you’ll need to export your site from Tumblr into a format WordPress can work with. There are a few tutorials out there on how to do this, but also one great tool built specifically for this purpose called Tumblr2WordPress.
You’ll also want to make backup copies of any images you’re using, just in case they’re lost during the export/import process.
Set up WordPress on a temporary domain
Most hosting packages allow you to access your site from a temporary domain while in development. Use this feature to set up your WordPress site and tweak all of the settings to be just the way you want them.
Then …
Import your Tumblr site
Once WordPress is up-and-running, import your old site and make sure everything is working the way you want it to.
Change the site URL
Now that WordPress is running, we want to tell it the correct domain name to use. So log in to your dashboard and go to Settings » General. Change both the site URL and blog URL to the values you want to use and click “Save.”
This will temporarily break your site!!! You will not be able to log back in until following the next steps!!!
Edit your hosts
file
On Windows, you can edit your hosts
file to redirect domains to different locations. This will make it so, on your machine only, your site will appear at http://mysite.com
even though it’s actually at http://temporarysubdomain.myhost.com
.
- Here’s a quick tutorial good through Windows XP.
- Here’s another
Flush your DNS
From the command prompt (i.e. DOS), run the command ipconfig /flushdns
. This will flush your DNS resolver cache and speed things along a bit.
Log back in to WordPress
If you’ve done things correctly, you should now be able to access your site at http://mysite.com
from the computer with the edited hosts
file. Log in and make sure the site is still displaying as it should. Take a few minutes to edit any image URLs that broke in the transition and get things looking snazzy.
Point your domain
Now that WordPress is installed, configured to work with your domain, and displaying your migrated Tumblr content, it’s time to actually point the domain at WordPress. Go back to your host and move the domain so it’s pointing at the right location.
Reset your hosts
file
Now that the domain is pointed, go back and un-do the changes you made to your hosts
file … otherwise there’s no way to know when the transition has been made (your system will always be pointing to the right site, even if the rest of the world isn’t).
Crack open a beer and watch a football game
Seriously. DNS updates can take a while to propagate over the Internet, so don’t expect your re-pointed domain to work immediately. It might take 12 minutes. It might take 12 hours. This depends on your host and your ISP.
Go to your site domain
Check in from time-to-time during the football game you’re watching to see if it’s been pointed correctly (I recommend commercials and time outs … they’re boring anyway). Now that you’re running with the default hosts
file, you should see the new site immediately when the DNS finally pushes through.
Viola! You’re done
If you’ve done all of the above steps correctly, you should be done. The entire process can take anywhere from 15 minutes to several hours depending on how long it takes for your ISP’s DNS cache to refresh. I’ve used this process more than a dozen times on client sites and it works every time.
Some quick notes …
- When your images are imported, they’ll likely be stored with the URL
http://temporarysubdomain.myhost.com
rather thanhttp://mysite.com
. You’ll either need to create a server-side redirect to fix this, or manually edit your images. Since you only have 25 posts this isn’t a huge deal to do by hand, but there are ways to automate the process with SQL search-and-replace statements if you’re looking for a shortcut. - Do not touch the GUID! I can’t stress this enough. The GUID stored in the database is a “Globally Unique Identifier” … meaning it’s unique for that specific page or asset, despite the domain you’re on. Yes, WordPress uses the site’s URL to generate the GUID, but that doesn’t actually mean anything. It’s just a static string that’s not supposed to be used for anything except to identify the post as unique from others in the database. Even though your imported posts will have your test domain as part of the GUID, do not change this.
As always, if you have any questions, feel free to ask.