mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-26 01:06:23 +02:00
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
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:
parent
61b3f0d7e3
commit
7ea840dbb2
120 changed files with 25729 additions and 352 deletions
|
|
@ -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 |
|
||||
|
|
@ -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 |
|
||||
|
|
@ -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
|
||||
```
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue