Back to blog

How proximity-based duplicate detection finds candidate GBP duplicates across a large estate

Why duplicate Google listings dilute rankings and split reviews, how proximity-based candidate detection works at scale, and the human verification workflow before you merge anything.

Vinayak Kulkarni
duplicateslistingsmulti-locationgbp

A duplicate Google Business Profile listing is two or more pins for the same physical storefront. Across a large multi-location estate, duplicates are not a cosmetic problem, they are a structural leak. Every signal that should compound on one pin, reviews, photos, ranking history, gets split across two. This post explains why that hurts, how our engine surfaces duplicate candidates using proximity at scale, why a candidate is never a confirmation, and the exact human workflow you run before anyone touches Google.

Why duplicate listings hurt a multi-location brand

Google is explicit that you should not create more than one profile for the same business, and it provides a manual review process for removing duplicates rather than an automatic one (Remove duplicate listings, accessed July 2026). The reason it matters so much for chains comes down to three compounding costs.

Ranking dilution

Google generally shows one listing per business per query. When two pins exist for the same store, they compete for the same slot, and the algorithm may surface the weaker one, the pin with stale hours, no owner responses, and no recent photos. Instead of one strong listing accumulating prominence, you have two half-strength listings splitting it. Google's local ranking guidance ties visibility to relevance, distance, and prominence, and notes that complete, accurate information helps Google match a business to the right searches (Improve your local ranking on Google, accessed July 2026). A duplicate fragments exactly the completeness signal you are trying to build.

Review splitting

Reviews are one of the clearest prominence signals a customer sees. Twenty reviews on each of two pins reads as a twenty-review business shown twice, not a forty-review business shown once. Since both review count and recency feed prominence, both pins rank worse than the merged listing would. Worse, a customer who wants to leave a review might land on whichever pin they found first, so your review growth itself gets scattered across duplicates you did not know existed.

Wrong-information risk

The pin you actively manage has the correct hours, the current phone number, and the right address. The forgotten duplicate does not. A customer who finds the stale pin gets sent to the wrong door or calls a disconnected number, and that failure attaches to your brand, not to the abandoned listing. For a multi-location brand, the duplicate you never noticed is the one quietly costing you walk-ins.

How proximity-based candidate detection works at scale

Finding duplicates by hand means searching every store name plus its locality, eyeballing the map, and repeating that for every location. Ten minutes per store, error-prone, and blind to pins whose names have drifted. That does not survive at forty or four hundred locations.

Our engine takes a different approach. It pulls every listing Google returns for your brand, then compares each listing against every other in the set. The primary signal is geographic proximity. For any two listings that both carry coordinates, the engine computes the great-circle distance between their pins using the haversine formula. If two same-brand pins sit within one kilometre of each other, the pair is surfaced as a duplicate candidate. When the pins overlap almost exactly, under fifty metres apart, the engine notes that the pins effectively coincide; otherwise it reports the measured distance, so a reviewer sees "same location (pins overlap)" or "420 m apart" rather than an opaque flag.

There is a fallback for listings that arrive without coordinates. When geometry is missing on both listings in a pair, the engine normalises each formatted address, lowercasing, stripping punctuation, and collapsing whitespace, and flags the pair only when the two normalised addresses are identical. That fallback is deliberately strict, because address text without coordinates is a much noisier signal than a measured distance.

The important architectural fact: the engine detects and surfaces. It does not merge listings, it does not delete anything, and it does not report duplicates to Google on your behalf. It produces a shortlist of candidate pairs for a human to review. That boundary is not a limitation we are apologising for; it is the correct design. Merging is irreversible and consequential, and it belongs in human hands.

Why a candidate is never a confirmation

This is the part most tools get wrong, so read it carefully. Proximity is a strong signal, not proof. A one-kilometre radius will catch real duplicates, and it will also catch genuinely separate stores that happen to sit close together. False positives are expected, and pretending otherwise would be dishonest. Here are the scenarios that trip proximity detection legitimately.

