Keyword Comparison & Seasonality 📈 (Google Trends, 1 scale) avatar

Keyword Comparison & Seasonality 📈 (Google Trends, 1 scale)

Pricing

from $1.40 / 1,000 keyword analyses

Go to Apify Store
Keyword Comparison & Seasonality 📈 (Google Trends, 1 scale)

Keyword Comparison & Seasonality 📈 (Google Trends, 1 scale)

Put 2 to 5 keywords on one shared Google Trends scale and see which is actually bigger, then get each keyword's season: peak and quiet months, a strength score, year-over-year direction and rising related queries. Re-run it monthly per topic set. No browser, no API key, usage included.

Pricing

from $1.40 / 1,000 keyword analyses

Rating

0.0

(0)

Developer

Tagada Data

Tagada Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Keyword Comparison & Seasonality (Google Trends)

Give it 2 to 5 keywords. You get back which one is actually bigger, on the single shared 0 to 100 scale Google uses when you add terms side by side in the Trends UI, plus each keyword's season: the months it peaks, the months it goes quiet, a strength score, whether it is up or down year on year, and the related queries that are breaking out right now.

It is built for one recurring job: the content or SEO planner who sits down once a month with a topic set and asks "which of these should I write about next, and when does it actually get searched".

You can compare five terms in the Trends UI for free, one topic set at a time, on screen. What it will not give you is the numbers, the month by month seasonality read and the rising queries in one file you can diff against last month's. That layer is what the paid Trends tools sell: Glimpse, the best known of them, stops at 10 free searches a month and then starts at around $50 a month (checked 2026-08-17). This actor does the comparison and the seasonality part of that job as a scheduled run, and charges $0.002 per keyword.

The whole comparison is one run

Most Google Trends actors on this store bill per keyword and, more importantly, several of them take one keyword per run, which means a run fee per keyword and no shared scale at all. Comparing five keywords once a month:

actorwhat the job costsnotes
this actor$0.011one run, shared scale plus seasonality for all five
doesaiknow/keyword-seasonality-breakout-tracker$0.095seasonality only, no cross-keyword comparison
data_xplorer/google-trends-fast-scraper$0.110one keyword per run, so the $0.02 start is paid five times
agenscrape/google-trends-scraper$0.150$0.025 start plus $0.025 per item
george.the.developer/calibrated-google-trends-api$0.750calibrated comparison, no seasonality
apify/google-trends-scraperfrom $0.015the pool leader, rated 3.22 with 22.8% of its runs timed out or failed

Prices read from the public Store API on 2026-08-17. The leader's failure figure is 19.1% timed out plus 3.7% failed across 21,120 runs over 30 days, from the same source. This actor talks to Google's JSON endpoints directly, with no browser and nothing to time out.

What you get, per keyword

fieldwhat it is
rank, ofKeywordswhere the keyword places in the set, by average interest
pctOfLeader, isLeaderhow big it is against the biggest keyword in the set
averageInterest, peakInterest, peakDateon the scale shared across the whole set
sharedScaletrue when exactly one keyword holds the 100, which is the proof the values are comparable
peakMonths, lowMonthsthe three strongest and three weakest calendar months
seasonalityStrength0 to 100. 0 is flat all year, 100 would be a single month carrying everything
seasonalityLabelflat, mild, clear, strong or extreme, so a spreadsheet reads without a legend
monthlyIndexall twelve months, the keyword's best month set to 100
yearOverYear, yearOverYearChangePctrising, falling or flat, at a 10% threshold
risingQueriesthe breakout related queries for that keyword, with their growth
interestOverTimethe full weekly series on the shared scale, for charting
seasonalityNote, yearOverYearNotefilled in when a number is missing, saying exactly why

How the seasonality number is computed

No model, no smoothing, no black box. Every step:

  1. Weekly interest is averaged inside each calendar month.
  2. Each month is divided by its own year's average. This is the step that keeps a keyword which simply grew for five years from reading as "peaks in the most recent months". Growth is not a season.
  3. Those ratios are averaged across the years.
  4. The result is rescaled so the keyword's strongest month is 100. That is monthlyIndex.
  5. seasonalityStrength is (peak - trough) / peak, as a percentage.
  6. peakMonths is the top three months, lowMonths the bottom three.

