Redirections - Overview
- URL Redirections
- Redirection Types
- HTTP Status Codes 3xx
- Server-Side Scripting for Redirects
- Apache Mod Re-Write
- Refresh Meta Tag and HTTP Refresh Header
- Common Problems.
- Page Retirement Strategy
There are several different types of URL redirection available for web developers to implement and many more variants within each type. This article provides an overview of the different types of URL redirection with the main focus being on the most common redirects.
Redirections can be implemented for a large number of reasons; in this article we will only go into what each type is and some common problems that arise.
Below we have listed the five different types of redirection available at the time of writing this article:
Within the HTTP protocol that is used by the World Wide Web (WWW), a redirect is defined as a response with a specific status code that begins with "3". This causes a web browser to display / load a different page that the one the user is trying to access.
The different 3xx codes define the reason for the redirect, which allows for the correct subsequent action such as a permanent 301 redirect, which indicates a change of address.
For more information on 301 & 302 redirects, please follow the link.
Web developers that produce HTML content typically cannot create redirects using HTTP headers because the web server program when serving an HTML file creates these automatically.
The same is also typically true for programmers creating CGI scripts, although some servers will permit scripts to append custom headers for example; by enabling "non-parsed-headers". Most web / hosting servers will produce a 3xx status code if a script outputs a "Location:" header line.
Through the use of .htaccess (server configuration files) files that determine some server side activity it is possible to create URL rewriting and redirection.
This is probably the most common type of redirect as it is used on the most common type of server / hosting platform (Linux). This is also the most flexible and easy to implement type of redirect.
Sometime ago Netscape introduced the Meta refresh feature… This refreshes a page after a specified amount of time and can also specify a new URL to redirect to.
This type of redirect is supported by most web browsers and is treated by Google as a permanent 301 redirect. Hence this type of redirect also transfers page authority to the new URL.
Redirections are an essential tool when wanting to preserve rankings or PageRank in a number of situations such as moving pages, restructuring a website, removing pages, etc. However, they can also cause catastrophic problems for a website if not managed properly. We have listed some of the most common mistakes made when implementing redirects below.
Additionally, in order to implement redirect you often need access to the page source code, servers, .htaccess files, etc…
All of which can cause site-wide problems if not correctly managed. Thus it is always worth testing your implementations and other core site functionality once you have finished making changes. This ensures that the site is working as intended and that the implementation has worked.
Ensure that the correct type of redirect is used where redirects are in place. For example 302 temporary redirects are typically not the best redirect to have in place but can often be used instead of 301 redirects.
Also ensure that the page being targeted / ‘redirect to’ is an actual page that exists on the site; redirecting to an error 404 page is not good for the user or your PageRank.
A redirect loop is where page a page is redirected to either itself or another page that redirects back to the initial page. For example (the forward arrow = redirect):
Page A > Page B > Page A
As the example above shows, this would cause an infinite loop resulting in an error that would prevent someone from accessing either Page A or Page B. Redirect loops should be avoided at all costs.
This can be devastating to a site if the pages involved include the site’s home page or top-level monetised pages.
For example; if /old-page-1.html currently redirects to /current-page-1.html but on the new site /current-page-1.html will redirect to /new-page-1.html. What this means is that; there would be two redirects one after the other, this should be changed from:
/old-page-1.html > /current-page-1.html > /new-page-1.html
/old-page-1.html > /new-page-1.html
/current-page-1.html > /new-page-1.html
Most commonly with this problem, we see a redirect that links to a URL that is then being forced to something else. For example ‘Page A’ redirects to ‘http://www.example.com/Page-B.html’ but there is a canonical redirect forcing the removal of the ‘www’ and another forcing the use of lowercase characters… This impacts page load times and can hurt both rankings and the user experience.
Each redirect only passes around 85% to 90% of the PageRank on, so chaining 3 of 4 together means a significant loss of PageRank overall. This reduces the positive impact and often the very reason for implementing redirects in the first place.
The amount of redirects required to start impacting server response or page load times is pretty high and depends on the technology you are using. As technology advances this number / upper limit keeps creeping up.
That said, if you have thousands or redirects in place and you are experiencing site performance issues with regards to website speed, consider looking at and removing some redirects.
It is worth marking up redirects in a .htaccess file with some comments to say when they were implemented, this way you can review old redirects as part of quarterly or annual audits.
If the website frequently retires / deletes old pages, ensure there is a migration strategy in place assist with removing the URLs from the search index and to pass link authority to a relevant parent page.
To do this, simply find old pages and redirect them using permanent 301 redirects. There will be more information on moving or removing pages within the knowledge base for more information in this.