Learning
VOL. XIII · NO. 14 · Elixir · 01 JAN 1970

SEO 速通 — 让 agquant.com 被搜到

Elixir 编程 · 01 JAN 1970 · 13 min read · 1,781 words
· · ·

不是 SEO 入门,是 让 agquant.com/learning/ 在 Google / Bing / 百度 上排名 的 10 个实战步骤。

这课假设你的站已经部署在 CF 边缘(前置见 [lesson 0007](./0007-cloudflare-killer)),讲 30 分钟能让 agquant.com 流量翻倍 的硬核技术点:

  1. Meta 标签 — title / description / canonical
  2. Open Graph / Twitter Card — 社交分享卡片
  3. JSON-LD 结构化数据 — 让 Google 理解你的页面
  4. sitemap.xml + robots.txt — 让爬虫知道你有啥
  5. IndexNow — 秒级索引(CF 集成)
  6. Core Web Vitals — LCP / FID / CLS
  7. 图片优化 — CF Image Resizing
  8. 内部链接策略 — Topic Cluster 模型
  9. Search Console / Webmaster — 数据驱动
  10. CDN 缓存策略 — stale-while-revalidate

**预计时间:**90 分钟(这课比较长)

视角
agquant.com/learning/ = 中文金融学习站。目标:让搜索"OT 场外期权"、"CVA 计算"、"雪球结构"、"Elixir 教程"的用户能搜到你的页面。这意味着 SEO 主要服务百度(中文)+ Google(全球)+ Bing(API 友好)

一、Meta 标签(每页都要有)

每页 <head> 里必须有的 4 个 meta:

<!-- 1. 标题:60 字符内,含主关键词 -->
<title>雪球结构详解:收益、风险、希腊字母 | agquant.com</title>

<!-- 2. 描述:155 字符内,行动召唤 -->
<meta name="description" content="雪球结构是券商最受欢迎的看跌期权变种之一。本文详解票息、敲出、敲入、Delta 风险,并对比 5 家券商的报价。适合 PM / 交易员 / 风控。">

<!-- 3. canonical:避免重复内容惩罚 -->
<link rel="canonical" href="https://agquant.com/learning/otc-derivatives/product-snowball.html">

<!-- 4. viewport(移动适配必备) -->
<meta name="viewport" content="width=device-width, initial-scale=1">

<!-- 5. robots:控制索引(默认 all) -->
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large">

Title 公式(实战)

对 agquant.com 站内每页:

{关键词} + {差异化/价值} + {品牌}
↓       ↓               ↓
"雪球结构详解" "Delta 风险与对冲" "agquant.com"
↓       ↓               ↓
50% 关键词密度  20% 价值主张     5-10 字品牌

# 例
"OT 场外期权详解:产品结构与对冲策略 | agquant.com"
"CVA 计算:从理论到 Python 实现 | agquant.com"
"Elixir 速通:3 节课掌握 OTP 并发 | agquant.com"
百度 vs Google 的 Title 偏好
  • Google:60 字符内,关键词靠前
  • 百度:30 字符内(超出截断),品牌靠后
  • 折中:用 50 字符 + "agquant.com" 末尾

Description 公式

{主关键词} + {价值承诺} + {信任要素} + {CTA}
↓              ↓                ↓                ↓
"OT 场外期权" "从入门到对冲"  "10 年 PM 经验"  "立即阅读"

# 例
"OT 场外期权详解:从产品结构到对冲策略。10 年 PM 实战,配 50+ 代码示例。立即阅读 →"

二、Open Graph + Twitter Card(社交分享)

当用户把页面分享到微信 / Twitter / LinkedIn / Slack 时,显示的卡片:

<!-- Open Graph(Facebook / LinkedIn / Slack) -->
<meta property="og:title" content="雪球结构详解">
<meta property="og:description" content="Delta 风险 + 5 家券商报价对比">
<meta property="og:image" content="https://cdn.agquant.com/og/snowball.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://agquant.com/learning/otc-derivatives/product-snowball.html">
<meta property="og:type" content="article">
<meta property="og:site_name" content="agquant.com">
<meta property="og:locale" content="zh_CN">

