Share

The question I hear most in a first pricing conversation is how much should SEO cost. I understand why clients want a flat number: every other line item in a marketing budget comes with a rate card. SEO does not, because SEO is not one service. It is a bundle of technical work, content production, and analysis that varies by how competitive the market is and how much is already broken on the site.

The honest answer is that price should track hours, and hours should track the actual work list for your specific site. A site with clean technical foundations and a modest content gap needs far fewer hours than a site with structural indexation problems, a thin content library, and years of unresolved technical debt. Two businesses in the same industry can land on different SEO price points and both be paying a fair rate.

What the fee actually buys

A monthly SEO retainer is not a subscription to rankings. It is a block of hours spent on a mix of technical fixes, content strategy and production, internal linking work, and ongoing measurement against Search Console and analytics data. Where those hours go changes month to month depending on what the site needs.

Early months usually spend more of the hour budget on technical and structural work: fixing crawl issues, cleaning up indexation, restructuring page architecture, and building the internal linking that lets authority flow to the pages that need to rank. Later months shift more hours toward content production and refinement, because the foundation is in place and content is what closes the remaining gap against competitors.

This is the mechanism low-cost retainers cannot get around. If the fee only buys ten hours a month, those ten hours have to be split across technical work, content, and reporting, and something gets a thin slice. Usually it is content production, because it is the easiest to cut without an obvious short-term consequence. The consequence shows up three months later as a content library too small to compete on volume.

Fixed fee, hourly, or performance pricing: what each one actually hides

Most SEO pricing lands in one of three structures, and each one hides a different part of the actual work.

A fixed monthly fee is the most common, and it works fine as long as the scope behind it is honest. The risk is that a fixed fee with no defined scope becomes a fixed number of hours dressed up as a fixed price. If the site needs forty hours of work in month one and the retainer only funds twenty, the agency either eats the difference, which is rare, stretches the work across two months, which is common, or quietly narrows what "month one" includes until it fits inside the hours available. You will not see this happening from the outside. The report will still say the work is on track.

Hourly billing is more transparent about where the time goes, but it shifts the estimating risk onto the client. An hourly consultant has less incentive to pad a scope, because padding shows up on the invoice line by line. This is part of why independent consultants often price this way rather than as a flat retainer; see how much does an SEO consultant cost for how that breaks down differently from an agency retainer. The tradeoff with hourly billing is that without a monthly cap, the number can move more than a client expects, especially in a first month full of unknowns.

Performance based pricing, tying fees to rankings or traffic, sounds appealing until you notice what it optimizes for. Rankings can move for reasons that have nothing to do with the work performed: a competitor's site went down, a seasonal spike arrived on schedule, an algorithm update happened to favor your existing content. A consultant paid on rankings has an incentive to claim credit for movement they did not cause and to avoid the unglamorous technical work that takes months to pay off but does not move a ranking dashboard next week. I have never priced an engagement this way, and I would be skeptical of anyone who does it as their primary model.

None of these structures is inherently wrong. What matters is whether you know which one you are in, and whether the scope inside it was built around your site or copied from a template.

Work With John

Your site should be your best salesperson. If it is not, that is a fixable problem.

I work with US service businesses and B2B brands to build SEO systems that produce consistent, compounding leads. I will tell you exactly what is broken. No pitch.

Book a free strategy call

A rough shape of where the hours go

To make this concrete, here is roughly how I allocate a typical hour budget across a first six-month engagement, in general shape rather than exact figures, since every site's mix differs. The first two months lean heavily technical, often the majority of the hours, because that is when indexation gaps, crawl errors, and architecture problems get fixed before they cap the return on anything built on top of them. Months three and four shift toward a roughly even split between technical follow-up and content production, as the early fixes settle and new content starts needing a stable foundation to rank on. By months five and six, content production and internal linking usually take the larger share, because by then the technical base should be solid and the remaining gap against competitors is almost always a content and authority gap.

A retainer priced too low compresses this whole sequence. There are not enough hours to do the technical work properly in months one and two and still start content on schedule, so both slip. That is not a sign of bad faith. It is arithmetic. Ten hours a month cannot do the job that needs thirty.

Why cheap SEO usually costs more later

The pattern I see most often with businesses that come to me after a low-cost engagement is not that the previous work was fraudulent. It is that the hours were too few to do the job at the pace the client expected. Technical fixes got made slowly because there was no time to also produce content. Content got produced slowly because there was no time to also fix technical issues. Nothing was wrong. There was not enough capacity to do the whole job on the timeline the client had in mind.

Fixing that later means paying twice: once for the original retainer, and again for someone to audit what is actually in place and catch the site up to where it should already be. That second engagement usually costs more than the gap between the original cheap price and a properly priced one would have cost from the start.

A worked example: two sites, two different numbers

Picture two service businesses in the same general industry, both asking what SEO should cost. The first has a five-year-old site, clean code, a decent existing content library, and a Search Console history showing steady but unremarkable traffic. The second has a two-year-old site built on a page builder that generates duplicate URLs for every filter combination, no blog to speak of, and an unresolved migration from an old domain that never got proper redirects.

Both might ask for the same service, "SEO," and both might get quoted a similar-sounding monthly retainer if the agency prices by a flat rate card instead of the actual work list. But the first site's engagement should spend the bulk of its early hours on content, because the technical foundation is already sound. The second site cannot responsibly start content production in month one at all. Every hour spent writing new pages before the duplicate-URL problem and the redirect gaps are fixed is an hour spent building on a foundation that is actively working against it. Google can index a great new page and still fail to pass it authority if the internal linking runs through pages that are themselves duplicated or orphaned by a broken migration.

