Skip to content

Everything for WordPress, web development — and beyond

301 redirect generator with a loop and chain audit

301 redirect generator with loop and chain checks

Paste a list of «old address → new» pairs and get rules for .htaccess, nginx or a CSV to import into the Redirection or Rank Math plugins. Before generating, the tool looks for loops, chains and conflicts — something no other free generator does.

The delimiter is detected automatically: tab, comma, semicolon, ->, or several spaces. The header line (source,target) is recognised and skipped; lines with # are comments. A .csv or .tsv file can be dropped straight into the field — it is read locally.
Applies to the whole set.
Paths with an extension (/sitemap.xml) do not get a slash.
Normalisation

The rules must be placed before the # BEGIN WordPress block.

Paste pairs «old URL → new URL» to see the rules.

The URL list is processed in your browser — it is never sent anywhere and never stored.

Three mistakes that stop redirects working

First — the order in .htaccess. The WordPress rules end with the L flag, that is “stop processing”. Any redirect of yours added after the # BEGIN WordPress block will never fire. It has to sit above it. Second — the source format for plugins. The Redirection plugin expects a path WITHOUT the domain name: /old-page, not https://site.com/old-page. This is the number one reason imports fail. Rank Math, by contrast, requires exactly eight lower-case columns and a separate matching field with the value exact, contains, start, end or regex. Third — chains. After several migrations you accumulate A→B, then B→C. Every extra hop eats crawl budget and part of the link equity passed on. The right thing is to rewrite the first rule straight to the final address. Worse still is a loop A→B and B→A: the browser will return the error “too many redirects”. What this tool cannot do: verify that a redirect actually works on your server. That needs an HTTP request with the status code read back, and for security reasons the browser does not allow that for other people's domains. We check the logic of the rules, not their execution.

Frequently asked questions