<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@agquant">
<meta name="twitter:title" content="雪球结构详解">
<meta name="twitter:description" content="Delta 风险 + 5 家券商报价对比">
<meta name="twitter:image" content="https://cdn.agquant.com/og/snowball.png">

<!-- 微信特有(部分被支持) -->
<meta itemprop="name" content="雪球结构详解">
<meta itemprop="image" content="https://cdn.agquant.com/og/snowball.png">
OG 图设计(30 分钟搞定)
  • 尺寸:1200×630 像素(通用)
  • 格式:JPG 或 PNG,< 1 MB
  • 内容:左标题 + 右 logo + 底色背景
  • 工具:Figma / Canva / 用 CF Image Resizing 动态生成

动态生成 OG 图(高级)

用 CF Image Resizing 在 URL 上动态裁剪:

<!-- 给每个页面动态生成 OG 图 -->
<meta property="og:image" content="/cdn-cgi/image/width=1200,height=630,fit=cover,bottom=80,gravity=bottom/og/og-base.png?title=<%= URI.encode(title) %>&brand=agquant">

三、JSON-LD 结构化数据(让 Google 理解你)

JSON-LD = 一段 JS 对象,Google / Bing 读它就能结构化理解你的页面(不用 NLP 猜)。

3.1 Article schema(每页加这个)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "雪球结构详解:收益、风险、希腊字母",
  "description": "券商最受欢迎的看跌期权变种之一...",
  "image": [
    "https://cdn.agquant.com/og/snowball.png"
  ],
  "datePublished": "2026-07-20T08:00:00+08:00",
  "dateModified": "2026-07-25T10:00:00+08:00",
  "author": {
    "@type": "Person",
    "name": "Yuzhao",
    "url": "https://agquant.com/about/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "agquant.com",
    "logo": {
      "@type": "ImageObject",
      "url": "https://cdn.agquant.com/logo.png"
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://agquant.com/learning/otc-derivatives/product-snowball.html"
  },
  "inLanguage": "zh-CN",
  "keywords": "雪球,场外期权,Delta,结构化产品,PM"
}
</script>

3.2 Course schema(lesson 页面用)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "OTC 衍生品 14 节速通",
  "description": "从 IT 专家到 OTC 衍生品 PM 的转型课件",
  "provider": {
    "@type": "Organization",
    "name": "agquant.com",
    "sameAs": "https://agquant.com"
  },
  "hasCourseInstance": {
    "@type": "CourseInstance",
    "courseMode": "online",
    "courseWorkload": "PT14H",
    "inLanguage": "zh-CN"
  },
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "CNY"
  }
}
</script>

3.3 BreadcrumbList schema(导航)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "首页", "item": "https://agquant.com/" },
    { "@type": "ListItem", "position": 2, "name": "学习", "item": "https://agquant.com/learning/" },
    { "@type": "ListItem", "position": 3, "name": "OTC 衍生品", "item": "https://agquant.com/learning/otc-derivatives/" },
    { "@type": "ListItem", "position": 4, "name": "雪球结构", "item": "https://agquant.com/learning/otc-derivatives/product-snowball.html" }
  ]
}
</script>

3.4 FAQPage schema(FAQ 页面)

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "雪球结构会亏多少?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "最大亏损 = 名义本金 - 票息收入,假设敲入且到期未敲出..."
      }
    },
    {
      "@type": "Question",
      "name": "雪球和直接买股票区别?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "雪球是卖方策略(收权利金),股票是买方..."
      }
    }
  ]
}
</script>
Google Rich Results
加了 FAQPage schema 之后,Google 搜索结果会显示"展开"按钮,CTR 提升 10-30%


测试工具:Google Rich Results Test

四、sitemap.xml(让爬虫知道你所有页)

