Get Free Quote
« The Always Up-to-Date... | Blog home
August 18, 2016

How to Properly Implement a 301 Redirect

  • Print Friendly

What is a 301 redirect?

A 301 redirect is a command used to tell the search engines that a page has permanently moved, and that you want them to index the new page and drop the old one from their index.

Think of it as a change of address card for the web. As long as everything is done correctly, a 301 redirect will ensure that you keep the rankings earned by the old page and prevent duplicate content that could arise if the engines were to index both versions of your site.

Read on for information about:

Do a 301 Redirect

How to Implement 301 Redirects Using .htaccess for Apache

Make sure you have access to your server and your Apache configuration file, and that you can use your .htaccess files. The ability to use .htaccess files will reside in a command called “Allow Override” in the Apache config file. If you do not have this access, you’ll have to first call your hosting company and get access.

Once you know that you have access to this file, your next step is to locate it. The .htaccess file is a control file that allows server configuration changes on a per-directory basis. It controls that directory and all of the subdirectories contained within. In most cases, this file will be placed in the root web folder for your site. If there’s no .htaccess file present, create one.

To begin using the .htaccess file to redirect page(s) on your site, open up your FTP and log in to your site. Work your way into in the root web folder in order to access your .htaccess file.

(Note: The dot in .htaccess makes it a hidden file, so make sure your FTP browser is enabled to view hidden files.)

When you start editing the file, use a UNIX style text editor rather than Notepad. Typically, an HTML editor or code editor such as TextPad works just fine. To 301 redirect pages using the .htaccess file, you will add a line to the file that tells the server what to do.

To 301 Redirect a Page:

RedirectPermanent /old-file.html http://www.domain.com/new-file.html

To 301 Redirect an Entire Domain:

RedirectPermanent / http://www.new-domain.com/

Once you have inserted the commands to 301 redirect your pages, you need to make sure that there is a blank line at the end of the file. Your server will read the .htaccess file line by line, which means at some point you’ll need to throw it an “endline” character to signify that you’re finished. An easy way to do this is to put a blank line at the bottom of the file.

How to Do a 301 Redirect Using IIS on a Microsoft Windows Server

Navigate your way to Internet Information Services (IIS) Manager, which is found with Administrative Tools within the Start menu. From there, you will find a panel on the left-hand side that lists all your sites. Choose the site you want to work on.

Once you select it, several modules come up. Verify the URL Rewrite module is present. If it is not, you can install it here.

Once you have it, double-click to open the module. On the right-hand side, you will see an option to Add Rules. Click it and then select Blank Rule under the Inbound Rules section. Hit OK. This will take you to an Edit Inbound Rule page. Type a name for the rule, such as Old Domain Redirect or Old Page Redirect.

Go to the Match URL Panel. Set the requested URL at “Matches the Pattern” and then Using as Regular Expressions. Now you will specify if you’re redirecting a single page, a group of pages, or an entire domain:

  • To redirect a single page, type in the page name under Pattern. For example, if we were redirecting this blog post, we would input blog/how-to-properly-implement-a-301-redirect/ in the Pattern field.
  • To redirect the entire site, we would input (.*) in the Pattern field.
  • To redirect all the pages on BruceClay.com within the SEO folder, we would input seo/(.*)

Make sure “ignore case” is checked.

Skip down to the action panel and select Redirect within the Action Type drop-down menu. In the Action Properties, type in the new URL. If it’s a single page, input the single page. If it’s the entire domain or a group of pages, type the new destination with a back reference, which is {R:0}. The back reference will keep all page URLs intact with the new domain.

For example, if we were changing BruceClay.com to BCI.com, we would input http://www.bci.com/{R:0}

If you use tracking parameters and you want them to carry through, check Append Query String.

In the Redirect type field, select Permanent (301).

Click Apply at the top right in the Actions column to save the redirect.

(If you want to review the redirect, hit back to rules in the Actions column.)

After you save this redirect, the rules you created are saved into the web.config file, which you can edit in the future.

Alternative Methods to Implement a 301 Redirect

If you don’t have access to your .htaccess file or your Windows Server Administration Panel, you can still implement 301 redirects with code on your old pages. If your pages are in PHP, ASP, Java, or any other language that allows you to modify response headers, simply place code at the top of each page to do the permanent redirect.


