Web Atlas

πŸ•ΈοΈ WebAtlas: Interactive SEO Link Visualizer

Last Commit Repo Size License

PyVis NetworkX Openpyxl

Interactive SEO Link Visualizer for Screaming Frog Exports. WebAtlas is a Python-based technical SEO tool that transforms flat Screaming Frog Excel exports into dynamic, interactive network graphs. It allows SEOs to visualize internal linking structures, identify crawl depth issues, and discover topical silos that are invisible in standard spreadsheets.


πŸ“Ή Demo video

https://github.com/user-attachments/assets/64bebdd6-d904-49d4-b805-b4264af6d759


πŸš€ The Core Problem & Solution


✨ Key Features


πŸ› οΈ Installation

Ensure you have Python 3.10+ installed.

Clone the repository:

git clone https://github.com/reory/web-atlas.git
cd web-atlas

Install dependencies:

pip install pyvis networkx openpyxl

πŸ“‚ Usage

python main.py --xlsx internal.xlsx All_Outlinks.xlsx atlas.html

Tech Stack


πŸ“ Project Structure

web-atlas/
β”œβ”€β”€ webatlas/                 # Core package
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ sf_import.py          # Screaming Frog XLSX importer
β”‚   β”œβ”€β”€ graph_builder.py      # NetworkX graph construction + SEO logic
β”‚                             # PyVis HTML visualization
β”‚
β”œβ”€β”€ lib/                      # Additional assets or helper modules
β”‚   └── ...                   
β”‚
β”œβ”€β”€ tests/                    # Pytest suite
β”‚   β”œβ”€β”€ test_graph_builder.py
β”‚   
β”‚
β”œβ”€β”€ main.py                   # CLI entry point
β”œβ”€β”€ README.md                 # Project documentation
β”œβ”€β”€ CONTRIBUTING.md           # Contribution guidelines
β”œβ”€β”€ LICENSE.md                # MIT license
β”œβ”€β”€ requirements.txt          # Python dependencies
β”œβ”€β”€ pyproject.toml            # Build + metadata config
β”œβ”€β”€ demo.mp4                  # Demo video

🧠 Why this Architecture?


πŸ•΅οΈβ€β™‚οΈ How to Read the "Mothball"


πŸ§ͺ Tests


πŸ›£οΈ Roadmap Features

The Feature: Modify sf_import.py to pull the Status Code column from the "Internal" export.

The Visual: * Green: 200 OK

Yellow: 301/302 Redirects

Red: 404/500 Errors

The Feature: Use NetworkX to calculate the pagerank or in_degree (number of incoming links) for every node.

The Visual: Important pages with lots of "Link Juice" become large, dominant circles, while deep, unimportant pages stay tiny.

Use Python's string splitting to group URLs by their first subfolder.

The Visual: Add a "Legend" or use different colors for different folders. You can even add a toggle to "Hide all Blog posts" to see only the core service architecture.