Local Business Website Audit — Lead-Readiness Scanner
Under maintenancePricing
from $4.00 / 1,000 audits
Local Business Website Audit — Lead-Readiness Scanner
Under maintenanceAudit local business websites for lead-readiness — contact form, click-to-call, live chat, booking, mobile, HTTPS — and get a graded, sales-ready lead list. Paste sites or give a niche + city.
Pricing
from $4.00 / 1,000 audits
Rating
0.0
(0)
Developer
James Taylor
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
This local business website audit scores how well a local business's homepage is set up to catch leads — and hands you back a graded, sales-ready hit-list. Point it at a list of sites, or give it a niche + location and it discovers the businesses for you, then grades each one: a 0–100 score, an A–F grade, a ranked list of what's missing, and a one-line headline naming the single biggest gap — phrased so you can drop it straight into an outreach email.
It's built for digital agencies, web designers, marketers, freelancers and SEO consultants who want to find local business leads that are visibly leaking enquiries — and walk in already knowing what to fix.
Why lead-readiness, not a generic Lighthouse audit
Most website audit tools on the Store are Lighthouse clones: they hand you a wall of performance metrics, render-blocking scripts and accessibility nits. None of that tells you whether the business is losing money. This is a website audit tool for agencies that scores the thing agencies actually get paid to fix: lead capture.
It checks whether a homepage gives a visitor any way to become a lead — a contact form, click-to-call, live chat, online booking, a mobile experience that works — and weights those signals heaviest. A site can ace Lighthouse and still score an F here because there's no way to contact the business. That gap is the pitch. The output is a list you can act on today, not a report you have to interpret.
What it does
- Audits a local business's public homepage (one page, no crawl) and scores its lead-readiness 0–100.
- Returns an A–F grade, a ranked
missinglist, and a single agency-readyheadlinecalling out the biggest gap. - Detects seven signals: contact form, click-to-call, live chat, online booking, mobile-optimised, HTTPS, and meta description.
- Pulls each business's public contact email and phone and a best-effort business name from the page.
- Two ways in: grade a list of sites you already have, and/or give it a niche + location and it discovers local businesses via Google search, then grades them. Use either — or both in one run.
- A
maxScorehit-list filter so you can return only the weak sites — a ready-made prospect list of businesses doing it badly.
Who it's for
- Digital & marketing agencies sourcing local prospects who are demonstrably losing leads — and opening with the fix.
- Web designers & freelancers finding sites that need a contact form, booking widget or mobile rebuild.
- SEO consultants layering lead-capture gaps on top of an organic pitch.
- Sales teams building an outbound list where every row comes with a graded, quotable reason to reach out.
Input
Provide sites, or niche + location, or both. With neither, the run stops with a clear "nothing to audit" error.
| Field | Type | Default | Description |
|---|---|---|---|
sites | array | [] | Sites to grade. Each item is a URL string or a {name, website} object. Use this, niche+location, or both. |
niche | string | "" | Business type to discover, e.g. "dentists". Needs location. |
location | string | "" | City/area to discover in, e.g. "Leeds". Needs niche. |
maxResultsPerQuery | integer | 20 | How many businesses to discover per niche+location query (1–50). |
maxSites | integer | 100 | Hard cap on total sites output/charged in the run (1–1000) — caps your spend. With a maxScore filter, more sites may be fetched than output, but you're only charged per output. |
maxScore | integer | 100 | Hit-list filter. Only output sites scoring ≤ this. 100 = output everything; lower it (e.g. 55) to return only weak sites = ready leads. |
searchEngine | string | "google" | Discovery engine: google or bing. Google is default and auto-falls back to Bing if it returns nothing. |
maxConcurrency | integer | 5 | Parallel site fetches (1–10). |
proxyConfiguration | object | GOOGLE_SERP | Defaults to Apify's GOOGLE_SERP proxy for discovery; also used as a residential fallback when a homepage blocks the direct fetch. |
Example input
Grade a list of sites you already have (sites mode):
{"sites": [{ "name": "Bright Smile Dental", "website": "brightsmiledental.co.uk" },"https://example.com","acmeplumbing.co.uk"]}
Find and grade local businesses by niche + city (discovery mode), keeping only the weak ones:
{"niche": "plumbers","location": "Manchester UK","maxResultsPerQuery": 20,"maxScore": 55}
You can pass both — the actor grades your sites and discovers the niche in the same run.
How to run
- Click Try for free (or open the actor in your Apify Console).
- Either paste your sites (URLs and/or
{name, website}objects) or type a niche and location likedentists/Leeds. - (Optional) Set
maxScorebelow 100 to return only the weak sites — your ready lead list. - Set maxSites to cap your spend.
- Click Start. When the run finishes, open the Dataset tab and export to JSON/CSV/Excel, or pull it via the API (below).
Run it on a schedule (Apify Schedules) to grade a fresh batch of a niche each week, or call it from Make / Zapier / n8n via the Apify integrations.
Output
Each item in the dataset is one audited business:
{"type": "audit","businessName": "Bright Smile Dental","url": "https://brightsmiledental.co.uk","score": 45,"grade": "D","headline": "No way to capture leads on the homepage — visitors leave without a trace.","missing": ["No contact form", "No live chat", "No booking widget"],"leadReadiness": {"contactForm": false,"clickToCall": true,"liveChat": false,"booking": false,"mobileOptimized": true,"https": true,"metaDescription": false},"contactEmail": "hello@brightsmiledental.co.uk","contactPhone": "+44 113 496 0000","source": "discovered","query": "plumbers Manchester UK"}
Field notes:
scoreis 0–100 — the sum of the lead-capture signals the homepage has. The weights are: contact form 25, click-to-call 20, live chat 15, online booking 15, mobile-optimised 15, HTTPS 5, meta description 5. A missing contact form alone costs 25 points, which is why form-less sites grade low.grademaps the score to a letter: A ≥ 85, B 70–84, C 55–69, D 40–54, F < 40. The lower the grade, the warmer the lead.missinglists the signals the homepage lacks, ranked by weight (heaviest first) — e.g.["No contact form", "No live chat", "No booking widget"]. This is your fix-list for the pitch.headlineis the single biggest gap rewritten as a one-line, agency-ready opener — e.g. "No click-to-call — mobile visitors can't reach them in one tap." When a site is already strong, it reads "Solid lead capture — only minor quick wins left."leadReadinessis the raw boolean for each of the seven signals, if you want to filter or chart them yourself.contactEmail/contactPhoneare the public business details lifted from the page —nullwhen the homepage doesn't expose them.businessNamecomes from the page title (or the domain) when you don't supply a name.sourceis"discovered"(found via search) or"provided"(from yoursites);queryholds the discovery query in discovery mode and isnullfor provided sites.
A run that audits nobody doesn't return a silent blank dataset — it sets a clear status message with tips (add sites, broaden niche+location, or raise maxScore).
Export & API
# Last run's dataset items as JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=json&token=<APIFY_TOKEN>"
Or use the run-sync-get-dataset-items endpoint to run-and-wait in a single call — handy for embedding the actor in your own backend.
Limitations
- Homepage-only (no crawl). It reads one page per business and never follows links. Widgets that load purely via client-side JavaScript on large SPA-style sites may not appear in the static HTML, so they can be missed — but real small-business sites almost always carry their form, chat and booking markup in the HTML, so detection works well on the local sites this is built for.
- Discovery is search-snippet based. A
niche+locationquery returns a focused ~10–25 businesses — a hit-list, not a 1,000-row Maps dump. Run more niches and locations (or add them tosites) for broader coverage. - Location precision. A bare city name can match the wrong country —
"Manchester"may surface Manchester, USA. Qualify it ("Manchester UK") for accurate local results.
Compliance
This actor fetches public homepages only, identifies itself with a normal browser User-Agent, reads a single page (no crawl, no login, no cookies), and uses Apify's SERP proxy for discovery at modest concurrency. The contact email and phone it returns are public business details published on the page. You are responsible for using the output in line with any privacy and outreach laws that apply to you (GDPR, PECR, CAN-SPAM, and the rest).
FAQ
How do I find local business leads with this? Give it a niche and location (e.g. dentists / Leeds) and it discovers local businesses via Google, grades each homepage, and returns them ranked by how badly they're set up to capture leads. Set maxScore below 100 to get back only the weak ones — that's your ready-to-pitch lead list.
What does the grade mean? The grade is the lead-readiness score as a letter: A ≥ 85, B 70–84, C 55–69, D 40–54, F under 40. A high grade means the homepage gives visitors plenty of ways to become a lead; a low grade means it's leaking enquiries — which makes it a warmer prospect for an agency.
Can it find leads by niche and city? Yes. That's discovery mode — niche + location finds the businesses and grades them in one run, no list required. Discovery returns a focused ~10–25 businesses per query, so run several niches or cities for more.
Does it find contact emails and phone numbers? Yes, when they're public on the homepage. Each result includes contactEmail and contactPhone lifted from the page (mailto:/tel: links and text patterns). They're null when the site doesn't publish them — we never fabricate a detail.
How is it priced and how do I control cost? Apify Pay-Per-Event — you're charged per site audited. You're only charged for sites that are actually output, so when you set a maxScore filter, weak sites you keep are charged and the strong ones filtered out are not. Unreachable sites are skipped and never charged. Set maxSites to cap the run.
How do I get only the weak sites? Lower maxScore. Leave it at 100 to output every site graded; set it to 55 to return only sites scoring 55 or below (grade C and worse), or 40 for the worst offenders only. The filter runs before billing, so you only pay for the leads you asked for.
Does it work on JavaScript-heavy sites? It reads the homepage's static HTML, so anything present there — including the script tags and markup that chat, booking and form widgets inject — is detected. On large SPA sites that render everything client-side, a widget loaded purely by JS can be missed. Real small-business sites usually ship that markup in the HTML, so detection is reliable on the local sites this is designed for.
What's the difference between sites mode and discovery mode? Use sites mode when you already have a list of businesses to grade — paste URLs or {name, website} objects. Use discovery mode (niche + location) when you want the actor to find the businesses first. You can combine both in a single run.
What if a run audits nobody? You'll get a clear status message (not a silent empty dataset) suggesting fixes — add sites, broaden your niche+location, or raise maxScore.
Want to turn these graded leads into booked calls?
This actor finds the businesses leaking leads and tells you exactly why. If you'd like the whole loop — discovery, contact enrichment, AI-personalised outreach that opens with their grade, and reply handling — done for you, that's what we build at SignalEngine. It's speed-to-lead in a box: this actor is a taste of the engine that powers it.
Need named decision-makers and their work emails instead of a website grade? See our LinkedIn Profile & Email Finder.