A single source of truth for SEO campaigns is one agreed location for each type of campaign information — strategy, active work, deliverables, hours, and client-facing results — so that no one on your team has to ask "which version is current?" It does not mean one tool for everything. It means one canonical home per data type, and everything else points at it.
Most agencies think they have this. Then a strategist goes on holiday, someone covers their two clients, and it takes 90 minutes to reconstruct what was promised, what was delivered, and why the redirect map was changed in March.
Why SEO campaigns fragment faster than other work
SEO produces an unusual mix of artefacts. A single mid-size retainer typically generates:
- A technical audit — usually a 200-row spreadsheet with a status column that stopped being updated in week three
- A keyword map — another spreadsheet, often owned by a freelancer
- Content briefs — Google Docs, one per article, named inconsistently
- Link acquisition tracking — a third spreadsheet, sometimes in the client's Drive
- A rolling task list — Asana, ClickUp, Trello, whatever the agency standardised on
- A reporting dashboard — Looker Studio, pulling GSC and GA4
- Decisions and approvals — buried in Slack threads and email replies
That's seven surfaces for one client. At twelve clients, you're maintaining 84 places where truth might live. Nobody is doing that well.
The specific failure mode isn't that information is missing — it's that it exists in three versions with no clear winner. The audit says 47 pages need canonical fixes. The task board says "canonical cleanup" is done. The client's dev team implemented 31 of them. Which number goes in the report?
The five layers that belong in your source of truth
Before choosing tools, decide what actually needs a canonical home. In practice there are five layers, and they have different requirements.
1. The strategy layer
Why this campaign exists. Target pages, priority keyword clusters, the commercial goal in the client's words, known constraints (no CMS access, legal review on all copy, 6-week dev queue). This changes quarterly at most.
This should be a single document or record per client, maximum two pages. If your strategy layer is 14 pages, nobody reads it, which means it isn't a source of truth — it's an archive.
2. The work layer
What is being done right now, by whom, by when. This is the layer that changes daily and where most agencies already have a tool. The failure here is usually granularity: tasks named "SEO — October" tell you nothing, while 140 subtasks per client mean maintenance overhead exceeds the value.
A useful rule: a task should represent between 30 minutes and 8 hours of work, and its title should be understandable by someone who joined last week.
3. The evidence layer
The artefacts: audits, crawls, briefs, redirect maps, schema specs, before/after screenshots. These are files, and files belong in a file system — but the index of those files belongs with the campaign. One list, per client, of every deliverable with a date and a link.
This is the layer agencies most often skip, and it's the one that saves you during a "you never delivered that" conversation nine months later.
4. The commercial layer
Retainer value, hours budgeted, hours consumed, scope boundaries. If your team can't see that a 20-hour retainer has consumed 26 hours by the 18th, you are not running a campaign — you are volunteering.
Time data has to sit next to the work, not in a separate timesheet app that someone reconciles monthly. Reconciliation is where truth dies. This is one of the main arguments for consolidating PM, time tracking and reporting rather than integrating three products and hoping the sync holds.
5. The client-facing layer
What the client believes is true. This is a real layer, and pretending it isn't causes most scope disputes. Whatever you told them in the last report or call is, from their perspective, the record. Keeping a short log of what was reported and when — one line per month — resolves arguments in 30 seconds instead of 30 minutes of inbox archaeology.
The one-canonical-home rule
Here's the discipline that makes this work: every piece of information has exactly one place where it is edited, and every other reference is a link.
Concretely:
- Keyword research is edited in the keyword sheet. The campaign record links to it. Nobody pastes keyword tables into Slack.
- Task status is edited in the PM tool. Not in a Monday morning email. Not in a status spreadsheet a PM maintains for account managers.
- Hours are logged against tasks. Not estimated at month-end from memory.
- Decisions are recorded as a comment on the relevant task or campaign record, with the date. Slack is where you discuss; the record is where you decide.
That last one is the highest-leverage change most teams can make. The gap between where conversation happens and where work is tracked is the single biggest source of lost context in agencies — we've written about closing that gap in detail.
Building it in five steps
- Pick your spine. One tool holds the campaign record, tasks, hours, and links to everything else. This is almost always your project management tool, because it's the only one people open daily. If it can't hold time and retainer data, you'll need a second surface — which is why generic PM tools struggle with agency work. Our tool comparison hub breaks down where each one falls short for SEO teams specifically.
- Define the template. Build one campaign structure and apply it to every client. Same phases, same naming, same deliverable index. Variation between clients should be in the content, not the shape. When every client project looks identical structurally, a strategist can cover a colleague's account without a handover call.
- Migrate one client at a time. Take your smallest retainer first. Give it 60–90 minutes: consolidate the strategy into two pages, move open work into the template, index every deliverable produced in the last six months, link the dashboard. Then do the next one. A 12-client roster takes about two weeks alongside normal delivery.
- Delete the duplicates. This step is non-optional and it's the one everyone skips. If the old status spreadsheet still exists, someone will update it. Archive it. Rename it "ARCHIVED — do not edit". Remove edit access if you have to.
- Announce the rule internally. One sentence: "If it isn't in the campaign record, it didn't happen." Then enforce it for six weeks. After six weeks it's habit.
Keeping it true
A source of truth decays at a predictable rate. The fix is to attach maintenance to rituals that already exist, never to create a new one.
- Weekly, 10 minutes per client: during your delivery standup, close completed tasks and confirm next week's owners. Not a separate meeting — the same meeting.
- Monthly, at report time: update the deliverable index, log what was reported, check hours against retainer. The report is being built anyway; you're just writing down what you already assembled.
- Quarterly, 45 minutes: revisit the strategy layer. Half the time nothing changes and you close it in five minutes. The other half you catch a campaign that's been executing against last quarter's priorities.
What not to centralize
Over-centralizing kills adoption faster than fragmentation does. Leave these alone:
- Raw crawl data. A 40,000-row Screaming

Nick Quirk

