I've been on both sides of this fence - as an enterprise AE selling into SaaS companies, and earlier in my career working at an agency. The real answer? It depends entirely on the business model and maturity.
For local service businesses (plumbers, contractors, dentists), agencies crush it. The playbook is repeatable: citations, GBP optimization, review generation, location pages. You don't need deep product knowledge, you need process and scale.
but for SaaS and specialized B2B? in-house wins every time. the SEO needs to understand the product roadmap, customer pain points, sales cycle, and internal priorities. that context gets lost when your account is passed between three agency team members who each have 30 other clients. i've seen it happen - the agency sends a junior person who doesn't know the difference between a CRM and a CDP.
freelancers are cheaper but can ghost you. Agencies are expensive and often assign you someone with zero context. In-house gives you the most active hours and direct access to subject matter experts. plus you can scale their scope without renegotiating a retainer.
I've seen companies save 50% by hiring an in-house team instead of paying agency fees. the quality is usually better too - no black box, no handoffs, just someone who lives and breathes your product.
For enterprise, in-house is the way. for growth-stage companies that need specific expertise or tools they don't have yet, an agency can fill the gap temporarily. but long-term? build it in-house