mcpField
G
geo-schema

geo-schema

github.com/zubair-trabzada营销与增长11.3k931 次安装3 周前更新
代码仓库

关于 geo-schema

geo-schema 是面向 GEO 的技能,用于分析网站结构化数据并准备 Schema.org JSON-LD。它可检测和验证现有标记、按业务类型找出缺失的 Schema,并生成可用代码和报告。

主要功能

  1. 01检测 JSON-LD、Microdata 和 RDFa
  2. 02验证 Schema 语法与属性
  3. 03按业务类型识别 Schema 缺项
  4. 04生成 JSON-LD 代码块
  5. 05评估结构化数据覆盖情况

适用场景

  1. 01审查企业网站的标记
  2. 02查找 Schema 错误和弃用类型
  3. 03添加适合业务类型的结构化数据
  4. 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 搜索平台中被引用的可能性。

如何使用此技能

  1. 使用 fetch_page.py 获取目标页面的 HTML(见下方说明)
  2. 检测所有现有的结构化数据(JSON-LD、Microdata、RDFa)
  3. 根据 Schema.org 规范验证检测到的架构
  4. 根据业务类型识别缺失的推荐架构
  5. 生成可直接使用的 JSON-LD 代码块
  6. 输出 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 步:验证

对每个检测到的架构代码块进行验证:

  1. JSON 有效性:JSON-LD 的语法是否有效?检查尾随逗号、未加引号的键和格式错误的字符串。
  2. 有效的 @type:@type 是否与 Schema.org 中认可的类型相符?请参阅 https://schema.org/docs/full.html。
  3. 必需属性:架构是否包含该类型的所有必需属性?(请参阅下方各类型的要求。)
  4. 推荐属性:架构是否包含有助于提升 AI 可发现性的推荐属性?
  5. sameAs 链接:架构是否包含 sameAs 属性,用于链接到该实体在其他平台上的主页?
  6. URL 有效性:架构中的所有 URL 是否均可访问(未返回 404)?
  7. 嵌套:架构的嵌套是否正确(例如,Article 中包含 author,Organization 中包含 address)?
  8. 渲染方式:JSON-LD 是位于服务器渲染的 HTML 中,还是通过 JavaScript 注入?根据 Google 于 2025 年 12 月发布的指南,通过 JavaScript 注入的结构化数据可能会延迟处理。请标记所有需要执行 JS 的架构。

第 3 步:GEO 架构类型

Organization(关键——适用于每个商业网站)

对于在所有 AI 平台上识别实体至关重要。这是 AI 模型识别企业性质的方式。

必需属性:

  • @type:“Organization”(或子类型:Corporation、LocalBusiness 等)
  • name:企业官方名称
  • url:官方网站 URL
  • logo:徽标图片的 URL(优先使用 ImageObject)

GEO 推荐属性:

  • sameAs:所有平台 URL 的数组(见下文的 sameAs 策略)
  • description:对组织的 1-2 句描述
  • foundingDate:ISO 8601 日期
  • founder:Person schema
  • address:PostalAddress schema
  • contactPoint:包含电话、电子邮件和 contactType 的 ContactPoint
  • areaServed:服务区域
  • numberOfEmployees:QuantitativeValue
  • industry:文本或 DefinedTerm
  • award:所获奖项的数组
  • knowsAbout:组织擅长的主题数组(强 GEO 信号)
LocalBusiness(适用于有实体门店的企业)

继承自 Organization。对于本地 AI 搜索结果和 Google Gemini 至关重要。

其他必需属性:

  • address:完整的 PostalAddress
  • telephone:电话号码
  • openingHoursSpecification:营业时间

GEO 推荐属性:

  • geo:GeoCoordinates(纬度、经度)
  • priceRange:价格范围指标
  • aggregateRating:AggregateRating schema
  • review: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 schema
  • publisher:带有徽标的 Organization schema
  • image:代表性图片

GEO 所需的 Author(Person)属性:

  • name:全名
  • url:网站上的作者页面 URL
  • sameAs:LinkedIn、Twitter、个人网站、Google Scholar、ORCID
  • jobTitle:职务
  • worksFor:Organization schema
  • knowsAbout:专业领域数组
  • alumniOf:教育机构
  • award:专业奖项
Product(适用于电商)

必需:

  • name、description、image
  • offers:包含价格、priceCurrency 和 availability 的 Offer
  • brand:Brand schema
  • sku 或 gtin/mpn

GEO 推荐属性:

  • aggregateRating:AggregateRating
  • review:单条评论数组
  • 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、description
  • applicationCategory:例如,“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 解析,但不要承诺能获得富媒体搜索结果
FAQPage2023 年 8 月起仅限政府/健康领域使用仍有助于 AI 解析(见上文)
SpecialAnnouncement2023 年弃用原用于 COVID;如果仍存在,请移除
CourseInfo2024 年由 Course 更新取代使用更新后的 Course schema 属性
VideoObject contentUrl2024 年行为变更必须指向实际视频文件,而非页面 URL
Review snippet2024 年执行标准收紧产品页面上的自利型评价可能不会显示

标记发现的任何已弃用 schema,并推荐替代方案。


第 5 步:sameAs 策略(实体识别至关重要)

对于 GEO,sameAs 属性是最重要的结构化数据属性。它会告诉 AI 系统:“我网站上的这个实体,与其他地方的这些资料是同一个实体。”这会创建 AI 平台用于验证、信任和引用来源的实体图谱。

推荐的 sameAs 链接(按优先级排序)
  1. Wikipedia 条目 — 权威性最高的实体链接
  2. Wikidata 条目 — 机器可读的实体标识符(例如,https://www.wikidata.org/wiki/Q12345)
  3. LinkedIn — 公司页面或个人资料
  4. YouTube — 频道 URL
  5. Twitter/X — 个人资料 URL
  6. Facebook — 页面 URL
  7. Crunchbase — 公司资料(适用于初创公司/科技公司)
  8. GitHub — 组织或个人资料(适用于科技领域)
  9. Google Scholar — 作者资料(适用于研究人员/学者)
  10. ORCID — 研究人员标识符(适用于学者)
  11. Instagram — 个人资料 URL
  12. Apple App Store / Google Play — 应用列表(适用于软件)
  13. BBB — Better Business Bureau 列表(适用于美国企业)
  14. 行业目录 — 相关垂直领域目录
sameAs 审核流程
  1. 收集该实体所有已知的网络资料
  2. 检查每个 URL 是否可访问(不是 404,也未重定向)
  3. 验证 Organization/Person schema 是否包含所有资料
  4. 检查各个平台上的信息是否一致(名称、描述、创立日期等)
  5. 标记该实体理应入驻但尚未入驻的平台

第 6 步:生成 JSON-LD

根据检测到的业务类型,生成可直接粘贴使用的 JSON-LD 代码块。始终生成:

  1. Organization 或 Person(取决于实体类型)——始终生成
  2. 带有 SearchAction 的 WebSite ——主页始终生成
  3. 特定于业务类型的 schema ——出版商使用 Article,电商使用 Product,本地业务使用 LocalBusiness,SaaS 使用 SoftwareApplication
  4. 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 + SearchAction5存在得 5 分,不存在得 0 分
内页上的 BreadcrumbList5存在得 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

评论

支持 Markdown