SEO Site Structure Tracker for Agencies — SoloCMO
SEO 03 · plan

Stop maintaining the spreadsheet.

One row per page, and in that row: the keyword it targets, how hard it is, how the live page scores, the URL it sits at, the links pointing to it, whether it's indexed, and what stage it's at.

The same plan as the topical map, in the form you actually work in.

Site Structureapp.solocmo.io
Screenshot Site Structure — the full table with all column groups 16:9 · export 2400 × 1350 (@2x)

Capture a client with real fetched numbers, not "not fetched yet." Anonymize the client name.

The problem

Every agency keeps this spreadsheet. Nobody keeps it current.

Tab per client. Columns for the page, the target keyword, the difficulty, the word count, the optimizer score, the URL, whether it's live yet. Built with good intentions in month one.

Then it goes stale, because every one of those numbers lives in a different tool and getting them into the sheet means opening five tabs and pasting. At fifteen clients, updating it is a day's work, so it becomes a record of what you planned in January rather than what's true today — and eventually you stop opening it.

One row, seven groups

Everything about a page, on the same line.

The columns are grouped by the question they answer — where it sits, what it targets, how hard it is, how it scores, where it lives, what points at it, and where it stands. Scroll right and the story of a single page continues without ever leaving its row.

Structure

  • Page
  • Subpage
  • Level 3
  • Level 4

Targeting

  • Target seed keyword

Difficulty

  • Traffic
  • KD
  • Words

Scores

  • Neuron
  • POP

Publishing

  • Live link

Authority

  • Ref. domains
  • Backlinks
  • Ranking kw

Tracking

  • Indexed
  • Last checked
  • Status

POP scores band at 70 and above, 40 to 69, and below 40 — so a weak page is visible without reading the number.

The difference

The numbers are fetched, and dated.

Traffic and difficulty against the seed keyword. Word count and optimizer scores against the page as it actually stands. Referring domains, backlinks and ranking keywords for authority. Indexation, with a last-checked date beside it.

That date matters more than it looks. A spreadsheet never tells you how old its numbers are, so you trust all of it equally and shouldn't. Here you can see which rows are fresh.

  • Seed keyword traffic and difficulty, pulled rather than pasted
  • Live word count and both optimizer scores against the published page
  • Referring domains, backlinks and ranking keyword count per URL
  • Indexation status with the date it was last verified
  • Locked by default, so the plan of record doesn't change by accident
Authority & trackingFetched
Screenshot Authority and tracking columns with real values 16:10 · export 1600 × 1000 (@2x)
Where it stands

Four stages, counted at the top.

Every row carries a status, and the counts sit above the table. It's the answer to the question a client asks on every call — how much of the plan is actually done — without anyone building a report to find out.

47

Not started

Planned in the structure, no work begun. The size of the runway.

0

Planned

Scheduled and briefed, waiting its turn in the queue.

0

In progress

Currently moving through the writing pipeline.

0

Published

Live, with a URL and its own performance numbers filling in.

A real client at the start of an engagement. Forty-seven pages planned, none built yet.

Plan to production

A row becomes a brief in one click.

Everything the article pipeline needs is already sitting in the row — the target keyword, the position in the hierarchy, the URL it will live at, the parent service it supports. One action pre-fills the brief with all of it and hands the page to the writer.

Which is the whole point of keeping the plan in a table rather than a document. The plan and the work are the same object.

  • The article brief pre-filled from the row's own fields
  • Status moves through the four stages as the page progresses
  • Drag rows or multi-select to restructure a silo without rebuilding it
  • Hierarchy numbering updates as things move
Send to writerRow action
Screenshot Row action pre-filling the article brief 16:10 · export 1600 × 1000 (@2x)
Two views, one plan

The map is for seeing. The table is for working.

They're the same structure. Which one you open depends on what you're doing — and both being true at once is what stops the plan and the work from drifting apart.

The map

Shape and gaps

Where the silos are thin, how the geo branch spreads, what a client's site looks like as a whole. The view you put on screen in a strategy call.

The table

Numbers and status

What each page targets, how it's scoring, whether it's indexed, what stage it's at. The view you work from on a Tuesday.

Both

One source of truth

Change the structure in either and it's the same plan. No exporting, no reconciling, no version that's three weeks behind.

Every module is on every plan. Plans differ only in how many clients you run.

Shared context

What feeds it, and what it feeds.

Questions

Site Structure, answered straight.

How is this different from the topical map?
Same plan, different view. The map is for seeing shape and spotting gaps; the table is for working. One is how you explain the site to a client, the other is how you run it on a Tuesday.
Where do the numbers come from?
They're fetched rather than typed — traffic and difficulty against the seed keyword, word count and optimization scores against the live page, referring domains, backlinks and ranking keywords for authority, plus indexation with a last-checked date so you know how fresh the row is.
Why is the table locked by default?
Because this is the plan of record for a client's entire site and a stray click shouldn't rewrite it. Unlocking is one toggle, and it makes editing a decision rather than an accident.
How does a row become an article?
One action per row pre-fills the article brief with everything already in that row — the target keyword, the hierarchy position, the URL it will live at — and hands it to the writing pipeline. The status moves through not started, planned, in progress and published.
Can I reorder and restructure?
Yes. Drag rows or multi-select to move a group, and the hierarchy numbering updates with them. Restructuring a silo is a drag rather than a rebuild.
Get started

Every plan includes every module.

There are no feature gates. Plans differ only in how many clients you run and how much you generate for them.