Bulk URL SEO Auditor
Audits lists of URLs and flags SEO issues: uppercase, underscores, depth, stop words, query parameters, duplicates and excessive length.
Lines without a protocol are read as https://. Blank lines are ignored. Nothing leaves your browser.
Overview
Findings by frequency (click to filter)
| # | URL | Score ⇅ | Findings |
|---|
How the score is built
Each URL starts at 100. Every error costs 25 points and every warning costs 8; findings marked as information, such as an exposed .php extension, cost nothing. Green means 85 or more, yellow means 60 to 84 and red means below 60. Errors are reserved for the two cases that really break indexing: an unparseable URL and an exact duplicate of another line.
Three checks look at the whole list instead of the single URL: trailing slash, www and duplicates. The convention is decided by majority — if at least 70% of the URLs end with a slash, the ones that do not are flagged. Duplicate detection lowercases the host, drops the trailing slash and the fragment, removes utm_, gclid and fbclid and sorts what is left, so ?b=2&a=1 and ?a=1&b=2 collapse into the same address.
Check your URL patterns before the migration
Exporting a sitemap or a Screaming Frog crawl leaves you with a column of thousands of addresses and no quick way to tell whether they all follow the same pattern. Paste the list here, one URL per line, and each address comes back with a score from 0 to 100 plus the findings that pulled it down: underscores instead of hyphens, uppercase in the path, too much depth, tracking parameters left on an indexable page.
The score starts at 100. Every error costs 25 points and every warning costs 8; informational findings, such as a .php extension showing up in the address, cost nothing. Only two situations count as errors: a URL the browser constructor cannot parse, and an exact duplicate of another line in the list. Everything else stays a warning, because it depends on the convention the site chose.
Three checks look at the whole list instead of each URL in isolation, and they are usually the ones that catch migration problems: trailing slash, www and duplicates. Rather than demanding a fixed pattern, the page works out the convention by majority, with the cut at 70%. For deduplication, ?b=2&a=1 and ?a=1&b=2 collapse into one address, and utm_source, gclid and fbclid are dropped first.
Frequently asked questions
Do I have to paste the full URL, with https?
Why is an underscore in the path a warning, not an error?
What happens with lists longer than a thousand URLs?
Related Tools
Crawl Budget Log Analyzer
Parses Apache and Nginx access logs and reports how much crawling each bot does, which URLs Googlebot hits and where crawl budget is wasted.
Sitemap XML Generator
Generate a sitemap.xml from a URL list with lastmod, changefreq and priority. Useful for static sites. Everything in your browser.
Canonical URL Builder
Builds a canonical URL from domain, path, and relevant params, stripping trackers.