How To Audit Redirects In A Site Migration Using The SEO Spider
Dan Sharp
Posted 24 October, 2013 by Dan Sharp in Screaming Frog SEO Spider
How To Audit Redirects In A Site Migration Using The SEO Spider
I’ve been meaning to write about how to use the Screaming Frog SEO Spider to audit redirects in a site migration for a little while. It’s a really important feature, something we use all the time internally and love, and one that I realised perhaps not all are completely aware of.
Obviously when you’re changing URL structure or moving to a new domain, 301 permanent redirects should be used to pass indexing and link signals from the old URLs to the new URLs. Let’s not go too deep into how you set them up, but fairly regularly things can go wrong; redirects can be set-up incorrectly to the wrong targets, have multiple hops, or even error and 404 etc.
Hence, it’s always wise to audit the old URLs, check they redirect correctly & spot any errors that might need to be corrected quickly. This can be a challenge, particularly at scale, but I hope the following process will really help.
1) Upload The Old URLs
Switch the SEO Spider to list mode, select the file with all the old URLs to audit & upload.

We always recommend uploading URLs from a crawl pre-migration, but it’s often wise to combine and de-dupe this with other sources, such as landing page URLs from analytics, Google Search Console top pages, data from Majestic, Ahrefs, Moz Link Explorer, scraped URLs from site: queries, log files, sitemaps etc.
2) Tick The ‘Always Follow Redirects’ Box
Navigate to the ‘advanced’ tab inside the ‘spider configuration’ and tick the ‘always follow redirects‘ option.

As default ‘list mode’ works at a 0 crawl depth, meaning it just crawls the URLs included in the upload. With this feature ticked, it means it ignores depth & will follow redirects until the final destination (a no response, 2XX, 4XX or 5XX etc).
3) Start The Crawl
Now hit the ‘start’ button, let the SEO Spider crawl the site, reach 100% and come to a stop.

4) Export The ‘All Redirects’ Report
This can be found under ‘Reports’ in the top level menu.

This is where the magic happens.
This report does not just include URLs which have redirect chains, it includes every URL in the original upload & the response in a single export. It then records the start and final URLs and statuses in fixed columns, and maps out the full hops for more information.
Click on the tiny incomprehensible image below to view a larger version which might make more sense.

