Google Trends Keyword Ranker and Compare Tool
Pricing
Pay per event
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.
What does Google Trends Keyword Ranker and Compare Tool do?
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.
Why use Google Trends Keyword Ranker and Compare Tool?
- 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
changePctandtrendDirectionper 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,trendDirectionandscaleQuality. - interestOverTime is one row per keyword and location with the whole
timelinein 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:
| rank | keyword | normalizedAverage | trendDirection | scaleQuality |
|---|---|---|---|---|
| 1 | swift | 31.6 | steady | good |
| 2 | python | 30.5 | steady | exact |
| 3 | java | 15.1 | steady | exact |
| 4 | rust | 15 | rising | exact |
| 5 | typescript | 1.8 | rising | coarse |
| 6 | golang | 1 | falling | coarse |
| 7 | kotlin | 0.8 | rising | coarse |
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"}
How much does it cost to scrape Google Trends?
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
- Enter your keywords in Keywords, one per line. Phrases work as well as single words.
- Choose Locations as country codes such as
US,DEorGB, regions such asUS-CA, orWORLDWIDE. Up to 10 locations can be compared in one run. - Set the Time range from the last hour to all time, or give a Custom date range as two dates.
- 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
| Field | Meaning |
|---|---|
type | keywordSummary, interestOverTime, interestByRegion, relatedQuery or status |
keyword, geo | The keyword and the location the row was measured in |
rank | Position among all keywords of the location, 1 is the most searched |
normalizedAverage | Average interest on the shared scale, where the strongest keyword peaks at 100 |
averageValue | Average of the raw 0 to 100 points of the keyword in its own group |
peakValue, peakDate | Highest point on the shared scale and when it happened |
changePct, trendDirection | Change 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, anchorKeyword | How the keyword was placed on the shared scale, and the anchor that linked it |
timeline | Interest over time rows: date, value, normalizedValue, isPartial for every point |
regionName, regionCode, regionValue, regionRank | Interest by region rows |
relatedQuery, relatedKind, relatedValue, relatedLabel, isBreakout | Related query rows |
found, reason, message | Status rows that explain why a keyword or location returned no data |
FAQ
Is it legal to scrape Google Trends?
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.
Why do values differ from the Google Trends website?
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.
Related Actors
- Google News RSS Monitor tracks what is being published about the keywords you rank here.
- Website Tech Stack Lookup identifies the technology behind the sites that win the searches you found.