How I filtered a 300k keyword sweep into one GW2 list

A plain account of turning a giant Semrush export into one master GW2 list: what I kept, what I threw out, where I filed it, and why.

Share
How I filtered a 300k keyword sweep into one GW2 list

I pulled a broad-match Semrush sweep of about 300,000 rows and filtered it down to around 1,600 Guild Wars 2 keywords worth a page. Here's the whole process, written so anyone picking it up later (future me included) can run it the same way.

Where this lands. The sweep feeds the Guild Wars 2 hub on Crit Pick, the case-study blog SeeIndie is building in public. The setup that came first: structure, tags and tracking before content.
Heads-up: this is the first full pass, not the finished list. Filtered and sorted once, with plenty of refining still ahead. The totals below are a snapshot, not a final count.

Where it started

With the blog's structure, tags and tracking already in place (the last post), the next job was the list itself. I work the sweep one seed at a time: one export for stats, one for gold, one for mastery, class, legendary, build, and so on. Each file is the whole broad-match neighbourhood around that one word, usually a few thousand rows, and most of those rows are junk: every possible word order of every possible phrase, almost all of it at near-zero volume.

What I'm building is one list I can trust: every Guild Wars 2 keyword actually worth a page, each one listed once, sorted under the topic it belongs to, and graded for a brand-new site with no authority yet. I keep it all in a single document on purpose. The list itself is the thing I work from.

The one that nearly ruined the whole thing: Garden Warfare

Here's the trap, and it's specific to this game. “GW2” isn't only us. It's also how everyone abbreviates Plants vs Zombies: Garden Warfare 2. So the moment you run a broad sweep on “gw2” terms, you drag in a pile of Plants vs Zombies content that has nothing to do with Guild Wars 2. At a glance, “best gw2 character” looks like a perfectly good keyword until you realise the searcher wants a cartoon sunflower.

The easy half announces itself: anything with pvz, garden warfare, plant, zombie, neighborville or garden ops. Gone, no second look. The half that cost me time is the Garden Warfare terms that don't contain any of those words, because they're named after that game's own stuff:

  • Its collectibles and modes: golden gnomes, crazy targets, snow globes, delivery badges.
  • Its currency: stars. Guild Wars 2 doesn't have “stars,” so every “how to get stars” query was Plants vs Zombies wearing our abbreviation.
  • Its characters: peashooter, sunflower, super brainz, cactus, chomper, and the rest of the roster.

The tell that saved me: these came in pairs. If I spotted an obvious “[something] pvz gw2” in the reject pile, there was almost always a twin “[something] gw2” (same words, no pvz) in the keep pile, the exact same Plants vs Zombies term. So whenever the blatant version showed up, I went hunting for its quieter twin. When I wasn't sure, I didn't guess, I searched it.

The rest of the cuts

If it doesn't say "gw2" or "guild wars," it's not ours. Broad match throws in generic MMO terms that never name us. A new site has no business chasing those, so anything without the brand in it goes.

Volume under 30, gone. Below thirty searches a month it's all permutation dust. Thirty is roughly where a keyword stops being an accident and starts being something people actually type.

One keyword, one home. Every term lives once, under the topic it most belongs to. Before I add anything from a new export I check it against everything already in the list.

What it came down to

Start with 300,000-odd rows. Knock out the Garden Warfare homonyms, drop everything that doesn't name the game, then remove the duplicates. That alone clears out almost the whole sweep, because broad match is mostly the same handful of real terms in every possible word order, repeated across all fifty seed exports. Of the few thousand real keywords left, I cut the roughly 2,700 that fall below the volume floor. What's left looks like this:

~300k
raw rows, every seed
~2,700
below vol 30, of the rest
1,592
keywords kept
~286k
total monthly volume

First full pass, June 2026. Most of the 300k was cross-game, off-brand or duplicate rows, cleared before the volume floor even applied.

The shape that fell out of it: three big pillars by volume. The timer tool (the one thing worth building), the build cluster (easily the largest theme), and the legendary pillar. The easiest wins sit in three repeatable lanes I can template: a page per elite-spec build, a page per crafting discipline, and a page per zone.

Then sorting the whole thing

By the time every export was filtered I had the full list, but organised by the seed each keyword arrived on. That's how I collected it, not how the site should be built. So once the list stopped growing I sorted it two ways: once by raw demand (highest volume first, gw2 event timer at 12,100 down to the 30s), and once by topic, into the 15 clusters that become the site's sections.

