GEO-115·Issue 10·Content & Semantics·115 / 132
Content Portfolio Audit: Which Pages to Fix First
A portfolio audit produces three lists — fix, merge, retire — not one rewrite queue. Sort pages by margin, citation gap, rework cost, and crawlability.
Issue focusMeasurable: AI Visibility, Attribution, and Experiments
Consider a composite scene. Late September: a pet-hydration brand with a US parent and a German storefront exports every URL to one sheet, 170 rows, oldest first. The content lead circles the 40 oldest and blocks two weeks to rewrite them. That week a shopper in Berlin asks an assistant how many fountains a four-cat household needs. The answer quotes a 2023 post describing a 2.5-liter reservoir discontinued last spring. The hero product page never appears. Nine circled pages are brand-story posts.
A portfolio audit is not a rewrite queue sorted by age. It splits the catalog into fix, merge, and retire — and the largest list is usually the one where nobody writes.
Publish date sorts time, not capacity
Publish date assumes every page decays at the same rate. It doesn’t: a price page is stale in a quarter, the logic for choosing between two formats holds for years. A 2023 post on multi-cat fountain placement can be truer than last month’s promotion.
The hours land badly. The oldest pages are launch-era brand stories: no margin, off the question chain. The page needing one corrected sentence sits at the back for not being old.
Worse is the output. A date sort yields one deliverable: a rewrite queue. An audit yields three — edit, merge, retire — run by different teams. Collapse them and the schedule breaks in week two. Page priority decides which three pages a quarter can absorb; this decides what the catalog owes.
The audit unit is the answer block, not the page
A retrieval system sees spans it can lift alone, not pages. One product page is quoted for capacity in one answer, decibels in another, filter price in a third. The gap belongs to the block.
Record three columns — question, cited URL, sentence lifted — and every page falls into one of four classes.
| Gap class | What it looks like | Action | Cost |
|---|---|---|---|
| Misquoted | Cited, but capacity or price is the old version | Correct that sentence | Lowest |
| Missing block | Crawled, has traffic, nothing quotable | Add an answer unit | Low |
| Collision | Two pages answer one question; citations flip | Merge, keep the stronger | Medium |
| Idle | Absent from sampled questions; no conversion | noindex, then watch | Config only |
Only “missing block” means writing. Misquoted is proofreading, collision is architecture, idle is subtraction; the audit demotes “write” from default to one option.
Four dimensions, and never one score
Do not fold these into a single ranking: cost decides who starts on Monday, and averaging it away hides the only choice the sheet exists to make.
| Dimension | Question | Source | Role |
|---|---|---|---|
| Margin value | Page earnings? | Order and cost tables | Sorts within a queue |
| Citation gap | Which class, how bad? | Sampled prompts | Sorts within a queue |
| Rework cost | Sentence, component, or master data? | Template list, engineering estimate | Assigns the queue |
| Crawlability | Rendered and liftable? | Crawl and render check | Gate |
Value is gross margin, not sessions: traffic and money pages rarely match. Record the class, not cited-yes-or-no — a wrong citation is worse than none, since it speaks for you now.
Cost splits into A, a paragraph; B, a component; C, master data. B and C need an engineer’s week; a C item without one is fiction. Crawlability is a gate: specs living only in images are an AI crawler map ticket, not a content task.
No total, because the work belongs to different trades. Within a queue, compare value against gap. Between queues, ask which returns first per person-day.
Five steps that end in a dispatch
| Step | Action | Owner | Passes when |
|---|---|---|---|
| 1 Base sheet | Export URLs; add type, template, 90-day margin | Content, analytics | Every page has a cost tier |
| 2 Map questions | 20–30 real questions; log URL and lifted sentence | Growth | Every question has a sample |
| 3 Tag gaps | One of four classes, or “watch” | Content | No blanks, nothing forced |
| 4 Assign queues | A this week, B this month, C as a project | Content, engineering | Three lists, named owners |
| 5 Re-test | Same prompts, same market; window by cost tier | Growth | Class gone, or explained |
Fill every cell in step 3 and the sheet claims the whole site needs work. Step 4 turns the audit into a dispatch: a merge ticket names the survivor, the 301s, and the links to edit; a retire ticket means noindex first, delete only once no orders depend on the URL.
Step 5 decides whether the audit earns a rerun. Reading a dozen pages a quarter as separate curves is mostly noise; read by gap class, the effect shows. Single-page timing belongs to the content refresh policy; portfolios are about the queue.
Example: 170 URLs, fourteen pages touched
Example — brand, figures, and grouping are invented.
| Page group | Pages | Value | Gap | Tier | This quarter |
|---|---|---|---|---|---|
| Hero product pages | 8 | High | Misquoted: old capacity, old price | A | Correct sentences |
| Scenario posts | 22 | Medium | Missing block | A/B | The six already cited |
| Category pages | 6 | High | Collision: three pages, one question | C | Merge three to one |
| Discontinued-model reviews | 40 | Low | Idle | — | noindex, watch |
| Remainder | 94 | — | Watch | — | Leave alone |
The costliest cell is the category row: high value, structural gap, engineering-dependent, can’t be forced into this week. Of 22 posts only six get touched; the other sixteen were never cited and give no baseline. The 40 retirements cost no writing: one config change, 40 fewer rows next time.
Fourteen edited, three merged, 40 retired. That ratio is the finding: most of the value is what you decline to do.
Where this breaks
First, no fixed prompt set, or too few pages. Without question, URL, and sentence columns the gap dimension is empty; under a few dozen pages, just read them.
Second, the assets are not yours. Marketplace listings offer no canonical, merge, or retirement; this covers your own storefront.
Third, merging can damage paid and off-site references. Merge only when two pages truly answer one question, and never pick the survivor by traffic: the page the model keeps quoting may be the one you 301’d, so traffic survives and the answer cites someone else.
Fourth, don’t mix three gap classes into one batch — the retest cannot say which worked — and don’t save it for year-end; a December backlog is expired by January.
This month, do one thing: export the URL list and add three columns — which question cited the page last, whether the quoted sentence is still true, and whether a fix touches copy or a template. Correct the misquoted tier-A pages, rerun the same prompts in four weeks, leave the rest on watch. The method lives on the content and semantics hub; for how gaps roll into a dashboard, start with four layers of AI visibility.