[ SEO ]
/gbp-optimize
Backed by `.claude/context/ai-seo/playbook/02-gbp-optimize.md` (+ `00-field-notes.md` for suspension edge cases).
ACME Agency, <id> and you@example.com mark values that are per-agency — your install fills them with YOUR clients and accounts. If a section references a helper script you don't have yet, it ships with that workflow's install./gbp-optimize — Google Business Profile Optimization
Backed by .claude/context/ai-seo/playbook/02-gbp-optimize.md (+ 00-field-notes.md for suspension edge cases).
When to trigger
- "Optimize ACME Agency's Google Business Profile", "write GBP posts for X", "fix the GBP categories", "/gbp-optimize ACME Agency".
- Right after
/local-seo-auditflags GBP gaps (GBP is the #1 local ranking lever — everything ranks the GBP).
What it produces
A Google Doc "GBP Optimization — <Client>" with: category set (1 primary + additional, with re-theming notes), optimized description, services list, 4–8 ready GBP posts, ACME Agencyw plan, geotag/attributes checklist, and a suspension-risk + verification section.
Step-by-Step
1. Parse
First positional = client/business. Flags: --gbp (profile name), --location, --categories (known current categories), --dry-run. If you don't know the current GBP state, ask the user to paste the current categories/description or a screenshot — then proceed; don't fabricate the current state.
2. Gather context
node ACME Agency/scripts/seo_run.mjs --skill gbp --mode gather --client "<name>" --url "<url>" --location "<city>"
Read the CONTEXT (business facts + scraped site for service/keyword signals).
3. Read the method
Read .claude/context/ai-seo/playbook/02-gbp-optimize.md fully. Note the non-negotiables: keyword↔category match, the description rules/length, services count, post cadence, and the suspension triggers (name/address changes, adding YMYL categories too fast, the automated-calls feature). Read 00-field-notes.md for recovery edge cases.
4. Generate the package (markdown)
Produce, in the playbook's terms:
- Categories — recommended primary + additional, each justified by the keyword-category match rule; flag any re-theming and sequence YMYL additions safely.
- Description — written to the playbook's formula and length, keyword-aware but natural.
- Services — full list named per the playbook.
- GBP posts — generate the batch using the course's "Endless GBP Posts" prompt (load it via the playbook /
prompts/); make them publish-ready, localized, no AI-tells. - ACME Agencyws — the get-more-ACME Agencyws plan + response approach.
- Other boxes — hours, attributes, products, geotagged-image guidance.
- Safe changes & verification — what to change in what order to avoid re-verification/suspension; if unverified, the verification game-plan (incl. video-verification steps from the playbook).
Write to ACME Agency/clients/<Client>/SEO/gbp.md (or /tmp).
5. Save + report
node ACME Agency/scripts/seo_run.mjs --skill gbp --mode save --client "<name>" \
--in "<gbp.md>" --title "GBP Optimization — <Client>" \
--slack "*GBP Optimization — <Client>*
Recommended primary category: <x>. <N> posts ready. Suspension risks flagged: <y>."
Add --dry-run to skip Drive/Slack. Output the Doc link.
Guardrails
- Never edit the live GBP. Output is a package the team publishes after ACME Agencyw.
- Suspension-first: always surface what could trigger a suspension before recommending it. Disable the automated-calls feature on every profile.
- Croatian/Bosnian copy follows the no-em-dash / no-AI-tell rules.