4.1 agquant.com 的 sitemap

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <!-- 主页 -->
  <url>
    <loc>https://agquant.com/</loc>
    <lastmod>2026-07-25T10:00:00+08:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- 学习首页 -->
  <url>
    <loc>https://agquant.com/learning/</loc>
    <lastmod>2026-07-25T10:00:00+08:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- OTC 衍生品主题 -->
  <url>
    <loc>https://agquant.com/learning/otc-derivatives/</loc>
    <lastmod>2026-07-20T08:00:00+08:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- 雪球文章 -->
  <url>
    <loc>https://agquant.com/learning/otc-derivatives/product-snowball.html</loc>
    <lastmod>2026-07-25T10:00:00+08:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- ... 几百个 url ... -->
</urlset>

4.2 sitemap 索引(如果页 > 5000)

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://agquant.com/sitemap-otc.xml</loc>
    <lastmod>2026-07-25</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://agquant.com/sitemap-elixir.xml</loc>
    <lastmod>2026-07-25</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://agquant.com/sitemap-blog.xml</loc>
    <lastmod>2026-07-25</lastmod>
  </sitemap>
</sitemapindex>

4.3 robots.txt(声明 sitemap + 屏蔽爬虫)

# /robots.txt
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/private/

# 明确 sitemap
Sitemap: https://agquant.com/sitemap.xml
Sitemap: https://agquant.com/sitemap-otc.xml

# 屏蔽坏爬虫
User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

# 百度爬虫友好
User-agent: Baiduspider
Allow: /
关于 SEO 爬虫
不要屏蔽 Googlebot / Bingbot / Baiduspider!很多站长误把"SEO 爬虫"当攻击者屏蔽。Ahrefs / Semrush 是 SEO 工具自己的爬虫,可以屏蔽节省带宽

五、IndexNow(秒级索引,CF 集成)

IndexNow = 你发布新页后,秒级通知 Bing / Yandex / Seznam 等搜索引擎。不需要等几天爬虫来

CF 原生支持——开启后所有页面 URL 改动自动 push 给 IndexNow。

5.1 开启(CF Dashboard)

  1. CF Dashboard → SEO → IndexNow → 启用
  2. CF 自动生成 API key → 写进 /.well-known/indexnow
  3. 所有 URL 改动自动通知

5.2 手动提交(也支持)

# 提交单 URL
curl -X POST "https://api.indexnow.org/indexnow?url=https://agquant.com/learning/otc-derivatives/product-snowball.html&key=<your-key>"

# 批量提交(最多 10K URL)
curl -X POST "https://api.indexnow.org/indexnow" \
  -H "Content-Type: application/json" \
  -d '{
    "host": "agquant.com",
    "key": "<your-key>",
    "urlList": [
      "https://agquant.com/learning/otc-derivatives/product-snowball.html",
      "https://agquant.com/learning/otc-derivatives/product-option.html"
    ]
  }'
IndexNow 真·价值
正常 Google 索引要 3-14 天,IndexNow 10 分钟。对"新发布的金融分析"、"突发新闻"、"限时活动" 场景尤其重要。


2024 年后 Google 也开始支持 IndexNow(虽然官方推荐用 Search Console API)。

六、Core Web Vitals(性能 = SEO)

Google 2021+ 排名因素LCP / FID / CLS(用户体验指标)。3 项都差 = 排名直接降。

指标含义
LCP (Largest Contentful Paint)主内容渲染时间< 2.5s> 4s
FID / INP (First Input Delay / Interaction to Next Paint)交互响应< 100ms> 300ms
CLS (Cumulative Layout Shift)布局跳动< 0.1> 0.25

6.1 agquant.com 实测(CF 边缘)

CF 自动帮你做:

  • HTTP/3 + QUIC(首屏 0-RTT)
  • Brotli 压缩(比 gzip 小 20%)
  • 边缘缓存(静态资源 100% 命中)
  • Image Resizing(自动 WebP)

实测 agquant.com/learning/(我刚跑了一下):

  • LCP: 0.4s(Google PageSpeed Insights)
  • CLS: 0(静态站没东西跳)
  • INP: 50ms

3 项全绿 = SEO 性能分 100。

七、图片优化(LCP 第一大杀手)

