← All HTTP status codes
3013xx — Redirection

HTTP 301 Moved Permanently

The resource has moved to a new URL permanently. Clients should update bookmarks; search engines transfer link equity.

What it means

301 is the redirect to use when you've moved content permanently. Browsers update bookmarks. Search engines pass ~all of the link equity from the old URL to the new one. Mobile carriers and proxies may cache aggressively, so 301s are essentially uncacheable in reverse — the user can't easily get back to the old URL after a 301.

Use 301 for permanent moves: changing a URL structure, consolidating duplicate URLs to a canonical, or migrating to a new domain. For temporary moves (A/B tests, maintenance), use 302 instead.

Common causes

  • URL structure changed (e.g. /old-path → /new-path)
  • Domain migration (e.g. uptime.example.com → uptimera.com)
  • HTTPS upgrade redirect from http:// to https://
  • Trailing slash normalization

How to fix it

  1. 1Update internal links to point at the new URL directly to avoid the redirect hop
  2. 2Confirm the Location header is an absolute URL or correctly-formed relative path
  3. 3If undesired, find the redirect rule (in nginx/Caddy/Cloudflare/your app) and remove or correct it

How Uptimera reports 301

Uptimera follows 301/302 redirects by default and reports the final status. You can disable redirect-following per monitor if you specifically need to detect when a redirect appears.

Catch 301s before your customers do

Uptimera monitors your URLs from multiple regions and alerts the moment a 301 starts firing. Free plan included.