你的 logo、產品圖、影片片段也是品牌的一部分。AI 看不懂這些,等於它對你的品牌只認識一半。
前 12 章談的都是文字 GEO:AI 怎麼讀你的網站文字、怎麼引用你的 FAQ、怎麼比較你跟競品的描述。但 2025 起,大型 AI 平台的多模態能力已成熟到一個門檻 — Gemini 2.5 / GPT-4o vision / Claude 3.5 Sonnet vision 可以直接讀網站圖片並生成描述。
於是新問題浮現:
logo.png」或空字串。AI 直接看圖判斷,但拿不到結構化提示,容易把品牌 logo 當「彩色文字塊」描述<script type="application/ld+json"> 標記,AI 不知道這張圖跟品牌的關係(creator / contentUrl / encodingFormat)文字 GEO 解決了「AI 怎麼引用你的文字」,多模態 GEO 解決「AI 怎麼描述你的視覺」。兩者並行,品牌在 AI 平台的能見度才完整。
Tier 0 是百原 GEO Platform 的銷售漏斗起點:訪客在 geo.baiyuan.io/diagnose 填 1-3 個 URL + email + 公司 + 9 大產業之一,90 秒內取得 5 維度視覺健康分數。
flowchart LR
Visitor[訪客填表單] --> Crawl[爬 1-3 頁]
Crawl --> Parse[抽 img / video / iframe<br/>+ JSON-LD]
Parse --> Score[5 指標計分]
Score --> Save[(diagnostic_leads<br/>industry_benchmarks)]
Save --> Email[寄報告 Email<br/>給訪客 + admin]
Email --> CTA[CTA 升級 Tier A]
Fig 13-1: Tier 0 是 lead generation 工具,不寄 PDF,純線上頁面 + email 摘要,降低交付成本。
UNIQUE INDEX (LOWER(email), LOWER(company_website), DATE(created_at)))v0.1 刻意不做 PDF:
PDF 留給 Tier A 月報用 — 那是付費客戶才需要的離線資產。
Tier A 是付費訂閱,每月補強服務,4 步驟 SOP:
visual_assetsvisual_audit_reportsai_alt_text(含品牌名 + 產品型號)ImageObject / VideoObject JSON-LD,寫回 schema_jsonld 欄位每一步都有獨立 endpoint,可分次執行。每月 1 號 17:00 cron 自動寄月報給 report_recipients。
-- 視覺資產
visual_assets (
asset_id, brand_id, page_url, asset_type, -- img/video/iframe/og_image
source_url, alt_text, ai_alt_text, caption,
schema_jsonld JSONB, transcript,
audit_score, audit_issues JSONB,
hosting_tier INT, -- 0=未啟用 / 2=CF Workers
UNIQUE(brand_id, source_url)
);
-- 全站審計快照
visual_audit_reports (
report_id, brand_id, scan_date,
alt_coverage, schema_coverage, transcript_coverage,
ai_accessible, brand_mention_rate,
health_score,
prev_health_score, delta,
critical_issues JSONB, recommendations JSONB,
UNIQUE(brand_id, scan_date)
);
-- per-brand 託管設定
brand_visual_configs (
brand_id PK,
hosting_tier INT DEFAULT 2, -- 預設 Workers
monthly_report BOOLEAN,
report_recipients TEXT[],
brand_keywords TEXT[] -- Claude vision 補 alt 時強制提及
);
健康分數 0-100,5 個指標加權:
health_score = round((
0.25 × alt_coverage -- alt 覆蓋率
+ 0.25 × schema_coverage -- Schema.org 結構化標記
+ 0.20 × transcript_coverage -- 影片字幕
+ 0.15 × ai_accessible -- robots.txt 4 大 AI bot 可達
+ 0.15 × brand_mention_rate -- alt / schema 提及品牌名
) × 100, 1)
| 指標 | 計算方式 |
|---|---|
alt_coverage |
圖片中 LENGTH(alt_text) >= 5 的比例(排除檔名格式) |
schema_coverage |
全部 asset 中 schema_jsonld IS NOT NULL 比例 |
transcript_coverage |
影片中 transcript IS NOT NULL 比例 |
ai_accessible |
(4 - blockedBots) / 4,從 robots.txt 分析 GPTBot / ClaudeBot / Google-Extended / PerplexityBot 是否被 disallow |
brand_mention_rate |
alt / schema 中提及 brand_keywords 比例(per pair 計算) |
實測 100 個台灣品牌平均健康分數 30-45 分(2026Q1),明顯低於文字 GEO 同期 60-75 分,佐證多模態是台灣中小企業的明顯破口。
對比過 GPT-4o vision / Gemini 1.5 Pro / Claude 3.5 Sonnet:
選 Claude haiku-4.5(輕量版)為主,Sonnet 作 fallback。
你是視覺 SEO 專家。請為這張圖片生成一段繁中 alt 文字,要求:
- 主動描述視覺內容(顏色、構圖、人物、場景),而非僅寫檔名
- 提及品牌「{brand_name}」(若視覺中有品牌符號或產品)
- 若是「{keywords}」相關產品,請明確帶入名稱
- 長度 30-80 字
- 只回傳 alt 文字,不要加引號 / 解釋 / 標題
關鍵設計:
brand_visual_configs.brand_keywords):強制 AI 在 alt 提及客戶要的品牌詞Anthropic credit balance 用完時 API 回 400 + JSON 錯誤訊息。早期實作把 fetch 包 try/catch 吞錯,UI 只顯示「Claude vision 回應為空」— 客戶以為金鑰錯,實際是餘額。修法:解析 error.message 用 throw 穿透回 caller,UI 直接顯示 Anthropic 原文(credit balance is too low),客戶 30 秒內就知道去 Plans & Billing 加值。
{
"@context": "https://schema.org",
"@type": "ImageObject",
"contentUrl": "https://baiyuan.io/products/hero.png",
"name": "百原 GEO Platform 主視覺 — 5 大 AI 平台儀表板",
"description": "百原 GEO Platform 主視覺 — 5 大 AI 平台儀表板",
"representativeOfPage": false,
"encodingFormat": "image/png",
"creator": {
"@type": "Organization",
"name": "百原科技",
"url": "https://baiyuan.io"
}
}
representativeOfPage 只給 og_image(每頁一張)用 true,其他 false。encodingFormat 從副檔名推斷。
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "百原 GEO 上線 90 秒導覽",
"description": "百原 GEO Platform 90 秒導覽 — 監測 / 評分 / 修復",
"contentUrl": "https://www.youtube.com/watch?v=xxx",
"embedUrl": "https://www.youtube.com/embed/xxx",
"thumbnailUrl": "https://i.ytimg.com/vi/xxx/hqdefault.jpg",
"transcript": "[transcript text or __inline_track__]",
"creator": {"@type": "Organization", "name": "百原科技"}
}
YouTube / Vimeo 自動補 embedUrl / thumbnailUrl。transcript v0.1 有抓到 inline track 才填,否則留空(v0.2 補 Whisper fallback)。
每個 visual_asset 都產 schema 寫到 schema_jsonld,前端用 getInjectableSchema(brandId) 取出按 page_url 分組,可:
<head>:Tier 0 / 不託管客戶手動操作| Tier | 名稱 | 狀態 | delivery |
|---|---|---|---|
| 0 | 未啟用 | v0.1 | 只審計,不送達 |
| 1 | CDN 全託管 | v0.2 規劃 | 圖片搬 baiyuan CDN(實作中) |
| 2 | Cloudflare Workers | v0.1 預設 | CF 邊緣注入 alt + Schema 到 HTML |
| 3 | 自爬寫回 | v0.2 規劃 | 寫回客戶 CMS / sitemap(實作中) |
v0.1 上線只有 Tier 2 是真的可運作 — Tier 1 / 3 留 v0.2。為避免誤導,UI 暫時隱藏 Tier 1 / 3,DEFAULT 改 2。
關鍵:DB 設定 hosting_tier=2 不等於注入已生效。客戶必須完成 CF 端 DNS 與 Worker 部署。UI 在選擇 Tier 2 時顯示常駐警示卡列出三個必要步驟,避免客戶以為「按下去就好了」。
v0.1(2026-04-25 上線)已達 9.5/15 工作日完成度,留下三項 v0.2 處理:
| 項目 | 工作日 | 阻擋原因 |
|---|---|---|
| A1-06 PDF 內圖 | 2 | 需 Python pdfplumber + 跨容器調用 |
| A3-04 transcript + Whisper fallback | 3 | YouTube caption API quota + Whisper 成本估算 |
| A3-05 CDN 上傳 pipeline | 2 | Cloudflare R2 setup + 縮圖 pipeline |
v0.2 預計 2026Q3 上線,屆時 5 維度全部從審計層擴及修復層。
brand_keywords,credit 用完用 throw 穿透錯誤導覽:← Ch 12: 限制與未來 · 📖 目次 · 附錄 A:術語表 →