Install
$ agentstack add skill-mshahiddigital-agentic-local-seo-audit-entity-audit ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Entity Audit — Phase 9
Executive Summary
Entity optimization is the bridge between traditional SEO and AI search visibility. Google's Knowledge Graph powers both the traditional Knowledge Panel and AI Overviews — businesses with strong entity signals get cited in AIO at higher rates than those without. In 2025, the minimum viable entity footprint is: GBP verified + 7+ sameAs connections + consistent NAP across all platforms + Wikidata entity. ChatGPT and Perplexity reference businesses with complete Wikidata entries 3× more than businesses without. The 30-minute fix with the highest impact: add sameAs properties to LocalBusiness schema (links to GBP, Facebook, LinkedIn, Yelp, BBB, Instagram, Wikidata) — this single action strengthens entity consolidation significantly.
2025 entity benchmarks:
- sameAs count for Knowledge Panel eligibility: 7+ authoritative sources (Google's Knowledge Vault threshold)
- sameAs 0–3: weak entity — Knowledge Panel very unlikely; 7–9: competitive; 10+: strong
- E-E-A-T entity signal: named author/owner with Person schema = measurable trust increase for YMYL and local service categories
- AI recognition rate: businesses with Wikidata entry cited 3× more by ChatGPT/Perplexity
knowsAboutschema property: signals topical expertise domain directly to Google NLP- Most specific
@typematters:PlumbingContractornotLocalBusiness— specificity = entity clarity
Numbered Action Plan:
Immediate (30-Minute Wins)
- Add sameAs links to LocalBusiness schema — Add
"sameAs": [...]array with GBP URL, Facebook, LinkedIn, Yelp, BBB, Instagram, Twitter/X, Wikidata (if exists). Each is a separate entity consolidation signal. Effort: 30 min. Priority: 25 (5×5). - Change
@typeto most specific type — If currently"@type": "LocalBusiness", change to specific type (e.g.,PlumbingContractor,Dentist,Attorney). Effort: 5 min. Priority: 15. - Add
knowsAboutto Organization schema — Add the 5–7 core service entities the business is authoritative on. This directly signals topical expertise to Google's NLP and AI systems. Example:"knowsAbout": ["Drain Cleaning", "Water Heater Installation", "Emergency Plumbing", "Sewer Line Repair", "Tankless Water Heaters"]. Also addknowsAboutto Person schema for the owner/key staff. Effort: 15 min. Priority: 20.
Short-Term (Week 1–2)
- Create Wikidata entity — If business has significant web presence (news mentions, 3+ external references): create Wikidata entry with name, type, location, website, founding date, sameAs links. Effort: 2–4 hrs. Priority: 16.
- Add Person schema for owner — Create author page for business owner with Person schema: name, jobTitle (specific), credentials, worksFor → business entity, sameAs → LinkedIn. Effort: 1–2 hrs. Priority: 16.
- Fix entity attribute inconsistencies — Audit: business name format, address format, phone format across website/GBP/Yelp/BBB/Facebook. Any variation = entity fragmentation. Fix the ≤3 platforms causing inconsistency. Effort: 1–2 hrs. Priority: 20.
- Validate all schema — Run Rich Results Test (search.google.com/test/rich-results) + Schema Markup Validator (validator.schema.org) on homepage and top service pages. Fix any errors (invalid @type, missing required properties). Effort: 1–2 hrs. Priority: 20.
Medium-Term (Month 1–2)
- Build topical entity associations — Publish 25+ articles on primary service cluster (entity co-occurrence accumulates). Get cited alongside industry terms in local publications. Add
about+mentionsschema to key pages. Effort: Ongoing. - Create team author pages — For each key team member: create /team/[name]/ page with Person schema, headshot, credentials, linked blog posts. Strengthens E-E-A-T author entity signals. Effort: 2–4 hrs/person.
- Earn entity mentions — Pitch local news, industry publications, community platforms. Each mention = entity co-citation = strengthened Knowledge Graph. Effort: 4–8 hrs/mention.
Why Entities Matter in 2025–2026
Google's search engine is fundamentally entity-based. Rankings are increasingly driven by whether Google understands:
- What your business IS — entity type, attributes, relationships
- What topics you're authoritative on — topical entity associations
- Where you exist — local entity with verified location signals
- Who you're connected to — entity relationships: people, orgs, places
Strong entity presence = trust = better rankings AND AI visibility. In 2025:
- AI Overviews pull entity-structured data as primary citation sources
- ChatGPT/Perplexity reference businesses with complete Wikidata entries 3× more
- Google's Knowledge Vault — entities with sameAs coverage from 7+ authoritative sources achieve Knowledge Panel significantly faster
Step 1: Read Project Context
Read {AUDIT_DIR}/intake-data.md — business name, URL, location, services. Read {AUDIT_DIR}/competitor-profiles.md — competitor entity signals. Read {AUDIT_DIR}/local-findings.md — GBP completeness (feeds entity graph).
Tools for this phase: | Tool | Purpose | Cost | |------|---------|------| | Google Cloud NLP API | Entity extraction from page content (salience + type + sentiment) | Free ($0/1K calls) | | InLinks | NLP entity analysis, topic wheel, entity-based internal linking | Paid | | Kalicube Pro | Brand SERP entity completeness, entity clarity score, Knowledge Panel tracker | Paid | | Wikidata (wikidata.org) | Direct entity creation/editing — #1 Knowledge Panel trigger | Free | | Google Rich Results Test | Schema entity validation | Free | | Schema Markup Validator (validator.schema.org) | Entity schema syntax check | Free | | Otterly.ai | Monitor AI mention frequency (entity recognition across AI assistants) | Paid |
2025 Entity Context: Google's "Entity Home" concept means each business should have one authoritative page consolidating all entity attributes. An incomplete entity = fragmented Knowledge Graph = weaker rankings. Wikidata entry + GBP + 7+ sameAs connections = minimum viable entity footprint for Knowledge Panel eligibility.
Step 2: Business Entity Recognition Tests
Test 1: Knowledge Panel Check
Search Google for each:
| Query | Knowledge Panel? | Type | Completeness | |-------|----------------|------|-------------| | [Business Name] | Yes/No/Partial | Local/Brand | [X attributes showing] | | [Business Name] [City] | Yes/No/Partial | | | | [Business Name] [primary service] | Yes/No/Partial | | |
Status categories:
- ✅ Full Knowledge Panel — entity well recognized
- ⚠️ Partial — GBP card shows but no full panel (entity weak)
- ❌ No panel — entity not in Knowledge Graph
Test 2: AI Assistant Entity Recognition
| Query | Platform | Business Mentioned? | Accuracy? | Source Cited? | |-------|---------|--------------------|---------|--------------:| | "Tell me about [Business Name]" | ChatGPT | Yes/No | Yes/No | | | "What is [Business Name] in [City]?" | Perplexity | Yes/No | Yes/No | | | "[Best service] in [city]" | Google AIO | Yes/No | Yes/No | |
Test 3: Wikidata Check
Visit wikidata.org → search business name:
- Wikidata entity exists? Q-number: [Q_______]
- If exists: attribute completeness (names, location, website, founded, industry, sameAs links)?
- If not: does business qualify? (Must have coverage in reliable external sources, not just website)
Step 3: Entity Attribute Consistency
For a local business entity, Google expects these attributes consistently across ALL web properties:
| Attribute | Website | GBP | Schema | Wikidata | Consistent? | Action | |-----------|---------|-----|--------|----------|------------|--------| | Legal business name | | | | | ✅/❌ | | | Brand/trade name | | | | | ✅/❌ | | | Business @type (e.g., PlumbingContractor) | | | | | ✅/❌ | | | Street address (exact format) | | | | | ✅/❌ | | | City, State, ZIP | | | | | ✅/❌ | | | Phone number (same format) | | | | | ✅/❌ | | | Website URL (canonical) | | | | | ✅/❌ | | | Founded year | | | | | ✅/❌ | | | Owner/founder name | | | | | ✅/❌ | | | Primary service category | | | | | ✅/❌ | | | Service area (areaServed) | | | | | ✅/❌ | | | Logo URL | | | | | ✅/❌ | | | Social profiles | | | | | ✅/❌ | |
Inconsistencies = entity confusion = fragmented Knowledge Graph = weaker rankings and AI citations.
Specific @type Recommendations
Use the most specific Schema.org @type available — not just "LocalBusiness":
| Business Category | Recommended @type | |-----------------|---------------------| | Plumber | PlumbingContractor | | Electrician | Electrician | | HVAC | HVACBusiness | | Attorney | Attorney (sub-type of LegalService) | | Dentist | Dentist | | Restaurant | Restaurant | | Accountant | AccountingService | | Auto repair | AutoRepair | | Gym/fitness | HealthClub |
Step 4: sameAs Entity Connections
sameAs creates a web of entity signals Google uses to consolidate and strengthen the business entity.
sameAs Inventory Audit (from website's LocalBusiness schema)
| Property | URL Included? | URL Correct? | Priority | |----------|-------------|-------------|---------| | Google Business Profile URL | ✅/❌ | ✅/❌ | Critical | | Facebook Page URL | ✅/❌ | ✅/❌ | Critical | | Instagram Profile URL | ✅/❌ | ✅/❌ | High | | LinkedIn Company Page URL | ✅/❌ | ✅/❌ | High | | YouTube Channel URL | ✅/❌ | ✅/❌ | Medium | | Twitter/X Profile URL | ✅/❌ | ✅/❌ | Medium | | Yelp Business URL | ✅/❌ | ✅/❌ | High | | BBB Profile URL | ✅/❌ | ✅/❌ | High | | Industry association profile | ✅/❌ | ✅/❌ | Medium | | Chamber of Commerce listing | ✅/❌ | ✅/❌ | Medium | | Wikidata entity URL | ✅/❌ | ✅/❌ | High — Knowledge Panel trigger |
sameAs count benchmarks:
- 0–3 sameAs: ❌ Weak entity — Knowledge Panel very unlikely
- 4–6 sameAs: ⚠️ Developing — partial entity recognition possible
- 7–9 sameAs: ✅ Competitive — Knowledge Panel achievable
- 10+ sameAs: ✅✅ Strong — full entity consolidation likely
Current sameAs count: [X] / 11 recommended
Step 5: Content Entity Analysis (NLP)
Entity Extraction from Key Pages
For each key page (homepage + top 3 service pages), paste content into Google Cloud NLP API or InLinks:
# Google Cloud NLP API (free usage)
# Go to: console.cloud.google.com/natural-language
# Analyze Entities → paste page content → view salience scores
For each page, document:
- Key entities found: [entity name | type | salience score 0–1]
- Missing entities: what should be on the page based on topic but isn't?
- Entity sentiment: are key service terms associated with positive sentiment?
Entity Coverage vs. Top Competitors
For each service page, compare entity presence: | Entity | Client Page | Comp 1 | Comp 2 | Gap? | |--------|------------|--------|--------|------| | [Service term] | Present/Missing | ✅/❌ | ✅/❌ | Yes/No | | [Local area] | Present/Missing | ✅/❌ | ✅/❌ | Yes/No | | [Key industry term] | Present/Missing | ✅/❌ | ✅/❌ | Yes/No | | [Regulatory body/certification] | Present/Missing | ✅/❌ | ✅/❌ | Yes/No |
Step 6: E-E-A-T Entity Signals
Google's E-E-A-T assessment is entity-driven — these are measurable signals per page/domain:
Experience & Expertise Signals
| Signal | Present? | Location | Quality | |--------|---------|---------|---------| | Owner/founder named (full name) | ✅/❌ | | | | Credentials/certifications (specific — not generic) | ✅/❌ | | | | Team bios with professional backgrounds | ✅/❌ | | | | Case studies with real project specifics | ✅/❌ | | | | Years in business prominently stated | ✅/❌ | | | | License/permit numbers displayed | ✅/❌ | | | | Person schema with worksFor attribute | ✅/❌ | | |
Authority Signals
| Signal | Present? | Source | |--------|---------|--------| | Named in local news articles | ✅/❌ | [Publication names] | | Cited as expert on other websites | ✅/❌ | [Sites] | | Industry association memberships (specific orgs) | ✅/❌ | [Org names] | | Awards and recognitions (named, verifiable) | ✅/❌ | | | Chamber of Commerce, BBB membership | ✅/❌ | |
Trustworthiness
| Signal | Present? | |--------|---------| | Physical address prominently displayed | ✅/❌ | | Multiple contact methods (phone + form + email) | ✅/❌ | | Privacy policy, terms, refund policy | ✅/❌ | | SSL certificate + HSTS | ✅/❌ | | Verified reviews on third-party platforms (Yelp, Google, BBB) | ✅/❌ |
Step 7: People Entities (Owner + Team)
For service businesses, key people should be recognized entities — increases E-E-A-T and author trust:
| Person | Role | Author Page? | Schema? | LinkedIn Linked? | AI-Searchable? | |--------|------|------------|---------|----------------|---------------| | [Owner name] | Founder/Owner | ✅/❌ | ✅/❌ | ✅/❌ | Yes/No | | [Key team member] | [Role] | ✅/❌ | ✅/❌ | ✅/❌ | Yes/No |
Person entity schema (add to author pages):
{
"@context": "https://schema.org",
"@type": "Person",
"name": "[Full Name]",
"jobTitle": "[Title — be specific: 'Master Plumber' not 'Staff']",
"description": "[Brief bio with credentials, years of experience, specialty]",
"knowsAbout": ["Drain Cleaning", "Water Heater Installation", "Emergency Plumbing"],
"worksFor": {
"@type": "LocalBusiness",
"@id": "https://domain.com/#business"
},
"sameAs": [
"https://www.linkedin.com/in/[handle]/",
"https://domain.com/team/[name]/"
]
}
Step 7b: Speakable Schema for AI Assistants
The speakable property (Schema.org) marks content sections that are especially suitable for text-to-speech and AI assistant extraction. Google supports speakable for news articles, and AI assistants (Siri, Gemini, Alexa) use it as a signal for which content to read aloud or extract as voice answers.
When to Use Speakable
- Service pages with clear answer paragraphs
- FAQ pages with concise Q&A pairs
- About page with business description
- Any page with a "definition block" answering "What is [service]?"
Speakable Implementation
Add to Article, WebPage, or FAQPage schema:
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "[Page Title]",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".service-intro", ".faq-answer", "#business-description"]
}
}
Rules for speakable content:
- Keep speakable sections to 2–3 short sentences each
- Use clear, conversational language (avoid jargon without definitions)
- Ensure the section makes sense when read aloud without visual context
- Point CSS selectors at the most citable, answer-rich paragraphs
- Do NOT mark the entire page as speakable — only the best answer blocks
Speakable Audit Checklist
| Page | Has Speakable? | CSS Selectors Valid? | Content Voice-Ready? | Priority | |------|---------------|---------------------|---------------------|---------| | Homepage | ✅/❌ | ✅/❌ | ✅/❌ | High | | Top service pages (3–5) | ✅/❌ | ✅/❌ | ✅/❌ | High | | FAQ page | ✅/❌ | ✅/❌ | ✅/❌ | High | | About page | ✅/❌ | ✅/❌ | ✅/❌ | Medium |
Effort: 15 min/page. Impact: Improved voice search + AI assistant citation likelihood.
Step 8: Topical Entity Associations
Which topics does Google associate this business with? Test:
- Search
[Business Name] [service term]→ does client appear for this association? - Search
[service term] [city]→ does Knowledge Panel reference client? - Ask ChatGPT: "What is [Business Name] known for?" → does answer match target services?
| Target Association | Current Strength | Action | |------------------|----------------|--------| | [Business Name] + [primary service] | Strong/Weak/None | | | [Business Name] + [city] | Strong/Weak/None | | | [Business Name] + [expertise topic] | Strong/Weak/None | |
Building topical associations:
- Publish minimum 25 articles on the target topic cluster (entity co-occurrence accumulates)
- Add
knowsAboutto Organization
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: mshahiddigital
- Source: mshahiddigital/agentic-local-seo-audit
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.