Two real branches in a dense market

In a high-street shopping district or a dense urban market, a brand might genuinely operate two nearby outlets, one at each end of a busy road, or one in a residential cluster and another by the transit hub eight hundred metres away. Both are real, both should exist, and both will land inside the one-kilometre radius. The engine flags them because it cannot know they are distinct; only a human who knows the estate can.

Mall unit plus street storefront

A brand with a kiosk inside a shopping mall and a full store on the street outside the same mall will show two pins a few hundred metres apart. These are two real, separately operating locations that share a neighbourhood. Proximity flags them as a candidate; verification clears them.

A relocation mid-flight

When a store has just moved and both the old and new pins are briefly live, proximity will catch the pair, and in this case the flag is genuinely useful, because one of the two should be retired. But the engine still cannot tell you which one, or whether the move is even complete. That judgement is yours.

Because these scenarios are real and common, the engine's output is always framed as candidates. A confirmed duplicate is something only a human produces, after verification, never something the automated pass declares.

The human verification workflow

When the engine hands you a candidate pair, run it through this checklist before you touch Google. The goal is to turn a candidate into either a cleared pair or a verified duplicate with an evidence trail.

  1. Compare the addresses in full. Open both listings and read the complete formatted address, not just the locality. Different building names, different floor or unit numbers, or different plots on the same road usually mean two real locations.
  2. Compare the phone numbers. Two distinct working numbers that both ring the correct staff point to two real stores. The same number on both pins is a stronger duplicate signal, though not conclusive on its own.
  3. Inspect the storefront photos. Google's own imagery on each pin often settles it. Two different shopfronts, two different interiors, or two different signage boards mean two locations. Identical photos on both pins are a strong duplicate indicator.
  4. Call the store. The decisive step. Phone each pin's listed number and ask what and where they are. A single call frequently resolves in seconds what the data left ambiguous.
  5. Record the verdict. Note why the pair is a duplicate or why it is cleared, so the next quarterly re-audit does not re-litigate a pair you already decided.

Only after this workflow confirms a true duplicate do you move to resolution.

Resolving true duplicates through Google's own flows

Once a human has confirmed a genuine duplicate, resolution happens entirely inside Google's tooling, using Google's manual review process. A few principles keep you safe.

Never delete the older, review-rich pin. Reviews do not simply transfer on deletion, so amputating the wrong listing throws away history you cannot recover. The aim is to consolidate signals onto the strongest listing. For a duplicate you own inside Business Profile Manager, mark the redundant profile as a duplicate and let Google's review process handle the consolidation. For an unclaimed duplicate you do not manage, Google's guidance is to use the profile's own reporting flow to flag it for removal as a duplicate (Remove duplicate listings, accessed July 2026). Either way, the resolution is a request into Google's manual pipeline, not an instant action, so re-check after thirty days to confirm the merge or removal propagated.

Honest limitations

Proximity-based detection is a shortlisting tool, and it is genuinely valuable precisely because it turns an impossible manual scan into a short, reviewable list. But it has real edges you should know.

It only catches pins Google returns for your brand in the first place; a duplicate under a wildly different name that the discovery step never associated with you can slip through. It relies on coordinates for its primary signal, falling back to strict address matching only when geometry is absent, so a duplicate with badly wrong coordinates and no address match is a blind spot. And, most importantly, it never confirms. Every pair it surfaces is a candidate that a human must verify. If a tool tells you it has found and merged your confirmed duplicates automatically, be sceptical, because Google itself does not merge duplicates automatically, and neither should your audit.

Duplicate candidate detection is one part of a broader audit checklist that spans seven categories. If you want to see what else the engine checks and, just as importantly, where it hands off to human judgement, read our companion breakdown of what the audit actually checks today. And if you would rather just see the candidate list for your own estate, start with the free audit; it runs the cross-location comparison across every listing Google shows for your brand in about a minute.

Put this playbook on autopilot.

The free audit runs every check in this post across all your locations — no card required.