Back to Tools

SERP Crossover Analyser

Use cases

Detecting keyword cannibalisation Finding topic clustering opportunities Analyzing SERP similarity for keyword grouping Competitive SERP analysis

Fetches SERPs via the DataForSEO Google organic endpoint and calculates URL overlap with Jaccard similarity: (common URLs / total unique URLs) × 100.

urlparse removes www prefixes for domain normalisation.

10 countries, 3 devices (desktop/mobile/tablet), 5-100 results per SERP, 2-20 keywords simultaneously, with an estimated cost shown before the run.

Colour-coded heatmap: red ≥50%, yellow 25-50%, green below 25%.

Streamlit App

Platform

Browser-based (no installation required)

Input

DataForSEO login and password

Keywords (2-20, one per line)

Output

Crossover matrix CSV/Excel: Jaccard similarity %. Overlapping URLs CSV: multi-keyword rankings. Multi-sheet Excel with matrix, overlaps, raw SERP data.

Launch App View Source

Features

  • DataForSEO SERP API fetching with estimated cost shown
  • Jaccard similarity for URL crossover %
  • urlparse www removal for domain normalisation
  • 10 countries, 3 device types
  • 5-100 results per SERP (default 10)
  • 2-20 keywords simultaneously
  • Colour-coded heatmap (red/yellow/green)

How to use

  1. 1 Enter your DataForSEO login and password
  2. 2 Input 2-20 keywords (one per line)
  3. 3 Select location (10 countries) and device
  4. 4 Set results per SERP (5-100)
  5. 5 Run the analysis (one API call per keyword)
  6. 6 Review the crossover matrix, overlapping URLs, and raw SERP data
  7. 7 Download matrix CSV, overlaps CSV, or multi-sheet Excel

Frequently asked questions

Is crossover measured on domains or exact URLs?
Exact URLs. Two SERPs only overlap where the full URL string is identical, so the same site ranking with two different pages counts as zero overlap, and even trivial URL differences (tracking parameters, trailing slashes) break a match. The domain column is extracted for display only and plays no part in the calculation.
Does the number of results per SERP change the crossover percentages?
Yes, substantially. The Jaccard score is common URLs divided by total unique URLs across both SERPs, so comparing top-10s and comparing top-100s for the same keyword pair give different percentages. Keep the results-per-SERP setting constant if you want scores that are comparable across runs, and note the 50 percent and 25 percent heatmap thresholds were chosen with top-10s in mind.
What happens if one keyword's SERP fetch fails?
It is silently excluded. A warning is shown during fetching, and the analysis proceeds with whatever succeeded as long as at least two SERPs came back. Check the 'Keywords Analysed' metric against the number you entered before trusting the matrix.
Does the tool localise results automatically?
Requests are sent with the DataForSEO location code for the country you pick from the ten-country list, and always with the English language code. You cannot set a custom Google domain or language directly in the UI.

Need something built for your business?

This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.

Book a Call