Inventory every page, map every topic, identify every gap. The structural audit that prevents publishing into a hole no one measured.
That conversation skips the most important step: what does the firm already have, and what is it doing? A content inventory is the structural audit that answers those two questions. Until they're answered, every new page risks duplicating, cannibalizing, or contradicting something that already exists. Publishing into an unmapped site is the single most expensive mistake in legal SEO.

Most agencies start an SEO engagement by asking the firm what content it wants written.
The inventory is a row-per-page document. Every URL on the firm's site, with the following fields per row:
For a typical mid-size law firm site, the inventory has 60–200 rows. The inventory is built once and maintained — every new page added to the site adds a row; every retired page closes a row.
the canonical URL of the page.
what the page is currently targeting (or, if unclear, what it should be targeting).
pillar, child, supporting article, geo, location, attorney bio, contact, utility.
Practice Area, Local SEO, or Methodology (if the firm has a Methodology silo) — or "outside silos" for utility pages.
live + ranking, live + not ranking, draft, redirect-target, retired.
A count of the inbound and outbound internal links.
known issues, planned changes, dependencies.
The topic map is a list of every commercial-intent topic the firm could plausibly target, organized by silo. Pillar topics, child topics, supporting-article topics, geo + topic combinations. The topic map exists independently of the inventory — it is what the firm should cover. Cross-referencing the inventory against the topic map produces three lists:
The build sequence on a Core30 engagement is determined by this gap analysis. Refresh-and-expand work usually has higher ROI in months 1–3 than new-page creation, because Google ranks existing pages with link equity faster than it ranks new pages.
pages exist, on-target, ranking. No new work needed; maintenance only.
pages exist but are thin, off-target, or not ranking. Refresh, expand, or replace.
gaps. New pages.
One of the highest-leverage outputs of the inventory is the cannibalization audit — pages on the same site competing for the same keyword. Two pages targeting "Chicago personal injury lawyer" do not double the firm's chances of ranking; they halve it. Google will rank one or the other, never reliably the same one, and never both. The fix is to consolidate (merge into one stronger page) or to differentiate (one page targets a sub-intent, the other targets a different one).
Pages that exist but are not linked from anywhere on the site are orphans. Pages that have no outbound internal links are dead-ends. Both leak authority. The inventory's inbound/outbound link counts make orphans and dead-ends visible at a glance — any row with 0 inbound is an orphan; any row with 0 outbound is a dead-end. The fix is structural: add the missing links per the silo rules on the Silo Architecture page.
The inventory is a living document. Every published page adds a row. Every retired page closes one. Quarterly re-audit catches changes: pages whose ranking has decayed, pages whose internal-link inbound count has dropped, pages that have started cannibalizing a new sibling. The inventory is the single most reused artifact in a Core30 engagement.
Before a dollar is spent, you see exactly where your site leaks equity and which structural fixes compound.
A complete row-per-page inventory of the firm's current site (typically 60–200 rows).
A topic map for the firm's silos.
The gap analysis cross-reference.
The cannibalization audit.
The orphan + dead-end audit.
The build-priority list derived from all of the above.
Quarterly re-audit baked into ongoing engagements.
See the same 30-point audit we ran on ourselves. Before a dollar is spent, you see exactly where your site leaks equity and which structural fixes compound. No vanity metrics, no obligation.