What 301 means
The canonical redirect for URL changes: HTTP to HTTPS, www to apex, old paths to new ones. Browsers cache it, and search engines transfer ranking signals to the target.
Because it is cached aggressively, a wrong 301 is painful to undo. Test with a 302 first if you are not sure, then switch. For POST requests most clients change the method to GET on a 301; use 308 to preserve the method.
Common causes
- A deliberate redirect rule in the web server, CDN or application.
- Trailing-slash or case normalisation.
How to fix it
- Update links to point straight at the final URL to avoid redirect chains.
- Check for loops: a 301 that redirects to itself shows as ERR_TOO_MANY_REDIRECTS.
What it looks like
A typical response:
HTTP/1.1 301 Moved Permanently Location: https://example.com/new-path Cache-Control: max-age=31536000
The same event in an nginx access log (the status is the number after the request line):
203.0.113.7 - - [10/Sep/2026:10:12:01 +0000] "GET /old-page HTTP/1.1" 301 153 "-" "Mozilla/5.0"
Check it with curl
-i prints the status line and headers, and -w '%{http_code}' prints only the number, which is handy in scripts and health checks. Replace the URL with yours:
curl -i -L --max-redirs 5 https://example.com/old-path
Compare what curl sees with what the browser sees. A different status from the same URL usually means a cache, a CDN edge or a cookie is in the way.
Investigating a run of 301s? Paste the log excerpt into Log Share to get line numbers, highlighting and an expiring link for whoever is on call with you.
Related status codes
302Found: A temporary redirect; clients should keep using the original URL in future.307Temporary Redirect: A temporary redirect that preserves the request method and body.308Permanent Redirect: A permanent redirect that preserves the request method and body.
FAQ
Does a 301 pass SEO value?
Yes. Search engines treat 301 as a permanent move and consolidate signals on the destination, provided the target is a close equivalent of the original page.
How do I clear a cached 301 in Chrome?
Open DevTools, tick Disable cache on the Network tab, or clear browsing data for the site. Cached 301s are per browser, so other users still see the old one until it expires.