Before launching a new WordPress site it’s your responsibility as a developer to ensure that the URL structure currently indexed by search engines is preserved for SEO value. 301 redirects will tell search engines that a page has been moved permanently. I use this handy function by Scott Nelle which been pulled and modified slightly from his Simple 301 Redirects plugin. It allows you to add 301 redirects to WordPress using PHP:

 'http://www.newwebsite.com/news/',
	);
	foreach ($redirects as $storedrequest => $destination) {
		// compare user request to each 301 stored in the db
		if(urldecode($userrequest) == rtrim($storedrequest,'/')) {
			header ('HTTP/1.1 301 Moved Permanently');
			header ('Location: ' . $destination);
			exit();
		} else { unset($redirects); }
	}
}
function base_get_address()
{
	$protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
	return $protocol.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
add_action('init','base_redirect_urls');
?>

Another method involves using the .htaccess file to setup redirects. I’ve experiences issues with this technique and query string, so I tend to use this PHP method instead. What methods do you use to preserve URL’s after a migration? Are they better than mine?