Every SEO agency I have worked with runs the same cycle. Q1 is calm. You sell three new retainers in Q2. By Q3 your senior strategist is working Sundays, technical audits are late, and client reporting has degraded into a screenshot of Search Console. Someone quits in Q4. You backfill, lose two clients during the transition, and the calm returns — because you have fewer clients.
That is not a hiring problem. It is a capacity planning problem, and it is almost entirely solvable with arithmetic you can do in an afternoon.
What capacity planning for SEO teams actually means
Capacity planning for SEO teams is the practice of matching committed client work to the real, delivery-available hours your team has — before you sign the contract, not after the work is late. It has three inputs: how many hours each person genuinely has, how many hours each client commitment actually consumes, and how those two curves line up over the next six to eight weeks.
Most agencies track revenue per client and headcount. Almost none track hours committed versus hours available. That gap is where burnout lives.
Why SEO agencies over-commit more than other service businesses
Three structural reasons:
- SEO work is lumpy. A retainer might be 8 hours one month and 34 the next when a site migration lands or a core update tanks a client's rankings. Design and paid media have far smoother workload curves.
- Scope is defined in deliverables, not hours. "Monthly technical audit" is not a unit of work. It is 3 hours on a 40-page brochure site and 22 hours on an enterprise ecommerce catalog with faceted navigation.
- Retainers are sold on price, delivered in hours. Sales negotiates dollars. Delivery pays in time. Nobody translates between the two until the timesheet review at quarter end.
Step 1: Calculate real available hours, not headcount
A full-time employee does not have 40 hours of client capacity. Start from the top and subtract honestly:
- 40 hours contracted
- −4 hours internal meetings, standups, 1:1s
- −3 hours admin, email, Slack, tool wrangling
- −2 hours learning, testing, staying current (if you cut this, you are running an SEO agency on 2021 knowledge)
- −2 hours sales support, scoping calls, pitch input
Realistic delivery capacity: 29 hours per week. For senior people who carry more sales and management load, it is closer to 20–24. For juniors, 32–34.
Now subtract holiday and sick time. A UK or EU employee with 25 days leave plus bank holidays works around 45 weeks a year. So one mid-level SEO delivers roughly 1,300 client hours annually, not 2,080. If you have been planning against 2,080, you have been running your team at 160% capacity on paper and wondering why they look tired.
Set a target utilisation, then defend it
Plan to fill 80–85% of that delivery capacity with committed client work. So a 29-hour-capacity person gets 23–25 hours of committed work per week. The remaining 15–20% is not slack — it is the buffer that absorbs the migration nobody warned you about, the algorithm update, and the client who suddenly needs a board deck.
Agencies that plan to 100% do not get 100%. They get 100% for three weeks and then a quality collapse.
Step 2: Convert every retainer into hours
Take your blended delivery cost rate — salary plus employment costs divided by delivery hours. If a £45,000 specialist costs £57,000 fully loaded and delivers 1,300 hours, that is £44/hour cost. Apply your target margin and you get a delivery rate, say £120.
Now audit every retainer:
- £4,000/month at £120 = 33 hours funded per month, about 7.7 per week
- £2,500/month = 21 hours, about 5 per week
- £8,000/month = 67 hours, about 15 per week
Then list what you actually promised. Monthly call (1.5h including prep and notes), reporting (2h), content briefs ×4 (4h), technical monitoring (2h), link outreach oversight (3h), internal QA and account admin (2h). That is 14.5 hours a month before a single strategic thought — which means the £2,500 retainer is already 70% consumed by ceremony.
This exercise is uncomfortable and completely worth it. Most agencies find two or three retainers where committed scope exceeds funded hours by 40%+. Those are the accounts quietly destroying your team. Our guide on how to spot unprofitable retainers before they drain you goes deeper on the diagnostics.
Step 3: Separate recurring load from project spikes
Split every client's work into two buckets:
- Baseline — the predictable monthly rhythm: reporting, calls, monitoring, standing content volume. This is your floor. It happens whether or not anything interesting occurs.
- Spike — migrations, full technical audits, site launches, penalty recovery, seasonal content pushes. Discrete, big, and schedulable.
Baseline goes into capacity permanently. Spikes get scheduled into the buffer — and only one significant spike per person per month. If you have two migrations landing in the same fortnight and one technical lead, you do not have a scheduling problem, you have an over-commitment you need to renegotiate now, at week −6, when the client will accept it gracefully.
Step 4: Build a rolling 6–8 week forecast
A simple grid: people down the side, weeks across the top, committed hours in each cell against their capacity number. Colour anything over 90% of capacity.
This is the single highest-leverage artefact in an agency. It converts a vague "we're all really busy" into "Priya is at 34 hours committed against 26 capacity in weeks 3 and 4 because the Fenwick migration overlaps the quarterly audits." One of those is actionable at 9am Monday.
The forecast only works if the numbers are real, which means your time data has to be trustworthy. If people log time weekly from memory, your estimates are built on fiction — the piece on why agency time tracking data lies covers how to fix that without turning your team into hour-counters.
Tooling matters less than discipline, but not zero. Generic boards show you tasks; they do not show hours committed against hours available per person per week. If you are evaluating options, the roundup of PM tools for agencies is a reasonable starting point — the requirement to test for is whether the tool can render a per-person weekly capacity view without a spreadsheet export. PeakKR was built around exactly that view because it was the report we kept rebuilding by hand.
Step 5: Make the trade-off visible, not heroic
When week 3 shows Priya at 131% capacity, there are exactly four options. There have only ever been four:
- Move it — reschedule the lower-urgency work to week 6
- Shrink it — reduce scope with the client (a top-200-pages audit instead of full crawl analysis)
- Shift it — reassign to someone with headroom, accepting handover cost of 1–2 hours
- Buy it — a trusted freelancer at 60–70% margin instead of 100% of nothing
The fifth option — Priya works 55 hours and nobody

Nick Quirk