Redirect Map Builder

Free, no signup. A migration lives or dies on whether every old URL lands somewhere real. Paste your old URLs and new URLs and get a suggested 301 map — each row scored into a confidence tier with a plain-English reason, an override dropdown, a first-class unmatched bucket, and a 410 kill-list for pages with no equivalent.

Built your map? Verify the live chains afterwards with the Redirect Chain Mapper.

Paste 404 log or GSC not-found export
Normalization options

Example data — replace with your own

Runs entirely in your browser — nothing you paste is uploaded or stored. Sitemap import and content matching are opt-in exceptions — see below. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.

Feedback
Report a bug

Found something broken in Redirect Map Builder? Let us know what happened — this goes straight to a private triage queue, not a public list.

What will be sent
 No tool inputs, uploads, pasted source, complete results, query parameters, or URL fragments are attached automatically. You can edit or remove the selected passage above. Browser and anti-abuse metadata is processed for spam prevention. 
Pattern rules — bulk path transforms applied before matching

    What this result means ↓
    How the matching evidence works

    Each row’s “Why” control shows every matcher that ran. Raw scores are internal ordering only, not confidence percentages; the tier descriptions come from the labeled fixture calibration below.

    Bulk redirect and soft-404 audit

    Paste exported redirect/status/content evidence as JSON. Clicks, traffic, referring domains, provenance, hops, final canonical, raw/rendered error evidence, and intent text stay attached to each source row.

    Sample report Example data — real, matcher-verified result

    Say you migrated a blog and product catalogue. Your old URLs:

    https://example.com/2019/06/seo-tips
    https://example.com/about-us.html
    https://example.com/product.php?id=482
    https://example.com/blog/deprecated-tactic

    …and your new URLs:

    https://example.com/blog/seo-tips
    https://example.com/about-us
    https://example.com/shop/482-blue-widget

    …and the builder returns:

    • Two Strong matches, safe to accept. The dated blog post matched by slug ("seo-tips") and the PHP product page matched by its numeric ID (482) — see what each confidence tier means.
    • /about-us.html is actually an Exact match (extension-stripped hit on /about-us) — here it's shown marked 410 instead, to demonstrate the kill-list toggle overriding an automatic pick.
    • /blog/deprecated-tactic has no equivalent — its best candidate is only an 18%-similar weak guess, below the accept threshold, so it lands in unmatched for a manual decision, content matching, or a 410.
    • Once the map looks right, tick Check destinations are live 200s before export, or read site migrations for the full redirect-mapping process.

    How to use it

    1. Paste your old URLs on the left — the pre-migration set that will start 404'ing. A GSC Pages export, a crawl of the old site, or the 404 report all work; upload a CSV/TXT and the first URL-looking column is sniffed out automatically.
    2. Paste your new URLs on the right — the live destination set — or drop in a sitemap URL and press Load to pull its <loc> entries.
    3. Press Build redirect map. Each old URL gets a suggested destination, a confidence tier, and a plain-English reason. Use Load sample first if you just want to see it work.
    4. Work the list: change any pick from the dropdown, click 410 to mark a page gone, or hit Accept all Exact + Strong to lock in the confident rows and focus on the rest. The unmatched and 410 filters isolate what still needs a decision.
    5. Export to Apache .htaccess, nginx, Cloudflare _redirects/Bulk Redirects, or CSV — and optionally Check destinations are live 200s before you ship.

    What the results mean

    Each row carries a confidence tier and a status. The summary pills tally them:

    • Exact (green) — the path is identical, or identical once the file extension is ignored (/about-us.html/about-us). Trust these.
    • Strong (blue) — a matching last slug segment, a shared numeric ID, or a match asserted by one of your pattern rules. Very likely correct; skim them.
    • Fuzzy (amber) — the whole path is similar in tokens and scored at or above your accept threshold. Plausible, but review each one.
    • Unmatched (red) — no candidate cleared the bar (a below-threshold Weak best is demoted here too). These need a manual pick, content matching, or a 410.
    • Already exists (grey) — the old URL is also in your new list, so no redirect is needed; it is dimmed and excluded from the map.
    • 410 Gone (purple) — you flagged the page as retired; it exports as a kill-list entry, not a redirect.
    • In a loop (purple, left-barred) — chain flattening found the target itself redirects back, which would create a loop. Fix the destination before shipping.

    When you run Check destinations are live 200s, each destination also gets a small badge: 200 (clean), N redirects → … (you're mapping to a redirect, not the final URL), or 404/unreachable (a broken destination to fix first).

    How it works

    The matching engine runs entirely in your browser. Both lists are normalised first — optionally treating /a and /a/ as equal, comparing paths case-insensitively, stripping tracking params (utm, gclid, fbclid), and ignoring file extensions. Then each old URL runs a matcher cascade, strongest first: exact path, exact path minus extension, last-slug match, numeric-ID extraction, and finally whole-path token similarity. The first matcher that fires sets the tier; a below-threshold token best is demoted to unmatched rather than shown as a shaky guess.

    The optional trailing-slash normalisation is migration matching only: it lets /a and /a/ represent the same content candidate. The Redirect Chain Mapper keeps them distinct because its job is to expose an actual slash redirect hop.

    After matching, a chain-flattening pass detects cases where an old URL points at another old URL and rewrites the map to the final destination (or flags a genuine loop). Correct a row by hand and the tool offers to induce a pattern rule — e.g. /blog/* → /articles/* — and apply it to every similar row at once. The only server calls are opt-in: sitemap import, Tier 2 content matching (fetches title/H1/description only, live for new URLs and from Wayback or Common Crawl for dead old ones), and the destination-liveness check.

    Features

    • Calibrated confidence tiers (Exact, Strong, Fuzzy, Weak) with a plain reason per row, not a bare percentage.
    • A first-class unmatched bucket and a 410 kill-list so retired pages never get silently dropped or dumped on the homepage.
    • Per-row override dropdown with alternates, plus Accept all Exact + Strong to clear the easy rows in one click.
    • Pattern rules (wildcard or regex) with a live match-count preview, auto-detected directory remaps, and correction-driven rule induction.
    • Import from CSV/TXT upload or a sitemap URL; adjustable normalisation and fuzzy-accept threshold.
    • Optional Tier 2 content matching and a destination-liveness check that reuses the bulk status checker.
    • Exports to Apache .htaccess, nginx, Cloudflare _redirects and Bulk Redirects, and CSV — ordered specific → general, with self-redirect no-ops dropped.
    • Autosaves to your browser; download/import the whole project as JSON.

    Limitations

    It matches on URL structure, not meaning — two unrelated pages that happen to share a slug can match, which is why Fuzzy rows are flagged for review. It does not crawl your site to discover URLs (paste or import them). Sitemap imports follow nested indexes within explicit depth, document, and URL caps. The destination check and content matching are capped per run and only reach public URLs. And it builds the map — it doesn't deploy the redirects; you export the rules and add them to your server or CDN.

    Frequently asked questions

    What is a redirect map?

    A redirect map is a list that pairs every old URL with the new URL it should 301 redirect to after a site migration or restructure. It is the deliverable you hand to whoever configures the redirects, and getting it right is what preserves rankings and stops visitors hitting 404s. This tool builds that list for you by matching your old URLs to your new ones and scoring each pairing so you know which rows to trust and which to review.

    How does it decide which old URL matches which new URL?

    It runs a cascade of matchers, strongest first: identical path (Exact), identical path ignoring the file extension (Exact), a matching last slug segment or a shared numeric ID (Strong), then token similarity of the whole path (Fuzzy above your threshold, Weak below it). The first matcher that fires sets the tier, and the row shows the plain reason — for example "slug match" or "shared ID token 482". You can override any pick from the dropdown, and correcting one row offers to generalise the fix into a pattern rule for similar URLs.

    Is my URL list uploaded anywhere?

    No. Parsing, normalisation, matching, chain-flattening and every export run entirely in your browser, and your project autosaves to that browser only. The only network calls are optional and clearly opt-in: importing a sitemap by URL, the Tier 2 "match remaining by content" step, and the destination-liveness check. If you paste your URLs and export, nothing leaves your machine.

    What should I do with the unmatched URLs?

    Unmatched rows are the whole point of the tool being loud about them — they are the old URLs with no confident new equivalent, and they are exactly what you would otherwise miss. For each one, either pick a destination manually from the dropdown, run Tier 2 content matching to get suggestions, or mark it 410 Gone if the page genuinely has no replacement. Leaving them unmatched means those URLs 404 after launch.

    When should I use a 410 instead of a 301?

    Use a 301 when the old page has a real equivalent on the new site. Use 410 Gone when the content is genuinely retired with no replacement — a discontinued product, an old campaign page, thin content you are pruning. A 410 tells search engines the URL is intentionally gone so they drop it faster than a soft 404, and it keeps you from redirecting dozens of dead pages to the homepage, which Google treats as a soft 404 anyway. The tool exports 410 rows as a separate kill-list.

    Local data

    Saved targets, named lists, and recent check summaries remain only in this browser.

    Next stepHTTP Status & Redirect Checker — verify it with a direct check.

    Feature requests for Redirect Map Builder

    Upvote what you want most. New ideas can be submitted from the floating Feedback menu; requests appear here once approved, and the most-wanted rise to the top.

    Loading…

    ➕ Request a feature

    New requests are reviewed before they appear here.

    حول الأداة

    واحد ترحيل lives أو dies على ما إذا قديم عناوين عنوان URL يصل somewhere فعلي. لصق قديم و جديد عناوين عنوان URL و احصل واحد مُقيَّم 301 خريطة مع واحد غير مطابق حاوية و 410 قائمة.

    مجاني, من دون تسجيل. واحد ترحيل lives أو dies على ما إذا كل قديم عنوان URL يصل somewhere فعلي. لصق الخاص بك قديم عناوين عنوان URL و جديد عناوين عنوان URL و احصل واحد مقترح 301 خريطة — كل صف مُقيَّم إلى واحد ثقة مستوى مع واحد plain-English سبب, واحد تجاوز dropdown, واحد first-class غير مطابق حاوية, و واحد 410 kill-list من أجل صفحات مع لا مكافئ.

    الميزات

    • Calibrated ثقة مستويات (دقيق, Strong, تقريبي, ضعيف) مع واحد عادي سبب per صف, ليس واحد bare نسبة مئوية.
    • واحد first-class غير مطابق حاوية و واحد 410 kill-list لذلك متقاعد صفحات أبدًا احصل بصمت مسقَط أو dumped على ال الصفحة الرئيسية.
    • Per-row تجاوز dropdown مع بدائل, بالإضافة قبول كل دقيق + Strong إلى مسح ال سهل صفوف في واحد انقر.
    • نمط قواعد (حرف بدل أو regex) مع واحد حي match-count معاينة, مكتشف تلقائيًا دليل remaps, و correction-driven قاعدة induction.
    • استيراد من CSV/TXT رفع أو واحد خريطة الموقع عنوان URL; adjustable تطبيع و fuzzy-accept عتبة.
    • اختياري مستوى 2 محتوى مطابق و واحد destination-liveness تحقّق ذلك يعيد الاستخدام ال دفعة حالة فاحص.
    • صادرات إلى Apache.htaccess, nginx, Cloudflare _redirects و دفعة عمليات إعادة التوجيه, و CSV — مرتّب محدد → عام, مع self-إعادة التوجيه no-ops مسقَط.
    • Autosaves إلى الخاص بك متصفح; تنزيل/استيراد ال كامل مشروع باعتباره JSON.

    كيفية العمل

    ال مطابق محرك تشغيل بالكامل في الخاص بك متصفح. كلاهما قوائم هي مطبّع الأول — اختياريًا معالجة /واحد و /واحد/ باعتباره متساوٍ, المقارنة مسارات من دون حساسية لحالة الأحرف, إزالة تتبّع params (utm, gclid, fbclid), و تجاهل ملف امتدادات. ثم كل قديم عنوان URL تشغيل واحد مطابق تتابع, الأقوى الأول: دقيق مسار, دقيق مسار ناقص امتداد, last-slug تطابق, numeric-ID استخراج, و أخيرًا المسار كاملًا رمز تشابه. ال الأول مطابق ذلك يُطلِق مجموعات ال مستوى; واحد دون العتبة رمز الأفضل هو مخفّض الرتبة إلى غير مطابق بدلًا من معروض باعتباره واحد هش يخمّن. ال اختياري trailing-slash تطبيع هو ترحيل مطابق فقط: إنه يتيح /واحد و /واحد/ يمثل ال نفس محتوى مرشح. ال سلسلة إعادة التوجيه مخطط يحتفظ هم متميز لأن الخاص به مهمة هو إلى يكشف واحد فعلي شرطة مائلة إعادة التوجيه قفزة. بعد مطابق, واحد تسطيح السلسلة اجتياز يكتشف حالات حيث واحد قديم عنوان URL يشير في آخر قديم عنوان URL و يعيد الكتابة ال خريطة إلى ال نهائي وجهة (أو علامات واحد حقيقي حلقة). صحيح واحد صف بواسطة تسليم و ال الأداة offers إلى يُحدث واحد نمط قاعدة — e.g. /مدونة/* → /مقالات/* — و تطبيق إنه إلى كل مشابه صف في بعد. ال فقط خادم استدعاءات هي اشتراك اختياري: خريطة الموقع استيراد, مستوى 2 محتوى مطابق (يجلب عنوان/H1/وصف فقط, حي من أجل جديد عناوين عنوان URL و من Wayback أو شائع زحف من أجل ميت قديم تلك), و ال destination-liveness تحقّق.

    القيود

    • إنه يطابق على عنوان URL بنية, ليس معنى — اثنان غير مرتبط صفحات ذلك يحدث إلى مشاركة واحد مُعرّف المسار يمكن تطابق, أي هو لماذا تقريبي صفوف هي موسوم من أجل مراجعة. إنه يفعل ليس زحف الخاص بك موقع إلى يكتشف عناوين عنوان URL (لصق أو استيراد هم). خريطة الموقع imports اتبع nested فهارس ضمن صريح عمق, مستند, و عنوان URL حدود قصوى. ال وجهة تحقّق و محتوى مطابق هي محدّد بسقف per شغّل و فقط reach عام عناوين عنوان URL. و إنه يبني ال خريطة — إنه لا deploy ال عمليات إعادة التوجيه; أنت تصدير ال قواعد و أضف هم إلى الخاص بك خادم أو CDN.

    الأسئلة الشائعة

    ما هو واحد إعادة التوجيه خريطة?

    واحد إعادة التوجيه خريطة هو واحد قائمة ذلك أزواج كل قديم عنوان URL مع ال جديد عنوان URL إنه ينبغي 301 إعادة التوجيه إلى بعد واحد موقع ترحيل أو restructure. إنه هو ال deliverable أنت تسليم إلى whoever configures ال عمليات إعادة التوجيه, و الحصول على إنه الصحيح هو ما يحافظ على ترتيبات و يتوقف visitors يصل إلى 404s. هذا الأداة يبني ذلك قائمة من أجل أنت بواسطة مطابق الخاص بك قديم عناوين عنوان URL إلى الخاص بك جديد تلك و تسجيل الدرجات كل اقتران لذلك أنت يعرف أي صفوف إلى ثقة و أي إلى مراجعة.

    كيف يفعل إنه يقرر أي قديم عنوان URL يطابق أي جديد عنوان URL?

    إنه تشغيل واحد تتابع من matchers, الأقوى الأول: متطابق مسار (دقيق), متطابق مسار تجاهل ال ملف امتداد (دقيق), واحد مطابق الأخير مُعرّف المسار شريحة أو واحد مشترك رقمي ID (Strong), ثم رمز تشابه من ال كامل مسار (تقريبي أعلاه الخاص بك عتبة, ضعيف أدناه إنه). ال الأول مطابق ذلك يُطلِق مجموعات ال مستوى, و ال صف يعرض ال عادي سبب — من أجل مثال "مُعرّف المسار تطابق" أو "مشترك ID رمز 482". أنت يمكن تجاوز أي اختر من ال dropdown, و correcting واحد صف offers إلى generalise ال أصلح إلى واحد نمط قاعدة من أجل مشابه عناوين عنوان URL.

    هو my عنوان URL قائمة مرفوع في أي مكان?

    لا. التحليل, تطبيع, مطابق, تسطيح السلسلة و كل تصدير شغّل بالكامل في الخاص بك متصفح, و الخاص بك مشروع autosaves إلى ذلك متصفح فقط. ال فقط شبكة استدعاءات هي اختياري و بوضوح اشتراك اختياري: importing واحد خريطة الموقع بواسطة عنوان URL, ال مستوى 2 "تطابق متبقٍ بواسطة محتوى" خطوة, و ال destination-liveness تحقّق. إذا أنت لصق الخاص بك عناوين عنوان URL و تصدير, لا شيء يترك الخاص بك آلة.

    ما ينبغي I يفعل مع ال غير مطابق عناوين عنوان URL?

    غير مطابق صفوف هي ال كامل نقطة من ال الأداة يكون عالٍ حول هم — هم هي ال قديم عناوين عنوان URL مع لا confident جديد مكافئ, و هم هي بالضبط ما أنت سيكون وإلا يفوّت. من أجل كل واحد, إما اختر واحد وجهة يدويًا من ال dropdown, شغّل مستوى 2 محتوى مطابق إلى احصل اقتراحات, أو علامة إنه 410 ذهب إذا ال صفحة حقًا يحتوي لا استبدال. Leaving هم غير مطابق يعني تلك عناوين عنوان URL 404 بعد إطلاق.

    عندما ينبغي I استخدم واحد 410 بدلًا من واحد 301?

    استخدم واحد 301 عندما ال قديم صفحة يحتوي واحد فعلي مكافئ على ال جديد موقع. استخدم 410 ذهب عندما ال محتوى هو حقًا متقاعد مع لا استبدال — واحد discontinued منتج, واحد قديم حملة صفحة, thin محتوى أنت هي pruning. واحد 410 يخبر بحث محركات ال عنوان URL هو عمدًا ذهب لذلك هم إسقاط إنه أسرع من واحد ناعم 404, و إنه يحتفظ أنت من إعادة التوجيه dozens من ميت صفحات إلى ال الصفحة الرئيسية, أي محرك Google يعالج باعتباره واحد ناعم 404 anyway. ال الأداة صادرات 410 صفوف باعتباره واحد منفصل kill-list.