I have a client that has three separately hosted copies of their website, each on a separate domain name.  The websites are all essentially the same, bar a few discrepancies caused by badly managed updates in the past.

I will soon be launching a completely new website for them, at which point, all three domain names are to resolve to the same web server.  One domain name will become the default domain name that they refer to in all their literature, and the other two will simply be used as catch-alls for old links, bookmarks, and so on.

I would like to know what people consider the best route to achieve this.  My plan so far is:

1. Get the new site up and running on the new webserver.

2. Change the relevant A record of the default domain name to point to the new webserver.

3. a) Keep the existing hosting accounts in operation, and create a list of 301 redirects for each page, pointing to the most relevant page on the new site.

 or

 b) Configure CNAME records for the non-default domain names, each pointing to the new webserver.

If my understanding is correct, option 3a will help to maintain whatever search engine rankings the sites already have.  But what about option 3b - will that effectively lose any rankings that the sites have?

What's a good approach to take here?