A fair price for the second site is higher in month one, sometimes substantially, because the technical cleanup has to happen before anything else can compound. A quote that looks identical for both sites either means the agency has not actually looked at either one, or it means one of the two clients is subsidizing hours they do not need while the other is not getting the hours they do.

When no price is the right price

Every so often a pricing conversation reveals a problem that no amount of SEO budget will fix. A site with a broken checkout, a service business with no reviews and an unanswered phone line, or a company whose actual problem is that the product does not fit the market it is trying to sell into: none of these get solved by more content or more technical hours. I would rather tell a prospective client that upfront than take a retainer I know cannot deliver what they actually need, and when SEO won't fix your business problem covers the signs I look for before agreeing to start an engagement at all.

That conversation is not about talking anyone out of SEO. Most businesses that ask about SEO pricing are ready for the work and will get a real return on it. It is about being honest that a budget number only means something once you know the work being priced is the right work for the actual problem.

Price should track the actual work list for your site, and judging whether that work is on schedule means knowing how to tell SEO is working before rankings move. It also helps to know whether AI overviews have changed what results to expect before judging a retainer's value by clicks alone. More in the SEO Expectations archive. For a broader look at what a consultant offers versus a full agency retainer, see SEO consultant vs SEO agency, and to put an actual dollar figure on what a ranking improvement would be worth before you budget for it, try the free SEO ROI calculator.

How the timeline factors into the number

Part of what you are paying for with any SEO retainer is time, not just hours. A six-month commitment at a lower monthly rate and a three-month commitment at a higher one can cost close to the same total, but they buy different things, because SEO's built-in lag between work and results means the campaign needs enough calendar time to actually compound. How long SEO actually takes lays out what that lag typically looks like stage by stage, which is worth reading before agreeing to any contract length, since a price that looks reasonable per month can still be a bad deal if the term is too short to see the work through to the stage where it pays off.

What to check before you sign anything

A few questions separate a price built around your site from a price pulled off a template. Ask what the first deliverable is and when you get it. A properly scoped engagement should produce a written technical and content audit inside the first few weeks, not a vague promise that work is underway. Ask how hours are tracked and reported, because a retainer with no visibility into where the time actually went makes it impossible to tell whether month three looked anything like month one, or whether the same generic tasks got repeated regardless of what the site needed.

Ask what happens if the site turns out to need more work than the initial quote assumed. Sites with hidden technical debt, a migration that broke redirects years ago, or a content management system that generates duplicate pages nobody noticed, often need more hours in month one than anyone estimated before opening the hood. A consultant who has seen this before will tell you upfront that the quote may need revising once the audit is done, rather than quietly cutting corners elsewhere to stay inside the original number.

Competitive category matters more than most pricing conversations account for. A single-location service business competing on local terms usually needs a narrower content library and less technical surface area than a company selling into a crowded national B2B category, where every competitor already has years of content and a stronger backlink profile. The same hourly rate buys a faster path to results in the easier category and a slower one in the harder category, and no pricing conversation is honest without naming which category your site is actually in.

What scope creep looks like after the contract is signed

Pricing conversations happen once, at the start. Scope creep happens quietly, over months, and it is worth knowing what it looks like so you can catch it before it becomes the reason your retainer stops matching the work.

The most common version is invisible narrowing: the deliverables in month six technically match what was promised in the contract, but the depth behind each one has thinned. A monthly content piece that started at fifteen hundred words researched against real competitor content becomes an eight hundred word piece written faster to protect margin on an account that has not been repriced in a year. Nobody announces this. The line item on the invoice reads the same.

The second version is the opposite problem: a client asks for more than the original scope covered, an extra service page, a competitor audit, a landing page for a new location, and the agency absorbs it without discussion because saying no to a paying client feels awkward. This is generous in the short term and corrosive over a year, because now the retainer is funding work well beyond what it was priced for, and something else on the original list is quietly getting less attention to make room.

The fix for both is the same: revisit the hour allocation every quarter, not just at renewal. Ask directly whether the current scope still matches the current price, and expect the answer to sometimes be no in either direction. A consultant willing to say this needs more hours than we're charging for, or we've been doing more than the contract covers, let's true that up, is being straight with you. One who never revisits the number, in either direction, over a year-long engagement, is probably not tracking the relationship between price and work closely enough to notice.

So how much should SEO cost for your specific site

Three things drive the real number. The size of the site matters, because more pages and more templates mean more technical surface area to review and fix. How competitive the target queries are matters too: a local service query needs less content depth than a national B2B query in a crowded category. How much existing debt has to be cleared before new work can compound also matters. A brand new site with no legacy issues can sometimes see faster movement on a smaller budget than an older site carrying years of unresolved technical problems, even in the same industry.

Ask any agency quoting you a price what the hours actually go toward in month one versus month four. If the answer is vague, or the same generic list regardless of your site's condition, that is a sign the price was not built around your actual work list. A number grounded in your site's specific technical and content gaps is the only kind of SEO pricing that sets an expectation you can hold the work accountable to.

I tell prospective clients the same thing every time this comes up: distrust any quote that arrives before an actual look at the site. A number produced without checking indexation status, existing content volume, and the competitiveness of the target queries is a guess dressed up as a quote, and a guess is a poor foundation for a budget you plan to hold steady for six months.