Files
our-claude-skills/custom-skills/28-seo-knowledge-graph/SKILL.md
Andrew Yim e519a49cc4 feat(skills): bulk-add root SKILL.md to 61 skills (native Agent Skills loadability)
Run the additive migration pass from SKILL-MIGRATION-GUIDE: generate a root SKILL.md
for every skill that lacked one, copied from its desktop/SKILL.md (or code/SKILL.md),
with name set to the directory name and description + body preserved verbatim.

- scripts/migrate_skill_root.py: the reusable, non-destructive migrator (dry-run default).
- 61 new root SKILL.md (desktop source for most; code/SKILL.md for 61/62/92).
- Untouched: 16/17/95 (already had root); desktop/ and code/ packaging left intact.
- All 64 root SKILL.md validate: frontmatter <=1024, kebab name, description present.

Still MANUAL (no SKILL.md source — commands/README only), need hand-authored root SKILL.md:
81-mac-optimizer, 90-reference-curator, 91-multi-agent-guide, 94-dintel-bootstrap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 01:05:20 +09:00

178 lines
7.5 KiB
Markdown

---
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 "<entity>" --language ko
our research kg resolve "<entity>" --domain <site> --language ko
our audit entity https://<site> --entity "<entity>" --language ko
our audit sameas https://<site> --brand "<brand>"
our build kg-schema --type Organization --name "<entity>" --url https://<site> --auto-sameas
our fix entity-schema --site https://<site> --type Organization --entity-name "<entity>" --auto-sameas --cms ghost --deploy
```
**OurSEO MCP (Claude Desktop):**
```
mcp__ourseo__search_knowledge_graph(query="<entity>", language="ko")
```
**Third-party presence (WebSearch / WebFetch):**
```
WebSearch: "<entity>" site:wikipedia.org
WebFetch: https://www.wikidata.org/wiki/Special:Search?search=<entity>
WebSearch: "<entity>" site:terms.naver.com # Naver encyclopedia
WebSearch: "<entity>" site:kin.naver.com # Naver 지식iN
```
**Brand SERP analysis (Ahrefs / Semrush):**
```
mcp__ahrefs__serp-overview(keyword="<brand>", country="us")
mcp__ahrefs__gsc-keywords(project_id="<id>") # First-party brand query data
mcp__semrush__overview_research(query="<brand>", 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