Skip to content

URL Query String Comparer

Paste two URLs, or two query strings like a=1&b=2, and see what really differs. The order of the parameters is ignored, the values are decoded, and the verdict tells you if they are the same apart from order.

Verdict

Different

Different: 1 added, 0 removed, 0 changed.
ParameterStatusIn AIn B
qSamered shoesred shoes
pageSame22
sortSamepriceprice
utm_sourceAdded in B—news

Parameter names and values are decoded (%20 and + both mean a space) and compared exactly, including capital letters. “a” and “a=” are the same. The part after # is ignored. Nothing you type leaves your browser.

How it works

  1. Paste the first URL or query string in A and the second in B.
  2. Read the verdict: identical, identical apart from order, or different.
  3. Check the table for each parameter that was added, removed or changed.
  4. Copy the summary to share the differences.

What people use it for

  • Tracking links

    Check that two links carry the same campaign parameters, whatever their order.

  • API and redirect debugging

    Find the one parameter that changed between a working request and a broken one.

  • Cache and canonical URLs

    See whether two addresses differ only by parameter order before you decide how to treat them.

Questions

How are the two queries compared?
Each query is cut at & into name and value, both are decoded (%20 and + both become a space), and the values of each name are listed. A name present only in B is added, only in A is removed, and with different values it is changed. If nothing differs, the verdict says whether the parameters also came in the same order.
What about repeated keys like a=1&a=2?
All the values of a repeated key are kept. a=1&a=2 and a=2&a=1 have the same values in another order; the page says so separately, because some servers read the order of repeated values as meaningful.
Does it compare the part before the question mark?
No. Only the query is compared. If both inputs are full addresses and the part before the ? differs, a note tells you. The part after # is ignored.
Is anything sent to a server?
No. The comparison is done by your browser and the text is never uploaded, stored or added to a link. Each input is limited to 20,000 characters and 2,000 parameters.