Your need to keep active the sub domain on WordPress otherwise you will lose any backlinks you have gained. I've made a few steps that you can follow but its important to note when you 301 redirect there is always a lose in some juice as Google makes it this way to dis-en-coverage people to use 301's as well as ruling out abuse (It's very little juice that is lost but of course this can mean that your rankings shift, it'd be bad advice if anyone told you otherwise). Most important thing is to redirect to the relevant pages.. for example cats > cats, dogs to dogs. If your doing a cleanup and deleting page about cows, don't assume that a 301 to Cows > Root is a good thing to do since sometimes a 404 is a good thing to do as Google dislikes people trying to retain 100% juice on deleted pages by people going to pages that has nothing to do about Cows - If that makes sense. Many people assume that 404's are bad when in fact they are completely normal and not a bad thing at all, as Matt Cutts has said many times.
Steps to Follow
- Register a new domain and new hosting account somewhere
- Verify your WordPress sub domain with Google Webmaster Tools
- Make the new site on the new domain but temporary block robots.txt so its not indexed on any search engine.
- Once site is ready to go live you need to ensure on the old site that you have continue to have active 301's redirects to the new site, again you need to keep this sub domain active otherwise you may lose backlinks. Use the code found at the bottom.
- Remove the block from robots.txt so Google can index your site.
- Now tell Google your site has moved to the new URL.
PHP Code you should use on your old site since .htaccess is not possible on WordPress Free Hosting
<?php
// Permanent redirection
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.yournewdomain.com/");
exit();
?>
This should be setup on every single page and match the new page on the new domain... And again for best 301 results ensure that the pages that you are redirecting are relevant. 404 any that is no longer valid.
Root yournewdomain.com/ = header("Location: http://www.yournewdomain.com/");
yournewdomain.com/cats/ = header("Location: http://www.yournewdomain.com/cats/");
yournewdomain.com/dogs/ = header("Location: http://www.yournewdomain.com/dogs/");
Other things to consider
Another thing to consider is that most often when people make a migration of this kind they tend to add/change/delete things on the site. This can have its own effect, my personal advice is to use the same theme, same content... and then change things over time, not only does this help retain your rankings as Google will believe the page is the same and relevant it will help Google reward you for keeping your pages fresh. So OLD to OLD > Then freshen after the move if required.