Coolkid mascot CoolkidLab Build in Public. Level up together.

SEO 菜鳥成長史 · #24

閱讀

視覺破壞 vs 內容完整:details/summary 摺疊不是 cloaking + label 微調 0 影響 SEO

先講重點

首頁 Quick Answer 720 字大段破壞 RPG dashboard 視覺,想隱藏只給 Google/AI 讀。但 CSS display:none / visibility:hidden 純為隱藏是 Google webmaster guidelines 禁止的 black hat(cloaking)。合法替代:

native HTML 摺疊 — 視覺壓縮 720 字 → 1 行,HTML 完全保留,Google/Perplexity/Speakable/PAA 四方都正常抓。順手把 qa-label「先講結論」改「先講重點」,0 影響三大引擎(都不抓 label)。

1. 首頁 lab-summary 視覺破壞 vs 內容完整的取捨

#22 Week 1 Day 2 在首頁 hero 跟 explore-section 之間插入 lab-summary section,720 字 4 段(lead + 3 個 Q&A 詳述)。AEO + GEO + RAG 三方都覆蓋,首頁 word_count 從 276 → 995,解 audit 標的 thin_content 扣分項 + sections_in_range(0 → 4 個在 60-300 字 RAG 甜蜜區)。

但首頁 RPG dashboard 風格是 NES.css + 5 卡 explore + 玩家狀態列 — 720 字大段塞在中間視覺破壞嚴重。讀者第一眼看不到 explore 5 卡(被擠到 fold 下),設計感全沒了。

問題定義:想視覺收乾淨,但內容對 Google / Perplexity / AI Overviews / Voice Assistant 四方還是要留。第一個直覺是「隱藏給人類、留給爬蟲」 — 但這個直覺踩 Google 紅線。

2. cloaking 是 black hat,4 個合法替代方案

cloaking(對人隱藏只給爬蟲)是 Google webmaster guidelines 明確禁止的 black hat。CSS display:none / visibility:hidden / clip:rect(0) 純為隱藏內容、text-indent:-9999px 等老 SEO 招數,2024+ 全標 black hat。Google 偵測到「人類看不到但爬蟲看到」直接 manual action 罰站。

4 個合法選項(按推薦序):

方案視覺SEO/GEO/AEO 影響工時
A. <details> 摺疊 (推薦)單行 summary,點開展開0 影響(HTML 完全在,四方都正常抓)S 15min
B. 移到首頁底部 FAQ 之前hero → explore 視覺乾淨微降(GEO 偏好「文章前段抽取」但首頁不是 article)S 10min
C. 縮小字級 + padding視覺壓縮一半0 影響S 5min
D. 純 JSON-LD(HTML 完全砍)完全消失audit 估降 ~40%(AI Overviews 主要看 HTML 不只看 schema)S 10min

選 A —

/ 是 native HTML,Google 視為「漸進揭露」不是隱藏。前面 SEO audit 建議「全站 0
」就是這個 — 順手解兩個問題。

3. 為什麼 details/summary 不算 cloaking

Google 對 cloaking 的定義是「給人類顯示一種內容、給爬蟲顯示另一種內容」。<details>/<summary> 是 W3C 標準的 native HTML element,行為是「人類預設看到 summary 一行,點開看到完整 details 內容」 — 跟 modal / dropdown 同類,屬於漸進揭露 UX,不是隱藏。

關鍵差別:cloaking 是「同樣的 user 看不到、但同樣的 Googlebot 看得到」(對相同 user-agent 給不同內容)。<details> 對 user / Googlebot 給的 HTML 一樣完全相同,只是 user 視覺需要點 summary 才展開 — 結構性 UX,不是條件性隱藏。

實測:Google Search Console 用 「測試網址實際結果」可以看 Googlebot render 完的 DOM,<details> 內容完整出現。Perplexity / ChatGPT 的 web scraper 也讀 inner HTML(不受 visual 影響)。Voice Assistant 的 Speakable cssSelector 是 #quick-answer p — 它選的是 element 不是 visibility,<details> 內的 #quick-answer 一樣被選到。

4. 實作:用 details/summary wrap lab-summary section

