Google Trends Keyword Ranker and Compare Tool avatar

Google Trends Keyword Ranker and Compare Tool

Pricing

Pay per event

Go to Apify Store
Google Trends Keyword Ranker and Compare Tool

Google Trends Keyword Ranker and Compare Tool

Rank up to 100 keywords on one comparable Google Trends scale, with interest by region and related queries, for many locations in one run.

Pricing

Pay per event

Rating

0.0

(0)

Developer

datagrit

datagrit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Google Trends Keyword Ranker and Compare Tool takes a list of up to 100 keywords and ranks them against each other on one Google Trends scale, per location. Google Trends itself compares five terms at a time and rescales every chart to its own peak, so two charts cannot be compared. This Actor links the groups through a repeated anchor keyword and returns average interest, peak, trend direction, top regions and related queries as structured rows you can export as JSON, CSV or Excel, call through the Apify API, or plug into n8n, Make and AI agents through MCP. No browser and no API key are needed.

  • Keyword research and content planning. Take 50 candidate topics, see which ones have real search interest and which are rising, and sort the list by one comparable number instead of eyeballing five charts at a time.
  • Market and product comparison. Compare brands, tools, programming languages or products in several countries in one run and see where each one is strongest.
  • Seasonality and trend alerts. Schedule the Actor weekly, store the rows and track changePct and trendDirection per keyword over time.
  • Finding what is breaking out. The related queries output flags breakout queries, which are search terms that grew by more than 5,000 percent.
  • Regional targeting. Rank countries, states, metro areas or cities by share of searches for a keyword to decide where to run ads or open a market.

What data does it return?

Pick the row types in Data to return. Every row has a type, the keyword, the geo it was measured in and a scrapedAt timestamp.

  • keywordSummary is one ranked row per keyword and location: rank, normalizedAverage, peakValue, peakDate, latestValue, changePct, trendDirection and scaleQuality.
  • interestOverTime is one row per keyword and location with the whole timeline in one field: date, raw 0 to 100 value, value on the shared scale and a flag for the period still running.
  • interestByRegion returns the top regions for each keyword at country, state, metro or city level.
  • relatedQuery returns the top and rising related queries with their score and a breakout flag.

How the shared scale works

Keywords are read in groups of five. From the second group on, the middle keyword of the first group is repeated as an anchor, and the ratio between its two readings rescales the whole group. Each row says how reliable its placement is in scaleQuality: exact for the first group, good when the anchor had plenty of search volume, coarse when it was thin or when the keyword's own values average below 3 on Google's 0 to 100 scale (whole-number rounding then dominates), and unlinked when it was too thin to link at all. Unlinked keywords keep their own 0 to 100 values but get no rank. The run message lists how many keywords fell into each class, so you know how far to trust the ranking.

Example output

A run for seven programming languages in the United States over the last 12 months returned this ranking:

rankkeywordnormalizedAveragetrendDirectionscaleQuality
1swift31.6steadygood
2python30.5steadyexact
3java15.1steadyexact
4rust15risingexact
5typescript1.8risingcoarse
6golang1fallingcoarse
7kotlin0.8risingcoarse

Swift ranks first because Google's search interest includes the bird, the singer and the language, which is a good reason to look at related queries before drawing conclusions. A related-queries row for python looks like this:

{
"type": "relatedQuery",
"keyword": "python",
"geo": "US",
"relatedKind": "rising",
"relatedRank": 1,
"relatedQuery": "python programming tutorial",
"relatedValue": 4450,
"relatedLabel": "+4,450%",
"isBreakout": false,
"scrapedAt": "2026-10-08T03:00:00.000Z"
}

The Actor uses pay per result pricing: you pay for each row it returns, and nothing for rows it does not return. Keywords or locations with too little search volume produce a single status row that is not charged, and so does a keyword whose interest rounds to 0 next to much stronger keywords in the same list (the run message counts these), and a run that cannot read Google Trends fails instead of billing empty rows. The Maximum rows input caps what a run can produce, and you can also set a maximum spend on the run in Apify. Check the pricing tab of the Actor for the current price per result.

A keyword summary run is the cheapest way to rank a long list, because it returns one row per keyword and location. A timeline is also one row per keyword, however many data points it holds.

How to use the Actor

  1. Enter your keywords in Keywords, one per line. Phrases work as well as single words.
  2. Choose Locations as country codes such as US, DE or GB, regions such as US-CA, or WORLDWIDE. Up to 10 locations can be compared in one run.
  3. Set the Time range from the last hour to all time, or give a Custom date range as two dates.
  4. Select the Data to return and run the Actor. Open the Overview view of the dataset for the ranking, or use the Regions, Related and Series views for the other row types.

Searches can be limited to web, images, news, YouTube or shopping, and to a Google Trends Category ID, for example to separate the fruit from the phone brand.

Input example

{
"keywords": ["python", "rust", "golang"],
"geos": ["US", "DE"],
"timeRange": "today 12-m",
"dataTypes": ["keywordSummary", "relatedQueries"],
"relatedQueryKind": "rising",
"maxRelatedPerKeyword": 5,
"maxItems": 100
}

Output fields

FieldMeaning
typekeywordSummary, interestOverTime, interestByRegion, relatedQuery or status
keyword, geoThe keyword and the location the row was measured in
rankPosition among all keywords of the location, 1 is the most searched
normalizedAverageAverage interest on the shared scale, where the strongest keyword peaks at 100
averageValueAverage of the raw 0 to 100 points of the keyword in its own group
peakValue, peakDateHighest point on the shared scale and when it happened
changePct, trendDirectionChange between the first and last third of the range, and rising, falling or steady. A keyword that starts from zero has no percentage but is rising
scaleQuality, anchorKeywordHow the keyword was placed on the shared scale, and the anchor that linked it
timelineInterest over time rows: date, value, normalizedValue, isPartial for every point
regionName, regionCode, regionValue, regionRankInterest by region rows
relatedQuery, relatedKind, relatedValue, relatedLabel, isBreakoutRelated query rows
found, reason, messageStatus rows that explain why a keyword or location returned no data

FAQ

The Actor reads the aggregated, public search interest numbers that anyone can see on the Google Trends website without logging in. It collects no personal data. You are responsible for using the results in line with the terms of the services you build on them.

Why do some keywords have no rank?

A keyword gets no rank when Google returns too little search volume for it, or when it is too small to be linked to the others. The scaleQuality field says which. A keyword without data in a location, or one that rounds to 0 on every point next to much stronger keywords, produces a free status row instead of a billed result; run such a keyword on its own to see its own curve.

Google Trends shows values from 0 to 100 relative to the highest point in the chart. The shared scale puts all keywords of the run on one chart, so the values are comparable between keywords. The raw numbers are in averageValue and in the value field of each timeline point.

How many keywords and locations can I compare?

Up to 100 keywords and 10 locations per run, and the Maximum rows field stops a run at the row count you set.

How often can I run it?

As often as you like. Google Trends refreshes daily, so a daily or weekly schedule is typical. When Google slows down requests, the Actor waits and retries, and the run message reports how many retries were needed.

What is not included?

Related topics are not returned, only related queries. Keywords with very low search volume get no values at all, which is how Google Trends reports them.