Google Business Profile Audit & Competitor Check avatar

Google Business Profile Audit & Competitor Check

Pricing

$20.00 / 1,000 business auditeds

Go to Apify Store
Google Business Profile Audit & Competitor Check

Google Business Profile Audit & Competitor Check

Google Business Profile (GBP, GMB) audit tool for local SEO: a 0–100 score, what is missing and why it matters, owner replies, posts, photos, hours, booking links, and a comparison with the competitors Google Maps ranks around it. By link, place id, CID or name. Report as CSV, JSON or API. No login.

Pricing

$20.00 / 1,000 business auditeds

Rating

0.0

(0)

Developer

Steady Scrape

Steady Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Google Business Profile Audit & Competitor Check (GMB audit)

Audit any Google Business Profile (formerly Google My Business) in seconds: a 0–100 completeness score, a letter grade, the list of what is missing — each item with why it matters and how to fix it — and a comparison with the competitors Google Maps ranks first around the business: their scores, ratings, reviews and photos, and which items they have that the business lacks.

One business or 500 in a run. Give a Google Maps link, a place id, a CID, or just "name, city". No login, no browser, no Google API key, no other Actor to run first.

What it reads from each profile

Everything Google Maps shows a signed-out visitor on the profile:

AreaFields
Ownershipclaimed (false when Google offers "Claim this business"), markedClosed
Contactwebsite and websiteType (own, free-builder, social, directory, none — a Facebook page is not a website), phone, phoneInternational, address, lat, lng
CategoriesprimaryCategory, additionalCategories
HoursopeningHours (one line per day), moreHours (Happy hours, Takeout, Delivery…)
Contentdescription (the owner's "From the business" text) and descriptionLength, googleSummary (the line Google writes itself), photoCount
ActivitypostsShown, latestPostAt (owner updates), newestReviews: the five newest reviews' dates, average stars, how many have an owner reply and the date of the latest reply
Reputationrating, reviewCount, ratingHistogram (1★ to 5★ counts), reviewTopics (what reviews mention most, with counts)
ConversionactionLinks (Book online / Reserve a table / Order online, with the booking partner when Google names it), reservationLinks
Extrasaccessibility (the features the place has), highlights (owner badges such as "Identifies as women-owned")

No reviewer names or review texts are written: the audit only counts and dates them.

The score and its weights

Thirteen items, 100 points. Every check in the output says its points, its maximum, the value found, why it matters, and the fix when it is not complete.

ItemPointsFull marks when
Profile claimed by its owner10no "Claim this business" on the profile
Own website linked12a site on the business's own domain (free builder 70 %, social or directory page 30 %)
Phone number8a phone is listed
Opening hours8weekly hours are set
Business description8250+ characters (shorter: half)
Primary and additional categories6primary + 2 or more additional (1 additional: 60 %, primary only: 30 %)
Photos10100+ (25+: 70 %, 10+: 40 %, 1+: 10 %)
Star rating104.5+ (4.0+: 70 %, 3.5+: 40 %)
Number of reviews10100+ (50+: 70 %, 20+: 40 %, 1+: 10 %)
Recent reviews5newest review within 30 days (within 90: half)
Owner replies to reviews7the owner answered all five newest reviews (pro rata)
Recent updates (posts)4a post within 30 days (within 90: half)
Booking, reservation or order link2any Book, Reserve or Order button or reservation link

Grades: A 85+, B 70+, C 55+, D 40+, F below 40.

The competitor comparison

For each business, the Actor runs one Google Maps search for its primary category (or a keyword you choose, such as emergency dentist) at the business's own location, the way a customer nearby sees it, and audits the first N places (default 3, up to 10) with the same score. You get:

  • competitorKeywordRank: where the business itself ranks for that search at its own door (1–20, or null);
  • competitors: each one's rank, score, grade, rating, reviews, photos, claimed status, website type, newest review, latest post, owner replies, and the items it has in full;
  • gaps: the items on which competitors score more than the business, with how many and which;
  • benchmarks: the competitors' median score, rating, reviews and photos, and the business's position among them.

Other branches of the same brand (places linking the same website) are never counted as competitors. Businesses of one city often share competitors: each place is read once per run.

Built for local SEO agencies

  • Prospecting: audit a list of businesses of one niche and city and pitch the D and F profiles first — unclaimed ones, no website, no replies to reviews — with a ready "what to fix" list for each.
  • Client onboarding and monthly reports: the score, the missing list and the gap to the top 3 competitors, in a dataset you can push to a sheet, a CRM or a PDF template.
  • Before / after: re-run the same audit after the profile work and show the score move.
  • Companion to rankings: pair it with our Google Maps Rank Tracker (geo-grid) to show where the business ranks across town and what to change on the profile to rank higher.

Input example

{
"businesses": [
"https://www.google.com/maps/place/Swish+Dental+Downtown/data=!4m2!3m1!1s0x8644b5b434046875:0x644e6eb422388b7a",
"ChIJM8w7rqS1RIYRhEz2-KuoqzE",
"Uchi Austin, Austin TX"
],
"competitors": 3,
"competitorKeyword": "",
"language": "en",
"country": "us"
}

A link, place id or CID is exact. A name is looked up on Google Maps and accepted only when Google answers with a single place or a place that carries that name; otherwise the row says which places Google listed and asks for the link.

Output example (shortened)

{
"rowType": "audit",
"status": "ok",
"name": "Swish Dental Downtown",
"placeId": "ChIJdWgENLS1RIYReos4IrRuTmQ",
"cid": "7227836171923524474",
"mapsUrl": "https://www.google.com/maps?cid=7227836171923524474",
"score": 94,
"grade": "A",
"missing": [
{ "item": "photos", "label": "Photos", "pointsLost": 3, "value": "25 photo(s)", "why": "Profiles with many photos get more direction requests and website clicks; recent photos also show the place is real and active.", "fix": "Upload photos of the outside, inside, team and work until the profile has 100 or more." },
{ "item": "ownerReplies", "label": "Owner replies to reviews", "pointsLost": 3, "value": "owner replied to 3 of the 5 newest reviews", "why": "Answering reviews is a trust and ranking signal; customers read the replies, above all to bad reviews.", "fix": "Reply to every review, the newest first, within a few days." }
],
"claimed": true,
"primaryCategory": "Dentist",
"additionalCategories": ["Cosmetic dentist", "Dental clinic", "…"],
"websiteType": "own",
"phone": "(512) 713-1099",
"rating": 4.5,
"reviewCount": 991,
"ratingHistogram": { "oneStar": 81, "twoStars": 23, "threeStars": 18, "fourStars": 31, "fiveStars": 838 },
"photoCount": 25,
"descriptionLength": 610,
"postsShown": 5,
"latestPostAt": "2026-09-29T22:13:17.000Z",
"newestReviews": { "sampleSize": 5, "newestAt": "2026-10-16T01:21:40.118Z", "oldestAt": "2026-10-13T22:37:00.939Z", "averageStars": 3.8, "withOwnerReply": 3, "latestOwnerReplyAt": "2026-10-16T03:22:12.000Z" },
"actionLinks": [{ "kind": "book", "label": "Book online", "provider": "subscribili.com" }],
"competitorComparison": "done",
"competitorKeyword": "Dentist",
"competitorKeywordRank": 3,
"competitors": [
{ "rank": 1, "name": "Breeze Dental", "score": 92, "grade": "A", "rating": 4.8, "reviewCount": 1002, "photoCount": 26, "claimed": true, "ownerRepliesInNewest": "3 of 5", "…": "…" }
],
"gaps": [{ "item": "ownerReplies", "label": "Owner replies to reviews", "competitorsAhead": 1, "competitorsCompared": 3, "competitors": ["Toothbar"] }],
"benchmarks": { "competitorsCompared": 3, "medianScore": 92, "medianRating": 4.9, "medianReviewCount": 735, "medianPhotoCount": 47, "reviewCountPosition": 2, "photoCountPosition": 4, "scorePosition": 1 },
"checks": ["… all thirteen checks with points, value, why and fix …"]
}

An input that could not be audited is a free row with rowType: "business" and a status: business_not_found, invalid, blocked or spending_limit, with the reason.

What is not available without logging in (and is not promised)

Google Maps shows a signed-out visitor less than the owner sees in their dashboard. This Actor does not report: social profile links, the menu link, the services and products lists, the full "About" attribute list beyond accessibility features and highlights, owner photos apart from customer photos (photoCount is the profile's total), the reply rate over all reviews (only the five newest are read), Q&A, or the owner's insights (calls, clicks, searches). Items that need a login are left out of the score rather than guessed.

Pricing

Pay per event, no start fee:

EventPrice
audit — one business audited, competitor comparison includedUS$0.02

100 audits with 3 competitors each: US$2. Free: businesses not found, invalid inputs, blocked rows, businesses left out by your spending limit, and an audit whose competitor comparison could not finish because Google refused it. The spending limit is checked before each audit starts, so nothing is read that your limit cannot pay for.

Stops when Google asks for verification

The Actor reads the same answers Google Maps gives its own web page, at a moderate pace (two requests in flight). If Google ever asks for verification — its "unusual traffic" page, a CAPTCHA, a JavaScript check, or any answer that is not Google Maps' normal data — the run stops sending requests: every business left is a free blocked row that says so, and the run ends normally with a message. It never solves, bypasses or replays a challenge. Plain overloads (HTTP 429 or 5xx without a challenge) are retried through Apify's datacenter proxy.

Limits

  • Up to 500 businesses and 10 competitors each per run.
  • The newest-reviews figures cover the five newest reviews Google shows (ordered by last edit, as Google orders them).
  • Ranks and competitors are those of Google Maps' list for the search at the business's location, seen as a signed-out visitor from the run's IP; they can differ slightly from what a logged-in user sees.
  • Language and country set how categories, hours and labels are written; use the business's own country.

It reads publicly visible business profiles, at a pace a person browsing the map could produce, without logging in. It writes no personal data of reviewers. Use the data in line with Google's terms and the laws that apply to you.