HTTP Status Codes

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

1

Common Cause

Website restructuring or domain migration

2

Common Cause

Changing URL slug or path structure (e.g., /old-page to /new-page)

3

Common Cause

Redirecting HTTP to HTTPS with HSTS

4

Common Cause

Removing or consolidating duplicate content

5

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 },
    ]
  },
}
6

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:

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.