The 301 Moved Permanently is an HTTP status code that indicates a permanent relocation of an online resource from a given URL to a new one. More technically, the moved resource has been moved to the new URL specified in the Location header. The HTTP 301 status code is part of the 3xx status code group, indicating a redirection. This by itself is not an issue, but it becomes one when this redirect is unwanted or set up improperly.
In short, a 301 Error tells the browser, search engines, and the visitor that the content of the requested page is placed in a new page.
When is 301 Moved Permanently Used
The thing with the 301 Moved Permanently is that it is a great mechanic to use when launching a new website under a new domain. The usefulness of the 301 status code comes from the fact that the mechanism automatically redirects users to the proper location of the requested resource.
Another handy use of 301 Moved Permanently is to remove outdated website content that is no longer relevant. In this case, the 301 redirect automatically guides users to the new and relevant resource, for example, a new homepage, an updated tutorial, or anything else.
In short, a 301 Redirect is used when you want to change a page’s URL, but want to keep the same content. This approach is used when you need to transfer your website to a new domain, fix broken links, switch from HTTP to HTTPS website version, and fix duplicate pages.
When Does 301 Moved Permanently Become an Error
Unfortunately, there are some situations in which the Moved Permanently status code can become an error and cause issues on your website. There are several occasions in which that is possible:
- Redirect loops. This term describes the situation in which the URL redirects back to itself, and this cycle continues endlessly, as there is no web server endpoint. Indeed,d this constant looping prompts the HTTP 301 Redirect Error.
- Mixed redirects. These are types of redirects that move online resources temporarily instead of permanently. Sometimes, those redirects can harm your SEO. An example of such a redirect is the HTTPS Status Code 307 Temporary Redirect.
- Orphaned redirects. Such redirects do not serve any purpose. The content they point to has been completely removed.
All these scenarios affect website performance, user experience, and SEO. This is why it is advisable to fix them right away. In the next section, we share how to tackle the 301 Error issues.
How to Fix 301 Error: Moved Permanently
There are many approaches you can use to fix the 301 Error message. Below we list the most effective ones.
Confirm the Redirect Chain
By itself, a 301 Redirect is not an issue. It becomes one when the redirect is unintentional and/or never-ending. This means that before you start tweaking changes on your website and web server, it is important to locate what exactly causes the redirect chain. To do so, check the following:
Check whether your website creates redirect chains such as http://www.example.com/ -> https://www.example.com/ -> https://example.com/page -> https://www.example.com/page/ ->200 OK. Should this be the case, then you deal with two 301 chains, and sometimes more. This is an issue for several reasons:
- This chain slows down page loads, which affects SEO and user experience negatively.
- Result in tracking issues, for example, UTMs can be lost or rewritten.
- Crawl budget is being lost in the process.
- Such chains may cause future issues with future configuration.
In short, should you see more than one redirect before 200 OK, then investigate.
Check whether the redirect leads to the correct final destination. In other words, check whether the redirect works just fine, but it leads visitors to a different resource than the requested one. In most cases, the most common wrong destinations include:
- Redirect that leads to the website’s homepage, and not to the product page.
- Redirect to a different country/language version page.
- Redirect to the category page, instead of the individual post.
- Redirect to the old domain, instead of the new one.
In short, check whether your website redirects lead to where they should lead. If they don’t, then you should interfere.
Are there redirect loops? A redirect loop means that the final page is never opened, as the redirects bounce to each other endlessly – URL 1 -> URL 2 -> URL 1 -> URL 2… Should this happen, the web browser will eventually display errors such as:
- Too Many Redirects
- This Page Isn’t Working
- ERR_TOO_MANY_REDIRECTS
Redirect loops are usually caused by conflicting rules, such as servers, CMS, and CDN settings that fight with each other.
Set the Canonical URL Format
Now that you have located the cause of the redirect chain, the next step in the process is to choose one version of your URLs and use only that version across your website.
Read Also: What is a URL and How Can I Get One for My Website?
A canonical URL format means that your website consists of only one rule, such as:
- Always use the HTTPS version.
- Always use the www. version.
- Always use the trailing slash (or never use it).
This all means that it is not advisable to have multiple URL versions on your website, such as:
- http://example.com
- http://www.example.com
- https://example.com
- https://www.example.com
- https://www.example.com/
Fix the Issue at the Correct Layer
Now that you have confirmed the redirect chain and set your canonical URL format, the next step is to set the redirect rules. Remember that this is the step that confuses most people and the step where most people make mistakes. This is because most people try to fix the issues in several places at once. The aim is quite the opposite – your rules should be set on one layer, so issues are avoided. This can happen on:
- The web server settings (Apache/Nginx).
- CDN.
- The CMS you are using (for example, WordPress).
- CMS Plugin (SEO, Caching, Redirection, or anything else).
The idea is that the setup of each level can work just fine, but issues can appear should you make a multilayered setup, which can result in redirecting issues. This happens because each layer tries to force its rules over the others, producing redirect chains, loops, and unpredictable endpoints and behaviors. To avoid such a scenario, follow these practical steps:
- First, make a setup on your Apache/Nginx server. In most cases, this is the most convenient and practical place to set your canonical redirects. This is because the setup runs before WordPress; it is super fast, as no PHP is being used, and remains transparent, as rules remain explicit. In most cases, server redirect rules are quite useful for HTTP to HTTPS, www to non-www, trailing slash normalization, and high-volume redirects.
- You can set rules on the CDN/WAF level, but it is risky. At this level, redirects can be managed quite effectively, but you should be careful with invisible rules such as “Always use HTTPS” and caching behaviour that keeps old redirects active. Furthermore, setup on this level is dangerous for another set of reasons – the server can also enforce canonicalization, CMS settings can not accept the CDN rules, or multiple CDN/WAF rules overlap with each other.
- CMS/Framework level setup is convenient, but prone to issues. WordPress, for example, can deal efficiently with specific types of redirects, such as old post slugs, redirecting from deleted publications to a new relevant one, campaign-specific shortlinks, and similar. However, for canonicalization, CMS platforms are problematic, as redirecting via their settings happens after PHP loads, which can result in slow website performance, and various SEO plugins can force their own redirect logic, which conflicts with the setup from other levels.
In short, keep in mind that a clean setup includes canonicalization that is made from one place, and content redirects are handled separately, for example, with WordPress plugins.
How to Fix 301 Error Checklist
301 Permanent Redirect is not technically an error, but can quickly become problematic when it appears where not wanted. Once this happens, you then deal with a 301 Error message. In most cases, 301 Error is a result of two layers that are disagreeing with each other’s what the correct URL version should be, and they keep correcting each other back and forth. This situation brings numerous issues for your online presence, and you should fix it as soon as possible. For optimal results, we suggest you follow our step-by-step checklist:
- Locate the Repeating Differences (www/non-www; slash/no slash).
- Set Canonical URL decision.
- Update your CMS (WordPress) website address and site address, so they match.
- Align server redirects to match the same rules.
- Align CDN redirects to match other rules.
- Check CMS plugin settings for misalignment.
