Batch URL parser
The single-URL parser is for debugging one link. This one is for the crawl export, the analytics dump, the redirect audit — paste the whole list and get a table you can sort in a spreadsheet. Turn on parameter columns and every distinct query parameter becomes its own column, which is what makes campaign and pagination analysis possible at all.
How to use
- Paste your URL list, one per line. Parsing runs as you type — there is no Run button.
- Tick the columns you want. Depth counts path segments, which is the fastest way to spot URLs sitting five folders deep.
- Turn on One column per query parameter to pivot the query strings: every distinct parameter name across the whole list becomes a column, in first-seen order, and rows that lack it are blank.
- Copy as TSV pastes straight into Google Sheets or Excel with the columns already split. Or download CSV, TSV or JSON.
- Lines that are not parseable URLs are counted in the status line and skipped, unless you tick Keep rows that failed to parse.
What the parameter columns are for
Once each parameter is a column you can do the things that were awkward before: sort by utm_campaign to see which campaigns produced which landing pages, filter for rows where page is set to find your paginated duplicates, or scan a session column to find tracking IDs that should never have been indexed. A URL with a repeated parameter — ?tag=a&tag=b — gets both values in one cell separated by |, so nothing is silently dropped.
Parsing uses the browser's own WHATWG URL parser, so the results match what a browser, fetch and most HTTP clients will do with the same string — including lowercasing the host, dropping a default port, and resolving . and .. in the path.
FAQ
How many URLs can it handle?
Parsing is limited only by memory — tens of thousands of rows are fine. The on-page table shows the first 500 rows to keep rendering fast; every export and the copy button include the full set.
Why do some URLs come out slightly different from what I pasted?
The URL column shows the normalized form. Default ports vanish, the host is lowercased, and safe percent-escapes are decoded. If you need the raw input preserved instead, use the URL normalizer with the rules turned off to see exactly which change applied.
Can it read a CSV where URLs are in one column?
Not directly — paste the URL column on its own. For real CSV surgery, csvkit.org handles the column extraction and this tool handles the URL half.
Does the list get uploaded?
No. Everything is parsed in the tab, and the downloads are generated locally as blobs.