Visualise Internal Links
Use cases
Generates interactive treemap visualisation using Plotly showing link distribution across site sections.
Accepts Screaming Frog crawls, Ahrefs backlinks, or GSC internal/external link reports.
Auto-normalizes column names across sources, removes non-indexable pages when Indexability column present, and groups URLs by their first path segment, giving a one-level folder hierarchy rather than a full path tree.
Platform
Jupyter Notebook (requires Python environment)
Input
CSV from: Screaming Frog crawl, Ahrefs backlinks, or GSC links report
Requires Address/URL column and Inlinks column
Output
Interactive HTML treemap showing link distribution across site sections, weighted by link count.
Features
- Plotly interactive treemap visualisation
- Multiple data sources: Screaming Frog, Ahrefs, GSC
- Auto column renaming for known source formats
- Filters non-indexable pages when Indexability column present
- Groups URLs by first path segment (one-level hierarchy)
- Downloadable HTML output (internal_links_treemap.html)
How to use
- 1 Export link data from Screaming Frog, Ahrefs, or GSC
- 2 Upload CSV to the notebook
- 3 Run cells to generate treemap
- 4 Download internal_links_treemap.html
Frequently asked questions
- Which exact column names does my export need?
- The notebook normalises a fixed set of names: Screaming Frog's Address and Inlinks work as is; 'Target page' plus 'Internal links' (GSC internal links report) and 'Target Page' plus 'Linking Sites' (GSC external links report) are renamed automatically, as are Ahrefs' 'Link URL' and 'Referring Domains'. Exports in another language, or reports with any other headings, must be renamed to Address and Inlinks manually before upload or the treemap cell fails.
- How deep is the treemap hierarchy?
- One level. The URL path is split on slashes and the treemap groups by the first path segment only, with individual URLs nested directly underneath. A site whose URLs mostly live at the root (no subfolders) will collapse into a single group, and deeper folder structures beyond the first segment are not shown as separate levels.
- What do the box sizes mean when I upload an Ahrefs backlinks report?
- Box size is always taken from the column mapped to Inlinks. For a Screaming Frog crawl that is internal inlinks, for the GSC reports it is internal links or linking sites, but for Ahrefs it is Referring Domains, so the same visual represents a different metric depending on the source file.
- Are non-indexable pages always removed?
- Only if the upload contains an Indexability column, which in practice means a Screaming Frog export. Ahrefs and GSC files have no such column, so the filter is skipped silently and every URL in the file is plotted.
Want me to run this for you?
I run this tool as a managed service, or build something custom around your data. You get the insights without touching the code.
Related Tools
Find Wikipedia pages that need citations in your niche. Built with Streamlit.
Find link opportunities by intersecting competitor backlink profiles.
Find internal linking opportunities by matching keywords to page content.
Extract internal links from pages, check status codes, and analyse anchor text.
Assess anchor text relevance for internal linking using AI.
Test if a URL is allowed or blocked by robots.txt rules.
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