重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
geo-schema by zubair-trabzada/geo-seo-claude
npx skills add https://github.com/zubair-trabzada/geo-seo-claude --skill geo-schema结构化数据是主要的机器可读信号,它告诉 AI 系统一个实体是什么、做什么以及如何与其他实体连接。虽然模式标记传统上是为了获得 Google 富媒体搜索结果,但它在 GEO 中的作用根本不同:结构化数据是 AI 模型理解和信任您实体的方式。完整实体图的结构化数据能显著提高在所有 AI 搜索平台上的引用概率。
fetch_page.py 获取目标页面 HTML(见下方说明)重要提示: WebFetch 将 HTML 转换为 markdown 并剥离 <head> 内容,这会移除 JSON-LD 块。请改用 fetch_page.py:
python3 ~/.claude/skills/geo/scripts/fetch_page.py <url> page
输出包含一个 structured_data 数组,其中包含从页面解析出的所有 JSON-LD 块。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
在 HTML 中查找 <script type="application/ld+json"> 块。将每个块解析为 JSON。一个页面可能包含多个 JSON-LD 块——收集所有块。
查找具有 itemscope、itemtype 和 itemprop 属性的元素。映射嵌套项目的层次结构。注意:微数据比 JSON-LD 更难被 AI 爬虫解析。如果发现仅使用微数据格式,请标记建议迁移到 JSON-LD。
查找具有 typeof、property 和 vocab 属性的元素。与微数据类似——建议迁移到 JSON-LD。
JSON-LD 是 GEO 强烈推荐的格式。Google、Bing 和 AI 平台都能最可靠地处理 JSON-LD。如果网站仅使用微数据或 RDFa,请将此标记为高优先级迁移项。
对于每个检测到的模式块,验证:
@type 是否匹配公认的 Schema.org 类型?对照 https://schema.org/docs/full.html 检查。sameAs 属性?对于所有 AI 平台的实体识别至关重要。这是 AI 模型识别业务是什么的方式。
必需属性:
@type: "Organization"(或子类型:Corporation、LocalBusiness 等)name: 官方商业名称url: 官方网站 URLlogo: 徽标图片的 URL(首选 ImageObject)GEO 推荐属性:
sameAs: 所有平台 URL 的数组(见下方 sameAs 策略)description: 1-2 句组织描述foundingDate: ISO 8601 日期founder: Person 模式address: PostalAddress 模式contactPoint: 包含 telephone、email、contactType 的 ContactPointareaServed: 地理区域numberOfEmployees: QuantitativeValueindustry: 文本或 DefinedTermaward: 所获奖项的数组knowsAbout: 组织擅长的主题数组(强 GEO 信号)扩展自组织。对于本地 AI 搜索结果和 Google Gemini 至关重要。
额外必需属性:
address: 完整的 PostalAddresstelephone: 电话号码openingHoursSpecification: 营业时间GEO 推荐:
geo: GeoCoordinates(纬度,经度)priceRange: 价格指示器aggregateRating: AggregateRating 模式review: Review 模式数组hasMap: Google 地图的 URL作者模式是 AI 平台最强的 E-E-A-T 信号之一。
文章必需:
@type: "Article"(或 NewsArticle、BlogPosting、TechArticle)headline: 文章标题datePublished: ISO 8601dateModified: ISO 8601(对新鲜度信号至关重要)author: Person 或 Organization 模式publisher: 带有徽标的 Organization 模式image: 代表性图片GEO 作者(Person)必需:
name: 全名url: 网站上作者页面的 URLsameAs: LinkedIn、Twitter、个人网站、Google Scholar、ORCIDjobTitle: 专业头衔worksFor: Organization 模式knowsAbout: 专业领域数组alumniOf: 教育机构award: 专业奖项必需:
name、description、imageoffers: 包含 price、priceCurrency、availability 的 Offerbrand: Brand 模式sku 或 gtin/mpnGEO 推荐:
aggregateRating: AggregateRatingreview: 单个评论的数组category: 产品类别material、weight、width、height(如适用)截至 2024 年的状态:Google 将常见问题富媒体结果限制在政府和健康网站。然而,常见问题页面模式仍服务于 GEO 目的——AI 平台解析常见问题结构化数据以提取问答。即使富媒体结果可能不出现,也要为实现 AI 可读性而实施它。
结构:
@type: "FAQPage"mainEntity: Question 模式数组,每个都包含带有 Answer 模式的 acceptedAnswer必需:
name、descriptionapplicationCategory: 例如,"BusinessApplication"operatingSystem: 支持的平台offers: 定价GEO 推荐:
aggregateRating: 用户评分featureList: 功能数组(强引用信号)screenshot: 屏幕截图softwareVersion: 当前版本releaseNotes: 更新日志链接结构:
{
"@type": "WebSite",
"name": "Site Name",
"url": "https://example.com",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://example.com/search?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}
在关于/简介页面上用作独立模式。这为个人专业知识构建实体图。
必需: name、url GEO 推荐: sameAs、jobTitle、worksFor、knowsAbout、alumniOf、award、description、image
speakable 属性将内容的特定部分标记为特别适合语音和 AI 助手使用。添加到文章或网页模式中。
{
"@type": "Article",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".article-summary", ".key-takeaway"]
}
}
这向 AI 助手发出信号,指示哪些段落最适合引用或朗读。
| 模式 | 状态 | 备注 |
|---|---|---|
| HowTo | 富媒体结果于 2023 年 8 月弃用 | 对 AI 解析仍然有用,但不要承诺富媒体结果 |
| FAQPage | 2023 年 8 月限制在政府/健康领域 | 对 AI 解析仍然有用(见上文) |
| SpecialAnnouncement | 2023 年弃用 | 用于 COVID;如果仍然存在,请移除 |
| CourseInfo | 2024 年被课程更新取代 | 使用更新的课程模式属性 |
VideoObject contentUrl | 2024 年行为更改 | 必须指向实际视频文件,而非页面 URL |
| 评论片段 | 2024 年更严格执行 | 产品页面上的自我服务评论可能不会显示 |
标记发现的任何已弃用模式并推荐替代方案。
sameAs 属性是 GEO 最重要的结构化数据属性。它告诉 AI 系统:“我网站上的这个实体与这些其他地方的资料是同一个实体。”这创建了 AI 平台用来验证、信任和引用来源的实体图。
https://www.wikidata.org/wiki/Q12345)根据检测到的业务类型,生成可直接粘贴的 JSON-LD 块。始终生成:
@graph 模式在一个 JSON-LD 块中包含多个模式@id 属性speakable<head> 部分——不要通过 JavaScript 注入{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Company Name",
"url": "https://example.com",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"width": 600,
"height": 60
},
"description": "公司业务的简明描述。",
"foundingDate": "2020-01-15",
"founder": {
"@type": "Person",
"name": "Founder Name",
"sameAs": "https://www.linkedin.com/in/founder"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "City",
"addressRegion": "State",
"postalCode": "12345",
"addressCountry": "US"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-555-555-5555",
"contactType": "customer service",
"email": "support@example.com"
},
"sameAs": [
"https://en.wikipedia.org/wiki/Company_Name",
"https://www.wikidata.org/wiki/Q12345",
"https://www.linkedin.com/company/company-name",
"https://www.youtube.com/@companyname",
"https://twitter.com/companyname",
"https://github.com/companyname",
"https://www.crunchbase.com/organization/company-name"
],
"knowsAbout": [
"Topic 1",
"Topic 2",
"Topic 3"
]
}
| 标准 | 分数 | 如何评分 |
|---|---|---|
| 组织/个人模式存在且完整 | 15 | 完整 15 分,基本 10 分,无 0 分 |
| sameAs 链接(5+ 个平台) | 15 | 每个有效 sameAs 链接 3 分,最高 15 分 |
| 包含作者详细信息的文章模式 | 10 | 完整作者模式 10 分,仅姓名 5 分,无 0 分 |
| 特定业务类型模式存在 | 10 | 完整 10 分,部分 5 分,缺失 0 分 |
| 网站 + 搜索操作 | 5 | 存在 5 分,不存在 0 分 |
| 内部页面上的面包屑导航列表 | 5 | 存在 5 分,不存在 0 分 |
| JSON-LD 格式(非微数据/RDFa) | 5 | JSON-LD 5 分,混合 3 分,仅微数据/RDFa 0 分 |
| 服务器渲染(非 JS 注入) | 10 | 在 HTML 源代码中 10 分,JS 但在 head 中 5 分,动态 JS 0 分 |
| 文章上的可朗读属性 | 5 | 存在 5 分,不存在 0 分 |
| 有效的 JSON + 有效的 Schema.org 类型 | 10 | 无错误 10 分,小问题 5 分,重大错误 0 分 |
| 组织/个人上的 knowsAbout 属性 | 5 | 存在且包含 3+ 个主题 5 分,缺失 0 分 |
| 不存在已弃用模式 | 5 | 干净 5 分,发现已弃用模式 0 分 |
生成 GEO-SCHEMA-REPORT.md,内容如下:
# GEO 模式与结构化数据报告 — [域名]
日期:[日期]
## 模式得分:XX/100
## 检测到的模式
| 页面 | 模式类型 | 格式 | 状态 | 问题 |
|---|---|---|---|---|
| / | Organization | JSON-LD | 有效 | 缺少 sameAs |
| /blog/post-1 | Article | JSON-LD | 有效 | 无作者模式 |
## 验证结果
[列出每个模式及其每个属性的通过/失败情况]
## 缺失的推荐模式
[列出根据业务类型应该存在但缺失的模式]
## sameAs 审核
| 平台 | URL | 状态 |
|---|---|---|
| Wikipedia | [URL 或 "未找到"] | 存在/缺失 |
| LinkedIn | [URL 或 "未找到"] | 存在/缺失 |
[继续所有推荐平台]
## 生成的 JSON-LD 代码
[为每个缺失或不完整的模式提供可直接粘贴的 JSON-LD 块]
## 实施说明
- 每个 JSON-LD 块的放置位置
- 服务器渲染要求
- 使用 Google 富媒体结果测试和 Schema.org 验证器进行测试
每周安装次数
72
仓库
GitHub Stars
4.2K
首次出现
2026年2月27日
安全审计
安装于
codex71
opencode71
gemini-cli69
cursor69
amp69
cline69
Structured data is the primary machine-readable signal that tells AI systems what an entity IS, what it does, and how it connects to other entities. While schema markup has traditionally been about earning Google rich results, its role in GEO is fundamentally different: structured data is how AI models understand and trust your entity. A complete entity graph in structured data dramatically increases citation probability across all AI search platforms.
fetch_page.py (see note below)IMPORTANT: WebFetch converts HTML to markdown and strips <head> content, which removes JSON-LD blocks. Use fetch_page.py instead:
python3 ~/.claude/skills/geo/scripts/fetch_page.py <url> page
The output includes a structured_data array with all parsed JSON-LD blocks from the page.
Look for <script type="application/ld+json"> blocks in the HTML. Parse each block as JSON. A page may contain multiple JSON-LD blocks — collect all of them.
Look for elements with itemscope, itemtype, and itemprop attributes. Map the hierarchy of nested items. Note: Microdata is harder for AI crawlers to parse than JSON-LD. Flag a recommendation to migrate to JSON-LD if Microdata is the only format found.
Look for elements with typeof, property, and vocab attributes. Similar to Microdata — recommend migration to JSON-LD.
JSON-LD is the strongly recommended format for GEO. Google, Bing, and AI platforms all process JSON-LD most reliably. If the site uses Microdata or RDFa exclusively, flag this as a high-priority migration.
For each detected schema block, validate:
@type match a recognized Schema.org type? Check against https://schema.org/docs/full.html.sameAs properties linking to other platform presences?Essential for entity recognition across all AI platforms. This is how AI models identify WHAT the business is.
Required properties:
@type: "Organization" (or subtype: Corporation, LocalBusiness, etc.)name: Official business nameurl: Official website URLlogo: URL to logo image (ImageObject preferred)Recommended properties for GEO:
sameAs: Array of ALL platform URLs (see sameAs strategy below)description: 1-2 sentence description of the organizationfoundingDate: ISO 8601 datefounder: Person schemaaddress: PostalAddress schemacontactPoint: ContactPoint with telephone, email, contactTypeareaServed: Geographic areanumberOfEmployees: QuantitativeValueindustry: Text or DefinedTermaward: Array of awards receivedExtends Organization. Critical for local AI search results and Google Gemini.
Additional required properties:
address: Full PostalAddresstelephone: Phone numberopeningHoursSpecification: Operating hoursRecommended for GEO:
geo: GeoCoordinates (latitude, longitude)priceRange: Price indicatoraggregateRating: AggregateRating schemareview: Array of Review schemashasMap: URL to Google MapsThe Author schema is one of the strongest E-E-A-T signals for AI platforms.
Article required:
@type: "Article" (or NewsArticle, BlogPosting, TechArticle)headline: Article titledatePublished: ISO 8601dateModified: ISO 8601 (critical for freshness signals)author: Person or Organization schemapublisher: Organization schema with logoimage: Representative imageAuthor (Person) required for GEO:
name: Full nameurl: Author page URL on the sitesameAs: LinkedIn, Twitter, personal site, Google Scholar, ORCIDjobTitle: Professional titleworksFor: Organization schemaknowsAbout: Array of expertise areasalumniOf: Educational institutionsaward: Professional awardsRequired:
name, description, imageoffers: Offer with price, priceCurrency, availabilitybrand: Brand schemasku or gtin/mpnRecommended for GEO:
aggregateRating: AggregateRatingreview: Array of individual reviewscategory: Product categorymaterial, weight, width, height (where applicable)Status as of 2024 : Google restricts FAQ rich results to government and health sites. However, the FAQPage schema still serves GEO purposes — AI platforms parse FAQ structured data for question-answer extraction. Implement it for AI readability even though rich results may not appear.
Structure:
@type: "FAQPage"mainEntity: Array of Question schemas, each with acceptedAnswer containing an Answer schemaRequired:
name, descriptionapplicationCategory: e.g., "BusinessApplication"operatingSystem: Supported platformsoffers: PricingRecommended for GEO:
aggregateRating: User ratingsfeatureList: Array of features (strong citation signal)screenshot: ScreenshotssoftwareVersion: Current versionreleaseNotes: Link to changelogStructure:
{
"@type": "WebSite",
"name": "Site Name",
"url": "https://example.com",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://example.com/search?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}
Use as a standalone schema on About/Bio pages. This builds the entity graph for individual expertise.
Required: name, url Recommended for GEO: sameAs, jobTitle, worksFor, knowsAbout, alumniOf, award, description, image
The speakable property marks specific sections of content as particularly suitable for voice and AI assistant consumption. Add to Article or WebPage schemas.
{
"@type": "Article",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".article-summary", ".key-takeaway"]
}
}
This signals to AI assistants which passages are the best candidates for citation or reading aloud.
| Schema | Status | Note |
|---|---|---|
| HowTo | Rich results deprecated Aug 2023 | Still useful for AI parsing, but do not promise rich results |
| FAQPage | Restricted to govt/health Aug 2023 | Still useful for AI parsing (see above) |
| SpecialAnnouncement | Deprecated 2023 | Was for COVID; remove if still present |
| CourseInfo | Replaced by Course updates 2024 | Use updated Course schema properties |
VideoObject contentUrl | Changed behavior 2024 | Must point to actual video file, not page URL |
| Review snippet | Stricter enforcement 2024 | Self-serving reviews on product pages may not display |
Flag any deprecated schemas found and recommend replacements.
The sameAs property is the single most important structured data property for GEO. It tells AI systems: "This entity on my website is the SAME entity as these profiles elsewhere." This creates the entity graph that AI platforms use to verify, trust, and cite sources.
https://www.wikidata.org/wiki/Q12345)Based on the detected business type, generate ready-to-paste JSON-LD blocks. Always generate:
@graph pattern to include multiple schemas in one JSON-LD block@id properties for cross-referencing between schemasspeakable on Article schemas with CSS selectors pointing to key content sections<head> section — NOT injected via JavaScript{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Company Name",
"url": "https://example.com",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"width": 600,
"height": 60
},
"description": "Concise description of what the company does.",
"foundingDate": "2020-01-15",
"founder": {
"@type": "Person",
"name": "Founder Name",
"sameAs": "https://www.linkedin.com/in/founder"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "City",
"addressRegion": "State",
"postalCode": "12345",
"addressCountry": "US"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-555-555-5555",
"contactType": "customer service",
"email": "support@example.com"
},
"sameAs": [
"https://en.wikipedia.org/wiki/Company_Name",
"https://www.wikidata.org/wiki/Q12345",
"https://www.linkedin.com/company/company-name",
"https://www.youtube.com/@companyname",
"https://twitter.com/companyname",
"https://github.com/companyname",
"https://www.crunchbase.com/organization/company-name"
],
"knowsAbout": [
"Topic 1",
"Topic 2",
"Topic 3"
]
}
| Criterion | Points | How to Score |
|---|---|---|
| Organization/Person schema present and complete | 15 | 15 if full, 10 if basic, 0 if none |
| sameAs links (5+ platforms) | 15 | 3 per valid sameAs link, max 15 |
| Article schema with author details | 10 | 10 if full author schema, 5 if name only, 0 if none |
| Business-type-specific schema present | 10 | 10 if complete, 5 if partial, 0 if missing |
| WebSite + SearchAction | 5 | 5 if present, 0 if not |
| BreadcrumbList on inner pages | 5 | 5 if present, 0 if not |
| JSON-LD format (not Microdata/RDFa) | 5 | 5 if JSON-LD, 3 if mixed, 0 if only Microdata/RDFa |
| Server-rendered (not JS-injected) | 10 | 10 if in HTML source, 5 if JS but in head, 0 if dynamic JS |
| speakable property on articles |
Generate GEO-SCHEMA-REPORT.md with:
# GEO Schema & Structured Data Report — [Domain]
Date: [Date]
## Schema Score: XX/100
## Detected Schemas
| Page | Schema Type | Format | Status | Issues |
|---|---|---|---|---|
| / | Organization | JSON-LD | Valid | Missing sameAs |
| /blog/post-1 | Article | JSON-LD | Valid | No author schema |
## Validation Results
[List each schema with pass/fail per property]
## Missing Recommended Schemas
[List schemas that should be present based on business type but are not]
## sameAs Audit
| Platform | URL | Status |
|---|---|---|
| Wikipedia | [URL or "Not found"] | Present/Missing |
| LinkedIn | [URL or "Not found"] | Present/Missing |
[Continue for all recommended platforms]
## Generated JSON-LD Code
[Ready-to-paste JSON-LD blocks for each missing or incomplete schema]
## Implementation Notes
- Where to place each JSON-LD block
- Server-rendering requirements
- Testing with Google Rich Results Test and Schema.org Validator
Weekly Installs
72
Repository
GitHub Stars
4.2K
First Seen
Feb 27, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
codex71
opencode71
gemini-cli69
cursor69
amp69
cline69
GitHub Actions 官方文档查询助手 - 精准解答 CI/CD 工作流问题
47,200 周安装
knowsAbout: Array of topics the organization is expert in (strong GEO signal)| 5 |
| 5 if present, 0 if not |
| Valid JSON + valid Schema.org types | 10 | 10 if no errors, 5 if minor issues, 0 if major errors |
| knowsAbout property on Organization/Person | 5 | 5 if present with 3+ topics, 0 if missing |
| No deprecated schemas present | 5 | 5 if clean, 0 if deprecated schemas found |