Template
Check SERP Similarity
Check the similarity of search results
The more content you publish, the harder it is to know whether two keywords deserve separate pages or can be combined without cannibalising each other. Manually opening two SERPs, scanning titles, guessing intent, and deciding on consolidation is slow — and it’s easy to overlook subtle differences. Our “Check SERP Similarity” app automates that judgment in seconds, giving you data-backed guidance on overlap, intent, and on-page requirements.
Walkthrough
Inputs
Query 1 – first keyword you’re evaluating
Query 2 – second keyword
Step 1 – Collect SERP data & first-pass analysis
Three functions run side-by-side:
SERPs Search (Query 1) – pulls the top three US web results, returning each title, link, and snippet as JSON.
SERPs Search (Query 2) – does the same for the second query.
Chat Model – LLaMA-2 70B
• Receives both raw SERP JSON blobs via {{serps_search_…}} references.
• Evaluates similarity, dominant intent (informational, transactional, etc.), word clouds for titles and descriptions, and URL structure patterns.
• Applies a strict overlap rule: 0 matching URLs ⇒ 0% confidence the queries belong together; 3/3 matches ⇒ high confidence.
• Returns a markdown report that’s easy to skim or drop into client decks.
Because all three functions sit in the same step, they execute in parallel, saving ~⅓ of the run time. The LLM still “sees” the SERP outputs thanks to Moonlit’s behind-the-scenes dependency resolver. For more guidance on leveraging automation at scale, check out our post on content automation.
Step 2 – Highlight overlap
We fire a second Chat Model to surface just the essentials:
Lists the exact overlapping titles (if any).
Shows both SERPs side-by-side for a quick eyeball check.
Labels the output clearly so non-SEOs can understand it.
Outputs
LLaMA-2 Analysis – full markdown advisory.
Overlapping Results – concise snapshot for quick stakeholders.
Query 1 / Query 2 SERP Raw – JSON you can pipe into other workflows (e.g., keyword clustering).
Customisation ideas
Bigger sample size – bump
num
in both SERPs Search nodes from 3 to 10 or 20 for more robust overlap scoring. For additional insights, you might also want to see our content automation examples from successful businesses.Geographic intent checks – clone the app, change the
country
parameter (e.g.,"gb"
,"de"
) to see if overlap varies by market.Visual alerts – add a Python Function that assigns a traffic-light colour to the confidence score and pushes results to Slack or Sheets.
Refine confidence logic – edit the prompt with custom thresholds (e.g., weigh matching domains, not just exact URLs).
Cluster builder – loop the app inside a parent workflow that feeds a single “pillar” keyword against dozens of modifiers, then groups those with high overlap.
Idea | Description/Impact |
---|---|
Bigger sample size | Bump |
Geographic intent checks | Clone the app, change the |
Visual alerts | Add a Python Function that assigns a traffic-light colour to the confidence score and pushes results to Slack or Sheets. |
Refine confidence logic | Edit the prompt with custom thresholds (e.g., weigh matching domains, not just exact URLs). |
Cluster builder | Loop the app inside a parent workflow that feeds a single “pillar” keyword against dozens of modifiers, then groups those with high overlap. |
Running at scale with Bulk Runs
Create a CSV with two columns:
query_1
,query_2
(each row a pair you want to test).Open Bulk Runs → New Job → select the “Check SERP Similarity” app.
Upload the CSV and map each column to its matching input.
Launch. Moonlit spins up parallel threads, returning a csv of markdown reports and raw JSON for every pair. Bulk processing works in a similar way as our approach to automate content optimization, ensuring you can handle tasks at scale.
Filter by confidence score to decide which pages to merge, rewrite, or create net-new.
Why it matters
Search engines keep tightening their focus on user intent. Miss the mark and you risk cannibalisation, diluted authority, and wasted crawl budget. Automating SERP similarity checks means you:
Catch intent clashes before you draft copy.
Prioritise content consolidation projects on data, not hunches.
Save hours of manual SERP tab-hopping each week.