Local Business Website Audit - Verifiable Defects, Not Scores
Pricing
from $100.00 / 1,000 results
Local Business Website Audit - Verifiable Defects, Not Scores
Website audit for lead generation. Finds local businesses with broken tap-to-call links, dead contact emails, stale copyright years and placeholder text. Every finding is verifiable in the page source - no A-F scores. Sites we can't assess are marked inconclusive, never guessed.
Pricing
from $100.00 / 1,000 results
Rating
0.0
(0)
Developer
Mark Capodilupo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Local Business Website Auditor
Scan any list of local business websites and get back a list of specific, provable defects — dead tap-to-call links, email links that go nowhere, contact addresses pointing at the wrong domain, stale copyright years, missing titles, insecure resources, and more.
Built for one job: finding local businesses whose websites are visibly broken, so you can sell them a fix.
Every finding is something the business owner can see in their own page source in about ten seconds. No scores, no grades, no black box.
What this Actor does
Give it a list of URLs. It reads each page's HTML and returns a structured list of defects with a plain-English explanation of why each one costs the business money.
It runs 23 checks, weighted heavily toward the ones that break the path between a customer and a sale:
Contact-path defects (high severity)
| Check | What it catches |
|---|---|
broken_tel_link | tel: links with the wrong digit count — the encoded-space bug, tel: tags with no number at all |
broken_mailto | Email links that display one address and send to another, or point at a placeholder like temp@dentist.com |
foreign_domain_email | Contact email on a domain that isn't the business's — inbound enquiries routed to a different company |
inconsistent_phone_numbers | Several different phone numbers wired into call links on one page |
phone_not_tappable_ios | format-detection: telephone=no set with no call links to compensate |
phone_not_clickable | Phone number present as plain text with no tel: link anywhere |
site_unreachable | The site does not load at all |
parked_or_placeholder_domain | Domain parked, for sale, or still on a default server page |
Credibility and maintenance defects
dead_google_plus_link · stale_copyright · placeholder_text · flash_content · default_wp_tagline · dead_facebook_link · personal_email_as_business · outdated_jquery · no_https · insecure_resources
Search-visibility defects
missing_title · title_too_long · missing_meta_description · missing_h1 · no_structured_data · no_open_graph · images_missing_alt · no_analytics · placeholder_schema
What this Actor deliberately does NOT do
It will not guess.
Sites rendered entirely in JavaScript — Wix, Squarespace, many React builds — return an empty HTML shell to any non-browser request. A naive scanner reports those as missing everything and hands you a page of false positives.
This Actor detects that case and returns inconclusive: true with a plain explanation, rather than counting the page as defective.
That matters more than it sounds. If you are using this output to open a conversation with a business owner, one false claim ends the conversation. Better to hand back 59 real findings than 66 with 7 lies in them.
It also does not extract personal data, does not follow links, and does not touch anything behind a login.
Why use it
For web design and SEO agencies. Every cold-outreach playbook written for agencies says the same thing: the only opener that works is a specific, verifiable flaw on the prospect's site. Generic "I noticed your site could rank better" gets deleted. "All 14 of your call buttons are dead, here is the exact character causing it" gets a reply.
This Actor manufactures that opener at scale.
Real numbers from a production run: 85 local service businesses across 7 US metros — auto repair, plumbing, HVAC, dental, roofing, salons.
- 59 had at least one verifiable defect
- 6 had tap-to-call links that were completely non-functional
- One had 14 dead call buttons on a single page
- Cost to run that same scan yourself: $8.50
For freelancers and consultants pitching website work, for agencies auditing a client portfolio after acquiring an account, and for anyone doing competitive research on how well-maintained a market's websites actually are.
How much does it cost?
Pricing is pay per result: $100.00 per 1,000 results. One result equals one URL audited. Platform usage — compute, proxies, bandwidth — is included, so there is nothing else to pay.
The Apify Free plan includes $5 in credits every month, which is 50 websites audited per month, free.
For scale: auditing an entire metro's worth of local businesses — 500 sites — costs $50.00.
How to audit a list of business websites
- Click Try for free at the top of this page.
- Open the Input tab and paste your list of website URLs. Use Bulk edit to paste hundreds at once, one per line.
- Click Start. A 50-site run finishes in well under a minute.
- Open the Output tab when the run completes.
- Export as CSV, JSON, Excel, or HTML, or pull the results from the Apify API.
Sort the output by highSeverity descending. Those rows are your call list.
Input
Local Business Website Auditor takes a single input field — startUrls, a list of website URLs. Click the Input tab for the full schema.
{"startUrls": [{ "url": "https://example-plumbing.com/" },{ "url": "https://example-hvac.com/" },{ "url": "https://example-dental.com/" }]}
Output
You can download the dataset in JSON, CSV, Excel, or HTML. One row per URL.
{"url": "https://example-plumbing.com/","scannedAt": "2026-08-02T14:02:38.000Z","findingsCount": 3,"highSeverity": 2,"findings": [{"check": "broken_tel_link","severity": "high","detail": "tel: link \"tel:%20615-298-2995\" has 11 digits after an encoded space - phones reject it, so the tap does nothing"},{"check": "broken_mailto","severity": "high","detail": "Email link shows \"temp@example.com\" on screen but actually sends to \"info@exampl-plumbing.com\" - the two do not match"},{"check": "stale_copyright","severity": "medium","detail": "Footer copyright says 2019 - site looks unmaintained (7 years old)"}],"summary": "tel: link has 11 digits after an encoded space | Email link display and target do not match | Footer copyright says 2019"}
Pages that cannot be honestly audited return:
{"url": "https://example-js-rendered-site.com/","findingsCount": 0,"inconclusive": true,"summary": "Inconclusive - page content is rendered by JavaScript, so the raw HTML cannot be audited. Not counted as defective."}
Is it legal to audit business websites?
Yes. This Actor reads only what a browser reads when it loads a public page — the same HTML any visitor receives. It does not log in, does not bypass any access control, does not extract personal data such as private email addresses or user records, and does not collect anything the business has not chosen to publish.
It reads business contact details that are published on the business's own website for the purpose of being contacted.
If you use the output for outreach, normal marketing rules still apply in your jurisdiction — CAN-SPAM in the US, GDPR in the EU. You should not contact people who have opted out, and if you are unsure whether your use case is legitimate, ask a lawyer.
Tips
- Feed it a clean list. Include the protocol (
https://). The Actor follows redirects but does not guess at malformed URLs. - Sort by
highSeverity, notfindingsCount. A site with one dead call button is a much better lead than a site with six missing alt tags. - Treat
inconclusiverows as unknown, not clean. They may well be broken; the raw HTML just cannot prove it. Open those by hand if the lead matters. - Re-verify before you send. Before quoting a finding to a business owner, open the page and confirm it. Sites change. This is the single habit that keeps the approach credible.
- Pair it with a contact extractor to attach an email address to every defect you find, and you have a complete outreach list.
Related
Website Contact & Email Extractor — feed it the same URL list and get back emails, phone numbers, addresses, and social profiles, one clean row per company. The two together turn a list of domains into a list of qualified, reachable leads.