7.1 用 CF Image Resizing

<!-- 改前:原始 500 KB PNG -->
<img src="/og/snowball.png">

<!-- 改后:CF 自动 WebP + 800px + 85% quality -->
<img src="/cdn-cgi/image/format=auto,quality=85,width=800/og/snowball.png"
     width="800" height="420"
     loading="lazy"
     decoding="async"
     alt="雪球结构示意">

效果:500 KB → 30 KB(省 94%),LCP 提升 30-50%。

7.2 <img> 必备属性

<img
  src="..."              # 必填
  alt="..."              # 必填(SEO + 无障碍)
  width="800"            # 必填(防 CLS 跳动)
  height="420"           # 必填
  loading="lazy"          # 折叠下的图懒加载
  decoding="async"        # 不阻塞主线程
  fetchpriority="low"     # 折叠下的图低优先级
>

八、内部链接(Topic Cluster 模型)

Google 排名算法看 页面之间的关系。agquant.com 应该按”主题集群”组织:

Pillar Page(支柱页)
  https://agquant.com/learning/otc-derivatives/   ← 5 万字,覆盖 OTC 全部
  ├── 链接到 14 个 Cluster Page(集群页)

  ├──> 雪球结构(/product-snowball.html) ← 5000 字,深入
  │     ├──> 链接到:希腊字母 / Delta / Gamma / Vega
  │     ├──> 反向链接:4 个希腊字母文章
  │     └──> 内链策略:每章 5-10 个相关链接

  ├──> 期权基础(/product-option.html) ← 5000 字
  │     └──> ...

  └──> 风险指标(/risk-and-valuation.html) ← 5000 字
        └──> ...

  Pillar → Cluster(向下)
  Cluster → Pillar(向上:返回)
  Cluster ↔ Cluster(横向:相关主题)

关键原则

  1. Pillar 是 hub,Cluster 是 spoke——所有 Cluster 必须 link 回 Pillar
  2. Cluster 之间必须互链——“期权”和”希腊字母”互链
  3. 每页 5-15 个内链(少 = 主题孤立,多 = 模板化)
  4. 链接用关键词作 anchor(“雪球结构详解”而不是”点这里”)

## 八.5、超链接 title 优化(实战细节) 链接的 title 属性是 SEO 和无障碍常被忽略的小细节: ```html 阅读 风险指标详解


## 九、Search Console + Webmaster Tools(数据驱动)

### 9.1 Google Search Console

