ScrepyDocs

Redirects and Redirect Issues

Audit 3xx page responses, redirect chains, loops, temporary moves, and incorrect destinations with Screpy.

The Redirects (3xx) filter lists requested URLs that send the crawler elsewhere. Redirects preserve access when content moves, but internal links should normally point directly to the final preferred URL.

Understand the common redirect types

  • 301 and 308: strong signals that the resource moved permanently.
  • 302 and 307: indicate a temporary move; the original URL is expected to return.
  • Redirect chain: URL A redirects to B, then B redirects to C.
  • Redirect loop: the destination eventually sends the request back to an earlier URL.

Google uses permanent redirects as a signal that the target should be canonical. See Google's redirect guidance. The correct status depends on whether the move is permanent, not on which code appears more “SEO friendly.”

HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page

Analyze a redirected URL

  1. Confirm the first status and every hop to the final URL.
  2. Verify the final destination returns the intended successful response.
  3. Decide whether the destination satisfies the same user and search intent.
  4. Find internal links, sitemap entries, canonicals, and hreflang annotations using an intermediate URL.
  5. Group results by source template and redirect rule.

One expected redirect from HTTP to HTTPS is different from a chain created by years of URL changes. A temporary redirect left in place indefinitely can also make the intended canonical signal less clear.

Fix the source, not only the redirect

Keep useful external-facing redirects, but update controllable internal links to the final URL. Collapse chains into one hop, remove loops, and prevent redirect destinations from returning 4xx or 5xx responses. Update sitemap and canonical URLs so they describe the preferred destination directly.

Do not remove a redirect simply to reduce the count. Old URLs with backlinks, bookmarks, campaigns, or legitimate traffic can require long-lived redirects.

Example decision

Product links point to /item/old-name, which redirects to /products/new-name, then to /shop/new-name. Keep the old public aliases if they still receive traffic, change both rules to point directly to /shop/new-name, and update all internal links and sitemap entries to the final URL.

Verify the fix

Run a new crawl and confirm internal links resolve directly, chains are gone, final destinations return 2xx, and canonical URLs match the preferred destination. External requests to legacy URLs may remain normal.

Separate intentional redirects from redirect debt

Intentional redirects support URL migrations, HTTPS enforcement, and canonical host rules. Redirect debt appears when old URLs remain embedded in navigation, templates, sitemaps, canonicals, or content long after the move.

Map the full path from requested URL to final response. Review chains, loops, cross-domain jumps, protocol changes, query-string loss, and unexpected locale changes. The final page should satisfy the original intent, not merely return 200.

Expected data movement

When internal references are updated to final URLs, Redirects should decrease and Success should increase. A migration can temporarily increase Redirects because old addresses are still being discovered externally. That is acceptable if the redirects are permanent, direct, and semantically accurate.

If redirect counts rise without a planned migration, check route helpers, CMS URL fields, trailing-slash rules, case normalization, and cached navigation. If they fall sharply, verify that old URLs did not begin returning errors.

Redirect decision matrix

SituationPreferred action
Permanent move with direct equivalentPermanent server-side redirect
Temporary maintenance or experimentTemporary redirect with a clear end plan
Deleted content with no useful equivalent404 or 410 plus helpful navigation
Internal link points to old addressUpdate the link to the final URL
Chain across several historical URLsConsolidate to one hop

Google's redirect guidance explains supported methods. Keep historical redirects when they still serve external users, while cleaning the internal graph.

Return to the Pages overview to compare redirected URLs with the full page inventory. MDN's HTTP status reference documents the semantics of each 3xx response Screpy may encounter.

On this page