How I sorted each keyword:

  • What it's about, first clear signal wins. If it says "build" it's a build, even if it also says "wvw" or "fractal." Every build lives in one cluster.
  • Intent splits inside a cluster, not across it. gw2 builds and gw2 builder sit together in Builds; one's flagged as content, the other as a tool to skip.
  • Still one keyword, one home. Nothing appears twice. If it could go two places I pick the more useful one and note the other.
  • Brand names ride along but stay flagged. A rival build site is about builds, so it sits in Builds with a note that it's a competitor, not a target.

What the list points at

Once it's sorted by demand and graded for difficulty, the plan more or less picks itself. Two piles matter. The first is low-difficulty terms that still have real volume: the pages a brand-new site can plausibly rank in the near term. The second is the big heads, high volume and high difficulty, worth chasing later once the site has some history behind it. Here's a sample of each, straight off the list.

How to read it: KD is the difficulty score from the export, 0 to 100, lower is easier for a site with no authority yet. Volume is the tool's rounded monthly estimate, not a promise. Both are third-party guesses, fine for sorting and not worth treating as gospel. I use them as a pointer, not a fact.

Start here: low difficulty, real volume

These land almost entirely in the three lanes I can template: a page per profession build, a page per crafting topic, a page per zone. That's not luck, it's just where the easy volume sits in this game.

KeywordVol/moKDLane
gw2 build editor1,60016Build tool
gw2 map1,60018Zone / map
gw2 crafting guide1,30015Crafting
gw2 necro build8803Profession build
mesmer build gw28809Profession build
gw2 ranger builds72010Profession build
gw2 mystic clover72014Crafting
gw2 skyscale guide39020Mount guide
One caveat on those scores: difficulty tools are bad at spotting a SERP owned by entrenched, purpose-built sites, and GW2 builds are the textbook case. MetaBattle, Snow Crows, Hardstuck and GuildJen hold those terms, deep-linked and trusted, so gw2 necro build at KD 3 is almost certainly underrating a brutal page one. I read every score here as a reason to open the live results and look, not a green light.

Chase later: high volume, high difficulty

The big single-word heads. Worth a page eventually, but not the first fight to pick. They stay on the list so the targets keep showing, not so I write them on day one.

KeywordVol/moKDCluster
guild wars8,10078About / brand
gw2 builds8,10030Builds head
gw2 builder6,60031Builds tool head
gw2 classes4,40033Classes overview
guild wars 12,90064About / legacy
gw2 expansions2,40044Story & expansions
guild wars 2 release date1,60047About
The bridge: gw2 event timer sits right between the two piles, 12,100 searches a month at KD 28. The biggest single term in the whole sweep, and only middling difficulty, which is exactly why the timer was the first thing I built. More on that in the timer write-up.

How I run a fresh export

The whole loop, in order, so it stays repeatable as new exports come in.

01
Clear the floor
See how many rows clear volume 30. That's the real pile; ignore the rest.
02
Cut Garden Warfare
Giveaway words first, then hunt the quiet twins of anything blatant in the rejects.
03
Drop the off-brand
Anything that doesn't say "gw2" or "guild wars," and anything already logged.
04
Don't guess
Search anything cross-game before keeping or cutting it.
05
Group by sub-topic
Sort what's left into groups and decide which page each becomes.
06
Add as a block
Drop it in sorted by volume; note weak targets, brand terms, movers, refreshers.
07
Update the totals
Keep the running counts current so the document still adds up.
08
Re-sort when it settles
Once by volume, once into clusters, widening until no misc pile is left.

living document, grows with the sweep, shrinks as it's filtered.

Common questions

How big was the keyword sweep, actually?
About 300,000 broad-match rows out of Semrush, filtered down to around 1,600 Guild Wars 2 keywords worth a page. It's the first full pass, not the finished list.
What's the Garden Warfare problem?
"GW2" isn't only us. It's also how everyone abbreviates Plants vs Zombies: Garden Warfare 2. So the moment you run a broad sweep on "gw2" terms, you drag in a pile of Plants vs Zombies content that has nothing to do with Guild Wars 2, and it has to come out before anything else.
How do you decide what to cut?
If it doesn't say "gw2" or "guild wars," it's not ours. Broad match throws in generic MMO terms that never name us, and a new site has no business chasing those, so anything without the brand in it goes. Volume under 30 goes too. Then the duplicates come out.
Why does broad match return so much junk?
Because it's mostly the same handful of real terms in every possible word order, repeated across all fifty seed exports. That's why the count collapses so hard once the homonyms, the non-branded terms and the duplicates are gone.
What's the biggest Guild Wars 2 keyword on the list?
Sorted by raw demand, "gw2 event timer" sits at the top at 12,100 searches a month, and the list runs down from there to terms in the 30s.