--- name: 28-seo-knowledge-graph description: | Knowledge Graph and entity SEO analysis. Triggers: knowledge panel, entity SEO, knowledge graph, PAA, FAQ schema, Wikipedia, Wikidata, brand entity, 지식 그래프, 엔티티 SEO, 지식 패널, 브랜드 엔티티, 위키데이터. --- # Knowledge Graph & Entity SEO Analyze brand entity presence in Google Knowledge Graph, Knowledge Panels, People Also Ask (PAA), and FAQ rich results. Check entity attribute completeness, Wikipedia/Wikidata presence, and Korean equivalents (Naver knowledge iN, Naver encyclopedia). ## Capabilities ### Knowledge Graph Analysis - Knowledge Panel detection and attribute extraction - Entity attribute completeness scoring (name, description, logo, type, social profiles, website, founded, CEO) - Wikipedia article presence check - Wikidata entity presence check (QID lookup) - Naver encyclopedia (네이버 백과사전) presence - Naver knowledge iN (지식iN) presence ### Entity SEO Audit - People Also Ask (PAA) monitoring for brand-related queries - FAQ schema presence tracking (FAQPage schema -> SERP appearance) - Entity markup audit (Organization, Person, LocalBusiness schema on website) - Social profile linking validation (sameAs in schema) - Brand SERP analysis (what appears when you search the brand name) - Entity consistency across web properties ## Workflow ### Knowledge Graph Analysis 1. Use **WebSearch** to search for the entity name on Google 2. Analyze search results for Knowledge Panel indicators 3. Use **WebFetch** to check Wikipedia article existence 4. Use **WebFetch** to check Wikidata QID existence 5. Use **WebFetch** to check Naver encyclopedia and 지식iN 6. Score entity attribute completeness 7. Save report to **Notion** SEO Audit Log ### Entity SEO Audit 1. Use **WebFetch** to fetch the website and extract JSON-LD schemas 2. Validate Organization/Person/LocalBusiness schema completeness 3. Check sameAs links accessibility 4. Use **WebSearch** to search brand name and analyze SERP features 5. Monitor PAA questions for brand keywords 6. Use **WebSearch** for SERP feature detection 7. Save report to **Notion** SEO Audit Log ## Data Source Selection Entity / Knowledge Graph work spans **KG API lookups**, **on-page schema audit**, **third-party presence checks** (Wikipedia, Wikidata, Naver), and **brand SERP analysis**. Different backends own different slices. | Backend | Best for | Notes | |---|---|---| | **OurSEO** (CLI + MCP) | **Default** for KG lookups, entity audit, schema generation + fix | CLI: `our research kg lookup`, `our research kg resolve`, `our audit entity`, `our audit sameas`, `our build kg-schema`, `our fix entity-schema`. MCP: `mcp__ourseo__search_knowledge_graph`. Only backend with an integrated KG + entity-fix path. | | **WebSearch / WebFetch** | Knowledge Panel detection, PAA monitoring, Wikipedia / Wikidata / Naver encyclopedia presence | KG Panel detection via direct Google search is heuristic but unavoidable — no MCP exposes Knowledge Panel structure directly. | | **Ahrefs MCP** (`mcp__ahrefs__*`) | SERP-level entity queries — PAA, brand SERP, FAQ schema appearance | `serp-overview`, `gsc-keywords` (first-party brand query data), `site-audit-issues` for missing schema. | | **Semrush MCP** (`mcp__semrush__*`) | Brand SERP overview, organic positions for entity-related queries | No dedicated KG endpoints — supplementary only. | ### How to pick 1. **User named a backend explicitly** → use it. 2. **User preference memory** — read `feedback_seo_tool_preferences.md`; honor the task-type default. 3. **Task is KG lookup / entity resolution / sameAs validation / schema fix** → use **OurSEO** (CLI primary, MCP for Desktop). No alternative covers this end-to-end. 4. **Task is Wikipedia / Wikidata / Naver encyclopedia presence** → WebSearch + WebFetch (no MCP backend covers third-party encyclopedias). 5. **Task is brand SERP analysis** → Ahrefs `serp-overview` or Semrush `overview_research`, paired with WebSearch for Knowledge Panel detection. 6. **Default**: **OurSEO `our research kg`** + WebSearch for third-party presence. 7. **Still ambiguous + non-trivial** → ask once via `AskUserQuestion`. ### Backend call patterns **OurSEO CLI (default — KG lookup + entity audit + fix):** ```bash our research kg lookup "" --language ko our research kg resolve "" --domain --language ko our audit entity https:// --entity "" --language ko our audit sameas https:// --brand "" our build kg-schema --type Organization --name "" --url https:// --auto-sameas our fix entity-schema --site https:// --type Organization --entity-name "" --auto-sameas --cms ghost --deploy ``` **OurSEO MCP (Claude Desktop):** ``` mcp__ourseo__search_knowledge_graph(query="", language="ko") ``` **Third-party presence (WebSearch / WebFetch):** ``` WebSearch: "" site:wikipedia.org WebFetch: https://www.wikidata.org/wiki/Special:Search?search= WebSearch: "" site:terms.naver.com # Naver encyclopedia WebSearch: "" site:kin.naver.com # Naver 지식iN ``` **Brand SERP analysis (Ahrefs / Semrush):** ``` mcp__ahrefs__serp-overview(keyword="", country="us") mcp__ahrefs__gsc-keywords(project_id="") # First-party brand query data mcp__semrush__overview_research(query="", database="us") ``` Always record the chosen data source(s) in the report **Overview** so future audits can compare like-for-like. ## Notion Output All reports must be saved to the OurDigital SEO Audit Log database. | Field | Value | |-------|-------| | Database ID | `2c8581e5-8a1e-8035-880b-e38cefc2f3ef` | | Category | Knowledge Graph & Entity SEO | | Audit ID | KG-YYYYMMDD-NNN | Report content should be written in Korean (한국어), keeping technical English terms as-is. ## Output Format ```json { "entity_name": "OurDigital", "knowledge_panel": { "present": false, "attributes": {} }, "entity_presence": { "wikipedia": false, "wikidata": false, "wikidata_qid": null, "naver_encyclopedia": false, "naver_knowledge_in": false, "google_knowledge_panel": false }, "entity_schema": { "organization_count": 2, "person_count": 1, "same_as_links": ["https://linkedin.com/...", "https://facebook.com/..."], "same_as_count": 2, "issues": [ "Duplicate Organization schemas with inconsistent names", "Placeholder image in Organization schema", "Only 2 sameAs links (recommend 6+)" ] }, "paa_questions": [], "faq_schema_present": false, "entity_completeness_score": 12, "recommendations": [ "Create Wikidata entity for brand recognition", "Add 4-6 more sameAs social profile links", "Replace placeholder image with actual brand logo", "Consolidate duplicate Organization schemas", "Add FAQPage schema to relevant pages" ], "audit_id": "KG-20250115-001", "timestamp": "2025-01-15T14:30:00" } ``` ## Limitations - Google Knowledge Panel detection via search results is not guaranteed (personalization, location-based) - Direct Google scraping may be blocked (403/429); prefer WebSearch tool - Wikipedia/Wikidata creation requires meeting notability guidelines - PAA questions vary by location and device - Entity completeness scoring is heuristic-based ## Reference Scripts Located in `code/scripts/`: - `knowledge_graph_analyzer.py` — Knowledge Panel and entity presence analysis - `entity_auditor.py` — Entity SEO signals and PAA/FAQ audit - `base_client.py` — Shared async client utilities