If you’ve spent any time Googling this question, you’ve probably landed on five different posts giving you the same answer: “it depends,” followed by a chart with a price range so wide it’s basically useless. $300 to $10,000 a month. Helpful, right?
I run an SEO agency, so I’m going to give you a more honest answer than that, even though it’s not great for my industry. Here it is upfront: most small businesses paying for SEO right now are overpaying for work that isn’t scoped to their actual situation. Not because their agency is scamming them outright, but because most agencies sell packages, not strategy.
Let me explain what that means, what it actually costs to do this right, and how to tell if you’re getting a real service or a templated one with your business name swapped in.
The real price range (and why it’s narrower than you think)
For a small business, that is, a single location or a handful of locations, not a national e-commerce brand, a properly scoped SEO retainer should land somewhere between $500 and $1,500 a month.
That’s narrower than most of the ranges you’ll see floating around, and on purpose. Once you’re past $1,500 a month for a genuinely small, local business, you’re usually paying for one of three things: a bigger agency’s overhead, a sales team’s commission, or scope you don’t actually need yet (national content campaigns, link building velocity that makes sense for a competitive e-commerce brand, not a local plumber).
At the same time, anything meaningfully below $500 a month almost never includes real, ongoing work. It’s either automated reporting dressed up as strategy, or so few hours that nothing happens fast enough to matter.
What you’re actually paying for below $500/mo
Here’s a composite example, not a real client, but a pattern I’ve seen play out the same way more times than I can count.
A local HVAC company signs up for a $250/mo “SEO package” they found through a Facebook ad. Three months in, they have a monthly PDF report showing their site’s “SEO score” went from 62 to 71. No calls. No new traffic worth mentioning. No conversation about what’s actually happening on Google.
That happens because at $250 a month, there’s no margin for an agency to do real work and stay in business. So what gets sold instead is automation: a tool generates a report, maybe someone spends 20 minutes adjusting meta tags, and that’s the engagement. It’s not fraud. It’s math. Real SEO work, the kind that moves rankings for a local business, takes hours every month: technical fixes, content that’s actually written for the business (not spun by a tool), citation cleanup, and tracking what’s working.
Below $500/mo, you’re not buying SEO. You’re buying the appearance of SEO.

How to spot a generic package (even if it’s priced “right”)
This is the part most articles skip, and it’s the actual point I want small business owners to take from this post: price alone doesn’t tell you if you’re getting scoped work. A $1,200/mo retainer can still be a generic package.
Here’s the tell. Ask the agency one question: “What does this look like specifically for my business in month one?” A real, scoped engagement has an answer that’s different for a dentist than it is for an HVAC company than it is for a boutique law firm. A generic package gives you the same answer regardless of who’s asking, because it’s the same package being sold to everyone, just with the business name changed in the proposal template.
Other signs you’re looking at a templated package instead of strategy:
- The proposal mentions deliverables (number of blog posts, number of backlinks) before it mentions your business’s actual problem (not enough local visibility, weak conversion on the site, technical issues holding back rankings)
- Every tier of their pricing has the same three services, just “more” of them at higher tiers
- Nobody asked about your actual customers, your service area, or your competitors before quoting you a price
If an agency can quote you before they understand your business, that’s not a service. That’s a price list.

What $500-1,500/mo actually looks like, done right
Using the same composite HVAC business: a properly scoped $900/mo engagement isn’t three separate services bolted together (local SEO here, content there, technical SEO somewhere else as an upsell). It’s one strategy where those three things support each other, because for a local business, they have to.
Here’s roughly how that plays out month to month:
Local SEO isn’t a one-time setup. It’s ongoing: keeping the Google Business Profile active and accurate, managing reviews, building and correcting local citations, and making sure the business shows up correctly across the directories that actually influence the local map pack.
Content and on-page work isn’t a quota of blog posts. It’s writing (or rewriting) the pages that answer what local customers are actually searching, “emergency AC repair [city],” not generic “HVAC tips” content that ranks for nothing and converts no one. Page titles, headers, and on-page structure get fixed alongside this, not as a separate line item.
Technical SEO is the maintenance layer underneath both: making sure the site loads fast, works on mobile, doesn’t have indexing errors, and isn’t quietly losing rankings to something a crawler tripped over.
None of this is exciting. It’s also why it works: the three pieces are scoped against the same goal (this specific business getting found by people who are already looking for what it does), instead of being three separate services an agency upsold because they had three departments to keep busy.
So what should you actually do with this?
If you’re a small business owner shopping for SEO, the question isn’t really “how much should I pay.” It’s “what am I actually buying for that price.” $500-1,500/mo is a reasonable range for a single-location small business, but only if the work inside that retainer is built around your business specifically, not assembled from a package that gets sold to every client regardless of what they sell or who their customers are.
Ask what month one looks like before you ask what the price is. If the answer sounds the same as what they’d tell anyone else, keep looking.