Switching between A-then-B and B-then-A in Keyword Combiner keeps the same total set of pairs but reverses their iteration order, so the final one-per-line list reads differently line by line. The tool uses a deterministic Cartesian product: every term in list A pairs with every term in list B, with no truncation, no sampling, and no hidden spacing around the separator. Choosing A then B walks list A as the outer loop and list B as the inner loop, so pair 1 always starts with A[1] and pair 2 still starts with A[1]. Choosing B then A flips the loops, so pair 1 always starts with B[1] and the rest follow in the new sequence. Because the iteration is stable, identical inputs in identical order yield byte-identical output, which makes a side-by-side comparison straightforward: run one order, copy the block, run the other order, copy again, and diff the two text blocks to see exactly which phrases moved. Theoretical pair counts and removed input duplicates stay identical between the two runs as long as the inputs are unchanged, while output collisions and unique output counts can differ because they depend on first-seen iteration order.

how do i compare a then b and b then a in keyword combiner
Compare A Then B vs B Then A in a Keyword Combiner

Why Order Changes the Output but Not the Count

The deterministic loop is the single source of truth. When you select A then B, the outer loop iterates through list A in first-seen order while the inner loop iterates through list B for every A term, then moves on. Selecting B then A swaps which list is iterated first, which means the second term of each line changes for the first time and the first term of each line changes for every line. A simple way to picture it is to write out a 2 by 2 case: with list A containing "red" and "blue" and list B containing "shoes" and "hats", A then B produces "red shoes", "red hats", "blue shoes", "blue hats". B then A produces "shoes red", "hats red", "shoes blue", "hats blue". The set of pairs is the same; the order of pairs and the order of words inside each phrase are both reversed relative to the loop choice.

That property matters because Keyword Combiner is a string-combination utility, not a relevance engine. The tool does not estimate search volume, competition, or intent. It does not normalize capitalization or add synonyms, so "Red" and "red" remain distinct case-sensitive terms and produce different output lines. Running the same lists in both orders therefore gives you two pure sequences of text with no semantic guesswork added between them, which is exactly the input you want when the goal is to inspect, diff, or pick the order that reads better for your audience.

How to Run A Then B and B Then A in Keyword Combiner

  1. Open Keyword Combiner and paste one base keyword or phrase per line into list A. Trim outer whitespace on each line, leave duplicates for now, and keep blank lines out so they do not count as terms.
  2. Paste one modifier or second term per line into list B using the same one-per-line convention. Each list can hold up to 500 unique case-sensitive terms and up to 100,000 UTF-16 code units of text per editor.
  3. Set the separator to the exact literal you want between the two halves of each phrase. A single space, a hyphen, a plus sign, or an empty string are common choices; the separator can hold up to 20 Unicode code points but cannot contain a line break or control character.
  4. Pick A then B, click Combine, and copy the resulting one-per-line block. Store this block as your first reference so the test stays reproducible.
  5. Switch the order control to B then A without editing the lists or the separator. Click Combine again so the tool iterates the new outer and inner loops.
  6. Copy the B-then-A block into a second location. You now have two text blocks generated from the same inputs, separated only by the order toggle.
  7. Paste both blocks into a diff tool, a spreadsheet as two columns, or a text editor that highlights line-by-line differences, and inspect where the phrases moved.

Comparing the Two Result Blocks Side by Side

A clean comparison keeps everything mechanical. Treat both blocks as plain text: each line is one phrase, line breaks are the only separators, and nothing else changed between the two runs besides the loop order. Pasting block A (A-then-B) and block B (B-then-A) into two columns of a spreadsheet lets you sort, filter, or align them line by line, but the most informative view is a literal diff because it shows which pairs moved to which positions. If the two blocks differ only in the order of the pairs and the order of the two halves inside each pair, you have confirmed that the input sets are identical and that the order toggle is the only variable.

Three things to watch for when the diff does not look symmetric. First, an empty separator can produce output collisions where two different pairs make the same final phrase, such as "ab"+"c" and "a"+"bc" both producing "abc"; the tool keeps the first output and reports later collisions in the summary, so identical lines in both blocks may be intentional. Second, exact duplicates inside list A or list B are removed after trimming while preserving the first occurrence, so a list with "shoe" and "shoe" loses one before generation. Third, deduplication is case-sensitive, so "Shoe" and "shoe" remain distinct terms and can each pair with the other list; if you want them collapsed, normalize them in your input first. The summary at the bottom of Keyword Combiner exposes unique output count, normalized list sizes, theoretical input-pair count, removed input duplicates, and removed output collisions, which is the audit trail you need before declaring the two orders equivalent.

When Each Order Matters for SEO Work

The order toggle is the cheapest way to test how search intent changes when the modifier comes before or after the base term. Long-tail queries often read as "modifier + base" ("cheap running shoes"), while category labels and product names often read as "base + modifier" ("running shoes cheap" sounds off, "shoes for running" is fine). Running both orders in the order, separator, and pair count workflow gives you both wordings without manually rewording, so you can pick the one that fits your ad copy, your taxonomy, or your content brief. This is also useful when an empty separator is selected, because word order is the only thing distinguishing "red shoes" from "shoes red" once the space is gone.

Scenario A-then-B reading B-then-A reading
Ad group with modifier first "Quick verb" style, modifier leads Base leads, modifier trails
Category or taxonomy labels Base first, modifier second Modifier first, base second
Long-tail query research Natural query word order Awkward or reversed word order
Empty separator (concatenated terms) Compound word shaped by list A Compound word shaped by list B
Negative keyword building Filter pattern from the base term Filter pattern from the modifier

If you are building VOSviewer co-occurrence maps or another tool that expects a specific word order, the difference can decide whether a phrase is useful at all, which is exactly why running both orders and diffing them is a fast sanity check.

Limits and Collisions That Apply to Both Orders

Both orders share every limit because the loop is just a different traversal of the same Cartesian product. The pair budget is calculated before output deduplication, so the rule is simple: if list A multiplied by list B would generate more than 10,000 input pairs, the entire request fails before any output is rendered. There is no partial sample, no ellipsis, and no silent truncation. The next pair after the cap fails the whole request. Empty lines are ignored at parse time, and exact case-sensitive duplicates inside each list are removed in first-seen order, so a tidy input avoids surprises. Each non-empty term is trimmed at its outer edges, internal spaces and punctuation are preserved, and a term may contain at most 100 Unicode code points with control characters rejected outright. Running the same lists twice in a row in either order yields identical text, which is what lets you treat the comparison as a deterministic test rather than a one-off guess.

The summary is where the audit lives. Read unique output count against the theoretical pair count, check the removed input duplicates, and check removed output collisions. If the unique output count is unexpectedly large for the chosen order, narrow the source lists before copying. If it is unexpectedly small, look for repeated source terms or for concatenations that collide on the empty separator. With those signals in place, choosing between A then B and B then A becomes a clean editorial decision: pick the order whose block reads better, copy it, and move on to your spreadsheet, ad-group draft, content brief, or downstream tool. The tool does not query any keyword provider, advertising account, or AI service, so every phrase you copy out still needs a relevance, demand, and policy pass before it ships.

For a deeper look, see Keyword Density Checker for Large Text Drafts.