In this asp.net tutorial we will learn the difference between Response.Redirect() and Response.RedirectPermanent(). Microsoft has introduced Response.RedirectPermanent() method in .net 4.0 version. The main objective of this method is to have permanent response redirection to the Search Engines.
Basically Response.RedirectParmanent() is an extension function introduced in .NET 4.0. The main aim of it is to indicate the Response Code to the Search Engine that the page has been moved permanently.
Response.Redirect() is also called 302 temporary redirect. The 302 Temporary redirects are also as they sound; temporary, in which you are telling the search engines to read and use the content of the new page, but to keep checking the original URL first as it will ultimately be reestablished. The Response.Redirect() generates Response code as 302 (Temporary Redirection). If you use the Response.Redirect() to redirect from Page A to Page B, search engines will keep Page A in their index/cache/database since the Response.Redirect() indicates a temporary redirect.
Response.RedirectPermanent() is also called 301 permanent redirect. The 301 permanent redirects are also as they sound; permanently redirects from an old URL to a new one. It also tells the search engines that the old location is to be removed from their index and replaced with the new location. Using 301 redirect is the most search engine friendly way to redirect traffic and search engines. The Response.RedirectParmanent() returns 301 (Permanent Redirection). If you use the Response.RedirectPermanent() to redirect from Page A to Page B, search engines will keep Page B in their index/cache/database since the Response.RedirectPermanent() indicates a permanent redirect and include new page for better performance on search.
Note: Another method used for redirection is Server.Transfer() in which search engine is unaware of any redirection that took place (Status 200) and keep remain the link of old page in its cache/database. Search engine thinks that the old page is producing the output response of the new page.