Two exclusions, both deliberate: a year holding fewer than 10 months of data is left out of the average, because a five year window starts and ends mid-year and half a year would drag whichever months it covers; and the still-open final week never enters an average, because Google itself marks it incomplete.

yearOverYear is the mean of the last 52 weeks against the 52 before them. Rising above +10%, falling below -10%, flat between, because Trends noise moves a few percent on its own.

Two scales, and why

The comparison numbers come from one request carrying all the keywords together, which is what makes Google normalise them against each other. Ask for them separately and each one is rescaled to its own peak, so a 100 for one and a 100 for another mean nothing next to each other. That is the mistake this actor exists to avoid, and sharedScale in the output is the check.

The seasonality numbers come from a second pass, one request per keyword on its own, skipping the keyword that already holds the 100 because for that one the two scales are the same thing. There is a reason for the second pass. On a shared scale the 100 belongs to whichever keyword is biggest, and a big one flattens the rest. Measured on black friday, christmas gifts, valentines day, halloween costumes and easter eggs in the US: one Black Friday week takes the 100 and compresses the other four into whole numbers between 0 and 13, which leaves no readable season at all. Given its own request each of the five comes back correct, peaking in November, December, February, October and April respectively. Seasonality is a shape inside one keyword, so it belongs on that keyword's own scale.

If a keyword still ends up too small to read, seasonalityNote says so rather than publishing a pattern made of rounding. That answer is useful by itself: it means the set is mismatched and that keyword wants closer rivals.

Input

{
"keywords": ["ski holidays", "beach holidays"],
"geo": "GB",
"historyWindow": "today 5-y"
}

E-commerce planning, on YouTube instead of web search:

{
"keywords": ["air fryer", "instant pot", "slow cooker"],
"geo": "US",
"historyWindow": "today 5-y",
"property": "youtube"
}

A quick comparison with no seasonality, over the last year only:

{
"keywords": ["chatgpt", "claude", "gemini"],
"historyWindow": "today 12-m"
}
input
keywords2 to 5 keywords, required. Google compares at most 5 at once; extras are dropped with a warning in the log
geocountry, or leave empty for worldwide. Seasonality flips hemispheres, so this matters here
historyWindow5 years by default. 12 months returns the comparison only, and says so in the record
propertyweb, news, images, YouTube or Shopping. YouTube and Shopping seasons can peak weeks apart from web

Use cases

Content calendars. Run your topic set in January, read peakMonths, and publish six to eight weeks ahead of each peak rather than during it.

Choosing between two angles. "Is anyone searching for X or for Y" is only answerable on a shared scale. pctOfLeader answers it in one number.

Catching a category turning over. Re-run the same set monthly and watch yearOverYearChangePct and risingQueries. A keyword going from flat to falling two months running is a signal before it shows up in your traffic.

Seasonal stock and ad budgets. monthlyIndex is twelve numbers you can paste straight into a spend plan.

Questions people ask

Is this real Google Trends data? Yes, from the same JSON endpoints trends.google.com calls. Nothing is estimated or modelled.

Does it give absolute search volume? No. Google Trends does not publish absolute volume and neither does this actor. Everything here is relative interest, which is what Trends actually measures.

Why only 5 keywords? Because Google itself compares at most 5 terms in one request, and going past that would mean gluing separate scales together. Run several sets if you have more, or use the sibling actor below for bulk lists.

Why does one of my keywords have no seasonality? Either the window is shorter than two full years, or that keyword is too far behind the leader of the set for Google's whole-number scale to hold a pattern. seasonalityNote says which.

Can I schedule it? That is what it is for. Point a monthly schedule at the same keyword set and diff the datasets.

Do I need an API key or a proxy? Neither. Platform usage is included in the price.

  • Google Trends Scraper (Bulk Keyword Lists & Trending Now) — a bulk keyword list, interest by region, or live Trending Now with search volumes. This actor is the narrow version: one comparison set, done properly, meant to be re-run.
  • Trending Searches Today — what is trending right now, by country, with approximate search volumes and growth. Seasonality answers "when does this peak every year"; that actor answers "what is peaking today".

Keywords: compare keywords google trends, keyword seasonality, seasonal keyword research, peak months keyword, google trends comparison shared scale, keyword comparison api, glimpse alternative, rising related queries, year over year search interest, seasonality analysis SEO, content calendar keyword planning.