Redirecting pages is just ONE skill an SEO has to know. At BCI, we help clients with not just the how-tos, but also the strategy questions they need to optimize their online revenue. Want to explore how we can help you? Request a conversation or call us today.


Why You Might Need to Implement a 301 Redirect

There are many times a 301 redirect makes sense. Here are a few of the most common:

  • You’re changing your entire root domain.
  • You want to reorganize pages by changing or removing a directory.
  • Let’s say CNN posted a link to this blog post, but the URL was incorrect. We’d still want to capture the traffic that is going to a 404 page. So we’d put in a 301 redirect to direct users from the bad link to the right URL.
  • You want a vanity URL.

Note: If you’re concerned you might lose PageRank through a redirect, know that any fluctuations will be temporary. Google Webmaster Trends Analyst Gary Illyes recently gave this assurance:


Have any questions about implementing a 301 redirect? Ask us in the comments and we’ll be happy to help you.

This post, originally written in 2007 by Lisa Barone, is among our most-visited blog posts of all time, so we keep it up-to-date and accurate. Thanks for visiting, and hope it helps!

  • Print Friendly




43 responses to “How to Properly Implement a 301 Redirect”

  1. Hawaii SEO writes:

    Great post!

    So… Why does Google use a 302 redirect to go from: google.com – to – http://www.google.com?
    Why doesn’t Google use a 301?

    What if you want to redirect internal pages with a 301?

    http://www.oldurl[dot]com/oldpage.asp – to – http://www.newurl[dot]com/newpage.asp (Easy enough)

    But… What if there are several variations of the old URL caused by the URL prefix?

    www & http:// & http://www & https:// – https://www – Would that require more than one redirect?

    What sort of redirect should you use if you have a new content management system and need to go from something like: http://www.coca-cola[dot]com – to – http://www.coca-cola[dot]com/index-d.html

    Should you use the robots.txt file to Disallow the URL with the extra characters via? http://www.coca-cola[dot]com/robots.txt

    Aloha,
    Dave.

  2. Lisa writes:

    Woah, Dave. Easy with the geek speak! You’ll hurt a girl with all those slashes, brackets and fancy words! I’m not going to lie, most of these questions were completely over my pretty little head, so I trotted myself down to our IT department, locked my favorite geek in a room, and fired them at him. Here’s what he had to say:

    1. My guess is that they don’t have a problem with both of them being indexed in Google, thus creating duplicate content. I think when you are the search engine, you probably aren’t violating any guidelines.

    2. If you are using Apache, then you can modify the .htaccess file on the site with the OLD URL to say:

    RedirectPermanent /oldpage.asp http://www.newurl.com/newpage.asp

    If you are using Windows Server, then you can browse to the file in the IIS Panel, right-click and hit properties. Instead of looking for the “Home Directory” tab, look for the “File” tab, and you can select the permanent redirection there.

    Or, if you don’t have access to these things, you can place this ASP code at the VERY TOP of oldpage.asp:

    3. Yes…kind of. If they are all redirecting to the same place, then the redirects above should work. If you want to redirect each one to a different place, it would be best to do a Mod Rewrite in Apache in order to 301 redirect them.

    In IIS, it is MUCH harder where you would need to have different sites defined for www. and non-www. in your panel and redirect those. For IIS, it would be much faster, simpler, easier, etc. to put ASP code on the pages or use an ISAPI Rewrite Module to redirect each different variation to a different location.

    4. Don’t use a redirect.
    Instead, make index-d.html your default page that loads when http://www.coca-cola.com is requested. To do this in Apache, add this line to your
    .htaccess:

    DirectoryIndex index-d.html index.html index.htm

    This defines index-d.html as being the first page that the server looks for on a directory request. If it can’t find that page, then it will go to index.html and so on.

    On a Windows Server, go to IIS, right-click on the web site or the directory and click Properties. Once there, click on the “Documents” tab. Then make sure that “Enable Default Document” is checked and add your new filename into the list. Then, move the new document name to the top of the list.

    5. I’m not sure what you’re asking here. If you don’t want a file to be indexed, then yes, use the robots.txt file to exclude it.

  3. Hawaii SEO writes:

    Thanks for the detailed & thoughtful answers.

    Aloha,
    Dave.

  4. Erik writes:

    Thanks for the great article.
    What if you’ve got to two servers on the same shared hosting?
    e.g.
    http://www.oldSite.com
    http://www.newSite.com
    and you want to
    a)redirect non-www domain of the new domain to its ‘www’ counterpart (e.g. newSite.com -> http://www.newSite.com)
    b)and redirect any requests to the http://www.oldSite.com domain to http://www.newSite.com
    ???
    Is this possible even though both sites are working off of the same .htaccess file (because of the shared hosting situation)?
    Can I modify each “.htm” file of the old site to point to its new counterpart (e.g. http://www.oldSite.com/page.htm -> http://www.newSite.com/page.htm) even though they are HTML files and not in PHP, ASP or Java?

  5. Erik writes:

    Nevermind, I’ve figured it out. I wrote a series of four conditionals in the .htaccess file that redirect appropriately based on what URL is requested.

    Basically it just redirects all pages on the old domain to the new one AND redirects ‘non-www’ URLs to their ‘www’ counterparts.

    I’ll put up my code for anyone to be able to dissect and use based on their requirements.

    Options +FollowSymlinks
    RewriteEngine on
    rewritecond %{http_host} ^newSite.com [nc]
    rewriterule ^(.*)$ http://www.newSite.com/$1 [r=301,nc]

    rewritecond %{http_host} ^oldSite.com [nc]
    rewriterule ^(.*)$ http://www.newSite.com/$1 [r=301,nc]

    rewritecond %{http_host} ^www.oldSite.com [nc]
    rewriterule ^(.*)$ http://www.newSite.com/$1 [r=301,nc]

    rewritecond %{http_host} ^oldSite.com/ [nc]
    rewriterule ^(.*)$ http://www.newSite.com/$1 [r=301,nc]

    rewritecond %{http_host} ^www.oldSite.com/ [nc]
    rewriterule ^(.*)$ http://www.newSite.com/$1 [r=301,nc]

    *Note: the “/” behind any domain name on a condition line takes whatever page off of the domain name in the URL was requested and sends it to the page of the same filename on the new domain (I the “$1” variable asks the server to retain the filename from the request).

  6. Samantha writes:

    ok, so let’s say you’re in the unfortunate situation where you’re unable to do either. you’re unable do htaccess or a 301 through windows server and you have to edit each page by hand.
    what would you do to change the response code and then add it to the header? what would that code look like? is there an example for that?
    i know i could google it, but i have done that before and the results that i found didn’t work correctly.
    -thanks!

  7. Sandip writes:

    Thanks for the post. Is there any suggestion on how to handle a situation where a URL needs to be redirected to an “SEO friendly” one. TLD remains the same.

    e.g:
    Old URL: http://www.site.com/20/30/1123.html
    corresponding new URL: http://www.site.com/coats/furcoats/longfurcoat.html

    I would assume in the absence of 301 redirects, there will be 2 differently formatted URLs indexed and it’s unclear what the impact on the page rankings will be

    Thanks.

  8. Vijay Teach Me writes:

    Thx Bruce,
    For last couple of days I was having difficulty for 301 Redirect code.
    You gave many examples and thx to all those made comments.
    Vijay

  9. James writes:

    Samantha, if you can’t use htaccess and do a 301 redirect, then you could do a meta-refresh as long as the time period is under 1 second. However, can someone please verify that the meta-refresh counts as 301 and not a 302 redirect.

    Thanks
    James

  10. Ranjana writes:

    Hi,
    It counts as a 302 redirect.
    With a 200 OK on both the start and target page, the search engine index both the start page and the target page.
    Since this method is a known spam method, it is best to avoid it.
    Regards
    Ranjana

  11. tyler dewitt writes:

    Bruce clay: I did a 301 redirect, but I’m having some major issues. I was in the top 5 for website design and great traffic, I did the 301 about 1 week ago and now our traffic has dropped and no calls from google for like 1 week now. which I just did the 301 redirect 1 week ago

    now my keyword is in positions 500-600 was number 4, how long does it take things to level out and get my traffic and rankings back? My headers tags are reading 301 and I implemented it correctly?

  12. Allison writes:

    A couple questions:
    1) I’ve heard about software that is coming out that allows you to implement an .htaccess file on an IIS server. Does anyone have more info on this or know where I could learn more about this?
    2) You mention the following, “The ability to use .htaccess files will reside in a command called “Allow Override” in the Apache Configuration file.” How do I find the Apache Configuration file? Is it typically named the same thing and found in the root, or elsewhere? Can I find it if I have FTP access? And if I have my FTP client setup to view hidden files and I don’t see an .htaccess, is it always safe to upload one? I have a client who is on an Apache server, but I don’t see an .htaccess file. However, the site redirects to the home page if there is a 404 error. I thought the only way to do this on Apache was in the .htaccess but I can’t find the file. Is there something I’m missing?
    Thanks!

  13. John Sisler writes:

    Hi Allison, I am not aware of an .htaccess file for use on an IIS server but there are native functions in IIS to do everything you need to do.

    If you are running an apache server and you do not have access to the .htaccess file there is another method to redirect which is to code the redirect in the pages. The limitations are scalability for a large site but if you cannot manage it at the server level you may have to consider doing it at the file level.

    There is a pretty compreshensive page on doing this with different scripts (java, vb, php) at http://www.somacon.com/p145.php

  14. derek writes:

    Hi maybe you can help
    About 3 days ago i done a 301 direct from my old domain to new domain.
    Both sites are now indexed with google for the same key phrases, how long before the old domain goes from index. or will they punish me for dup content.
    Thanks

  15. Aaron writes:

    I am trying to get a nonwww to www redirect when people come to my site. How do I correctly get the ISS redirect to work. I went into ISS, followed ALL instructions and it still wont redirect my site to www if someone enters it without www. ANy ideas?

  16. clenbuterol writes:

    The limitations are scalability for a large site but if you cannot manage it at the server level you may have to consider doing it at the file level.

  17. Prechha Narongthai writes:

    I am not aware of an .htaccess file for use on an IIS server but there are native functions in IIS to do everything you need to do.

  18. Jim Glockner writes:

    We are incorporating a 301 redirect in our dev/uat environment before we move this to production as a proof of concept. This environment is not accessible via the DMZ therefore I cannot test accuracy to ensure the 301 header is displaying correctly via the many tests that are offered out there by inserting the domain into a textbox and returning a "http / https Header Check". Are there any ways I can test this internally?
    Can you pls respond.
    Thank you
    Jim Glockner
    Webmaster Deluxe Corporation
    webmaster@deluxe.com
    jim.glockner@deluxe.com

  19. Trade show displays writes:

    Great article! What if i don’t have IIS admin access and only using .htm pages?

    what should i do?

  20. Dream writes:

    I wanna know if you had an opinion on what I should do about the permanent redirect for an ASP Site . I cannot do it with my index page having an html extension. Should I change my homepage to extension .asp? That’s the only way I think I can do it.

  21. Starr McCaffery writes:

    Wow, this is the most informative article and string of comments I’ve found in about 3 weeks of searching. I have an old site created by someone else that I am taking down but want to do a basic/minimal hosting to redirect the domain (which I own) and pages to the new site. Old site has .asp pages. New site used a site builder that won’t allow me the various folders, sub-folders and long page name structure of old site. I understand how to redirect the old pages to the new corresponding but slightly mis-matched page names with an asp redirect. My problem is I don’t have IIS access and don’t know how to redirect the domain itself (there are links out there that I’m trying to change over but that takes time) without IIS access. My instruction on asp redirect says insert code and save as oldpagename.asp. But my domain isn’t a page name. Any advice? First I tried to set up hosing for the old domain on Linux and do .htaccess and that works for the domain, but with the asp pages it doesn’t so I need to switch it to Windows. Is there a Windows-compatible file, like an .htaccess, that I can use for the domain? Thank you.

  22. Webkinz writes:

    If I want to redirect a one domain to another, is there a difference between a 301 redirect and a permanent redirect? or are they the same thing?

  23. Greyer writes:

    I have some problems with the 301 redirect. I need to redirect /index.php?/archives/old-url.html to /archives/new-url.html. I tried with Redirect 301 /index.php?/archives/old-url.html /archives/new-url.html but for soem reason it didn’t work :( any suggestions?

  24. SEO Mumbai writes:

    It’s great that you have touched upon a subject that is rarely discussed about. 404 errors are one of the worst impediments to your search engine rankings and are not taken well by SEs. You need to have a proper 301 redirect procedure in place, especially if you constantly add and remove pages to your website.

  25. John Weidner writes:

    If you ever have trouble trying to do a redirect and set a cookie as part of the same response, if your using IIS 5.0, the problem might be caused by an IIS bug.

    http://support.microsoft.com/default.aspx?scid=KB;en-us;q176113

    It seems as if IIS filters out the cookies. If you are trying to redirect to an application server, you might try redirecting directly instead of going through the web server.

  26. ecommerce web development writes:

    Thanks for the clarification on this issue. It seems to be something that isn’t going to go away and we need to make sure we address it.

  27. USA Magazines writes:

    Awesome easy guide ! A newbie can understand that very well .Thanks for the post !

  28. Free Games writes:

    Great guide, really good described. I have just implemented it on my site which runs on apache box and it worked. better safe than sorry and not get kicked out because of dublicate content :)

  29. microsoft points free writes:

    It’s fantastic that have referred to a topic that rarely discusses. 404 errors are one of the worst obstacles to their search engine rankings and are not taken well by the SE. You need to have a proper 301 redirect procedure in place, especially if you constantly add and remove pages from your website.

  30. Club Penguin Cheats writes:

    the .htaccess file always gives me fits. This helps. Although I usually have help with stuff like this. But I think with this guide I can now do it myself!

  31. Chris schwarz writes:

    Hi,

    I am bringing in in a new website and plan on setting up 301 redirects in the .htaccess file.

    Do I need to keep the OLD .html pages on the server?

  32. Susan Esparza writes:

    @Chris – There’s no reason to keep the pages on the server once you’ve put in a redirect. However, it’s always smart to keep a backup of your pages somewhere. You never know when you’ll need that information again.

  33. Jamie writes:

    Nice post. When implementing 301’s, canonical tags should be considered too!

  34. Terrence Jennings writes:

    Great read! Very informative and detailed article. Very useful when having some site revamps.

  35. Mansi Rana writes:

    Great insight about 301 redirection. You have nicely explained about implementation of 301 redirect.

    Keep Posting.

  36. Charles Atkin writes:

    301 and 302 always confuse me when implementing.

  37. Kristi Kellogg writes:

    These are different status codes. Each one has a different meaning. 301 means a permanent redirect, while a 302 means that the document for the requested URL was found at another URL. Hope that helps!

    Kristi

  38. Professional Digital Marketing Company writes:

    Hi Bruce,

    Thank you for the wonderful article.

    How to fix .htm 404 errors? Any help would be greatly appreciated.

  39. Kristi Kellogg writes:

    That’s a pretty broad question — can you tell us more about what’s broken?

  40. Sandra writes:

    There is plenty of information 301 redirects and on how to set them up for your website.

    Most of the answers deal with the redirects between the same files paths.

    There is less information on how to redirect backlinks properly that point to your domain, but to a different url structure and different file paths, file extensions.

    Please share your experience.

    One frequent question was: How do I redirect backlinks that from a WordPress or php site to an HTML site (same domain !!). This issues occurs when you change design on a website.

    Thanking you in advance for your contributions.

  41. Kristi Kellogg writes:

    Hi Sandra,

    Well, you can’t redirect backlinks, since they are controlled by external domains that you don’t control. A 301 redirect from “Page A” to “Page B” instructs search engines take the known backlinks to “Page A” and reattribute them to “Page B.”

    Hope that helps!
    Kristi

  42. Sandra writes:

    Thank you Christi,

    to put it into more detail: let´s say example.com, points a link to your site xyz.com. That is a backlink that xyz.com get from example.com.

    xyc.com used to use worpress, or php but decided implement a design change and go with html. so what would be the redirect code from the xyc.com/page1/ to xyc.com/page1.html.

    Note that the redirect should be working from xyc.com/page1/ (this exact path).

    Sandra

  43. Sandra writes:

    Problem solved. Thxs to https://gist.github.com/HechtMediaArts/cbea1b62d4f7b8b0f337.

    You have to do a rewrite:

    RewriteEngine on
    Redirect 301 /xyz.com/blog/ http://xyz.com/blog.html

    Simple htaccess redirect is not sufficient.

Leave a reply



Get Started
Learn SEO

Subscribe to Blog Updates

Get email notifications when we publish new blog posts, usually two to three times a week.

  

a monthly digest keeping digital marketers in the know with SEO, SEM, social media and content marketing hot topics, live events, corporate shuffles, and deserved kudos.

We respect your privacy and never share your email address

Free Executives Guide To SEO
By continuing to use the site, you agree to the use of cookies. AcceptDo Not Accept
css.php