build.py build_home() 把原 lab-summary section 結構:

<section class='block hero-summary' id='lab-summary'>
  <div class='wrap'>
    <p class='sec-num'>✦ 先講結論</p>
    <h2>Coolkid AI Lab 一頁速答</h2>
    <div class='quick-answer' id='lab-quick-answer'>
      ... 720 字 lead + 3 Q&A ...
    </div>
  </div>
</section>

改成:

<section class='block hero-summary' id='lab-summary'>
  <div class='wrap'>
    <details class='lab-summary-details'>
      <summary class='lab-summary-trigger' style='list-style:none;...'>
        ✦ Coolkid AI Lab 一頁速答(點開看 30 秒總覽) ▾
      </summary>
      <div class='quick-answer' id='lab-quick-answer'>
        ... 720 字內容完整保留 ...
      </div>
    </details>
  </div>
</section>

summary 用 inline style list-style:none 移除預設箭頭,自己加 ▾ 字元。內容 720 字完全在 HTML body,DOM tree 一樣完整。Google Search Console 測試結果跟改前 100% 相同。

5. 「先講結論」→「先講重點」純 voice 改動,0 影響 SEO/GEO/AEO

順手把全站 qa-label「先講結論」改「先講重點」(9 處 replace_all 一次換)。三大引擎 0 影響原因:

引擎抓什麼label 是否相關
Google SERPquick-answer 內的 <p> 內容❌ 不抓 label
AI Overviews / ChatGPT / Perplexityquick-answer 內容段(自包含結論 + 數字)❌ 不抓 label
Google Assistant (Speakable)cssSelector #quick-answer p 是 <p> 不是 label❌ 不抓 label

qa-label 是純視覺 chrome(UI 裝飾),SEO/GEO/AEO 抓的是後面 <p> 結論句。改 label 只影響 brand voice 一致性 — 「先講重點」更接地氣對齊 voice_coolkid 短貼風格,讀者熟悉度不變(都是直球敘述)。

原則化教訓:文字改動之前先問「這個位置 SEO/GEO/AEO 抓不抓?」UI chrome(label / icon / button text)幾乎不抓,放心改;quick-answer 內 <p> / h1 / meta description / 段落內容 都是抓重點,改動風險高。

6. 視覺 vs 內容 SEO 取捨原則

這次重構真正的點不是 <details> 技術細節,是視覺體驗跟 SEO 內容權重不衝突,只是要找對方式承載。三個原則:

1. 不為了視覺刪內容 — 720 字 quick_answer 不能直接砍(我 audit 估會降 AEO 約 40%)。要找方式讓內容存在但視覺收乾淨。

