Research
Marketing agency pricing transparency, measured on 80 ranking pages
Marketing agency pricing transparency is usually argued and rarely counted, so we counted it. Of 80 pages classified from the top 10 US organic results for ten buyer queries, 62.5% published a price. Only 39.4% of the agency pages selling their own service did.
The finding
Most pages that rank for marketing buyer queries do publish a price: 50 of 80, or 62.5%. The sellers mostly do not. Split by who wrote the page, 81.1% of editorial guides published a price against 39.4% of vendors writing about their own service.
62.5% of page one publishes a price
On 2026-09-08 we pulled the top 10 US organic search results for ten buyer queries, read each page, and gave every one a single state.
That first number cuts against the argument this site makes elsewhere. Page one is not a wall of hidden pricing.
80 pages classified from 91 organic results, 2026-09-08. Published plus range only is 68.8%: seven in ten ranking pages show a currency figure of some kind.
The split: who is actually publishing the price
The headline number is a fact about page one, not about agencies, and page one is mostly not written by the people selling the service. Sorting the same 80 pages by who wrote them moves the result a long way.
A vendor page here was likelier to gate the price than to print it.
| Who wrote the page | Classified | Published | Range only | Gated | No price |
|---|---|---|---|---|---|
| Vendor's own page | 33 | 13 (39.4%) | 3 | 14 (42.4%) | 3 |
| Editorial guide | 37 | 30 (81.1%) | 2 | 2 | 3 |
| Directory or marketplace | 10 | 7 (70.0%) | 0 | 1 | 2 |
Published prices by who wrote the page
What that means for a buyer
Marketing agency pricing transparency, read this way, is mostly other people's work. An editorial pricing guide or an agency directory tells you what the market charges; gated pricing is why the vendor beside it does not.
Transparency depends on what you searched for
Two queries returned a price on every page we could read, and both are a price-intent query. The service-intent query is the one that collapses: searching for a supplier rather than a rate card puts you in front of pages that gate.
| Query | Classified | Published | Range only | Gated | No price | Published rate |
|---|---|---|---|---|---|---|
| seo services pricing | 7 | 7 | 0 | 0 | 0 | 100.0% |
| digital marketing services | 9 | 5 | 1 | 1 | 2 | 55.6% |
| local seo services | 9 | 3 | 1 | 4 | 1 | 33.3% |
| content writing services | 8 | 3 | 1 | 4 | 0 | 37.5% |
| link building services | 9 | 7 | 0 | 1 | 1 | 77.8% |
| ppc management pricing | 7 | 5 | 1 | 1 | 0 | 71.4% |
| social media management pricing | 8 | 8 | 0 | 0 | 0 | 100.0% |
| web design packages | 6 | 3 | 0 | 0 | 3 | 50.0% |
| seo packages | 9 | 6 | 1 | 2 | 0 | 66.7% |
| outsourced marketing | 8 | 3 | 0 | 4 | 1 | 37.5% |
Adding one price word to a search changes the result set more than any amount of vetting does. For the same reason, a guide to what SEO actually costs outranks most of the agencies it describes.
What counts as a published price
One state per URL, decided by the same rule for every page, with the deciding snippet recorded and capped at 200 characters.
- published
- A currency figure whose surrounding 120 characters carry a pricing or tier cue: per month, /mo, package, plan, starting at, per word, per link, hourly rate or monthly retainer.
- range_only
- A currency band, or a figure beside a service term with no tier cue. Tiered packages with real numbers are published; a bare band is not.
- gated
- No qualifying figure, but the page asks for something first: book a call, request a quote, submit a form, accept a proposal, take a free audit. Price on application, in older language.
- no_price
- No qualifying figure and no ask. The pricing page that never mentions money.
Currency figures in social proof or return-on-investment boilerplate are filtered out first, so revenue driven, ROAS, LTV and pipeline claims cannot make a page look like it has a rate card.
The rule is deliberately generous to the competition
- Any service-attached figure counts as published, even where the same page also pushes a call.
- A page quoting a market average rather than its own agency rates still scores published.
- A single tier with a number beats a whole pricing model described in words.
- That generosity is why the headline is 62.5% and not lower.
The vendor and publisher split survives the generosity, and that is what makes it the finding rather than an artefact of a strict rule.
How the 80 pages were collected and classified
Enough of the method is here to run it again, and the row level dataset is published.
- Ten buyer queries: seo services pricing, digital marketing services, local seo services, content writing services, link building services, ppc management pricing, social media management pricing, web design packages, seo packages and outsourced marketing.
- Google organic search results, United States, en, desktop, depth 10, pulled 2026-09-08 through the SERP endpoint used, DataForSEO Google Organic Live Advanced.
- Page text from OnPage Instant Pages paired with Content Parsing Live. Pages that returned 403 or empty were retried once with a desktop Chrome user agent, and each row records which method produced the text.
- A page yielding under 500 characters of extractable text is recorded unfetchable rather than guessed at.
- Page role is a URL and title heuristic: directory or marketplace listing, editorial guide, else the vendor page. It was not hand audited.
- 91 organic results pulled, 1 Google property excluded, 10 unfetchable, 80 classified.
Classification is a judgement made on a snippet, so the row file carries the one that decided each page. Our rules for what gets published here and how apply to this page as they do to every other.
The ten URLs we could not read
These are excluded from every percentage rather than counted as no price. Nine of the ten are discussion or directory pages, not agency service pages.
| URL | Query | Why it failed |
|---|---|---|
| reddit.com/r/SEO/comments/1e7ti45/ | seo services pricing | 403 to the API and to the browser retry |
| reddit.com/r/SEO/comments/1l3a6bo/ | seo services pricing | 403 to the API and to the browser retry |
| community.hubspot.com/t/best-content-writing-agency/139132 | content writing services | 403 to the API, 404 to the browser retry |
| clutch.co/writing-services | content writing services | 403, no body text returned |
| reddit.com/r/googleads/comments/1ixs28c/ | ppc management pricing | 403 to the API and to the browser retry |
| clutch.co/agencies/ppc/pricing | ppc management pricing | 403, no body text returned |
| reddit.com/r/SocialMediaMarketing/comments/17kc0h6/ | social media management pricing | 403 to the API and to the browser retry |
| jenchapmancreative.com/web-design-packages/ | web design packages | 502 Bad Gateway |
| pinterest.com/ideas/web-design-packages/956018890298/ | web design packages | 200, but only 387 characters of body text |
| reddit.com/r/msp/comments/zjbg4e/ | outsourced marketing | 403 to the API and to the browser retry |
One more result was dropped before classification: a YouTube video, excluded as a Google property. That leaves 91 results, 1 excluded, 10 unfetchable, 80 classified.
The same domains keep appearing
Ninety results, 71 distinct domains. Page one across a whole buying category is a narrower set of publishers than it looks.
| Domain | Appearances |
|---|---|
| 5 | |
| Clutch | 4 |
| Coalition Technologies | 3 |
| Pronto Marketing | 3 |
| Eight further domains | 2 each |
What this study cannot tell you
The limitations belong in the page, beside the numbers they qualify.
- 80 classified pages is a small sample, and the vendor cut is only 33. Read 39.4% as roughly four in ten, never as a precise value.
- One country, one device, one moment: United States, desktop, a single pull on 2026-09-08. Nothing here is a trend.
- Extraction can miss a price set in an image or loaded by an interactive pricing widget, which would understate published.
- Page role is a heuristic, so a handful of pages could sit in the wrong bucket.
- The ten queries were chosen rather than sampled, and they lean toward price intent, which raises the headline number rather than lowering it.
- Classification is a judgement made on a snippet. A different reader would move some rows.
Our own conflict of interest is direct. We sell marketing services and we publish every price, so a study about published prices flatters us, and we designed it knowing that.
It also corrected us. This site's marketing has implied that agencies do not publish prices, and 39.4% of vendor pages doing it is a higher number than that implies.
If a row is wrong, the file is wrong and we would rather know. Send us the correction with the URL and the state you would give it.
If it is hard to buy, it is always going to be hard to sell.
Why this matters
Questions about marketing agency pricing transparency
What is price transparency in marketing, and what does this dataset support? These are the answers the file can carry.
How many marketing agencies publish their prices?
In this sample, 13 of the 33 pages an agency had written about its own service published a specific price, which is 39.4%. Across all 80 classified pages, including editorial guides and directories, 50 published a price, which is 62.5%.
Why do marketing agencies hide their pricing?
This study measures states, not motives, so it cannot answer that. What it can say is that 14 of 33 vendor pages carried no qualifying figure but did ask for a call, a quote, a form, a proposal or a free audit, and that this was more common than publishing.
How much do marketing agencies typically charge?
This dataset does not answer that, and any figure taken from it would be a misuse of it. It records whether a page showed a price, not what the price was, so the rate card question needs a different study with a different method.
Is a gated price a red flag?
Not on its own. Genuinely custom scope is a real reason to quote rather than publish, and 21.2% of the sample sat in that state. It becomes a problem when the buyer cannot tell whether the work costs 500 dollars or 50,000 before booking a call.
How were the 80 pages classified?
Each page was reduced to plain text, then scanned for a currency figure whose surrounding 120 characters carried a pricing or tier cue such as per month, package, plan, starting at, per word, per link, hourly or retainer. One state per URL, with the deciding snippet recorded.
Why were ten URLs excluded?
They could not be read. Nine returned 403, 404 or 502 to both the API and a desktop browser retry, and one returned 200 with only 387 characters of body text. All ten are listed on this page, and they are excluded from every percentage rather than counted as no price.
Can I reuse this data?
Yes. The row level file is published under a Creative Commons Attribution 4.0 license, so quote it, chart it or recompute it, with a link back to this page. If you find an error in a row, tell us and the file and the page will both be corrected.
Does The Super Panel publish its own prices?
Yes, every tier of every service, which is why this page states its conflict of interest twice. The study was designed to be able to embarrass us, and on the headline number it partly did: most of page one publishes something.
Where our own prices sit
This site is in the 39.4%, with the exclusions printed beside the inclusions.
Read our own price list, published in full or the services these prices cover.
Published 2026-09-08. Last updated 2026-09-08.
Sources
- The row level dataset behind every figure on this page: price-transparency-2026-09-08.json, collected 2026-09-08, published under Creative Commons Attribution 4.0.
- SERP and page text: DataForSEO Google Organic Live Advanced, with OnPage Instant Pages and Content Parsing Live, read 2026-09-08.
- The claim this study tests: the top-ranking argument that agencies hide their rates, the position 1 organic result on 2026-09-08, argued without a count.
Each link was opened on the date shown. No competitor is named here as hiding anything: the study records states, not motives.