DEV Community

Felipe Moncada
Felipe Moncada

Posted on

How to Compare More Than 5 Keywords in Google Trends (on One Scale)

Google Trends lets you compare at most 5 search terms. And if you run two separate comparisons, the numbers can't be combined: each chart is normalized to its own peak (0–100), so a "50" in one chart has nothing to do with a "50" in the other.

If you need to rank 20 brands, 50 product names or 200 keywords by search interest, that's a real problem. Here's the technique analysts use, and a way to automate it.

The trick: an anchor term

  1. Pick one anchor keyword with medium, steady popularity.
  2. Split your other keywords into groups of 4 and query each group together with the anchor (anchor + 4 = 5 terms, the Google limit).
  3. In every group the anchor appears with a different value, because each chart has its own peak. Compute a scale factor per group so the anchor's line matches the first group: factor_group = sum(anchor in group 1) / sum(anchor in this group)
  4. Multiply every value in the group by its factor. Now all groups are on the anchor's scale.
  5. Re-normalize everything to 0–100 using the overall maximum.

Example: true interest is anchor = 10, X = 40, Y = 20.

  • Group 1 (anchor, X): Google shows anchor = 25, X = 100.
  • Group 2 (anchor, Y): Google shows anchor = 50, Y = 100.
  • Factor for group 2 = 25 / 50 = 0.5, so Y becomes 50.
  • Final: X = 100, Y = 50, anchor = 25, which is exactly the true 40 : 20 : 10.

Precision tip: Google rounds values to whole numbers. If your anchor is tiny in a group (say 1–2), that group's rescaled values get noisy. Choose an anchor that's neither dominant nor negligible.

Doing it without code

I packaged this into a cloud tool on Apify, Google Trends API & Scraper. Enable Compare terms, paste any number of keywords, choose one or more countries, and it returns every keyword on a single comparable 0–100 scale (plus a CSV table for Excel or Sheets). It also retries through residential proxies when Google rate-limits (the classic HTTP 429 you get with pytrends).

{
  "searchTerms": ["nike", "adidas", "puma", "new balance", "asics", "reebok", "under armour", "skechers"],
  "compareTerms": true,
  "geos": ["US", "GB", "MX"],
  "timeRange": "today 5-y"
}
Enter fullscreen mode Exit fullscreen mode

Doing it in Python

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("whosandrw/google-trends-api").call(run_input={
    "searchTerms": ["nike", "adidas", "puma", "new balance", "asics", "reebok"],
    "compareTerms": True, "geo": "US", "timeRange": "today 12-m",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    if item["type"] == "interestOverTimeComparable":
        avg = sum(p["value"] for p in item["data"]) / len(item["data"])
        print(f'{item["term"]:<14} {avg:5.1f}')
Enter fullscreen mode Exit fullscreen mode

That's it: one scale, any number of keywords, any countries.

Top comments (0)