The short version
- An agency brings breadth of experience and no ability to deploy your code. An in-house hire brings context and can get changes shipped.
- The failure mode of agencies is recommendations that never get implemented. That is usually the client’s constraint, not the agency’s competence.
- In-house is cheaper per hour at scale and much more expensive at low volume, because you pay for a full-time person regardless.
- A hybrid — agency strategy plus in-house implementation capacity — may fit a mid-sized business that needs both strategy and delivery capacity.
This decision is usually framed as a cost comparison, which misses what actually determines the outcome. Both options can supply competent SEO thinking. Only one of them can reliably get a change deployed to your website this week, and that difference explains most of the variance in results.
If you take nothing else from this page: before choosing, work out who is going to implement the recommendations. If the answer is unclear, neither option will work and you should solve that first.
The short answer
Fit for your workflow
Agency for strategy and specialist depth. In-house for anything that has to ship.
Agencies are good value for diagnosis, competitive intelligence and specialist technical work you need occasionally rather than constantly. They are poor value when the deliverable is a document that lands in a backlog. If your bottleneck is getting changes onto the site, an in-house person — or a developer with SEO context — solves a problem no retainer can.
- Under ~£5k/mo budget
- Freelancer or agency. A full-time hire does not fit — see agency vs freelancer.
- Large site, constant technical work
- In-house. The context and deploy access pay for themselves.
- Need a one-off audit or migration
- Agency or specialist consultant. Do not hire for a project.
- Good dev team, no SEO knowledge
- Agency strategy, in-house implementation. Usually the best value.
What each is actually good at
The continuity row cuts both ways and is worth thinking about properly. Agencies rotate account managers and your institutional knowledge lives in their CRM. A single in-house hire is a single point of failure whose departure can take every piece of undocumented context with them. Neither is safe; both are manageable with documentation nobody wants to write.
The implementation bottleneck
Here is the pattern that plays out in a large share of agency relationships. Month one: audit delivered, 120 issues found, everyone is energised. Month two: 15 of the 120 have been implemented, because the client’s developers are shipping product features. Month four: the agency is producing reports about changes that have not been made. Month six: the contract is not renewed, and both parties privately blame the other.
The agency did the work it was paid for. The client did not have the capacity to consume it. That mismatch is the single most common reason SEO spend produces nothing, and it is entirely predictable at the point of signing — which means it is also preventable.
Structuring the relationship so it works
If you do retain an agency, the contract should describe throughput rather than deliverables. "A monthly audit and report" guarantees documents. "An agreed number of changes live on the site each month" guarantees movement, and it forces both sides to confront the implementation question at the point of signing rather than in month four.
Give the agency the narrowest useful scope and the deepest possible access. An agency that can raise a pull request against your site will produce more measurable change than one with twice the retainer and no access at all. Where that is impossible, budget internal developer hours explicitly as part of the SEO cost — the work is not free just because it happens in a different team’s sprint. See SEO cost vs ROI and Google’s starter guide for what a baseline scope should already cover.
The question to ask before signing anything
"Who will implement this, and how many hours a week do they have?" If the honest answer is "our developers, when they get a chance", buy less strategy and more implementation capacity. A smaller implemented scope can be more useful than a comprehensive audit left unimplemented.