Skip to content
stay trendy!

Bulk Keyword Helper for Google Trends

Cartoon owl looking at Google Trends

Google Trends doesn't have an API to help with bulk keyword trend research, but we've created Trendy to make comparing large numbers of keywords using Google Trends much easier. We've been using different variations of this tool which started out as an AutoHotkey script, evolved into many iterations of a Python script for different purposes, followed now by a web app anyone can use!
  • The web app allows you to paste large lists of keywords (one per line) and create links to groupings of 5 terms for comparison.
  • A basic python version that can be run on a local machine (and isn't dependent on any of our other tech stack), and automatically opens a 5-yr comparison and 1-yr comparison of each set of 5 keywords is also available below.

Trendy Google Trends WebApp

Paste your list of keywords below, each on a new line. Click "Generate Links" to create links to compare 5 terms in each link on Google Trends.

Use ctrl + click to load each set of five keywords to compare or use a tool like the LinkClump Chrome Extension to open a group of links at a time.

Trendy Google Trends Python Script:

Copy a list of keywords into your clipboard. Run the python script, and Voila! 


*The Python script depends on pyperclip and webbrowser installs. 

import pyperclip
import webbrowser

from itertools import zip_longest

def grouper(iterable, n, fillvalue=None):
# Helper function to split the lines into groups of 5
args = [iter(iterable)] * n
return zip_longest(*args, fillvalue=fillvalue)

def generate_urls(terms_group):
# Formatting the URLs
terms = ','.join(term.replace(' ', '%20') for term in terms_group if term)

# Generating URL for 5-year term (YouTube search trends)
url_5yr = f"{terms}&hl=en"

# Generating URL for 1-year term (YouTube search trends)
url_1yr = f"{terms}&hl=en"

return url_5yr, url_1yr

def run_urls():
# Accessing clipboard content
clipboard_content = pyperclip.paste()

# Parsing the content
lines = clipboard_content.strip().split('\n')

# Splitting the lines into groups of 5
terms_groups = list(grouper(lines, 5))

for terms_group in terms_groups:
if None in terms_group: # This means the group has less than 5 terms
print("Group with less than 5 terms:", ', '.join(filter(None, terms_group)))

url_5yr, url_1yr = generate_urls(terms_group)
# Opening the URLs in the web browser

# Run the function to open the URLs
From the blog

Recent Blog Posts