Agency AI Visibility: The Proof AI Engines Look For
Agency AI visibility depends on proof engines can quote. Of 82 agency sites, 51% linked case studies, but only 7 of 40 such pages showed 3+ result figures.
Kazi Khalid Hasan Tamim · BugViso Team
12 min read
Agency AI visibility depends on proof an engine can quote: case studies with measurable results, a page per service and niche, and profiles on the directories that "best agency" lists draw from. Agencies sell results, and most agency websites describe them in adjectives. Of 82 agency websites we checked, 51% linked a case-studies or work page. Of the 40 such pages we read, only 7 showed three or more result figures, such as a percentage uplift, and 2 agencies linked a Clutch profile from their homepage.
An agency is in the odd position of selling AI visibility to clients while its own site gives engines little to recommend it for. By the end of this post you'll know what agency sites expose, the three gaps that keep agencies out of "best agency for X" answers, a page standard to fix them, and a script that audits an agency site in seconds.
Data used: 124 marketing, advertising, digital and web agencies with a website listed in OpenStreetMap (tagged as advertising agencies, or as companies with agency-type names), from London, Manchester, Chicago, Austin and Sydney, sampled on 2026-10-29 with seed
20261029. Homepages and one case-studies or work page per agency were fetched as plain HTML; 82 homepages were readable. Agencies aren't named.
How Engines Choose Agencies to Recommend
A question like "best B2B SaaS SEO agency in London" is answered from lists, directories and the agencies' own proof pages. The engine searches, reads "best agencies" listicles and directory rankings, and checks the shortlisted agencies' sites for a reason to include each: a specialism that matches, a result, a client type.
That's the same pattern we measured for software: list pages carried 21.5% of unbranded citations in our listicle study, and engines named the tools those lists named. For agencies, the lists are "best [service] agencies in [city]" posts and directory category rankings. The agency's own site matters at the second step, when the engine needs something specific to say.
What 82 Agency Websites Expose
| Signal | Agencies | Share |
|---|---|---|
| Case studies, work or portfolio page linked | 42 | 51% |
| — work page with any percentage result | 11 of 40 read | 28% |
| — work page with 3+ percentage results | 7 of 40 read | 18% |
| — work page with a money figure | 10 of 40 read | 25% |
| Team or about page linked | 51 | 62% |
| Services page linked from the homepage | 21 | 26% |
| Pricing page linked | 3 | 4% |
| Reviews or testimonials page linked | 2 | 2% |
| Organization markup with sameAs profiles | 33 | 40% |
| Person markup on the homepage | 15 | 18% |
| Link to a Clutch profile | 2 | 2% |
| Link to other agency directories | 0 | 0% |
| Link to LinkedIn | 60 | 73% |
| Link to Instagram | 49 | 60% |
| Any AI crawler blocked in robots.txt | 6 | 7% |
Another 42 of the 124 agencies (34%) had no readable homepage at the listed address: the domain had lapsed, errored or refused the request. Agencies change names and domains often, and old listings don't follow.
The pattern held across agency types. Advertising agencies and the digital, web and design studios in the sample looked much the same:
| Agency type | Readable sites | Work page | Services page | Work pages with 3+ % results |
|---|---|---|---|---|
| Advertising agencies | 46 | 25 (54%) | 14 (30%) | 4 of 23 |
| Digital, web and design studios | 36 | 17 (47%) | 7 (19%) | 3 of 17 |
Neither group is doing the obvious thing well. The samples are small, so the useful reading is that the gap is industry-wide, not confined to one kind of agency.
Agencies did better than other businesses on identity: 40% connected their profiles with sameAs, against 15% of the professional firms in our professional services study. They did worse on the thing they sell: measurable results.
Three Gaps That Keep Agencies Out of AI Answers
Case studies without numbers
Half the agencies have a work page. Most of those pages are galleries: logos, screenshots, a sentence per client. Only 7 of 40 showed three or more percentage results. An engine asked for "an agency that has grown organic traffic for e-commerce brands" can't quote a logo. It can quote a line written as "organic revenue up [X]% in nine months for a 300-SKU fashion retailer".
Write case studies as evidence: client type and size, the starting problem, what you did, the measured result with its timeframe, and the people who did it. Anonymise if you must; keep the numbers.
Services and niches without their own pages
Only 26% linked a services page from the homepage. Buyers don't ask engines for "a full-service agency"; they ask for "a Shopify CRO agency" or "PPC for dental practices". Each service, and each niche you genuinely specialise in, needs a page that says who it's for, what you do, how you measure it and which case studies prove it.
No presence where "best agency" lists come from
Directories and rankings feed the listicles engines read. Two of 82 agencies linked a Clutch profile, and none linked another agency directory. A linked profile isn't required for an engine to find it, but an agency that never mentions its directory presence usually doesn't maintain one: few reviews, a stale description, the wrong services. Fill in the profiles that rank agencies in your field, ask clients for reviews that name the service and result, and keep the description identical to your site.
💡 Rule of thumb: for every "best [service] agency for [niche]" question you want to win, you need a service page, a case study with numbers in that niche, and a presence on the lists that answer it.
The Agency Page Standard
| Page | What it must state |
|---|---|
| Service page (one per service) | Who it's for, deliverables, how results are measured, typical timeline, price basis, linked case studies |
| Niche page (one per real specialism) | The niche's specific problems, your experience in it, results for clients like them |
| Case study | Client type, problem, approach, results with numbers and timeframes, the team, a client quote if you have permission |
| Team page and bios | Who leads each service, their background and certifications |
| About and Organization markup | Founding year, location, size, and sameAs to your directory and social profiles |
Price basis deserves a mention: 4% of agencies linked a pricing page. Many agencies quote per project, but "retainers from £X a month" or "projects typically £X–£Y" answers the budget questions buyers ask. Our guide to selling GEO services shows one way to package and price an AI visibility service.
Keep it honest. Google's helpful content guidance asks for first-hand evidence and clear sourcing, and invented results or testimonials are exactly what engines, clients and regulators look for in agency marketing.
Markup That Ties the Proof Together
Structured data won't win a recommendation, but it removes doubt about which agency a list or review is describing. Agency names repeat across cities and change after rebrands, so connecting your site to your profiles is worth an hour. Google's Organization structured data documentation covers the fields; 40% of the agencies we checked already used sameAs.
A compact pattern for the homepage, with one Service per real offering:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Digital",
"url": "https://example-digital.com",
"foundingDate": "2016",
"address": {"@type": "PostalAddress", "addressLocality": "Manchester", "addressCountry": "GB"},
"sameAs": ["https://www.linkedin.com/company/example-digital", "https://clutch.co/profile/example-digital"],
"makesOffer": [{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Shopify CRO",
"url": "https://example-digital.com/services/shopify-cro"}}]
}Keep every value identical to what your directory profiles say. A founding year or city that differs between your site and a listing is the kind of small conflict that makes an engine hedge.
Audit an Agency Site Yourself
This script finds the case-studies or work page and the service pages from an agency's homepage, counts measurable result figures on the case-studies page, checks for directory profile links and Organization sameAs, and reads robots.txt for AI crawlers. Standard library only.
#!/usr/bin/env python3
"""Does an agency's site give AI engines evidence to recommend it? Finds case studies and checks
them for measurable results, plus service pages, directory profiles, Organization sameAs and AI crawler rules.
Usage: python3 agency_proof_check.py https://example-agency.com
"""
import re, sys, urllib.request, urllib.robotparser
from html import unescape
from urllib.parse import urljoin, urlsplit
UA = "Mozilla/5.0 (compatible; agency-proof-check/1.0)"
DIRECTORIES = r"(clutch\.co|designrush\.com|sortlist\.|goodfirms\.co|upcity\.com|agencyspotter\.com)"
def get(url):
req = urllib.request.Request(url, headers={"User-Agent": UA})
with urllib.request.urlopen(req, timeout=20) as r:
return r.geturl(), r.read(2_500_000).decode("utf-8", "replace")
def text(html):
return re.sub(r"\s+", " ", unescape(re.sub(r"(?s)<[^>]+>", " ", re.sub(r"(?is)<(script|style|svg)[^>]*>.*?</\1>", " ", html))))
def main(url):
final, home = get(url)
hrefs = re.findall(r"""<a\b[^>]*href=["']([^"'#]+)""", home, re.I)
host = urlsplit(final).netloc
links = sorted({urljoin(final, h).split("?")[0].rstrip("/") for h in hrefs if urlsplit(urljoin(final, h)).netloc == host}, key=len)
find = lambda pat: [u for u in links if re.search(rf"/({pat})(/|$)", urlsplit(u).path.lower())]
work = find(r"case-studies|case-study|work|portfolio|projects|results|clients")
services = find(r"services?|what-we-do|capabilities|solutions")
dirs = sorted({re.search(DIRECTORIES, h).group(1) for h in hrefs if re.search(DIRECTORIES, h)})
sameas = bool(re.search(r'"sameAs"', home))
print(f"{'✓' if work else '✗'} case studies / work page: {work[0] if work else 'not linked from the homepage'}")
print(f"{'✓' if services else '✗'} service pages linked: {len(services)}")
print(f"{'✓' if dirs else '✗'} agency directory profiles linked: {', '.join(dirs) or 'none'}")
print(f"{'✓' if sameas else '✗'} Organization sameAs in markup")
if work:
_, page = get(work[0])
t = text(page)
figures = re.findall(r"\b\d{1,4}(?:\.\d)?\s?%|\b\d+(?:\.\d)?x\b|[$£€]\s?\d[\d,.]*\s?[kKmM]?", t)
print(f" case studies page: {len(figures)} measurable figures (%, x, money) -> "
f"{'results engines can quote' if len(figures) >= 3 else 'add outcomes with numbers and timeframes'}")
rp = urllib.robotparser.RobotFileParser(f"{urlsplit(final).scheme}://{host}/robots.txt"); rp.read()
blocked = [b for b in ("OAI-SearchBot", "GPTBot", "PerplexityBot", "ClaudeBot", "Google-Extended") if not rp.can_fetch(b, final)]
print(f"{'✓' if not blocked else '✗'} AI crawlers allowed" + (f" (blocked: {', '.join(blocked)})" if blocked else ""))
if __name__ == "__main__":
main(sys.argv[1]) if len(sys.argv) == 2 else sys.exit(__doc__)On one agency from the sample, one of the seven with quotable results:
✓ case studies / work page: https://<agency>/case-studies
✗ service pages linked: 0
✗ agency directory profiles linked: none
✓ Organization sameAs in markup
case studies page: 12 measurable figures (%, x, money) -> results engines can quote
✓ AI crawlers allowedStrong proof, but no service pages linked from the homepage and no directory presence: the engine has results to quote and nothing that tells it which questions they answer. Service pages behind a JavaScript menu can show as missing; check the result by hand.
How BugViso Plans Agency AI Visibility
BugViso's AI Visibility Tracker recognises an agency from its site and builds the "what to do" plan for that type. The agency plan covers agency directories (Clutch, DesignRush, Sortlist, GoodFirms and partner directories), "best agencies" listicles and LinkedIn, plus expert proof: case studies with client results, a page per service and niche, and certifications and awards. It can draft a case-study outline or an outreach email to a list that names rivals but not you, from your site's facts.
The same workspace you use for clients tracks your own agency: set it up as a brand, and the report shows which "best agency for X" questions name other agencies instead of you, the lists and directories those answers cited, and how engines describe your services. The agency plan is part of the AI visibility tracker.
Agency AI Visibility Mistakes
A portfolio of logos. Logos prove you had clients, not what you achieved. Add the numbers.
One "Services" page listing everything. Engines match specific questions to specific pages. Split it.
Claiming every niche. A niche page without results in that niche is a claim an engine can't support. Build niche pages where you have case studies.
Stale directory profiles. If the profile says you do web design and your site says you do PPC, both lose.
Letting old domains lapse. A third of the agencies we sampled had no readable site at the address their listing gave.
Frequently Asked Questions
How do agencies get recommended by ChatGPT?
By being on the lists and directories engines read for "best [service] agency" questions, and by giving engines something specific to say once they check the agency's site: a service page matching the question and a case study with measurable results in that niche.
What should an agency case study include for AI search?
Client type and size, the starting problem, what the agency did, results with numbers and timeframes, and who did the work. Only 7 of the 40 agency case-study pages we read showed three or more result figures.
Do agency directories like Clutch matter for AI visibility?
They feed the "best agency" rankings and lists engines read. In our sample, only 2 of 82 agencies linked a Clutch profile from their homepage. Keep directory profiles complete, reviewed and consistent with your site.
Should an agency track its own AI visibility?
Yes, with the same method it sells: a fixed set of buyer questions for your services and niches, tracked over time against the agencies you lose pitches to. It's also the most convincing demo you can show a prospect.
How many service pages should an agency have?
One per service you actively sell, plus one per niche where you have results to show. In our sample, only 26% of agencies linked a services page from their homepage.
Show the Results You Sell
Engines recommend agencies they can justify, so publish case studies with numbers, a page per service and niche, and keep the directory profiles that feed "best agency" lists current. BugViso's AI visibility tracking tracks your own agency the same way you track clients, so you can see which pitch questions name rivals instead.
Written by
Kazi Khalid Hasan Tamim · BugViso Team
Kazi writes BugViso’s guides on website audits, Core Web Vitals, technical SEO, accessibility and AI search. The data in them comes from audits BugViso runs in a real Chromium browser, including our 219-site study of website health.
Summarise with AI
Open this guide in your assistant.
Follow BugViso
New guides and audit data as we publish them.
See where your site stands
Run a free BugViso audit for SEO, speed, accessibility and AI search readiness — with fixes you can ship today.