Update: If you're looking for the step-by-step process for migrating an HTML site to WordPress you can find it here.
Original article starts here:
Just recently I've seen a few questions in a couple of the forums asking about moving an existing HTML static website to WordPress.
As big a fan as I am of WordPress, this is not something you want to do just for the hell of it.
If you have a good reason to re-platform your site (such as adding a blog component to it) then, sure, WordPress is an excellent and reasonably future-proof platform (as long as the current rate of development is maintained).
But if there's no good reason to move then I'd recommend leaving your site as it is. If it ain't broke don't fix it.
However, if you're determined to make the move here are four things to think about:
Create a development site
Migrating your site will be a long project and, assuming you're keeping the same domain, you don't want to be experimenting and bug fixing on your live site.
You want the transition to WordPress to be completely unnoticed by your visitors.
So set up a test site on a new domain somewhere and install WordPress on it.
I have 3 test/development sites now, so that when I'm doing work for clients I can show them how things are going, and get their feedback, without risking a real live visitor stumbling across it.
If you're on Hostgator, and you have an unlimited domains plan, this is a piece of cake.
All you need is one new domain and then you can set up WordPress in as many subdirectories as you want.
www.mytestdomain.com/demosite-2 and so on - each demosite subdirectory containing a WordPress installation.
Once you have your test domain set up you can work at your own pace to perfect your design, import your content and get it all set up the way you want, while your existing site continues to run normally.
Then, once you're happy with everything, you can use the BackupBuddy plugin to import your entire installation (system files and database) to your existing domain.
You can, of course, set up a new installation of WordPress manually and use a database management plugin to import your database from your test site.
But BackupBuddy makes it all so much easier.
I do strongly recommend taking this approach because you can take your time getting everything properly set up without the pressure of feeling you have to complete it quickly because your visitors are going to be viewing it.
Map your old URLs to your new URLs
The WordPress Permalink structure is different from the URL structure on your existing static site.
Your HTML site URLs will be something like:
www.yoursite.com/about.html, (or .php, .asp, etc) whereas the WordPress based Permalink would be
www.yoursite.com/about/ (or whichever permalink format you’ve selected).
So if someone who's linked to your 'About' page clicks the link after you've moved to WordPress, they'd get a 404 'page not found' error - unless you create a permanent re-direct.
And you need to create permanent (301) re-directs from each of your old pages to each of your new pages.
If your existing site is a big site, with several hundred pages, this becomes a large and tedious job! (And it's the main reason I said earlier 'if it ain't broke don't fix it').
I have an aversion to using too many plugins, so I would normally set up those re-directs in my .htaccess file. But you could use the Redirection plugin if you're more comfortable with that - it's pretty good.
You'll still need to map your old URLs to your new permalinks, but you can do this in the Redirection plugin admin interface, which is more user-friendly than the .htaccess file.
Backup Your Existing site
When you're ready to unleash your WordPress based site on the world remember to first back up your entire HTML based static site. The entire site - lock, stock and barrel.
This is because if anything goes awry after the transfer, (a hiccough with those re-directs, for example), you can immediately restore your existing site and make whatever corrections you need to make to your WordPress site off-line.
On-Site SEO factors
Remember that after setting up your content on your WordPress site you'll have to re-set the on-site/on-page SEO tags - Titles, Descriptions and Keywords.
If your current site uses a database to store your page content you may be able to write an SQL script to import the pages directly to WordPress.
But, if not, you're going to have to copy and paste your actual content and set the META tags manually for each post.
You'll also want to set up a Category and Tag structure, which helps with SEO.
Categories and tags will require some thinking, although that should be made easier by the fact that you know the content you're importing.
Remember that categories and tags make up WordPress' filing system, so you need to identify the various categories (filing cabinets) and tags (folders) that your articles fall into.
And you'll also need to assign your categories and tags manually to each article because your HTML site will not have used this approach.
Finally, you'll need to check all your imported pages carefully because, inevitably, some formatting will get screwed up.
Re-platforming your existing HTML site onto WordPress is a reasonably big project - especially if your current site has a lot of content.
However, as with any project, if you plan for it thoroughly before starting, it will go more smoothly.
Do be prepared, though, for things to go awry - and plan accordingly! The bigger your site the more inevitable this will be.
But as long as you've got everything backed up so that you can roll back to your previous state if you need to, you'll be able to achieve the transfer with minimal disruption to your site visitors.
Cheers (and good luck!),
Update - 1 December, 2011:
I've set out the detailed step-by-step process for moving an HTML (or any static) website to WordPress. You can find all 17 detailed steps here.