301 Redirects: What, Why and How?

What is a 301 redirect?

A 301 redirection, also known as URL forwarding, is a technique we sometimes use to send users (and search engines) to a different web address than the one they originally requested.

When a business changes their address in the real world, they will usually put up a sign out the front saying something along the lines of:

“We have moved to a new address. [Address]”

This is obviously done so that their previous and current customers can be redirected to their new address.

Like in the real world, we have technique for putting up a ‘sign’ on a website or web address that has closed down or changed location. However, in the internet world, our sign automatically teleports the customer to the correct address without them even realising. How cool is that?!

When a website (or a page on a website) changes its address, the ‘sign’ we use is called ‘301 Redirect’.

This is a permanent redirect.

Why do I need a 301 redirect?

If you need to change the address (URL) of a page on your website, it is recommended that you use what’s known as a ‘server-side 301 redirect’. This is the best way to ensure that users and search engines are directed to the correct page.

The ‘301’ status code means that a page has permanently moved to a new location.

301 redirects are particularly useful in the following circumstances:

  • When you’ve moved your website to a new domain and you want to make the transition as seamless as possible;
  • When people access a single page on your website through several different URLs. For example, your home page might be able to be reached through http://example.com/home, http://home.example.com, and http://www.example.com. You can use 301 redirects to ensure that two of these additional URLs will redirect people to the primary URL;
  • When you’re merging two websites and you want to ensure that links to out-dated URLs are redirected to the correct pages; and
  • When you‘re changing site structure of your website i.e. adding or removing new sections or changing the hierarchy of your website pages.

Critical tip for marketers and website owners: If you are going to change any of the URLs on your website and you don’t know how to/aren’t planning to implement a 301 redirect plan, please let your search marketing agency know!

How to implement a 301 redirect

When your new website is ready, it is critical to create a 301 redirect plan for your old site that can be implemented on the day of actual website migration.

To do this, get a list of all URLs from the old site. You can use your sitemap for this.

Tip: If you can’t find your sitemap, talk to your search marketing agency or your website developer.

After you have the list of URLs from your old website, get a list of new URLs from the development version of your shiny new site (again, your web developers should be able to assist you with this).

And here’s the kicker: For every single URL on old site, there must be a relevant URL on the new site.

Fact: There is no limit to number of URLs that can redirected. However, there is a limit to the number of times one URL can be redirected.

Ok, now to step up the technical side of things a bit. If the stuff below sounds like jargon and gibberish, just contact your search marketing agency or your web developer to sort this stuff out for you. It’s what we do.

Apache 301 Redirects

A 301 redirect can be created for an Apache server in the .htaccess file. This file lies in the root folder of the website’s structure. It is also recommended that all 301 redirects are implemented at the top of the document. These are then defined by explicitly writing ‘redirect 301’ followed by a backslash and then the source or old URL that needs to be redirected. Afterwards, we then place the full URL including the domain name and also (if required) the target page at the end in which the user will be redirected to.

Here is an example of a 301 redirect on an Apache server:

Redirect 301 /contact.html http://www.reloadmedia.com.au/contact-us.html

Microsoft IIS 301 Redirects

A Microsoft Internet Information Services (IIS) 301 redirect involves a lot more hand-scripted code than what’s required for an Apache server. However, it is still pretty clear as to how this 301 redirect method works when you look at the code closely.

Firstly, the whole 301 redirect ‘rule’ is enclosed in a <rule> tag. We then need to define a unique name. In the example below, I have named the rule ‘Redirect Clients Page’.

The reason for this is due to the way Microsoft servers process the redirects and the way in which they index or archive each and every 301 redirect you enter. You could think of it as similar to working within an operating system where the same file or folder name cannot exist within a given directory. Afterwards, we add the ‘patternSyntax’ parameter and define ‘ExactMatch’ which is basically telling the server to only apply this redirect when the source URL appears in the user’s address bar. We then add the ‘stopProcessing’ parameter and define ‘true’. This will terminate the rule when the user has reached the targeted URL.

<rule name=”Redirect Clients Page” patternSyntax=”ExactMatch” stopProcessing=”true”>

Next, we want to specify the URL we want to take our visitors away from. This can implemented by opening a ‘match’ tag and adding the ‘url’ parameter. In this case I have placed our target URL ‘clients.html’ inside the match tag.

<match url=”clients.html” />

From here, we can actually look at how we will send the visitor to our new page. First, we open an ‘action’ tag and add ‘type’ parameter as ‘Redirect’. After that (and most importantly), we need to specify the new target ‘url’ and the ‘redirectType’ parameters. The target URL is where we want our visitors to finally end up and then the ‘Permanent’ parameter ensures that any current links pointing to the old URL are redirected permanently to this URL.

<action type=”Redirect” url=”http://www.reloadmedia.com.au/our-clients.html” redirectType=”Permanent” />

So with all of that in mind, here is an example of a completed IIS 301 Redirect:

<rule name=”Redirect Clients Page” patternSyntax=”ExactMatch” stopProcessing=”true”>

<match url=”clients.html” />

<action type=”Redirect” url=”http://www.reloadmedia.com.au/our-clients.html” redirectType=”Permanent” />


Got it? Great!

A checklist for the day of your 301 redirect implementation

Step 1: Verify your new domain name in Google Webmaster Tools.

Step 2: Place permanent 301 redirects from all your old URLs to their corresponding new URLs. The image below will help you understand visually what 301 redirects mean to search engines:

Step 3: Verify whether your 301 redirects are working by manually going to all old URLs and checking whether you are sent to the appropriate corresponding new URLs in your own web browser. You can also verify this by checking the HTTP response of the old URLs in Rex Swain’s HTTP Viewer.

If in doubt…

Although they happen in the background of your website, 301 redirects are absolutely critical if you ever decide to remove or change a page on your website (or every page on your website for that matter!).

301 redirects help the search engines understand where to send your old traffic without compromising any of the ‘juice’ all of your existing external and internal links were passing on to your website.

If you are really out of your comfort zone with any of what you have read above, please talk to your search marketing agency or your web developer who will be able to sort all of this out for you quick smart. Whatever you do though, don’t put 301’s in the ‘too hard’ basket as this decision could be very costly to your business in the long run!

If you found this post helpful, please feel free to show Piyush your appreciation with a quick share on your preferred social network. Thanks!