How to Bulk Test 301 Redirects
This guide walks through verifying a large redirect map before a launch. Pull the URL list from a sitemap, CSV, or Google Search Console export, then confirm each one returns 301, lands on the right destination, and resolves in a single hop.
Why bulk testing matters
Hand-testing a sample misses the redirect that breaks your highest-traffic page. Running the full list catches missing redirects, wrong status codes, wrong destinations, chains, and loops in one pass.
Step-by-step
- Gather your URLs. Pull old URLs from your redirect mapping spreadsheet, sitemap.xml, Google Search Console export, or server logs. One URL per line.
- Open the batch checker. Go to the batch checker and paste your URLs. You can also import a sitemap URL or upload a CSV.
- Run it. URLs are checked concurrently. For each one, the tool follows every hop to the final destination and records the status code at each step.
- Filter for non-301s. Show only URLs where the first redirect is not a 301. This surfaces 302s, 404s, 500s, and anything else unexpected.
- Check destinations. Sort by final URL. If many redirects land on the homepage, those rules are probably missing and the server is falling back to a default.
- Check for chains. Sort by hop count. Anything with 2+ hops is a redirect chain that should be shortened to one hop.
- Export. Download as CSV or export to Google Sheets. Share with your dev team so they can fix what you found.
What to look for
404 Not Found
The redirect rule is missing. The old URL returns a 404 instead of redirecting. Add a new rule pointing to the correct destination.
302 instead of 301
A 302 tells search engines the move is temporary. If this is a permanent change, it needs to be a 301. Common cause: your CMS or redirect plugin defaults to 302.
How to tell 301 from 302: In your batch results, each hop shows its status code. Look at the first hop. That is the code your redirect rule returns. Even if the final page returns 200, the initial redirect code is what matters for SEO.
Redirect chains
A URL that goes through 2+ hops before reaching its destination. Example: /old-page -> /renamed-page -> /final-page. Update the rule so /old-page goes directly to /final-page. See our redirect chain checker for more.
Redirect to homepage
If lots of old URLs end up on the homepage, those rules are missing. The server has a catch-all sending unknown URLs to /. Google treats this as a soft 404. Each old URL needs its own redirect to the right page.
After fixing, re-test
Once your team fixes the issues, run the exact same batch again. Every URL should now return a 301 on the first hop, reach the correct destination, and resolve in a single hop.
For ongoing checks, set up redirect monitoring to re-check automatically. Redirects break during server updates, CDN changes, and CMS plugin updates. Monitoring catches those regressions before they hit traffic.
Test from outside your network. Your browser cache, DNS cache, or corporate proxy can mask redirect issues. checkredirects.io checks from our servers, so you see the same behavior Googlebot and your users see.
Common scenarios
- Post-migration QA: Verify every redirect in your migration checklist works before removing the old site.
- HTTPS migration: Confirm all HTTP URLs 301 to HTTPS. See our HTTP to HTTPS audit guide.
- Domain change: Verify old-domain.com/page 301s to new-domain.com/page for every page.
- Cloudflare rules: After setting up Cloudflare Bulk Redirects, batch test every source URL.
- URL restructure: After changing /blog/2024/my-post to /articles/my-post, batch test all old URLs.
Working from a crawler export?
If you already crawl with another tool, you can feed those redirect lists straight in:
- Check redirects from an Ahrefs Site Audit. Full chain detail Ahrefs does not surface.
- Check redirects from SEMrush Site Audit. Chains, TLS, and user-agent comparison.
- Use with Screaming Frog. Multi-agent and per-hop TLS on top of your crawl.
Run a batch check
Paste your URL list and inspect every redirect chain at once.