Back to Tools

Website Migration Tool

Use cases

Site migrations and platform changes Domain consolidations URL structure changes Recovering traffic after a rebrand

Matches live URLs to their staging/new equivalents using PolyFuzz with a choice of three matching models: TF-IDF (default), Edit Distance, or RapidFuzz.

Matches on the Address column plus up to three additional columns (H1-1 and Title 1 auto-detected, including multilingual column names).

Selects the best match per URL by highest similarity across columns and reports a median match score, grouped into 10% score brackets so you can focus manual review on weak matches.

Streamlit App

Platform

Browser-based (no installation required)

Input

Live site crawl CSV or Excel (e.g. Screaming Frog internal HTML export)

Staging/new site crawl CSV in the same format (encoding auto-detected)

Column selection: Address plus up to 3 matching columns

Output

Excel with a Mapped URLs sheet (best matching URL, matched column, similarity scores with colour scale) and a Median Score Distribution sheet with column chart.

Launch App View Source

Features

  • Three matching models: TF-IDF (default), Edit Distance, RapidFuzz
  • CSV input with automatic encoding detection via chardet
  • Match on Address plus up to 3 columns (H1-1, Title 1 auto-detected)
  • Multilingual column detection (Adresse, Direccion, Indirizzo, Titel 1)
  • Best match selected by highest similarity across columns (no minimum cut-off)
  • Median match score with 10% bracket distribution chart
  • Excel export with 3-colour scale conditional formatting

How to use

  1. 1 Crawl the live and staging sites with Screaming Frog
  2. 2 Export both crawls as CSV (only CSV uploads work)
  3. 3 Upload the live and staging CSVs to the tool
  4. 4 Select the Address column and up to 3 additional match columns
  5. 5 Choose the matching model under Advanced Settings
  6. 6 Click Process Files and review the median match score charts
  7. 7 Re-run with different column combinations to improve scores
  8. 8 Download the Excel redirect mapping (migration_mapping_data.xlsx)

Frequently asked questions

Why does my Excel (.xlsx) upload throw an error?
The Excel reading branch in the published source calls pd.read_excel_file, a function that does not exist in pandas, so .xlsx and .xls uploads error out. Export your Screaming Frog crawls as CSV instead; the CSV path works and auto-detects the file encoding with chardet.
Do the column names have to match between the live and staging files?
Yes. The tool only offers columns that exist in both files (the intersection of the two headers), so if your live crawl has 'Title 1' and your staging export calls it 'Page Title', that column cannot be used. Rename staging columns to match the live file before uploading. Address, URL and several multilingual variants are auto-detected as the address column.
Why does every URL get a match, even clearly wrong ones?
There is no minimum similarity cut-off: the default TF-IDF model is initialised with min_similarity=0, so the closest staging candidate is always returned no matter how weak it is. Treat the output as candidates, not final redirects, and use the similarity scores and the 10 percent score-bracket chart to decide which rows need manual review.
Is matching case sensitive, and does that affect the output?
All string columns in both files are lowercased before matching, so matching itself is case insensitive. The side effect is that the mapped staging URLs in the output come from the lowercased data. If your new site has case-sensitive URL paths, restore the correct casing before implementing the redirects.
When I match on multiple columns, how is the winning URL chosen?
Each selected column (Address plus up to three others, such as H1-1 and Title 1) is matched independently with PolyFuzz. For every live URL, the single column with the highest similarity wins and that staging row's Address becomes the mapped URL; the output records which column won, each column's score, and the median score across all matched columns.

Need something built for your business?

This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.

Book a Call