feat: enhance SurfSense with new skills, blog section, and improve SEO metadata
Some checks failed
Build and Push Docker Images / tag_release (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Has been cancelled
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Has been cancelled

- Added multiple new skills to skills-lock.json from the repository `aaron-he-zhu/seo-geo-claude-skills`.
- Introduced `fuzzy-search` dependency in package.json for improved search functionality.
- Updated pnpm-lock.yaml to include the new `fuzzy-search` package.
- Enhanced SEO metadata across various pages, including canonical links and descriptions for better search visibility.
- Improved layout and structure of several components, including the homepage and changelog, to enhance user experience.
This commit is contained in:
DESKTOP-RTLN3BA\$punk 2026-04-11 23:38:12 -07:00
parent 61b3f0d7e3
commit 7ea840dbb2
120 changed files with 25729 additions and 352 deletions

View file

@ -0,0 +1,137 @@
# Entity Signal Checklist
> Part of [entity-optimizer](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/cross-cutting/entity-optimizer/SKILL.md). See also: [knowledge-graph-guide.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/cross-cutting/entity-optimizer/references/knowledge-graph-guide.md)
Complete checklist of entity signals organized by priority and verification method. Use this as a systematic audit guide — work through each signal, verify its status, and note actions needed.
## Priority 1: Foundation Signals (Must-Have)
These signals form the minimum viable entity identity. Without them, search engines and AI systems cannot reliably identify the entity.
### On-Site Structured Data
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 1 | Organization or Person schema on homepage | Run Google Rich Results Test on homepage | Schema present with name, url, logo, description |
| 2 | sameAs property links to all authoritative profiles | Inspect schema markup | Links to Wikipedia, Wikidata, LinkedIn, social profiles |
| 3 | Consistent @id used across all pages | Inspect schema on 5+ pages | Same @id (typically homepage URL + #organization) on every page |
| 4 | About page exists with entity-rich content | Manual review | First paragraph defines entity clearly; includes founding date, key people, mission |
| 5 | Contact page with verifiable information | Manual review | Physical address, phone, email — matches other directory listings |
### Key External Profiles
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 6 | Wikidata entry exists | Search wikidata.org | Entry with label, description, key properties, and references |
| 7 | Google Business Profile (if applicable) | Search "[entity] Google Business" | Claimed, verified, complete profile |
| 8 | LinkedIn company/person page | Search LinkedIn | Complete profile matching entity name and description |
| 9 | CrunchBase profile (for companies/products) | Search crunchbase.com | Entry with description, founding info, key people |
| 10 | Primary industry directory listing | Search top 3 industry directories | Listed with correct entity information |
### Branded Search Presence
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 11 | Branded search returns correct entity | Google "[entity name]" | Entity's website is #1; Knowledge Panel appears or SERP clearly identifies entity |
| 12 | No disambiguation confusion | Google "[entity name]" | No other prominent entity dominates results for the same name |
| 13 | Branded search volume exists | Check ~~SEO tool | Measurable branded search volume (any amount > 0) |
## Priority 2: Authority Signals (Should-Have)
These signals establish the entity as recognized and authoritative. They separate a "registered entity" from a "known entity."
### Knowledge Graph Depth
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 14 | Google Knowledge Panel present | Google "[entity name]" | Knowledge Panel displayed with correct information |
| 15 | Knowledge Panel attributes complete | Review Knowledge Panel | Key attributes filled (founded, CEO, location, industry, etc.) |
| 16 | Knowledge Panel image correct | Review Knowledge Panel | Preferred image displayed |
| 17 | Wikipedia article (or strong notability path) | Search Wikipedia | Article exists, or entity has 3+ independent reliable sources for future article |
| 18 | Wikidata properties complete | Review Wikidata entry | 10+ properties with references |
### Third-Party Validation
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 19 | Authoritative media mentions | Google News search for entity | 3+ mentions in recognized publications |
| 20 | Industry awards or recognitions | Search "[entity] award" | At least 1 verifiable award or recognition |
| 21 | Co-citation with established entities | Search for entity alongside competitors | Appears in "X vs Y" comparisons, listicles, or industry roundups |
| 22 | Speaking engagements or publications | Search event/conference sites | Appears as speaker, author, or contributor |
| 23 | Reviews on third-party platforms | Check G2, Trustpilot, Yelp, etc. | Reviews exist with reasonable volume and rating |
### Content Authority
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 24 | Topical content depth in target areas | Site search for target topics | 10+ pages covering target topics in depth |
| 25 | Author pages with credentials | Review author pages | Author schema, credentials, sameAs to external profiles |
| 26 | Original research or data published | Review content | At least 1 piece of original data/research cited by others |
| 27 | Entity mentioned in own content naturally | Search site for entity name | Entity name appears contextually (not just in header/footer) |
## Priority 3: AI-Specific Signals (Must-Have for GEO)
These signals specifically help AI systems recognize, understand, and cite the entity.
### AI Recognition
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 28 | ChatGPT recognizes entity | Ask "What is [entity]?" | Correct description returned |
| 29 | Perplexity recognizes entity | Ask "What is [entity]?" | Correct description with source citations |
| 30 | Google AI Overview mentions entity | Search branded + topical queries | Entity appears in AI-generated overview |
| 31 | AI description is accurate | Compare AI output to entity's self-description | No factual errors in AI's response |
| 32 | AI associates entity with correct topics | Ask "[entity] expertise areas" | Correct topic associations returned |
### AI Optimization
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 33 | Entity definition quotable in first paragraph | Review About page and key pages | Clear, factual, self-contained definition suitable for AI quotation |
| 34 | Factual claims are verifiable | Cross-reference claims with external sources | All claims about entity can be verified via third-party sources |
| 35 | Entity name used consistently | Audit all platforms | Identical name format everywhere (no abbreviations in some places, full name in others) |
| 36 | Content is crawlable by AI systems | Check robots.txt for AI bot access | Not blocking GPTBot, ClaudeBot, or other AI crawlers (unless intentional) |
| 37 | Fresh information available | Check update dates | Key entity pages updated within last 6 months |
## Priority 4: Advanced Signals (Nice-to-Have)
These signals provide marginal gains but demonstrate thoroughness and maturity.
### Extended Knowledge Base Presence
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 38 | Multiple language entries in Wikidata | Check Wikidata labels | Labels and descriptions in languages matching target markets |
| 39 | DBpedia entry | Search dbpedia.org | Entry exists (auto-generated from Wikipedia) |
| 40 | Google Knowledge Graph ID known | Search Google Knowledge Graph API | Entity has a kg: identifier |
| 41 | ISNI or VIAF identifier (for persons) | Search isni.org or viaf.org | Identifier exists and links correctly |
### Social Entity Signals
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 42 | Social profiles bidirectionally linked | Check website links to social AND social links to website | Both directions verified on all platforms |
| 43 | Consistent entity description across social | Compare bios on all platforms | Same core description, adapted for platform length limits |
| 44 | Social engagement demonstrates real audience | Review engagement metrics | Engagement patterns consistent with genuine audience (not bot-like) |
### Technical Entity Signals
| # | Signal | Verification Method | Pass Criteria |
|---|--------|-------------------|---------------|
| 45 | Entity homepage has strong backlink profile | Check ~~link database | Homepage DR/DA above industry median |
| 46 | Branded anchor text in backlinks | Analyze anchor text distribution | Entity name appears naturally in inbound link anchor text |
| 47 | Entity subdomain consistency | Check all subdomains | Same entity schema and branding across all subdomains |
## How to Use This Checklist
Work through signals by priority tier. For each signal, mark status as ✅ (present and correct), ⚠️ (present but incomplete), or ❌ (absent). Focus on completing each priority tier before moving to the next.
### Priority Action Matrix
| Current State | Focus Area | Expected Timeline |
|--------------|-----------|-------------------|
| Most Priority 1 signals ❌ | Priority 1 foundation signals only | 2-4 weeks |
| Priority 1 mostly ✅, Priority 2 mixed | Priority 2 authority signals | 1-2 months |
| Priority 1-2 mostly ✅ | Priority 3 AI-specific signals | 2-3 months |
| Priority 1-3 mostly ✅ | Selective Priority 4 for completeness | Ongoing |
| All tiers mostly ✅ | Maintenance + quarterly re-audit | Quarterly review |

View file

@ -0,0 +1,24 @@
# Entity Type Reference
Reference tables for entity types, key signals, and disambiguation strategies.
## Entity Types and Key Signals
| Entity Type | Primary Signals | Secondary Signals | Key Schema |
|-------------|----------------|-------------------|------------|
| **Person** | Author pages, social profiles, publication history | Speaking, awards, media mentions | Person, ProfilePage |
| **Organization** | Registration records, Wikidata, industry listings | Press coverage, partnerships, awards | Organization, Corporation |
| **Brand** | Trademark, branded search volume, social presence | Reviews, brand mentions, visual identity | Brand, Organization |
| **Product** | Product pages, reviews, comparison mentions | Awards, expert endorsements, market share | Product, SoftwareApplication |
| **Creative Work** | Publication record, citations, reviews | Awards, adaptations, cultural impact | CreativeWork, Book, Movie |
| **Event** | Event listings, press coverage, social buzz | Sponsorships, speaker profiles, attendance | Event |
## Disambiguation Strategy by Situation
| Situation | Strategy |
|-----------|----------|
| **Common name, unique entity** | Strengthen all signals; let signal volume resolve ambiguity |
| **Name collision with larger entity** | Add qualifier consistently (e.g., "Acme Software" not just "Acme"); use sameAs extensively; build topic-specific authority that differentiates |
| **Name collision with similar entity** | Geographic, industry, or product qualifiers; ensure Schema @id is unique and consistent; prioritize Wikidata disambiguation |
| **Abbreviation/acronym conflict** | Prefer full name in structured data; use abbreviation only in contexts where entity is already established |
| **Merged or renamed entity** | Redirect old entity signals; update all structured data; create explicit "formerly known as" content; update Wikidata |

View file

@ -0,0 +1,59 @@
# Example: Entity Optimization Report
Full example output for an entity audit request.
**User**: "Audit entity presence for CloudMetrics, our B2B SaaS analytics platform at cloudmetrics.io"
**Output**:
```markdown
## Entity Optimization Report
### Entity Profile
**Entity Name**: CloudMetrics
**Entity Type**: Organization (B2B SaaS)
**Primary Domain**: cloudmetrics.io
**Target Topics**: analytics platform, business intelligence, enterprise analytics
### AI Entity Resolution Test
Queries tested with results reported by user:
| Query | Result | Assessment |
|-------|--------|------------|
| "What is CloudMetrics?" | Described as "an analytics tool" with no further detail | Partial recognition -- generic description, no mention of B2B focus or key features |
| "Best analytics platforms for enterprises" | CloudMetrics not mentioned in any AI response | Not recognized as a player in the enterprise analytics space |
| "CloudMetrics vs Datadog" | Correctly identified as a competitor to Datadog, but feature comparison was incomplete and partially inaccurate | Partial -- entity is associated with the right category but attributes are thin |
| "Who founded CloudMetrics?" | No answer found by any AI system tested | Entity leadership not present in AI knowledge bases |
### Entity Health Summary
| Signal Category | Status | Key Findings |
|-----------------|--------|--------------|
| Knowledge Graph | Missing | No Wikidata entry exists; no Google Knowledge Panel triggers for branded queries |
| Structured Data | Partial | Organization schema present on homepage with name, url, and logo; missing Person schema for CEO and leadership team; no sameAs links to external profiles |
| Web Presence | Strong | Consistent NAP across LinkedIn, Twitter/X, G2, and Crunchbase; social profiles link back to cloudmetrics.io; branded search returns owned properties in top 5 |
| Content-Based | Partial | About page exists but opens with marketing copy rather than an entity-defining statement; no dedicated author pages for leadership |
| Third-Party | Partial | Listed on G2 and Crunchbase; 2 industry publication mentions found; no awards or analyst coverage |
| AI-Specific | Weak | AI systems have only surface-level awareness; entity definition is not quotable from any authoritative source |
### Top 3 Priority Actions
1. **Create Wikidata entry** with key properties: instance of (P31: business intelligence software company), official website (P856: cloudmetrics.io), inception (P571), country (P17)
- Impact: High | Effort: Low
- Why: Wikidata is the foundational knowledge base that feeds Google Knowledge Graph, Bing, and AI training pipelines; without it, the entity cannot be formally resolved
2. **Add Person schema for leadership team** on the About/Team page, including name, jobTitle, sameAs links to LinkedIn profiles, and worksFor pointing to the Organization entity
- Impact: High | Effort: Low
- Why: Addresses the "Who founded CloudMetrics?" gap directly; Person schema for key people creates bidirectional entity associations that strengthen organizational identity
3. **Build Wikipedia notability through independent press coverage** -- target 3-5 articles in industry publications (TechCrunch, VentureBeat, Analytics India Magazine) that mention CloudMetrics by name with verifiable claims
- Impact: High | Effort: High
- Why: Wikipedia notability requires coverage in independent reliable sources; press mentions simultaneously feed AI training data, build third-party entity signals, and create the citation foundation for a future Wikipedia article
### Cross-Reference
- **CORE-EEAT**: A07 (Knowledge Graph Presence) scored Fail, A08 (Entity Consistency) scored Pass -- entity optimization should focus on knowledge base gaps rather than consistency
- **CITE**: I-dimension weakest area is I01 (Knowledge Graph Presence) -- completing Wikidata entry and earning Knowledge Panel directly improves domain identity score
```

View file

@ -0,0 +1,399 @@
# Knowledge Graph Optimization Guide
> Part of [entity-optimizer](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/cross-cutting/entity-optimizer/SKILL.md). See also: [entity-signal-checklist.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/cross-cutting/entity-optimizer/references/entity-signal-checklist.md)
Comprehensive playbook for establishing and maintaining entity presence across Google Knowledge Graph, Wikidata, Wikipedia, and other knowledge bases.
## How Knowledge Graphs Work
### The Entity Web
Knowledge graphs are interconnected databases of entities and their relationships. Search engines and AI systems use them as ground truth for entity understanding.
```
Your Entity
├── is described by → Wikidata entry
├── is described by → Wikipedia article
├── is described by → Schema.org markup on your site
├── is linked to → Social profiles (LinkedIn, X, etc.)
├── is mentioned by → News articles, industry sites
├── is associated with → Topics, industries, other entities
└── is recognized by → Google Knowledge Graph, Bing Satori, AI training data
```
### Which Knowledge Graphs Matter
| Knowledge Graph | Who Uses It | Impact |
|----------------|-------------|--------|
| **Google Knowledge Graph** | Google Search, Google AI | Powers Knowledge Panels, rich results, entity understanding in search |
| **Wikidata** | Google, Bing, Apple, Amazon, AI systems | Open data feeds multiple knowledge graphs; primary structured data source |
| **Wikipedia** | Google, all AI systems | Training data for every major LLM; Knowledge Panel descriptions often sourced here |
| **Bing Satori** | Bing, Copilot | Powers Bing's entity understanding and Microsoft Copilot |
| **Schema.org (your site)** | All search engines, AI crawlers | First-party structured data you control directly |
| **DBpedia** | Research, some AI systems | Auto-extracted from Wikipedia; relevant for academic/research entities |
### Data Flow
```
Your Website (Schema.org) ─┐
Wikidata ──────────────────┤
Wikipedia ─────────────────┼──→ Google Knowledge Graph ──→ Knowledge Panel
Industry Directories ──────┤ AI Search Results
News/Media Mentions ───────┤ Rich Results
Social Profiles ───────────┘
```
Understanding this flow is key: you influence the Knowledge Graph by controlling the **source signals** that feed it.
## Google Knowledge Graph
### Getting Into the Knowledge Graph
There is no "submit to Knowledge Graph" form. Google builds its Knowledge Graph from multiple sources. To get included:
1. **Have a Wikidata entry** — This is the most direct path
2. **Earn a Wikipedia article** — Strongest single signal
3. **Implement Schema.org markup** — Provides structured self-description
4. **Get mentioned on authoritative sites** — Third-party validation
5. **Build branded search demand** — Signals that users look for your entity
### Checking Your Knowledge Graph Status
**Method 1: Google Search**
Search for your entity name in quotes. If a Knowledge Panel appears on the right, you're in the Knowledge Graph.
**Method 2: Knowledge Graph API**
```
GET https://kgsearch.googleapis.com/v1/entities:search?query=[entity]&key=[API_KEY]
```
Response includes:
- `@id`: Your Knowledge Graph ID (e.g., `kg:/m/0wrt4g`)
- `name`: Entity name as Google understands it
- `description`: Short entity description
- `detailedDescription`: Longer description (usually from Wikipedia)
- `resultScore`: Confidence score (higher = more established entity)
**Method 3: ~~knowledge graph**
If connected, query directly for entity status and attributes.
### Claiming Your Knowledge Panel
1. Search for your entity on Google
2. If Knowledge Panel appears, look for "Claim this knowledge panel" link at bottom
3. Verify via official website, Search Console, YouTube, or other Google property
4. Once claimed, you can suggest edits (but Google has final say)
### Common Knowledge Panel Fixes
| Problem | Solution |
|---------|----------|
| **No Knowledge Panel** | Build Wikidata entry + Schema.org + authoritative mentions. Timeline: 2-6 months. |
| **Wrong image** | Update preferred image on: Wikidata (P18), About page, social profiles. Claim panel and suggest preferred image. |
| **Wrong description** | Edit Wikidata description. Update first paragraph of About page and Wikipedia article. |
| **Missing attributes** | Add properties to Wikidata and Schema.org. Claim panel and suggest additions. |
| **Outdated information** | Update Wikidata, About page, Wikipedia, and social profiles. Request refresh via claimed panel. |
| **Wrong entity shown** | Disambiguation needed. See Wikidata section below for disambiguation strategy. |
## Wikidata
### Why Wikidata Is Critical
Wikidata is the **single most influential editable knowledge base** for entity optimization:
- Google uses it as a primary source for Knowledge Panels
- Bing uses it for Satori knowledge graph
- AI systems reference it during entity resolution
- It's open and you can edit it (within their guidelines)
### Creating a Wikidata Entry
#### Step 1: Check Eligibility
Wikidata requires "notability" — the entity must be referenced in at least one external source. Unlike Wikipedia, the notability bar is lower: a company mentioned in a news article, a product with reviews, or a person with published work typically qualifies.
#### Step 2: Create the Item
1. Go to https://www.wikidata.org/wiki/Special:NewItem
2. Fill in:
- **Label**: Official entity name
- **Description**: Short description (e.g., "American software company" or "SEO optimization tool")
- **Aliases**: Alternative names, abbreviations, former names
#### Step 3: Add Core Statements
Essential properties for each entity type:
**Organizations:**
| Property | Code | Example |
|----------|------|---------|
| instance of | P31 | business (Q4830453) or specific type |
| official website | P856 | https://example.com |
| inception | P571 | 2020-01-15 |
| country | P17 | United States (Q30) |
| headquarters location | P159 | San Francisco (Q62) |
| industry | P452 | software industry (Q638608) |
| founded by | P112 | [founder's Wikidata item] |
| CEO | P169 | [CEO's Wikidata item] |
**Persons:**
| Property | Code | Example |
|----------|------|---------|
| instance of | P31 | human (Q5) |
| occupation | P106 | software engineer (Q183888) |
| employer | P108 | [company Wikidata item] |
| educated at | P69 | [university Wikidata item] |
| country of citizenship | P27 | [country item] |
| official website | P856 | https://example.com |
**Products/Software:**
| Property | Code | Example |
|----------|------|---------|
| instance of | P31 | software (Q7397) or web application (Q189210) |
| developer | P178 | [company Wikidata item] |
| official website | P856 | https://example.com |
| programming language | P277 | Python (Q28865) |
| operating system | P306 | Linux (Q388) |
| software license | P275 | Apache-2.0 (Q13785927) |
| inception | P571 | 2023-06-01 |
#### Step 4: Add External Identifiers
These link your Wikidata item to other knowledge bases:
| Identifier | Code | Purpose |
|-----------|------|---------|
| official website | P856 | Primary web presence |
| X (Twitter) username | P2002 | Social presence |
| LinkedIn organization ID | P4264 | Professional presence |
| GitHub username | P2037 | Technical presence |
| CrunchBase ID | P2087 | Business data |
| Google Knowledge Graph ID | P2671 | Google entity link |
| App Store ID | P3861 | Mobile presence |
#### Step 5: Add References
**Every statement must have a reference.** Unreferenced statements may be removed.
Good reference sources:
- Official website (for factual claims like founding date)
- News articles (for events, milestones)
- Industry reports (for market position)
- Government registries (for legal entity information)
### Wikidata Maintenance
| Task | Frequency | Why |
|------|-----------|-----|
| Review existing statements | Quarterly | Ensure accuracy; update changed information |
| Add new properties | When new information available | Keep entry comprehensive |
| Check for vandalism | Monthly | Others can edit your entry |
| Add new references | When new coverage appears | Strengthen statement credibility |
| Update identifiers | When new profiles created | Keep links current |
## Wikipedia
### Notability Requirements
Wikipedia requires entities to meet "general notability guidelines" (GNG):
- **Significant coverage** in **reliable, independent sources**
- Coverage must be **non-trivial** (not just a mention or directory listing)
- Sources must be **independent** of the entity (not press releases, not entity's own content)
### Building Toward Notability
If the entity doesn't have a Wikipedia article yet:
1. **Audit existing coverage**: Search Google News, academic databases, and industry publications for mentions
2. **Identify gaps**: What kinds of coverage are missing?
3. **Build coverage first, then article**: The article is the last step, not the first
Coverage-building strategies:
| Strategy | Timeline | Notability Impact |
|----------|----------|-------------------|
| Industry report mentions | 3-6 months | Medium — depends on report authority |
| News article coverage | 1-3 months | High — especially from recognized publications |
| Conference speaking + coverage | 3-12 months | Medium — needs post-event coverage |
| Academic paper citations | 6-12+ months | High — very strong for GNG |
| Award recognition | Variable | Medium — depends on award authority |
| Book publication or feature | 6-12+ months | High — strong independent source |
### Wikipedia Article Best Practices
**DO:**
- Write in neutral, encyclopedic tone
- Use only independent, reliable sources as references
- Follow Wikipedia's Manual of Style
- Disclose any conflict of interest on your Talk page
- Let the community review and improve the article
**DO NOT:**
- Write promotional content
- Use the entity's own website as a primary source
- Create the article from a company account without disclosure
- Remove criticism or negative but sourced information
- Pay someone to write the article without disclosure (violates Wikipedia policy)
### Wikipedia's Impact on AI
Wikipedia is disproportionately important for AI systems because:
- It's in the training data of every major LLM
- AI systems treat it as a high-trust source
- Wikipedia's structured format makes it easy for AI to extract and cite
- The first paragraph of a Wikipedia article often becomes the AI's entity definition
This makes Wikipedia presence one of the highest-impact entity optimization actions for GEO.
## Schema.org Entity Markup
### Minimum Viable Entity Schema
Every entity should have at minimum this markup on the homepage:
**Organization:**
```json
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Example Corp",
"url": "https://example.com",
"logo": "https://example.com/logo.png",
"description": "Example Corp is a [what it is] that [what it does].",
"foundingDate": "2020-01-15",
"founder": {
"@type": "Person",
"name": "Jane Smith",
"@id": "https://example.com/about/jane-smith#person"
},
"sameAs": [
"https://www.wikidata.org/wiki/Q12345678",
"https://en.wikipedia.org/wiki/Example_Corp",
"https://www.linkedin.com/company/example-corp",
"https://x.com/examplecorp",
"https://www.crunchbase.com/organization/example-corp"
]
}
```
**Person:**
```json
{
"@context": "https://schema.org",
"@type": "Person",
"@id": "https://example.com/about/jane-smith#person",
"name": "Jane Smith",
"url": "https://example.com/about/jane-smith",
"image": "https://example.com/photos/jane-smith.jpg",
"jobTitle": "CEO",
"worksFor": {
"@type": "Organization",
"@id": "https://example.com/#organization"
},
"description": "Jane Smith is [who they are] specializing in [expertise areas].",
"sameAs": [
"https://www.wikidata.org/wiki/Q87654321",
"https://www.linkedin.com/in/janesmith",
"https://x.com/janesmith"
]
}
```
### sameAs Best Practices
The `sameAs` property is the **primary entity disambiguation signal** in Schema.org. It tells search engines "this is the same entity as the one on these other platforms."
**Must include (when available):**
1. Wikidata URL (most important for Knowledge Graph)
2. Wikipedia URL
3. LinkedIn URL
4. Official social media profiles
**Include when relevant:**
5. CrunchBase URL
6. GitHub URL
7. IMDb URL (for people in entertainment)
8. Industry directory URLs
**Common mistakes:**
- Linking to generic pages instead of entity-specific URLs
- Inconsistent: Schema says "Example Corp" but LinkedIn says "Example Corporation"
- Missing Wikidata link (this is the single most impactful sameAs)
- Including dead or redirecting URLs
### Cross-Page Entity Consistency
Every page on the site should reference the same entity with the same `@id`:
```json
{
"@type": "WebPage",
"publisher": {
"@type": "Organization",
"@id": "https://example.com/#organization"
}
}
```
For articles:
```json
{
"@type": "Article",
"author": {
"@type": "Person",
"@id": "https://example.com/about/jane-smith#person"
},
"publisher": {
"@type": "Organization",
"@id": "https://example.com/#organization"
}
}
```
This creates a consistent entity graph that search engines can confidently map to Knowledge Graph entries.
## Monitoring Entity Health
### Quarterly Entity Health Check
| Check | How | What to Look For |
|-------|-----|-----------------|
| Knowledge Panel accuracy | Google entity name | Correct info, image, attributes |
| Wikidata entry | Visit Wikidata page | No vandalism, info still current |
| AI entity resolution | Query 3+ AI systems | Accurate recognition and description |
| Schema.org validation | Google Rich Results Test | No errors, complete entity data |
| Branded search SERP | Google "[entity name]" | Clean SERP, no disambiguation issues |
| Social profile consistency | Visit all profiles | Same name, description, links |
### Entity Health Metrics to Track
| Metric | Tool | Target |
|--------|------|--------|
| Knowledge Panel presence | Google Search | Present and accurate |
| Branded search CTR | ~~search console | > 50% for exact brand name |
| AI recognition rate | Manual testing | Recognized by 3/3 major AI systems |
| Wikidata completeness | Wikidata | 15+ properties with references |
| Schema.org error count | Google Search Console | 0 errors |
| Brand mention volume | ~~brand monitor | Stable or growing trend |
### Recovery Playbooks
**Entity disappeared from Knowledge Graph:**
1. Check if Wikidata entry was deleted or merged
2. Verify Schema.org markup hasn't changed
3. Look for major algorithm updates that might have affected entity recognition
4. Rebuild signals: start with Wikidata, then Schema.org, then external mentions
5. Timeline: 2-8 weeks for recovery
**AI systems giving incorrect entity info:**
1. Identify which sources have incorrect information
2. Correct information at source (Wikidata, Wikipedia, About page)
3. AI systems will update over time (training data refresh + live search)
4. For urgent issues, some AI systems have feedback mechanisms
5. Timeline: weeks to months depending on AI system update cycles
**Knowledge Panel showing wrong entity:**
1. Claim the Knowledge Panel (if you haven't already)
2. Strengthen disambiguation signals (see SKILL.md Disambiguation Strategy)
3. Add qualifier to entity name if needed
4. Build more unique entity signals (original content, specific topic associations)
5. Timeline: 1-3 months

View file

@ -0,0 +1,81 @@
# Knowledge Panel & Wikidata Optimization Guide
Detailed instructions for Knowledge Panel optimization, Wikidata entry management, and AI entity resolution.
## Knowledge Panel Optimization
### Claiming and Editing
1. **Google Knowledge Panel**: Claim via Google's verification process (search for entity -> click "Claim this knowledge panel")
2. **Bing Knowledge Panel**: Driven by Wikidata and LinkedIn -- update those sources
3. **AI Knowledge**: Driven by training data -- ensure authoritative sources describe entity correctly
### Common Knowledge Panel Issues
| Issue | Root Cause | Fix |
|-------|-----------|-----|
| No panel appears | Entity not in Knowledge Graph | Build Wikidata entry + structured data + authoritative mentions |
| Wrong image | Image sourced from incorrect page | Update Wikidata image; ensure preferred image on About page and social profiles |
| Wrong description | Description pulled from wrong source | Edit Wikidata description; ensure About page has clear entity description in first paragraph |
| Missing attributes | Incomplete structured data | Add properties to Schema.org markup and Wikidata entry |
| Wrong entity shown | Disambiguation failure | Strengthen unique signals; add qualifiers; resolve Wikidata disambiguation |
| Outdated info | Source data not updated | Update Wikidata, About page, and all profile pages |
## Wikidata Best Practices
### Creating a Wikidata Entry
1. **Check notability**: Entity must have at least one authoritative reference
2. **Create item**: Add label, description, and aliases in relevant languages
3. **Add statements**: instance of, official website, social media links, founding date, founders, industry
4. **Add identifiers**: official website (P856), social media IDs, CrunchBase ID, ISNI, VIAF
5. **Add references**: Every statement should have a reference to an authoritative source
**Important**: Wikipedia's Conflict of Interest (COI) policy prohibits individuals and organizations from creating or editing articles about themselves. Instead of directly editing Wikipedia: (1) Focus on building notability through independent reliable sources (press coverage, industry publications, academic citations); (2) If you believe a Wikipedia article is warranted, consider engaging an independent Wikipedia editor through the Requested Articles process; (3) Ensure all claims about the entity are verifiable through third-party sources before any Wikipedia involvement.
### Key Wikidata Properties by Entity Type
| Property | Code | Person | Org | Brand | Product |
|----------|------|:------:|:---:|:-----:|:-------:|
| instance of | P31 | human | organization type | brand | product type |
| official website | P856 | yes | yes | yes | yes |
| occupation / industry | P106/P452 | yes | yes | -- | -- |
| founded by | P112 | -- | yes | yes | -- |
| inception | P571 | -- | yes | yes | yes |
| country | P17 | yes | yes | -- | -- |
| social media | various | yes | yes | yes | yes |
| employer | P108 | yes | -- | -- | -- |
| developer | P178 | -- | -- | -- | yes |
## AI Entity Optimization
### How AI Systems Resolve Entities
```
User query -> Entity extraction -> Entity resolution -> Knowledge retrieval -> Answer generation
```
AI systems follow this pipeline:
1. **Extract** entity mentions from the query
2. **Resolve** each mention to a known entity (or fail -> "I'm not sure")
3. **Retrieve** associated knowledge about the entity
4. **Generate** response citing sources that confirmed the entity's attributes
### Signals AI Systems Use for Entity Resolution
| Signal Type | What AI Checks | How to Optimize |
|-------------|---------------|-----------------|
| **Training data presence** | Was entity in pre-training corpus? | Get mentioned in high-quality, widely-crawled sources |
| **Retrieval augmentation** | Does entity appear in live search results? | Strong SEO presence for branded queries |
| **Structured data** | Can entity be matched to Knowledge Graph? | Complete Wikidata + Schema.org |
| **Contextual co-occurrence** | What topics/entities appear alongside? | Build consistent topic associations across content |
| **Source authority** | Are sources about entity trustworthy? | Get mentioned by authoritative, well-known sources |
| **Recency** | Is information current? | Keep all entity profiles and content updated |
### Entity-Specific GEO Tactics
1. **Define clearly**: First paragraph of About page and key pages should define the entity in a way AI can quote directly
2. **Be consistent**: Use identical entity description across all platforms
3. **Build associations**: Create content that explicitly connects entity to target topics
4. **Earn mentions**: Third-party authoritative mentions are stronger entity signals than self-description
5. **Stay current**: Outdated entity information causes AI to lose confidence and stop citing