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.

6 min readGEOContent & Semanticscross-border

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 classWhat it looks likeActionCost
MisquotedCited, but capacity or price is the old versionCorrect that sentenceLowest
Missing blockCrawled, has traffic, nothing quotableAdd an answer unitLow
CollisionTwo pages answer one question; citations flipMerge, keep the strongerMedium
IdleAbsent from sampled questions; no conversionnoindex, then watchConfig 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.

DimensionQuestionSourceRole
Margin valuePage earnings?Order and cost tablesSorts within a queue
Citation gapWhich class, how bad?Sampled promptsSorts within a queue
Rework costSentence, component, or master data?Template list, engineering estimateAssigns the queue
CrawlabilityRendered and liftable?Crawl and render checkGate

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

StepActionOwnerPasses when
1 Base sheetExport URLs; add type, template, 90-day marginContent, analyticsEvery page has a cost tier
2 Map questions20–30 real questions; log URL and lifted sentenceGrowthEvery question has a sample
3 Tag gapsOne of four classes, or “watch”ContentNo blanks, nothing forced
4 Assign queuesA this week, B this month, C as a projectContent, engineeringThree lists, named owners
5 Re-testSame prompts, same market; window by cost tierGrowthClass 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 groupPagesValueGapTierThis quarter
Hero product pages8HighMisquoted: old capacity, old priceACorrect sentences
Scenario posts22MediumMissing blockA/BThe six already cited
Category pages6HighCollision: three pages, one questionCMerge three to one
Discontinued-model reviews40LowIdle—noindex, watch
Remainder94—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.