惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
Vercel News
Vercel News
D
DataBreaches.Net
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
小众软件
小众软件
美团技术团队
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
D
Docker
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
H
Hackread – Cybersecurity News, Data Breaches, AI and More
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
S
SegmentFault 最新的问题
云风的 BLOG
云风的 BLOG
B
Blog
雷峰网
雷峰网
The Cloudflare Blog

博客园 - Swizard

还在被框架绑架?一文看懂“六边形架构”,让你的核心业务稳如泰山! 逐行解剖:扒开 Lovable Agent 源码,看顶级 AI 是如何“思考”与“动刀”的 还在无脑堆砌提示词?三分钟看懂 Vercel v0 价值千万的 System Prompt 底层逻辑 OpenClaw+OpenViking + NVIDIA API 配置教程 拒绝“挤牙膏”!用苏格拉底提示法,让 AI 从“复读机”进化为“咨询顾问” 别再写丑陋的 Shell 脚本了:用 Gum 给你的终端穿上“高定西装” 告别 sudo 滥用!用 gosu 优雅解决 Docker 容器权限的“千古难题” 拒绝视觉噪音:用“数据墨水比”法则重塑你的专业图表 告别 Git Stash:用 Git Worktree 实现多任务并行,效率起飞! 手机里的 Linux 实验室:Termux 让你随时随地开启“黑客”模式 ⚔️ Google SGE vs. Perplexity:一场内容争夺战,两套生存法则 SEO 已死?拥抱 AEO/GEO:如何让 AI 主动“推荐”你的网站 Python 重构神器:告别 ast 模块的痛苦,三行代码搞定复杂批量修改 别再手写递归找文件了!用 Python rglob 一行代码搞定海量搜索 告别笨重的 For 循环:用 xargs 打造 Linux 命令行流水线神器 告别“断网即崩溃”:像存档游戏一样管理你的终端会话(Tmux 终极入门) 沉默的观察者:Multi-Agent 架构如何实现“零指令”主动服务? 杀死那个提示词框:揭秘“意图识别 + 动态组装”的幕后逻辑 UI 设计如何落地“Boss Mode”?告别聊天框的四个交互法则 用 100 倍 Token 换取 10% 体验:关于 AI Agent 的“暴力美学”
拒绝“隐形”!用 JSON-LD 让你的网页在 Google 搜索结果中“自...
Swizard · 2026-01-13 · via 博客园 - Swizard

1. 为什么你写的代码机器看不懂? (The Pain)

你是否遇到过这种令人抓狂的场景?

你辛辛苦苦写了一个精美的电商详情页,布局完美,图片高清,文字动人。在人类眼中,这是一个卖“复古机械键盘”的页面,价格 200 美元,五星好评。

但在 Google 爬虫(Bot) 的眼中,这只是一堆乱七八糟的 <div><span><p> 标签。

  • 那个 “200” 是价格?还是重量?或者是库存数量?

  • 那个 “5” 是评分?还是型号?

  • 这张图是产品图,还是广告背景?

结果就是:你的网页在搜索结果里,只是一个平平无奇的蓝色链接加两行灰字。而你竞争对手的网页,却带着星级评分、价格标签、甚至精美的缩略图,点击率(CTR)完爆你几条街。

解决方案?JSON-LD。 它是你给搜索引擎递过去的一张“私密小纸条”,用机器能听懂的语言,把网页内容的精华直接告诉它。


2. 概念拆解:给你的网页贴上“快递面单” (The Analogy)

JSON-LD 的全称是 JavaScript Object Notation for Linked Data。别被名字吓到,我们用个生活中的例子:快递包裹

📦 生活类比:快递面单

想象你给朋友寄一箱土特产:

  1. HTML (网页本身):就是那个纸箱子。虽然你(人类)打开箱子就能看到里面是苹果,但快递员(搜索引擎)在运输过程中不能拆箱,他只看到一个棕色的盒子。

  2. JSON-LD (结构化数据):就是贴在箱子外面的快递面单

这张面单上用标准格式写着:

  • 物品类型:水果/苹果

  • 重量:5kg

  • 易碎:是

  • 保质期:7天

快递扫码枪(Google)只需要“哔”一下这张面单,不需要拆箱子,瞬间就知道里面是什么,该怎么分类,该怎么展示给用户。

