How to choose an SEO agency: a proposal comparison template
Choosing an SEO agency? Put three proposals in one table: a 12-row template scoring scope, deliverables, access, reporting and exit terms before price.
By Roozbeh Nazari · CEO
The most common mistake when choosing an SEO agency is to start reading proposals from the price column. Three agencies send three PDFs in three formats: one says "40 hours a month", another lists "12 pieces of content plus a technical audit", the third settles for a package name. These three proposals may not describe the same job, and the price gap is very often a scope gap. This article shares the proposal comparison template we use in consulting conversations: a table that reduces every proposal to the same 12 rows and then scores them. Its purpose is not to find the "best SEO agency" label; it is to make visible what each proposal actually promises for your business.
Why proposals arrive in incomparable form
SEO proposals are not written in a standard unit. Paid media has shared units such as budget and target cost; in SEO the unit of work changes from agency to agency: hours, number of articles, "optimised pages", technical items, or simply a package name. The buyer ends up placing three documents that do not resemble each other side by side and trying to decide. The second problem we see in practice is that proposals mix the language of deliverables with the language of outcomes. "We will grow organic traffic" is an outcome promise; "we will rebuild the title, meta and internal-link structure of 8 pages a month" is a deliverable. Google's own guidance draws the same line: Search Central's "Do you need an SEO?" page warns against providers who guarantee rankings or will not explain their methods. The comparison template starts by translating every proposal into deliverable language; outcome promises do not enter the table, they are noted in a separate "claims" row.
The 12-row proposal comparison template
The template is a spreadsheet: rows are criteria, columns are agencies. In each cell you write, in your own words, what the proposal says; a criterion the proposal never mentions stays "not stated", and that in itself is a finding. The rows:
- Scope boundary: which site, which languages, which page types are in. For a multilingual site, a boundary such as "TR included, EN/AR excluded" can halve the price.
- Technical SEO delivery: is the audit a one-off, who implements the fixes, is the developer on your side or theirs. In our technical SEO service we split this row in two: "findings list" and "implementation owner".
- Content delivery: pages or articles per month, word range, who writes, whether medical or legal review is required.
- Authority work: how links are earned; purchased links, PR, digital relations. Any quantity promise such as "X backlinks a month" is noted as a red flag here, because Google's spam policies explicitly cover paid link schemes.
- Measurement and reporting: which source the report comes from (Search Console, GA4, a third-party tool), how often, and from whose account. If the report lives in the agency's account, the history leaves when the relationship ends.
- Access and ownership: who is owner and who is editor on Search Console, GA4, the CMS and the ad accounts. The right answer is always "client owns, agency edits".
- People: who will do the work, how many hours a week, who is the single point of contact. The person in the sales meeting is often not the person doing the work; get it into the proposal.
- Meeting rhythm: is there a monthly meeting, who keeps the agenda and the decision log.
- Term and commitment: minimum contract length, early exit clause, notice period.
- Pricing structure: fixed monthly, hourly, project-based or performance-linked. If there is a performance component, exactly what it is tied to must be written down.
- Out of scope: what is not done. If this row is empty, the proposal is incomplete; a good agency also writes what it does not do.
- Claims row: the outcome promises in the proposal, word for word. This row is not scored; it is only the source of questions for the follow-up call.
Scoring: leave price for last
Once the table is filled, give each row 0–2 points: 0 not stated, 1 stated but vague, 2 clear and measurable. The eleven scored rows add up to 22. This score measures the clarity of the proposal, not the quality of the agency; but in our experience, teams that write clear proposals also run the work clearly. Price is compared only between proposals whose clarity scores are close. A proposal scoring 10 that is 30 percent cheaper than one scoring 19 is not actually cheaper; you do not know what you are not getting. Keep using the same table after the decision: marking in the first 90 days whether each row is running as committed is the earliest warning system the relationship has. Our first 90 days roadmap walks through it row by row.
The typical differences the template catches
Placed in the same table, proposals most often differ in these ways. First, who implements technical fixes: one proposal does them with its own developer, another only delivers a list; both say "technical SEO included". Second, the language multiplier on content volume: is "8 pieces a month" 2 pieces in four languages or 8 in one. Third, the source of reporting: third-party tool reports use their own estimated metrics and may not match Search Console data. Fourth, exit terms: if a proposal asking for a twelve-month commitment has no three-month trial window, ask for one in the first meeting. None of these differences is disqualifying on its own; but a decision made before they are visible is a decision made on price. On our approach page we describe our own proposal structure with the same 12 rows, so that any agency can be placed in this table.
Five questions for the follow-up call
After the table is filled, a second conversation is held with each agency and the empty or 1-point rows are asked about. The five most productive questions are: Who will implement the technical findings and in what timeframe? Who writes the content, and is there expert review? Which account and which raw data are the reports produced from? Which assets stay with us when the contract ends? Whom do you recommend for the work you call out of scope? The clarity of the answers largely confirms or corrects the score in the table. For readers who want the blank comparison template, we share it as a spreadsheet through our contact page; no agency list, no referral, just the table.
How to use the template inside your team
Do not let one person fill in the comparison table. The marketing lead should assess the scope and content rows, the developer or IT the technical delivery and access rows, and finance or procurement the pricing structure and exit terms. If three people's independent scores diverge widely, that is the most reliable sign the proposal is vague; if three people read the same document three different ways, the agency will live with the same ambiguity while running the work. Finally, do not hesitate to share the table with the agency: a team that sees which rows it failed to score on gets the chance to clarify its proposal, and that revised second proposal usually changes the scope of the first one, not its price. The decision should be made on those second proposals.