Sometimes you have to take pages off your site. Perhaps a product or service is being discontinued, perhaps it’s outdated information that no longer belongs, or perhaps the page was just a bad idea in the first place.
Discontinuing pages is perfectly normal and happens with every site.
Where we run into trouble is when there were links from other sites pointing at those pages. Now when Googlebot crawls those links it encounters a 404 error rather than the page it was expecting to find. When that happens you do not get credit for that link — after all, the page the site was recommending isn’t there anymore, so the recommendation goes away.
Over time, discontinuing pages can having a cumulatively negative impact on SEO. You are in effect throwing out links, which are by far the most valuable and hard to gain ranking factor. Over time you’re trying to build your SEO on a pile of bones.
Happily, there’s a solution: the 301 redirect.
A 301 redirect is a permanent redirect that happens at the server level (not on the HTML code of your site). When someone tries to go to the dead page, instead of getting a 404 Not Found error, then instead automatically switch to a different page (on a different URL) and load that instead.
PageRank flows through a 301 redirect, moving from the dead page to the new one.
Any way of redirecting a page that is not a 301 redirect will not pass full SEO benefit. This includes 302 (temporary) redirects and meta refresh code in the head of a page. (Some Googlers have made statements suggesting that 302s are as good as 301s: tests have proven that this is not true).
For the most part, you will need to talk to your webmaster about setting up 301 redirects. If you are using WordPress there are plugins that will let you implement them pretty easily, and odds are your hosting service probably has some kind of tool to make redirects easy to manage.
If you are using an apache server (super common for small sites) you can manually create 301 redirects by editing the .htaccess file in your root directory (this is often hidden, so you will have to set your FTP program to display hidden files — note the period in front of the filename).
Here is the code you need to program a 301 redirect directly into .htaccess:
First enable the Apache ReWriteEngine in the mod_rewirte module and enable symantic link matching by pasting this code into your .htaccess:
This only has to be done once, and you can then enter all the redirects you want thereafter. To actually redirect your pages use this format:
Redirect 301 /oldpage.html http://www.domain.com/newpage.html
There are a lot of sophisticated ways to enable 301 redirects based on regular expression (RegEx) matching, but that’s a bit beyond the scope of learning SEO. This will enable you to redirect pages as needed, and if you are moving entire sites or need specific type of page matching you should talk to your software engineer.
When to Use 301 Redirects & Where to Redirect
As a general SEO best practice, any time you take down a page, you should 301 redirect that page’s URL to another page on the site. There are certainly times when it’s appropriate to deliver a 404 error; however, if there are any links to the page you’re taking down, you really want to 301 redirect it instead and preserve that authority for your site.
As for where to redirect a page: if you’re taking a page down and there is another page on the site that provides the same (or nearly the same) info, you should redirect there. This is the easy case where a product is discontinued when the newer version of the product becomes available.
When there isn’t a nice one-for-one replacement, you generally want to redirect to the page that is one level higher in the site hierarchy. For ecommerce that means redirecting product pages to the associated sub-category or category page. Sometimes it will even mean redirecting up to the home page — but if there are links pointing to that dead page you do not want to lose them.