Back to Tools

GSC Coverage Visualiser

Use cases

Spotting low-quality folder patterns in crawled-not-indexed URLs Identifying which site sections have indexing problems Creating visual reports for stakeholders Analysing URL structure patterns at scale

Generates three interactive visualisations from GSC coverage data using Plotly: a treemap showing hierarchical folder structure with URL counts, a sunburst chart for radial path depth analysis, and a word cloud of the top 25 keywords from a single URL folder level (the segment after folder_start), not the whole path.

Uses NLTK for stopword removal and regex-based tokenisation to extract meaningful terms from URLs.

Jupyter Notebook GSC Data

Platform

Jupyter Notebook (requires Python environment)

Input

GSC coverage Excel export

Output

Interactive treemap, sunburst chart, and word cloud

View Source

Features

  • Plotly treemap of folder hierarchy with URL counts
  • Sunburst chart of the same folder levels in radial form
  • Word cloud of top 25 words from one folder level (NLTK stopwords and numbers removed)
  • Adjustable folder_start depth for ccTLD or language folders
  • Automatic fallback to depths 1 and 2 for the treemap if the set depth fails
  • Exports interactive treemap and sunburst HTML plus word cloud PNG

How to use

  1. 1 Export a GSC coverage report drilldown as Excel (CSV not accepted)
  2. 2 Run the notebook in Google Colab and upload the Excel file
  3. 3 Set folder_start (ships as 2; use 1 for sites without a ccTLD folder)
  4. 4 Run cells to generate the treemap, sunburst and word cloud
  5. 5 Download the two interactive HTML charts and the word cloud PNG

Frequently asked questions

What exact file does the notebook expect?
An Excel export of a Search Console coverage report drilldown; CSV is not accepted. The notebook reads a sheet named 'Table' (the sheet name GSC uses in its Excel exports) and takes URLs from the URL column of that sheet. If you convert the export to CSV or rename the sheet, the load cell fails.
What does folder_start control, and what is it set to?
It chooses which URL path segment becomes the top level of the treemap and sunburst. Despite the inline comment saying the default is 1, the notebook ships with folder_start = 2, which suits sites with a ccTLD or language folder such as /es/. Set it to 1 for sites without one.
What happens if my URLs are shallower than the folder depth I set?
Plotly raises a ValueError and the notebook falls back to depths 1 and 2. This fallback works for the treemap, but the sunburst fallback contains a coding slip (it builds a treemap under a different variable name), so the sunburst cell can still fail. It is safer to set folder_start to a depth all your URLs can satisfy.
Which part of the URL feeds the word cloud?
Only one folder level: the path segment after folder_start. Segments are split on hyphens and slashes, NLTK English stopwords and purely numeric tokens are removed, and the top 25 remaining words are drawn. It is not built from the full URL path.
Can I run it outside Google Colab?
Not as-is. The upload and download cells use google.colab.files, so in local Jupyter you would need to replace those cells with a local file path and standard save calls.

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