301 301 Moved Permanently
The requested resource has been permanently moved to a new URL.
What Is This?
The HTTP 301 Moved Permanently status code indicates that the requested resource has been permanently moved to a new URL. All future requests should use the new URL. Search engines update their indexes to point to the new URL, passing most of the ranking value (link equity) to the new location. The new URL is provided in the Location response header.
Common Causes & Solutions
Common Cause
Website restructuring or domain migration
Common Cause
Changing URL slug or path structure (e.g., /old-page to /new-page)
Common Cause
Redirecting HTTP to HTTPS with HSTS
Common Cause
Removing or consolidating duplicate content
Implement 301 redirects in server config
Use your web server to configure 301 redirects. This ensures search engines and clients get the correct redirect.
# Nginx
server {
location /old-page {
return 301 https://example.com/new-page;
}
}
# Apache (.htaccess)
Redirect 301 /old-page https://example.com/new-page
# Vercel/Next.js (next.config.js)
module.exports = {
async redirects() {
return [
{ source: '/old-page', destination: '/new-page', permanent: true },
]
},
}SEO best practices for 301 redirects
Use 301 for permanent moves only, not temporary. Ensure the redirect chain is short (avoid chaining multiple redirects). Update internal links to point directly to the new URL. Monitor search console for redirect errors.
Related Entries
More from this reference:
302 302 Found (Temporary Redirect)
The requested resource is temporarily located at a different URL.
304 304 Not Modified
The resource has not been modified since the last request, use the cached version.
307 307 Temporary Redirect
The resource is temporarily at a different URL — preserve the HTTP method.
308 308 Permanent Redirect
The resource has been permanently moved — preserve the HTTP method.
Frequently Asked Questions
Does 301 pass SEO value to the new URL?
Yes. 301 redirects pass approximately 90-99% of link equity (PageRank) to the target URL. This makes them the best choice for permanent URL changes from an SEO perspective.
What is the difference between 301 and 302?
301 indicates a permanent move — browsers and search engines cache and use the new URL. 302 indicates a temporary move — browsers go to the new URL but keep indexing the original. Always use 301 for permanent changes and 302 for temporary ones.
How long do browsers cache 301 redirects?
Browsers can cache 301 redirects indefinitely. To clear a cached 301, users must clear their browser cache. This is why testing 301 redirects in development is important — a mistake can persist in user browsers.