Back to Tools

Share of Voice Calculator

Use cases

Competitive market analysis by traffic share Tracking visibility changes over time Identifying market leaders in a keyword set Client reporting on organic market share

Calculates Share of Voice as (Domain Traffic / Total Traffic) × 100 with 2 decimal precision.

Automatic domain column detection with UTF-8/Latin-1 encoding fallback.

Filters unwanted domains via regex pattern matching.

Exports multi-sheet Excel workbook via xlsxwriter with embedded column chart.

Streamlit App

Platform

Browser-based (no installation required)

Input

Ahrefs Traffic by Domain CSV from Keywords Explorer

Bad domains CSV for exclusion (optional)

Output

Excel with share of voice rankings

Launch App View Source

Features

  • SOV formula: (Domain Traffic / Total Traffic) × 100
  • Auto domain column detection with encoding fallback
  • Regex-based bad domain filtering
  • Top N domains slider (5-50)
  • Excel export with embedded column chart (xlsxwriter)
  • Summary metrics: domain count, total traffic, leader SOV

How to use

  1. 1 Export Traffic by Domain from Ahrefs Keywords Explorer
  2. 2 Upload CSV (auto-detects UTF-8 or Latin-1 encoding)
  3. 3 Select domain column if auto-detection fails
  4. 4 Upload optional bad domains list to exclude
  5. 5 Set Top N domains (5-50) and download Excel

Frequently asked questions

How are the domain and traffic columns detected?
The tool scans your headers for a column containing 'url' or 'domain' and a column containing 'traffic' but not 'share' (so it skips Ahrefs' own Traffic share column). If either is not found, a dropdown appears so you can pick manually. The intended source is the Ahrefs Keywords Explorer export from Traffic share > By domains.
Why do all the percentages change when I move the Top N slider?
Share of Voice is calculated after trimming to the top N domains, so the denominator is the traffic of only those N rows. Percentages always total 100 percent of the displayed set, not of the whole market or the whole file. Widening the slider dilutes every domain's SOV; keep N fixed when comparing runs over time.
Does the tool sort domains by traffic itself?
No. It keeps the first N rows in file order, relying on the Ahrefs export already being sorted by traffic descending. If you re-sort or edit the CSV before uploading, the 'top' domains will simply be whatever happens to be at the top of the file.
How does the bad domains exclusion list match?
Entries from the first column of your exclusion CSV are combined into a single case-insensitive substring pattern, so 'ebay.com' also removes 'ebay.com.au' and a short entry like 'cars.com' removes 'usedcars.com' too. Dots are treated as regex wildcards as well. Make each entry as long and specific as possible and check the reported filtered-out count.

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.

Tell Me What You Need