🧠 核心逻辑图解

  • 没有 JSON-LD:Google 必须像侦探一样,在你的 HTML 代码海洋里“猜测”哪个是标题,哪个是价格(经常猜错)。

  • 有 JSON-LD:你直接通过一段 <script> 代码,把整理好的数据喂到 Google 嘴边。


3. 动手实战:三分钟写出你的第一个“面单” (The How)

我们不需要安装任何复杂的库,JSON-LD 本质上就是一段放在 HTML 里的纯文本。

场景:你正在写一篇技术博客

你想告诉 Google:这是一篇“技术文章”,作者是“张三”,发布时间是“2023-10-01”。

Step 1: 最小可行性代码 (MVP)

将以下代码粘贴到你 HTML 文件的 <head><body> 的任意位置:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "如何用 5 分钟学会 JSON-LD",
  "image": [
    "https://example.com/photos/1x1/photo.jpg"
  ],
  "author": {
    "@type": "Person",
    "name": "张三"
  },
  "datePublished": "2023-10-01T08:00:00+08:00"
}
</script>

Step 2: 代码逐行深度解析

这看起来像普通的 JSON,但有三个必须理解的关键点:

  1. <script type="application/ld+json">

    • 为什么? 这告诉浏览器:“嘿,这里面不是用来执行的 JavaScript 代码,而是纯数据,请不要运行它,只要读取它。” 这就是为什么它不会拖慢页面渲染的原因。

  2. "@context": "https://schema.org"

    • 翻译:这是我们在“对暗号”。

    • 为什么? 全世界有很多种描述数据的方式。这句话告诉 Google:“无论我下面写什么字段,其定义都以 schema.org 这个字典为准”。它是 Google、Bing、Yahoo 联合制定的通用标准。

  3. "@type": "TechArticle"

    • 翻译:我是谁?

    • 为什么? 这里你可以填 Product(商品)、Recipe(食谱)、Event(活动)等。一旦你定义了类型,Google 就知道该期待哪些字段(比如食谱得有卡路里,商品得有价格)。


4. 进阶深潜:新手常犯的“死罪”与最佳实践 (Deep Dive)

学会了写代码只是第一步,在生产环境中,这几个坑千万别踩。

❌ 致命陷阱:表里不一 (Content Mismatch)

错误做法:你在 JSON-LD 里写商品价格是 $9.99(为了吸引点击),但网页 HTML 显示给用户的价格是 $19.99后果:Google 会认为你在进行“垃圾也就是欺诈行为(Spammy Structured Data)”,可能会人工惩罚你的网站,导致排名直接消失。 原则:JSON-LD 的数据必须是用户在页面上也能看到的内容的如实反映。

❌ 常见陷阱:逗号地狱

JSON 对语法要求极其严格。最后一个属性后面多加了一个逗号,或者少了一个引号,整个 JSON-LD 就会失效。 解决:不要肉眼检查!

✅ 最佳实践:使用 Google 官方测试工具

写完代码后,绝对不要直接上线。

  1. 复制你的代码。

  2. 打开 Google 富媒体搜索结果测试 (Rich Results Test)

  3. 粘贴代码并运行测试。

  4. 它会告诉你代码是否有效,以及 Google 最终会把你的页面渲染成什么样(比如是否会出现星星评分)。

🚀 进阶技巧:动态生成

在 React/Vue/Next.js 等现代前端框架中,不要手写死这些数据。你应该创建一个组件,将数据库里的 product.priceblog.title 动态注入到 JSON-LD 对象中。

// React 示例
const jsonLd = {
  "@context": "https://schema.org",
  "@type": "Product",
  "name": product.name, // 动态数据
  "offers": {
    "@type": "Offer",
    "price": product.price, // 动态数据
    "priceCurrency": "USD"
  }
};

return (
  <script
    type="application/ld+json"
    dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
  />
);

5. 总结与延伸 (Conclusion)

JSON-LD 不是黑魔法,它是你与搜索引擎沟通的官方语言

  • 它不改变页面外观。

  • 它极大增强页面在搜索结果中的展示形式(Rich Snippets)

  • 它是提升 SEO 点击率性价比最高的手段之一。

📢 课后小作业

打开你最喜欢的电商网站(如 Amazon 或 某宝的海外版),右键点击“查看网页源代码(View Source)”,搜索 ld+json。看看大厂们是如何向 Google 介绍他们卖的咖啡杯或笔记本电脑的。你可能会发现很多有趣的字段!