Maps Location Website Health Audit
Pricing
from $20.00 / 1,000 location auditeds
Maps Location Website Health Audit
Offline audit of branch-directory website links: missing, malformed, off-brand and duplicated URLs.
Pricing
from $20.00 / 1,000 location auditeds
Rating
0.0
(0)
Developer
Practical AI Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Security
Limited permissionsShare
Checks the website column of a branch or store directory that you already hold, for example an export of your own Google Maps business listings. It finds missing and malformed website links, domains that do not match your brand, and several locations that point to the same page. It works entirely offline on the data you provide.
What it does
- Missing and malformed links: empty values, placeholders such as
N/A, missinghttpsprefix, typos likehttps//, whitespace, invalid host names, private or local addresses, non-web schemes. - Brand-domain consistency: compares each domain with the brand domains you list. If you list none and supply at least 3 sites, the dominant domain is inferred from your input and outliers are flagged.
- Duplicate location URLs: normalizes links (case,
www, trailing slash, fragments, tracking parameters,index.html) and groups locations sharing one URL. - Directory/social links: flags links to social, directory or maps pages used instead of an own website.
Each row gets a status (ok, warning, error) and issue codes. A SUMMARY record in the key-value store lists counts, duplicate groups and notes.
Privacy
Only locationId, name, city and websiteUrl are read. Phone, email and any other columns are ignored. Contact-like values placed in the website field (emails, tel: links) are flagged and shown as [redacted]. Credentials inside URLs are removed from output. Nothing is collected from any website or service.
Sample input
{"locations": [{"locationId": "S001", "name": "Acme Coffee Downtown", "city": "Springfield", "websiteUrl": "https://www.acmecoffee.example/locations/downtown"},{"locationId": "S002", "name": "Acme Coffee Riverside", "city": "Springfield", "websiteUrl": "acmecoffee.example/locations/riverside?utm_source=maps"},{"locationId": "S003", "name": "Acme Coffee Airport", "city": "Shelbyville", "websiteUrl": "http://acme-coffee-airport.example"},{"locationId": "S004", "name": "Acme Coffee Mall", "city": "Shelbyville", "websiteUrl": ""},{"locationId": "S005", "name": "Acme Coffee Harbor", "city": "Capital City", "websiteUrl": "https://acmecoffee.example/locations/downtown/"},{"locationId": "S006", "name": "Acme Coffee Station", "city": "Capital City", "websiteUrl": "https//acmecoffee.example/station"}],"brandDomains": ["acmecoffee.example"],"allowSubdomains": true,"ignoreTrackingParameters": true,"maxLocations": 1000}
You can also paste CSV text with a header row (locationId,name,city,websiteUrl) into csvText.
Output fields
locationId, name, city, inputWebsite, domain, normalizedUrl, status, issueCodes, issues (code, severity, message), duplicateGroupSize, duplicateLocationIds.
Limitations
- No live checks. Links are never opened, so dead pages, redirects, parked domains and wrong-business pages are not detected. A link marked
okis only well-formed and consistent. - Domain grouping is approximate. A small built-in list of multi-part suffixes (such as
co.uk) is used, not the full public suffix list; unusual suffixes may be grouped wrongly. - Inferred brand domain is weak evidence, especially under 30 locations. Franchises and multi-brand groups legitimately use several domains; provide
brandDomainsfor reliable results. - Shared pages are not always errors. Some brands intentionally use one store-locator page; review duplicate groups before changing data.
- Input is capped at 5000 rows per run (default 1000). Results depend entirely on the quality of the data you supply.
- This Actor does not scrape Google Maps or any other site and does not verify that a business exists.
Pricing
The code emits one location-audited event per audited row after its result is stored; invalid input fails before any event. No payable plan is configured in this project.
Local tests
python -m unittest discover -s tests (offline; the tests do not need the Apify SDK).