Most content calendars are built from a brainstorm, a competitor’s sitemap, and a keyword tool’s volume column. They produce a reasonable list of topics and almost no information about when any of them should be published.
Google Trends answers a different and more useful question. It will not tell you how many people search a term — it deliberately refuses to — but it will tell you whether demand is growing or dying, which month it starts climbing, where in the country it concentrates, and which phrasings are emerging before anyone has written about them.
This is how to turn that into an editorial calendar: reading the normalisation correctly, mining rising queries for genuine gaps, and back-timing publication so the page is already ranking when the traffic arrives.
Read the number correctly or everything downstream is wrong
Google Trends returns a value from 0 to 100 where 100 is the highest point within the exact query you ran. It is relative to your timeframe, your geography, and your comparison set — all three.
Concrete consequence: a term showing 100 in a five-keyword comparison might show 12 when compared against a higher-volume term instead. Nothing about the underlying searches changed. The scale rebased.
This produces three habitual mistakes:
- Comparing across separate queries. Term A scored 80 in one search and term B scored 40 in another; therefore A is twice as popular. Not necessarily — different normalisation baselines. To compare, they must be in the same request.
- Treating low values as zero. Below about 10, sampling noise dominates. A term flickering between 3 and 7 is not trending; it is under-sampled.
- Using relative timeframes for anything tracked. “Past 12 months” rolls forward daily. Record a value today, re-check next month, and the baseline has moved beneath you. Use absolute dates.
What the normalisation is good for is shape. Direction, seasonality, relative magnitude within one request, and geographic concentration are all reliable. Volume estimation is not what the tool does, and pairing it with Search Console impression data — which is absolute — covers the gap.
Mining Rising queries for the actual opportunities
The Related Queries panel has two tabs, and the default one is the less valuable.
Top ranks by absolute popularity across the period. It returns the obvious: the head term, its plural, and two or three variants you already have pages for. Useful for confirming you have not missed something fundamental, rarely a source of new work.
Rising ranks by growth against the previous period. This is where demand appears before the SERP consolidates. Entries marked Breakout grew by more than 5,000%, which usually means the term barely existed before — and correspondingly, that almost nobody has published for it.
The workflow that turns Rising into a roadmap:
- Pull Rising queries for each of your three to five core topics.
- Discard news-driven spikes — a term rising because of one announcement will be dead in a fortnight. Check the interest curve; a genuine trend climbs over months.
- Discard navigational and brand terms unless the brand is yours.
- For everything left, search it in Google and read the top five results. If they are forum threads, thin listicles, or off-intent pages, that is a gap.
- Classify by intent — informational, comparative, transactional — because that determines format, not just topic. Once the intent is settled, structuring the page’s H2s and H3s around that intent is what makes it extractable.
Programmatically, with pytrends:
from pytrends.request import TrendReq
pt = TrendReq(hl='en-US', tz=0)
pt.build_payload(
kw_list=['generative engine optimization'],
timeframe='today 12-m',
geo='US')
related = pt.related_queries()['generative engine optimization']['rising']
breakouts = related[related['value'] == 'Breakout']
climbing = related[(related['value'] != 'Breakout') & (related['value'] > 150)]Note the two buckets. Breakouts are high-upside and high-risk — some are durable, some are a single news cycle. The > 150 band (queries that more than doubled) is often the better source of content that will still matter in a year. Running these pulls on a schedule rather than by hand is straightforward once the call is wrapped in a script.
Back-timing publication against the seasonal curve
This is the part a keyword tool cannot do, and it is where most of the value sits.
Pull five years of interest_over_time for a topic. Ignore the absolute values and read the annual shape. You are looking for the month interest begins climbing, not the month it peaks — by peak month the SERP is already settled and the top results have months of accumulated engagement signals.
pt.build_payload(kw_list=['dental implants'], timeframe='today 5-y', geo='US')
df = pt.interest_over_time()
monthly = df.groupby(df.index.month)['dental implants'].mean()
climb_start = monthly.diff().idxmax() # month with steepest month-over-month riseThen subtract lead time:
| Competition level | Publish before climb starts | Rationale |
|---|---|---|
| Low (long-tail, few competing pages) | 4–6 weeks | Indexing plus a short ranking ramp |
| Medium (established topic, 5–10 real competitors) | 8–10 weeks | Needs engagement signals to accumulate |
| High (commercial head term) | 12–16 weeks | May need supporting internal links and updates |
| Recurring annual event | Update the existing page 8 weeks out | Preserves accumulated authority; never republish new |
That last row is the one teams get wrong most often. For a topic that peaks every year, updating the existing URL beats publishing a fresh “2027 edition” at a new URL, which resets ranking history and cannibalizes the original. Refresh the content, update dateModified, keep the URL. The seasonal timing method is developed further in Google Trends seasonality analysis, and the complementary tactic — mining Search Console for pages already ranking just outside the top three — is covered in striking-distance keyword optimization.
Two cross-checks worth building in
Geography. interest_by_region at resolution='REGION' shows where demand concentrates. For a multi-location business this determines which location pages get investment; for a national one it tells you whether a topic is genuinely national or an artifact of two metro areas. A term with 70% of its interest in one state is a local content play, not a hub page.
Platform. The same keyword often shows a completely different curve on YouTube search than on web search, because the intent differs — web search skews toward “what is this and should I”, YouTube toward “show me how”. Comparing gprop='youtube' against the default web property tells you whether a topic wants an article, a video, or an article with an embedded video and a transcript.
Turning the pulls into a calendar
The output should be a table you can execute against, with one row per planned piece and enough columns to defend the ordering. The shape below is an illustrative example for a dental practice — the queries and months are hypothetical, standing in for whatever your own pulls return:
| Publish | Target query | Source tab | Peak month | Intent | Format |
|---|---|---|---|---|---|
| Aug 15 | “invisalign vs braces cost” | Rising | November | Comparative | Comparison table article |
| Sep 01 | “emergency dentist near me open now” | Top, stable | Year-round | Transactional | Location landing page |
| Sep 20 | “wisdom tooth recovery timeline” | Breakout | January | Informational | Step-by-step guide |
| Oct 10 | “dental implant financing” | Rising | January | Commercial | FAQ + pricing table |
Two disciplines keep this from decaying. Re-pull Rising queries monthly, because the set turns over faster than a quarterly planning cycle — a term that was Breakout in March is often ordinary by June. And record the relative interest value at planning time alongside the query parameters you used (keyword set, timeframe, geography), so you can tell later whether a piece underperformed because the plan was wrong or because demand moved — and so the number can be reproduced at all.
One honest limit: Google Trends tells you nothing about commercial value. A Breakout query with rising interest and zero purchase intent is still a Breakout query. Cross-reference against what actually converts in your GA4 data before committing a quarter to it.
Where to begin
Pick your single most important topic. Pull five years of interest over time, find the month the curve starts rising, and subtract eight weeks. That date is when your best page on that topic should be published or refreshed — and for most businesses it is a different date than the one currently in the calendar.
Then pull Rising related queries for the same topic and read the top five results for each. The gaps will be obvious within twenty minutes, and they will not be the topics you would have brainstormed. If you would rather have the full trend pull, regional split, and 12-month calendar built against your own Search Console data, that is the deliverable in the Premium MarketLens audit.
MarketLens