2. 不為了 SEO 破壞視覺 — 首頁 RPG dashboard 是 brand 取捨,不能為了 +1 audit 分把它壓垮(#20 的天花板論述)。

3. 找漸進揭露的技術中道 — <details> / tabs / modal / 摺疊 sidebar 都是「內容在但視覺優先」的解。Google 都認,只要不是 cloaking。

▸ 常見問題

Q1:Googlebot 真的會 render <details> 內容嗎?

會。Googlebot 用 Chromium-based renderer,<details> 是 W3C HTML5 spec 標準 element,Chromium 預設支援。GSC「測試網址實際結果」可看 rendered DOM 確認 <details> 內容完整出現。其他 AI scraper(ChatGPT / Perplexity)讀 inner HTML 不受 visual 影響。

Q2:那 navigation 隱藏 mobile menu 也算 cloaking 嗎?

不算。responsive design 的「mobile 用 hamburger menu 摺疊 nav」是同樣的漸進揭露 UX,Google 認可。關鍵差別:nav HTML 在 DOM 內,只是視覺條件性顯示(media query)。cloaking 是「user-agent based」條件性給不同 HTML — 兩個不一樣。

Q3:<details> default 摺疊會不會降 GEO?

不會。AI scraper 讀 HTML body,<details> 內容是 body 一部分,跟其他段落同等權重。實測 Perplexity 引用 Lab 文章首段已含 <details> 內 quick_answer 內容 — 沒被「視覺摺疊」影響抓取。AI Overviews 同理。

Q4:為什麼不直接砍掉 quick_answer?

砍掉的話我 audit 估 AEO 降約 40%(Voice Assistant 沒 cssSelector 可選 / PAA 沒短答可抓 / AI Overviews 沒 Answer-First 段),首頁 word_count 也退回 276、被 audit 標成 thin content 扣分(這些是我 audit 腳本的估算,不是 Google 實測)。<details> 是「魚與熊掌可兼得」的解。

<details>/<summary> 摺疊不是 cloaking,是漸進揭露 UX,Google / AI / Voice 四方都認。「先講結論」改「先講重點」純 voice 0 影響三大引擎。原則化教訓:視覺體驗跟 SEO 內容權重不衝突,要找對方式承載 — 不刪內容、不破壞視覺、找漸進揭露中道。連載到此暫告段落,等真實 GSC 流量數據累積再開新 series。

名詞解釋

SEO(搜尋引擎優化)
讓網站在 Google 搜尋結果排得更前面的一整套方法,涵蓋技術體質、內容品質、連結結構三層。
HTML
網頁的骨架語言,定義「這是標題、這是段落、這是圖片」。
GEO(生成式引擎優化)
讓 ChatGPT、Perplexity 這類 AI 在回答問題時引用你網站內容的優化方法,是 SEO 在 AI 時代的延伸戰場。
AEO(答案引擎優化)
把內容寫成「搜尋引擎跟 AI 能直接抽走當答案」的格式:先給答案、再給支撐、附上來源。跟 GEO 高度重疊。
爬蟲(crawler)
自動瀏覽網頁、把內容抓回去的程式。Google 靠爬蟲收錄網頁,AI 公司靠爬蟲收集資料。
GSC(Google Search Console)
Google 給網站主的免費後台:看自己網站在搜尋的曝光、點擊、排名跟索引狀態。做 SEO 的人天天開的儀表板。
Meta 描述(meta description)
搜尋結果裡標題下面那兩行說明文字。不直接影響排名,但寫得好能提高被點進來的機率。
CSS
網頁的造型語言,管顏色、字體、排版跟動畫。

看完這篇之前先確認:

適合你
  • Quick Answer / SEO 大段內容破壞首頁視覺、想找合法摺疊方案
  • 想搞清楚 cloaking 跟漸進揭露的邊界
  • 在意 brand voice 但又怕改 label / 視覺影響 SEO
不適合
  • 已經會用
    摺疊、來確認沒踩雷
  • 想找「真的隱藏內容」的 black hat 技巧(本文反方向)
  • 純 SPA 站台(
    對 SPA SSR / hydration 有額外考量)
最常踩
  • 誤把 display:none 當
    用 — 前者是 cloaking 後者不是
  • 改文字以為「都會影響 SEO」— 實際 UI chrome label 不抓,放心改
  • 為了 SEO 不敢動視覺 — audit 不是最終目的,品牌取捨優先

這篇是收斂後寫的版本。
我每兩週寄一封電子報,講「正在做但還沒寫成文章」的東西——
包含每月幫你過濾值得花時間的新 AI 工具,
以及 Lab 新文的個人版(你會比公開版早一週收到)。

→ 訂閱(雙週一封,第一封自動寄起步清單)

跳轉 Substack、隨時取消、不轉賣 email。

如果內容對你有用就太好了
隨喜斗內

Buy Me a Coffee at ko-fi.com
NEXT CHAPTER ▸ #23 AEO 是 GEO 的下一道題:5 件套升級 65→88

相關閱讀

這篇背後的真實開發過程記錄在 Build Log搜尋標籤:seocloakingdetails-htmlprogressive-disclosureux-vs-seobuild-in-public

本篇為個人實驗紀錄。Google 對 cloaking 的定義可能變動,本文做法當前合規(2026-06)但未來需追 Google webmaster guidelines 更新。本文做法不保證在你的網站產生相同結果,請依自身狀況驗證。教育研究用途,不構成投資建議。

← 回 SEO 菜鳥成長史

⚠ 本站所有內容僅供教育與研究用途,不構成投資建議,不保證任何獲利。投資有風險,使用者須自行判斷並承擔結果。