关于 geo-schema
geo-schema 是面向 GEO 的技能,用于分析网站结构化数据并准备 Schema.org JSON-LD。它可检测和验证现有标记、按业务类型找出缺失的 Schema,并生成可用代码和报告。
主要功能
- 01检测 JSON-LD、Microdata 和 RDFa
- 02验证 Schema 语法与属性
- 03按业务类型识别 Schema 缺项
- 04生成 JSON-LD 代码块
- 05评估结构化数据覆盖情况
适用场景
- 01审查企业网站的标记
- 02查找 Schema 错误和弃用类型
- 03添加适合业务类型的结构化数据
- 04生成 GEO Schema 报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zubair-trabzada/ geo-seo-claude --skill geo-schema安装后在 Claude Code 中输入/geo-schema确认已加载。
详细介绍
GEO 架构与结构化数据
目的
结构化数据是主要的机器可读信号,用于告知 AI 系统某个实体是什么、做什么,以及它与其他实体之间的联系。传统上,架构标记的目标是获得 Google 丰富搜索结果;而在 GEO 中,其作用截然不同:结构化数据是 AI 模型理解并信任你的实体的方式。完整的结构化数据实体图谱能大幅提升在各类 AI 搜索平台中被引用的可能性。
如何使用此技能
- 使用
fetch_page.py获取目标页面的 HTML(见下方说明) - 检测所有现有的结构化数据(JSON-LD、Microdata、RDFa)
- 根据 Schema.org 规范验证检测到的架构
- 根据业务类型识别缺失的推荐架构
- 生成可直接使用的 JSON-LD 代码块
- 输出 GEO-SCHEMA-REPORT.md
第 1 步:检测
重要: WebFetch 会将 HTML 转换为 Markdown,并剥离 <head> 内容,从而移除 JSON-LD 代码块。请改用 fetch_page.py:
python3 ~/.claude/skills/geo/scripts/fetch_page.py <url> page
输出中包含一个 structured_data 数组,其中列出了页面中解析出的所有 JSON-LD 代码块。
扫描 JSON-LD
在 HTML 中查找 <script type="application/ld+json"> 代码块。将每个代码块解析为 JSON。页面中可能包含多个 JSON-LD 代码块,请全部收集。
扫描 Microdata
查找带有 itemscope、itemtype 和 itemprop 属性的元素。梳理嵌套项的层级结构。注意:AI 爬虫解析 Microdata 的难度高于 JSON-LD。如果只发现 Microdata,请建议迁移到 JSON-LD。
扫描 RDFa
查找带有 typeof、property 和 vocab 属性的元素。与 Microdata 类似,建议迁移到 JSON-LD。
优先级
对于 GEO,JSON-LD 是强烈推荐的格式。Google、Bing 和各类 AI 平台对 JSON-LD 的处理都最可靠。如果网站只使用 Microdata 或 RDFa,请将迁移标记为高优先级事项。
第 2 步:验证
对每个检测到的架构代码块进行验证:
- JSON 有效性:JSON-LD 的语法是否有效?检查尾随逗号、未加引号的键和格式错误的字符串。
- 有效的 @type:
@type是否与 Schema.org 中认可的类型相符?请参阅 https://schema.org/docs/full.html。 - 必需属性:架构是否包含该类型的所有必需属性?(请参阅下方各类型的要求。)
- 推荐属性:架构是否包含有助于提升 AI 可发现性的推荐属性?
- sameAs 链接:架构是否包含
sameAs属性,用于链接到该实体在其他平台上的主页? - URL 有效性:架构中的所有 URL 是否均可访问(未返回 404)?
- 嵌套:架构的嵌套是否正确(例如,Article 中包含 author,Organization 中包含 address)?
- 渲染方式:JSON-LD 是位于服务器渲染的 HTML 中,还是通过 JavaScript 注入?根据 Google 于 2025 年 12 月发布的指南,通过 JavaScript 注入的结构化数据可能会延迟处理。请标记所有需要执行 JS 的架构。
第 3 步:GEO 架构类型
Organization(关键——适用于每个商业网站)
对于在所有 AI 平台上识别实体至关重要。这是 AI 模型识别企业性质的方式。
必需属性:
@type:“Organization”(或子类型:Corporation、LocalBusiness 等)name:企业官方名称url:官方网站 URLlogo:徽标图片的 URL(优先使用 ImageObject)
GEO 推荐属性:
sameAs:所有平台 URL 的数组(见下文的 sameAs 策略)description:对组织的 1-2 句描述foundingDate:ISO 8601 日期founder:Person schemaaddress:PostalAddress schemacontactPoint:包含电话、电子邮件和 contactType 的 ContactPointareaServed:服务区域numberOfEmployees:QuantitativeValueindustry:文本或 DefinedTermaward:所获奖项的数组knowsAbout:组织擅长的主题数组(强 GEO 信号)
LocalBusiness(适用于有实体门店的企业)
继承自 Organization。对于本地 AI 搜索结果和 Google Gemini 至关重要。
其他必需属性:
address:完整的 PostalAddresstelephone:电话号码openingHoursSpecification:营业时间
GEO 推荐属性:
geo:GeoCoordinates(纬度、经度)priceRange:价格范围指标aggregateRating:AggregateRating schemareview:Review schema 数组hasMap:Google Maps 的 URL
Article + Author(对出版商至关重要)
Author schema 是面向 AI 平台的最强 E-E-A-T 信号之一。
Article 必需属性:
@type:“Article”(或 NewsArticle、BlogPosting、TechArticle)headline:文章标题datePublished:ISO 8601 日期dateModified:ISO 8601 日期(对新鲜度信号至关重要)author:Person 或 Organization schemapublisher:带有徽标的 Organization schemaimage:代表性图片
GEO 所需的 Author(Person)属性:
name:全名url:网站上的作者页面 URLsameAs:LinkedIn、Twitter、个人网站、Google Scholar、ORCIDjobTitle:职务worksFor:Organization schemaknowsAbout:专业领域数组alumniOf:教育机构award:专业奖项
Product(适用于电商)
必需:
name、description、imageoffers:包含价格、priceCurrency 和 availability 的 Offerbrand:Brand schemasku或gtin/mpn
GEO 推荐属性:
aggregateRating:AggregateRatingreview:单条评论数组category:产品类别material、weight、width、height(如适用)
FAQPage
截至 2024 年的状态:Google 将 FAQ 富媒体搜索结果限制在政府和健康类网站。不过,FAQPage schema 仍可用于 GEO——AI 平台会解析 FAQ 结构化数据以提取问答内容。即使可能不会显示富媒体搜索结果,也应实施此 schema,以便 AI 读取。
结构:
@type:“FAQPage”mainEntity:Question schema 数组,每个 schema 都包含一个带有 Answer schema 的acceptedAnswer
SoftwareApplication(适用于 SaaS)
必需:
name、descriptionapplicationCategory:例如,“BusinessApplication”operatingSystem:支持的平台offers:定价
GEO 推荐属性:
aggregateRating:用户评分featureList:功能数组(强引用信号)screenshot:屏幕截图softwareVersion:当前版本releaseNotes:更新日志链接
WebSite + SearchAction(适用于站点链接搜索框)
结构:
{
"@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"
}
}
Person(独立使用——适用于个人品牌、作者、思想领袖)
在 About/Bio 页面上将其作为独立 schema 使用。这有助于为个人专业能力构建实体关系图。
必需: name、url
GEO 推荐: sameAs、jobTitle、worksFor、knowsAbout、alumniOf、award、description、image
speakable 属性(适用于语音/AI 助手)
speakable 属性用于标记特别适合语音和 AI 助手使用的特定内容部分。将其添加到 Article 或 WebPage schema 中。
{
"@type": "Article",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".article-summary", ".key-takeaway"]
}
}
这会向 AI 助手表明,哪些段落最适合引用或朗读。
第 4 步:标记已弃用/已变更的 Schema
| Schema | 状态 | 说明 |
|---|---|---|
| HowTo | 富媒体搜索结果已于 2023 年 8 月弃用 | 仍有助于 AI 解析,但不要承诺能获得富媒体搜索结果 |
| FAQPage | 2023 年 8 月起仅限政府/健康领域使用 | 仍有助于 AI 解析(见上文) |
| SpecialAnnouncement | 2023 年弃用 | 原用于 COVID;如果仍存在,请移除 |
| CourseInfo | 2024 年由 Course 更新取代 | 使用更新后的 Course schema 属性 |
VideoObject contentUrl | 2024 年行为变更 | 必须指向实际视频文件,而非页面 URL |
| Review snippet | 2024 年执行标准收紧 | 产品页面上的自利型评价可能不会显示 |
标记发现的任何已弃用 schema,并推荐替代方案。
第 5 步:sameAs 策略(实体识别至关重要)
对于 GEO,sameAs 属性是最重要的结构化数据属性。它会告诉 AI 系统:“我网站上的这个实体,与其他地方的这些资料是同一个实体。”这会创建 AI 平台用于验证、信任和引用来源的实体图谱。
推荐的 sameAs 链接(按优先级排序)
- Wikipedia 条目 — 权威性最高的实体链接
- Wikidata 条目 — 机器可读的实体标识符(例如,
https://www.wikidata.org/wiki/Q12345) - LinkedIn — 公司页面或个人资料
- YouTube — 频道 URL
- Twitter/X — 个人资料 URL
- Facebook — 页面 URL
- Crunchbase — 公司资料(适用于初创公司/科技公司)
- GitHub — 组织或个人资料(适用于科技领域)
- Google Scholar — 作者资料(适用于研究人员/学者)
- ORCID — 研究人员标识符(适用于学者)
- Instagram — 个人资料 URL
- Apple App Store / Google Play — 应用列表(适用于软件)
- BBB — Better Business Bureau 列表(适用于美国企业)
- 行业目录 — 相关垂直领域目录
sameAs 审核流程
- 收集该实体所有已知的网络资料
- 检查每个 URL 是否可访问(不是 404,也未重定向)
- 验证 Organization/Person schema 是否包含所有资料
- 检查各个平台上的信息是否一致(名称、描述、创立日期等)
- 标记该实体理应入驻但尚未入驻的平台
第 6 步:生成 JSON-LD
根据检测到的业务类型,生成可直接粘贴使用的 JSON-LD 代码块。始终生成:
- Organization 或 Person(取决于实体类型)——始终生成
- 带有 SearchAction 的 WebSite ——主页始终生成
- 特定于业务类型的 schema ——出版商使用 Article,电商使用 Product,本地业务使用 LocalBusiness,SaaS 使用 SoftwareApplication
- BreadcrumbList ——适用于任何层级深于主页的页面
生成规则
- 使用
@graph模式,在一个 JSON-LD 代码块中包含多个 schema - 所有 URL 都必须是绝对 URL(不能是相对 URL)
- 添加
@id属性,以便在 schema 之间交叉引用 - 所有日期都使用 ISO 8601 格式
- 在 Article schema 中添加
speakable,并使用 CSS 选择器指向关键内容部分 - 将 JSON-LD 放在
<head>部分——不要通过 JavaScript 注入
模板:包含完整 GEO 信号的 Organization
{
"@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": "[email protected]"
},
"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"
]
}
评分标准(0-100)
| 标准 | 分值 | 评分方式 |
|---|---|---|
| Organization/Person 架构存在且完整 | 15 | 完整得 15 分,基础得 10 分,不存在得 0 分 |
| sameAs 链接(5 个以上平台) | 15 | 每个有效的 sameAs 链接得 3 分,最高 15 分 |
| 包含作者详情的 Article 架构 | 10 | 完整作者架构得 10 分,仅有姓名得 5 分,不存在得 0 分 |
| 包含特定业务类型的架构 | 10 | 完整得 10 分,部分得 5 分,缺失得 0 分 |
| WebSite + SearchAction | 5 | 存在得 5 分,不存在得 0 分 |
| 内页上的 BreadcrumbList | 5 | 存在得 5 分,不存在得 0 分 |
| JSON-LD 格式(而非 Microdata/RDFa) | 5 | 使用 JSON-LD 得 5 分,混合使用得 3 分,仅使用 Microdata/RDFa 得 0 分 |
| 服务器端渲染(非 JS 注入) | 10 | 在 HTML 源码中得 10 分,在 JS 中但位于 head 得 5 分,动态 JS 得 0 分 |
| 文章上的 speakable 属性 | 5 | 存在得 5 分,不存在得 0 分 |
| 有效 JSON + 有效的 Schema.org 类型 | 10 | 无错误得 10 分,有轻微问题得 5 分,有重大错误得 0 分 |
| Organization/Person 上的 knowsAbout 属性 | 5 | 存在且包含 3 个以上主题得 5 分,缺失得 0 分 |
| 不包含已弃用的架构 | 5 | 无问题得 5 分,发现已弃用的架构得 0 分 |
输出格式
生成 GEO-SCHEMA-REPORT.md,内容如下:
# 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