Fixed Columns
As the image highlights, the report includes fixed columns for the start URL and final URL, and other vital information. The full list of fixed columns from left to right includes –
- Chain Type – Whether it’s an HTTP Redirect, JavaScript Redirect or Meta Refresh for example.
- Number of Redirects – The number of hops in the chain.
- Redirect Loop – True of False to whether the redirect goes back to a previous URL and loops.
- Temp Redirect in Chain – True or false to whether there is a temporary redirect in the chain.
- Address – The start URL uploaded and crawled first.
- Final Address – The final destination URL.
- Indexability – Whether the final address URL is Indexable or Non-Indexable at a glance.
- Indexability Status – The reason why a URL is Non-Indexable. For example, if it’s ‘noindex’.
- Final Content – The content type of the final address.
- Final Status Code – The HTTP status code of the final address (this will be a no response, 1XX, 2XX, 4XX, or 5XX).
- Final Status – The HTTP status of the final address.
- Content 1 – The content type of the start address.
- Status Code 1 – The HTTP status code of the start address.
- Status 1 – The HTTP status of the start address.
- Redirect Type 1 – The redirect type (HTTP Redirect, JavaScript Redirect, Meta Refresh etc) of the start address.
- Redirect URI 1 – The redirect target URL of the start URL.
- Content 2 – The content type of the second URL.
- Status Code 2 – The HTTP status code of the second URL.
- Status 2 – The HTTP status of the second URL.
- Redirect Type 2 – The redirect type (HTTP Redirect, JavaScript Redirect, Meta Refresh etc) of the second URL.
- Redirect URI 2 – The redirect target URL of the second URL.
- etc!
These columns allow you to quickly diagnose any issues. Then if required, you can also dig further into the full redirect chains.
Variable Columns
The report will map out the full details of the redirect chain in variable columns to the right of the fixed columns. So if there are 3 redirects in a chain, it will contain details of the exact content, status code, status and redirect target URL of each hop along the way. These columns are named as follows.
So this report, although intended for ‘redirect chains’, was also built to provide a comprehensive method to audit all redirects in a site migration in a nice, easy, single export so we don’t all go mad.
If you have any queries with the above feature, please do just let us know in the comments. Hopefully this helps ease the pain of site migrations a little.
More Frog brilliance!
Keep up the great work guys.
Would you recommend this process when migrating a blog from wordpress.com to wordpress.org ?
Hi Andrea,
Sure, it’s always nice to audit the URLs.
You can read up on WordPress.com migrations here – http://en.support.wordpress.com/moving-a-blog/ and their site redirect upgrades – http://en.support.wordpress.com/site-redirect/
Cheers.
Dan
Great post.
Can I use Screaming frog software to audit redirects when I migrate a blog from blogger to WordPress? Will the results be accurate?
I really need this to be done as soon as I can.
Hi Arbaz,
Of course. Run a crawl pre migration, then upload those old URLs into the spider and follow the process above.
Thanks,
Dan
Last month we released a new site. Since that moment I have launched this process about hundred times.
Something I have miss:
1.- This process test the redirection, but, you have to test in addition if the landings are working or not, so you have to export to CSV, copy the landings and then repite the process.
2.- This process has no memory, you have to make it with a excel template (that is not a big deal)
3.- When you are making this process, you have to wait many hours in some cases. I used to launch the process at night, but, could be great to automate the process in some way.
Hi VSEO,
Congrats on the new site! I am not 100% sure I fully understood your comment, so please forgive me if I misinterpret it.
Please make sure you’re using version 2.21 (or later if someone reads this in time!) of the SEO Spider to follow the above process –
https://www.screamingfrog.co.uk/screaming-frog-seo-spider-update-version-2-20/#221
We made a tweak as described in the above link –
“Now when you upload a list of URLs and use the ‘Always follow redirects‘ configuration, the resulting redirect chains report export will now include ALL URLs from the original upload, not just those that redirect. This should make it easier to audit URLs in a site migration by seeing them all in one place with a single report.”
So there shouldn’t be any need to export, re-upload and repeat the process which should hopefully help with speed etc as well.
Cheers.
Dan
Hi I just ran a crawl and noticed there were quite a few 301 and 302 redirects however when I went to the source URL the pages would not redirect would you happen to know why this is? It even listed the homepage as having a redirect when this is not the case, does this mean they were disabled in some way?
Hi Alex,
The ‘source’ URL contains a link to the redirect, so you know where they are located.
Pop an email through to support (https://www.screamingfrog.co.uk/seo-spider/support/) if you’re unsure.
Thanks,
Dan
Hi Dan,
Great post do you offer this as a service?
Thanks in advance
Jake
Hi Jake,
Yes, we do provide SEO consultancy on migrations etc.
Feel free to drop us a line – https://www.screamingfrog.co.uk/contact-us/
Thanks,
Dan
Yeah! the always follows redirects was the solution.
Thanks
Cool :-)
Great tool, although you could work a little on re-skinning ;)
Instead of crawling my site or a subdomain, can I feed the tool a list of pages that I know may contain broken links? Or perhaps tell it to find broken links in pages that have a particluar URL pattern?
Hi Javier,
Yup, you can upload URLs in list mode – https://www.screamingfrog.co.uk/seo-spider/user-guide/configuration/#15
I wrote a blog post about finding broken links in list mode here – https://www.screamingfrog.co.uk/broken-link-building/
You can control the crawl via using the include feature – https://www.screamingfrog.co.uk/seo-spider/user-guide/configuration/#9
Thanks,
Dan
Is it also possible to only show the final destination URL in a chain?
Hi Stef,
No, but hopefully this is something you can do quite quickly when exported into Excel.
We are planning on making a change where you see the final target next to the start URL, before all the hops at somepoint to make it easier to use.
Thanks,
Dan
Thanks for quick reply. Maybe it also comes in handy to not only see the final target url but also the size, amount of characters or other data to analyse the final url. For example after a few redirects I get this url http://clk.tradedoubler.com/click?p=145343 which shows a 200 responce code. But the page is actually broken for affiliate purposes :) just a thought
Hey Stef,
Thanks for your thoughts.
In the above scenario, I’d argue TD should probably be doing a better job with the response on that broken affiliate URL (or have some kind of a fail safe!).
Thanks for your feedback, some good suggestions.
Cheers,
Dan
Thanks for this post.
Reading your post has given me knew Screaming Frog was a fantastic tool for checking your own site URLs .
Brilliant – just found this and have had Screaming frog for a long time and didn’t know this was possible.
I m totally agree w/ Darren ! this is briliant ! thanks a lot
Thanks for the time saved. We have seen other online tools without success to check urls 25000
Absolutely brilliant! This tutorial was a complete lifesaver for me today. Thanks so much. You guys rock!
Is it possible to do a crawl against a different URL?
For example we have a development site and added the redirects, I would like to do a comparison off the old site currently live vs the development site to ensure all the redirects is in place pre launch.
Hi Chris,
You’ll need to crawl the two sites separately to compare URLs. But you should be able to audit the development site redirects with the above method though!
Cheers.
Dan
Thanks for this post!
Would you know if it is possible to get the same report but with, in addition, the other statuses (200, 500, 404) ?
Hi Samet,
No problem. I am not sure I understand your query, but if you mean just checking general response codes, then you can use our tool and just look under the ‘response codes’ tab.
It includes all response codes and we have a filter for 2XX, 3XX, 4XX, 5XX etc.
Cheers.
Dan
Great article !!! Checking the 301´s after a domain migration. Congratulations for the tool and for the support.
Easy, clear directions. Thank you!
Obviously when you’re changing URL structure or moving to a new domain, 301 permanent redirects should be used to pass indexing and link signals from the old URLs to the new URLs. Let’s not go too deep into how you set them up, but fairly regularly things can go wrong; redirects can be set-up incorrectly to the wrong targets, have multiple hops, or even error and 404 etc.
What resources would you recommend to look in to this further? Particularly e-commerce sites, but anything would be great.
Hi Dan,
Great post do you offer this as a service?
Hi Pedro,
Yes, we offer technical SEO consultancy for migrations, which includes redirect auditing (and why we built it!).
You can always drop through your requirements to info@screamingfrog.co.uk.
Cheers.
Dan
Excellent guide, thanks.
If it’s possible, I would like to know how to filter the internal URLs so I can see only the Posts list, without the tags and other elements.
Thanks!
After running a redirect report Im wondering why the below query string is considered to be a redirect?
Address 1 : https://mydomain/tour/?type=cruise
Final address: https://mydomain/tour/
When I load https://mydomain/tour/?type=cruise in a browser I am not redirected to https://mydomain/tour/ as the report is stating. Im assuming that Screaming Frog is treating the query string ?type=cruise as a redirect? Is this correct?
Hi Daniel,
It will be considered a redirect, because that’s the response given to the SEO Spider.
It’s worth remembering, what you see in your browser can be different – https://www.screamingfrog.co.uk/seo-spider/faq/#why-am-i-experiencing-a-different-response-in-a-browser
Feel free to pop it through to us via support if you wish to share the proper URL.
Cheers.
Dan
Hi, I’m trying to crawl for final redirect URLs a big list of URLs (300k+) is there a way to limit the crawl to only this data to make it more manageable/fast?
Hi Andres,
You can’t limit the crawl to the final destination only, as the SEO Spider will only know that by crawling the original URL and following any redirects.
You could break up the 300k URLs into smaller chunks to analyse, but I regularly analyse the number above with this method.
Cheers.
Dan
Hi,
Is there a way to make this report include also metatitle, metadescription, h1s,h2s etc of each of the refirects? or at least of the final one? This would be very helpful
Hi Andres,
Not within this report unfortunately. However, it’s super easy to get them and match them back up without having to use V-LOOKUP etc.
You could grab the final list of URLs and upload and crawl them in list mode and crawl them.
You can then export them back out in the same order you uploaded them with page titles etc (https://www.screamingfrog.co.uk/seo-spider/faq/#how-do-i-maintain-order-in-a-list-mode-export) and copy and paste them into your spread sheet :-)
I actually do this sometimes with GA, GSC, Ahrefs, Majestic, and Moz data, to help prioritise redirects based upon traffic, conversions and link metrics too.
Cheers.
Dan
Hello. Interested in your product. Questions about your product. 1. Maybe he analyze the site of the supplier at the price after activation. To see the prices you need activation on the site. sorry for bad english
Hi Nikolay,
Pop an email through to us via support and we can help answer your question – https://www.screamingfrog.co.uk/seo-spider/support/
Cheers.
Dan
I am crawling a site on which this method isn’t working. I’ve never seen this before. I’m inputting a bunch of URLs that return 301 or 302 response codes, I’m checking “Always Follow Redirects”, and still, a ton of them are not followed all the way to the end. There are many that only fetch the first redirect in the chain and then stop; these always show a status of “not crawled” under “Final Indexability Status”.
The result of this is that I can take one run’s full list of “Final Redirect URLs” and run that back through the tool, and find that many of the ones that had originally said “Not Crawled” are returning redirect codes, and on a second run through the tool, all they do is fetch the *next* redirect in the chain. I would have to keep running the “Final Redirect URLs” output of each run back through the tool again until there were no more that said “Not Crawled”, and then create a series of lookups inside a spreadsheet and do a ton of manual work to be able to get what I was after in the first place: one column of URLs that redirect, and then another column of each one’s final redirect destination.
Any idea why this would fail in this way? It isn’t the robots.txt because I’ve set the tool to ignore it.
Hi Will,
The only time we ever see this happen is when “Always Follow Redirects” isn’t set properly, or was set properly but it was in Spider mode, then you switched to list mode (which has a different config set etc).
So this is really one for support if you’d like someone to take a closer look (support@screamingfrog.co.uk).
Cheers.
Dan
Thank you, Dan: your reply contained the solution to my problem! I had been using the tool in spider mode and had switched to list mode before attempting this. I restarted and the method worked perfectly. Cheers!
Ah, awesome! Glad that helped out and it’s working again. Genuinely still my most used and fav feature!
Cheers.
Dan
Great tutorial, super helpful. Thanks!
Thanks for this tutorial, it is very usefull for our digital marketing agency
Thank you very much! Very useful tutorial! Good to know for checking urls after migration. I didn’t know about the advanced setting to let the spider follow the redirects – until I read this tutorial.
But: in my screaming frog version (15.2) I have to change step 1) and 2) I think.
Regards – Hollie
Thank you for the article,
Sorry i’m still not clear what are the major redirect red flags we are looking out for with regards to redirects from an SEO perspective please? How do you identify the major issues?
Many thanks,
Alex
Super useful for our agency services, thank you!