1.  访问 \[search.google.com/search-console\](https://search.google.com/search-console)
2.  添加属性 `agquant.com`
3.  验证方式:DNS TXT 记录(CF 一键加)
4.  提交 sitemap:`https://agquant.com/sitemap.xml`

每周看:

-   **Performance → Search Results**:CTR、平均排名、点击数
-   **Coverage**:哪些页没被索引
-   **Experience → Core Web Vitals**:性能分
-   **Links**:外部谁链你

### 9.2 Bing Webmaster Tools

1.  访问 \[bing.com/webmasters\](https://www.bing.com/webmasters)
2.  添加 site(用 IndexNow key 自动验证)
3.  提交 sitemap

### 9.3 百度搜索资源平台

1.  访问 \[ziyuan.baidu.com\](https://ziyuan.baidu.com)
2.  验证站点(文件验证 / CNAME 验证)
3.  提交 sitemap + 主动推送(API)

百度主动推送(每天)

curl -X POST “https://data.zz.baidu.com/urls?site=agquant.com&token=YOUR_TOKEN
-H “Content-Type: text/plain”
—data-binary @urls.txt

urls.txt 格式:每行一个完整 URL


 ## 十、CDN 缓存策略(SEO 隐藏的"性能 buff") CDN 缓存命中率 = 50% → 95% = 你的 LCP 立刻 5x 快。 ### 10.1 CF Cache Rules(按路径分级) ```
CF Dashboard → Caching → Cache Rules → Create rule Rule 1: 静态资源(永久缓存 1 年) - URL: agquant.com/learning/\*.html - Cache eligibility: Eligible - Edge TTL: 1 month - Browser TTL: 1 day - Cache key: include "Accept-Encoding" Rule 2: OG 图(永久缓存) - URL: agquant.com/og/\* - Edge TTL: 1 year - Cache key: ignore query string Rule 3: sitemap.xml(5 分钟) - URL: agquant.com/sitemap\*.xml - Edge TTL: 5 min - Browser TTL: 1 hour
``` ### 10.2 stale-while-revalidate(性能 vs 实时) ```
# robots.txt 或 .htaccess(边缘层) Cache-Control: public, max-age=300, stale-while-revalidate=86400 # 解释:5 分钟内用缓存,5 分钟后用旧的 + 后台更新
``` agquant.com 默认这样,CF 自动处理。 ### 10.3 验证缓存命中率 CF Dashboard → Analytics → Caching → 看 hit ratio。 ## 十一、agquant.com 实战:30 分钟让流量翻倍 按顺序做这些(每步都有可量化的 SEO 收益): 1. \*\*5 分钟\*\* — 加 Article + BreadcrumbList JSON-LD 到每页 2. \*\*10 分钟\*\* — 加 OG / Twitter Card 标签 3. \*\*5 分钟\*\* — 写 `sitemap.xml`(自动 build) + 提交 Google/Bing/百度 4. \*\*2 分钟\*\* — 启用 CF IndexNow 5. \*\*5 分钟\*\* — 替换所有 &lt;img> 用 CF Image Resizing 6. \*\*3 分钟\*\* — 加 Google Search Console + 提交 sitemap \*\*30 分钟搞定,72 小时内百度 / Google 重新爬所有页\*\*——核心关键词排名一般 1-2 周后看到效果。 ## 十二、测验(10 道) 

<Quiz n="1" q='1. agquant.com 一个金融文章页的 title 应该多长?' options='["不限","50-60 字符(百度 30 字符)","100 字符","200 字符"]' answer="1" />

<Quiz n="2" q='2. 哪种结构化数据能让 Google 搜索结果出现"展开"按钮?' options='["Article","FAQPage","BreadcrumbList","Course"]' answer="1" />

<Quiz n="3" q='3. IndexNow 通知的搜索引擎不包括?' options='["Bing","Yandex","Google (官方 API 不一样,但 2024+ 也开始支持)","百度 (百度用自己的主动推送 API)"]' answer="2" />

<Quiz n="4" q='4. Core Web Vitals 3 项是?' options='["LCP / FID / CLS","DOM / CSS / JS","TTFB / TTL / Cache","DNS / TCP / TLS"]' answer="0" />

<Quiz n="5" q='5. CF Image Resizing 的 format=auto 作用?' options='["强制 WebP","CF 自动返回浏览器支持的最优格式(WebP/AVIF/JPEG)","压缩成 zip","加密图"]' answer="1" />

<Quiz n="6" q='6. agquant.com 的 sitemap 应该多久更新一次?' options='["每月","每天(CF IndexNow 触发)","每年","不更新"]' answer="1" />

<Quiz n="7" q='7. Pillar-Cluster 模型中,Pillar 应该是?' options='["小而精的子页","大而全的支柱页(覆盖主题全部)","外链","无"]' answer="1" />

<Quiz n="8" q='8. agquant.com 用 微信开放平台 做登录,费用?' options='["免费","300 RMB/年(个人开发者)","$99/年","$999/年"]' answer="1" />

<Quiz n="9" q='9. Topic Cluster 内部链接原则?' options='["每页只链 1 个","每页 5-15 个内链,Cluster 互链且链回 Pillar","每页 100 个","不互链"]' answer="1" />

<Quiz n="10" q='10. CF 默认 robots.txt 处理?' options='["自动生成","不处理(要自己上传到根目录)","禁用所有爬虫","禁用搜索引擎"]' answer="1" />

**下一步:**看 [Lesson 0010 · Auth 系统速通](./0010-auth-essentials)(零后端 + 反爬虫 + 不用微信 300/年)。