Google Business Profile
Duplicate Listings & NAP Cleanup
SOP: Duplicate Listings & NAP Cleanup
Section titled “SOP: Duplicate Listings & NAP Cleanup”Version: 1.0 Last Updated: May 5, 2026 Owner: GBP Specialist (technical work) + CSM (client communication) Status: Active
Some clients arrive on Tekton already operating under a new name after a recent rebrand, but their old business name is still attached to a live Google Business Profile, a Facebook page, the website’s social URLs, and dozens of citations. Two listings at the same address fragment local rankings, split reviews across identities, and confuse AI search surfaces (ChatGPT, Perplexity, Google AI Overviews) about which entity is canonical.
This SOP covers the cleanup process for existing clients whose duplicate listings were not caught during onboarding. New clients should have their prior names captured by the onboarding form (hasPriorNames / priorBusinessNames); this SOP runs against existing clients to backfill that work.
When this SOP fires
Section titled “When this SOP fires”Run this SOP whenever Tekton can’t be confident a client has only one identity in the local search graph. In order of likelihood:
| # | Trigger | Who catches it | Auto / manual |
|---|---|---|---|
| 1 | Onboarding form returned hasPriorNames: yes for a new client | GBP Specialist (during onboarding) | Auto-flagged via clients.json priorNames[] |
| 2 | Monthly NAP integrity scan flags a duplicate_gbp, stale_facebook_*, or stale_citation finding | GBP Manager (Telegram ping on severity: high) | Auto (when NAP Integrity Researcher agent ships) |
| 3 | CSM monthly call surfaces a rebrand, DBA, or “we used to be ___“ | CSM (Kyle) | Manual — Kyle creates the cleanup task |
| 4 | Heatmap shows fragmentation: same business in two grid cells with different place IDs, or rankings stall despite GBP/content work | GBP Specialist (monthly heatmap review) | Manual |
| 5 | BrightLocal audit shows a directory listing under a different name than canonical | GBP Specialist (monthly citation review) | Manual |
| 6 | Client requests a Facebook page rename or URL update | CSM (Kyle) | Manual — implicit signal a rebrand happened |
| 7 | Domain ↔ business name mismatch (e.g., wilsonlawncare.com for “3R Outdoor”) | Website crawl flags it on intake | Auto — surfaces in onboarding pre-flight |
Not applicable when: the business has always operated under one name with no DBAs, the onboarding form returned hasPriorNames: no, and the most recent NAP integrity scan has zero duplicate_* or stale_* findings. In that state the agent writes a clean scan to the Brain and this SOP stays dormant until a new trigger fires.
Who owns it
Section titled “Who owns it”| Step | Owner |
|---|---|
| Discovery scan + duplicate detection | GBP Specialist (Edward), with Claude assist |
| Decision on consolidation path (merge vs. close vs. keep-both) | Nick — escalate before any action |
| GBP merge / close / claim execution | GBP Specialist |
| Client communication for partner access | CSM (Kyle) |
| Live partner-invite kickoff call | CSM (Kyle) — see Live Partner Invite Flow |
| Facebook page rename + URL update | GBP Specialist (after partner access granted) |
| Citation cleanup across directories | GBP Specialist via BrightLocal |
| Re-scan + sign-off | GBP Specialist |
Escalation path: GBP Specialist → CSM → Nick
1. Discovery — pull every listing tied to the client
Section titled “1. Discovery — pull every listing tied to the client”Goal: produce a complete inventory of Google listings, Facebook pages, and citations associated with the client’s current name OR any prior name.
- Confirm the prior name(s). Check the client’s onboarding form first (
priorBusinessNamesfield). If empty, ask the CSM to confirm with the client on the next touchpoint. Do not guess — incorrect prior names produce false-positive duplicates. - Google Maps search for the canonical name AND each prior name within the client’s service area. For every match, record: place ID, business name, address, phone, website, primary category, business status (
OPERATIONAL/CLOSED_PERMANENTLY/MOVED), rating, review count. - Reverse-lookup the canonical address on Google Maps — capture any listing pointing at that address regardless of name.
- Reverse-lookup the canonical phone number — captures listings Google auto-created from review submissions.
- Facebook search for the canonical name and each prior name. Capture page URL, vanity URL, page name, address, last post date.
- Citation scan in BrightLocal — add the prior names as known aliases to the client’s BrightLocal profile, then re-run the audit. Pull every directory where the prior name still surfaces.
Output: a single “NAP Integrity” Google Doc in the client’s Drive folder (or, when the agent is live, the auto-generated clients/<slug>/gbp/nap-integrity.json).
2. Categorize each finding
Section titled “2. Categorize each finding”For every listing found, assign a verdict:
| Verdict | Meaning | Action |
|---|---|---|
| canonical | The right listing under the right name | Leave alone |
| duplicate to consolidate | Same business, second listing | Plan a merge or closure |
| stale name | Listing exists, but displays the prior name | Update the displayed name |
| stale URL | Listing’s URL slug references the prior name | Update the URL slug |
| closed correctly | Old listing already closed by Google | Confirm status, no action |
| unrelated | Different business that happens to match | Document and ignore |
| ambiguous | Cannot tell from public data | Escalate to Nick before acting |
3. Decide the consolidation path — gated on Nick
Section titled “3. Decide the consolidation path — gated on Nick”Before acting on any GBP duplicate, get Nick’s call on which path to take. The three options:
- Merge — request Google merge the duplicate into the canonical listing. Preserves reviews from both. Available only when both listings are claimed and Google’s merge UI offers it.
- Mark as moved — set the duplicate’s status to MOVED, pointing at the canonical place ID. Cleanest for cases where the business genuinely changed locations or rebranded with a relocation.
- Mark as permanently closed — close the duplicate. Loses its reviews, but eliminates the fragmentation. Use when the duplicate has minimal reviews and merging is unavailable.
Document the decision in the NAP Integrity doc with a one-line rationale.
4. Execute the GBP consolidation
Section titled “4. Execute the GBP consolidation”GBP Specialist runs the chosen action through Google Business Profile Manager:
- Claim the duplicate listing if Tekton does not already manage it (may require client owner verification)
- Execute the merge / move / close per Nick’s decision
- Wait 7–14 days for Google to reflect the change
- Confirm via fresh search — the duplicate should no longer appear in Maps for the canonical name or address
5. Live Partner Invite Flow
Section titled “5. Live Partner Invite Flow”Most rebrand cleanups also require updating the client’s Facebook page (rename, URL change). Tekton does not collect passwords. Instead, the CSM runs the partner invite live on a kickoff or follow-up call so the client accepts the invite in real time.
Pre-call:
- Confirm the client’s onboarding form has
canGrantSocialAccess: yes. If not, request it explicitly before scheduling the call. - Have Kyle’s Meta Business Suite open and pre-loaded with the agency’s business account.
- Have the client’s Facebook page URL ready.
On the call (Kyle drives):
- Open Meta Business Suite → Settings → People and assets → Pages → Add Page → Request access to a Page.
- Paste the client’s Facebook page URL.
- Select the access level: Partial access — Tasks: Manage page, Create content, Messages, Community activity, Ads. Do not request full admin unless the client explicitly grants it.
- Submit the request. Meta sends a notification to the page admin (the client) within seconds.
- Ask the client to open Facebook on their phone — they will see a notification “Tekton Growth has requested access to
.” Walk them through tapping “Approve.” - Confirm in Meta Business Suite that the page now shows in the agency’s connected assets.
After the call:
- Update the client’s onboarding record to reflect that partner access is now active.
- Add a CSM note: “FB partner access granted on
.” - Notify the GBP Specialist to begin the FB rename + URL update.
If the client cannot complete the invite during the call (admin is a different person, technical issue, etc.), schedule a 15-minute follow-up specifically for this — do not leave the page un-accessed for more than 7 days. An open invite request times out.
6. Update Facebook page
Section titled “6. Update Facebook page”Once partner access is active:
- Update the page name from the prior name to the canonical name (Meta requires admin approval for name changes — usually 24–72 hours)
- Update the vanity URL (
facebook.com/oldname→facebook.com/newname) — this is one-time and irreversible - Update the About section (description, services, hours)
- Update the cover photo and profile photo if they reference the old brand
- Search for any pinned posts referencing the old name — update or remove
7. Citation cleanup
Section titled “7. Citation cleanup”For every directory where the prior name still surfaces:
- Submit a name change request through the directory’s edit interface, or via BrightLocal’s bulk-update tools where supported
- For data aggregators (Data Axle, Localeze, Foursquare), submit through the official update form — these feed many downstream directories
- For directories Tekton cannot edit directly, generate a “client action” task in TaskTracker with the directory URL and the exact change needed
- Document every submission with date and expected propagation time in the NAP Integrity doc
8. Re-scan and sign off
Section titled “8. Re-scan and sign off”Wait 14 days, then re-run the discovery scan from Step 1. Compare against the original inventory. Findings still flagged as duplicate to consolidate or stale name after 14 days indicate either:
- The cleanup action did not propagate (resubmit)
- The directory does not honor name change requests (escalate to Nick — may require a different approach)
- A new duplicate has appeared (Google sometimes auto-creates listings from review submissions — re-run cleanup)
Once the inventory shows only canonical and closed correctly verdicts, mark the task complete in TaskTracker and update the client’s priorNames and socialAccessGranted fields in clients.json so the Brain reflects current state.
Definition of done
Section titled “Definition of done”- One Google Business Profile per client per service area, all under the canonical name
- All Facebook / Instagram / LinkedIn / TikTok / YouTube profiles display the canonical name and have URLs that match
- Tekton has partner / admin access to every social profile the client agreed to grant
- Every directory listing flagged in BrightLocal as
inconsistentis either fixed or has a documented client-action task open - The client’s
priorNames[]array inclients.jsonreflects every prior name discovered (so future scans skip the rediscovery step) - A fresh NAP Integrity scan returns zero
duplicate to consolidateorstale namefindings
Related
Section titled “Related”- GBP Setup & Verification — for verifying the canonical listing
- Citation Building — for building net-new citations after cleanup
- Social Profile Setup — for net-new social profile creation
- NAP Integrity Researcher agent spec:
tekton-brain/docs/agents/nap-integrity-researcher.md