A 301 redirect is used when the address of a page on a website is changed due to a redesign of the site or due to the site domain being changed (as part of a re-branding or whatever). The 301 redirect indicates to the search engines that the page has moved permanently and that any ranking value assigned to the old page must be transferred to the new page.
When a site is moved or redesigned, it is important to try to map every page address from the old site to a page on the new site. This will prevent 404 (file not found) errors and will ensure that the ranking value created in the onl site is not lost.
When a 301 redirect is used to indicate that a page has moved, this redirect should be kept on place for at least 180 days according to Google (see http://support.google.com/webmasters/bin/answer.py?hl=en&answer=83105) . Our recommendation is that this is extended to 1 year.
Finally, always set up a Google Webmaster tools account for the new site and use the Webmaster tools to check for any web crawl errors. If these are found, then the 301 redirect table can be modified to include the error pages.
The approach used to implement 301 redirects is largely dependent on the hosting server. For example, if the site is hosted on an Apache server, then the .htaccess file can be modified to implement the 301 redirects (see the Apache .htaccess Tutorial and the Apache URL Rewriting Guide for mor information).