紀錄工作經驗、相關知識,解決技術相關問題。

HTML, 新手 Jamp Holes

HTML map 標籤在 SEO 的盲點:影像地圖(Image Map)area 的 href 與 alt 正確寫法

HTML map 標籤在 SEO 的盲點:影像地圖(Image Map)area 的 href 與 alt 正確寫法 特色圖片

在日常專案開發中,時常會遇到行銷團隊或 PM 拿著 Google Search Console 報表跑來問:「我們明明在首頁放了一張超精美的全臺門市分佈大圖,並用 HTML map 標籤(<map>)切了 20 個縣市分店的點擊熱區,為什麼這些分店頁面在報表的內部連結裡幾乎看不到首頁?」
直接給你核心解答:Google Search Central 的〈讓連結可供檢索〉文件寫明,Google 通常只能檢索帶有 href 屬性的 <a> 元素,文件完全沒有提到影像地圖的 <area>。換句話說,<area href> 能不能被 Google 當成連結檢索,官方沒有保證;用 onclick 取代 href 的熱區更是官方列為不建議的寫法。最穩健的做法是:<area> 照 HTML 規格寫好 href 與 alt,同時在圖片旁邊補上一組標準的 <a href> 文字連結。
在上一篇我們搞懂了 HTML map 標籤與 DOM 樹狀結構的對應關係;這篇實作要點就要從 Google 官方文件與 HTML 規格出發,拆解 HTML map 標籤在 SEO 上的盲點,讓你的影像地圖同時兼顧視覺互動與搜尋引擎可檢索性!


⚡ 快速簡單使用(30 秒複製即用範本)

如果你需要在網頁中使用 <map> 影像地圖,又希望 Google 能穩定檢索到每個熱區指向的頁面,請直接複製下方範本修改:熱區本身符合 HTML 規格,並另外提供 Google 官方保證可檢索的 <a href> 文字連結。

<figure class="seo-image-map">
  <!-- 1. 視覺底圖:描述性 alt、明確 width/height 降低 CLS 版面位移 -->
  <img
    src="/images/taiwan-branches-map.webp"
    alt="全臺旗艦門市據點導覽地圖:涵蓋台北、台中、高雄三大服務中心"
    width="800"
    height="500"
    usemap="#branch-seo-map"
  >

  <!-- 2. 影像地圖容器:每個 <area> 同時具備真實 href 網址與描述性 alt -->
  <map name="branch-seo-map" id="branch-seo-map">
    <!-- HTML 規格:帶 href 的 <area> 必須有 alt,alt 就是這個超連結的文字 -->
    <area
      shape="rect"
      coords="420,40,580,140"
      href="https://example.com/branches/taipei"
      alt="台北信義旗艦店:提供企業雲端架構諮詢與現場技術支援"
      title="前往台北信義旗艦店詳細資訊"
    >
    <area
      shape="rect"
      coords="260,200,440,300"
      href="https://example.com/branches/taichung"
      alt="台中七期營運中心:中台灣軟體開發與系統整合基地"
      title="前往台中七期營運中心詳細資訊"
    >
    <area
      shape="circle"
      coords="240,410,65"
      href="https://example.com/branches/kaohsiung"
      alt="高雄亞灣研發中心:南台灣 AI 與高可用性機房服務據點"
      title="前往高雄亞灣研發中心詳細資訊"
    >
  </map>

  <!-- 3. 雙保險:在圖片下方附上標準 <a href> 文字連結,兼顧手機點擊與 Google 檢索 -->
  <figcaption class="map-text-links">
    快速前往各區據點:
    <a href="https://example.com/branches/taipei">台北信義旗艦店</a> |
    <a href="https://example.com/branches/taichung">台中七期營運中心</a> |
    <a href="https://example.com/branches/kaohsiung">高雄亞灣研發中心</a>
  </figcaption>
</figure>

💡 3 秒檢查重點:
帶 href 的 <area> 一定要寫 alt:<area> 沒有結束標籤、不能包文字,WHATWG HTML 規格規定此時 alt 必須存在,它就是這個超連結的文字。
不要只寫 onclick 不寫 href:Google 官方文件把「只靠 onclick 跳轉」列為不建議寫法,必須提供真實 URL 的 href;重要頁面另外用 <a href> 文字連結確保可被檢索。


一、 5 秒鐘掌握:一般 a 超連結 vs. map 內 area 熱區之 SEO 對照表

為什麼同樣是「點擊後跳轉網頁」,一般的 <a href> 連結在官方文件裡有明確的檢索保證,而 HTML <map> 標籤 的熱區卻常常變成 SEO 盲區?下方速查表整理 Google 官方文件與 HTML 規格對兩者的說明:

SEO 檢索維度標準文字超連結 (<a href="...">)影像地圖熱區 (<map> 內的 <area>)新手最常犯的錯誤
連結文字來源標籤內部的文字節點(如 <a>台北門市</a>),Google 文件明確以此作為錨點文字<area> 沒有內部文字,HTML 規格以 alt 屬性作為連結文字;Google 文件未說明如何處理❌ 漏寫 alt(違反 HTML 規格),或只寫 alt="link1" 這種無法描述目標頁的文字
爬蟲連結探索 (Link Discovery)Google 文件明確保證可檢索帶 href 的 <a>Google 文件未提及 <area>,沒有官方檢索保證❌ 用 href="#" 搭配 JS onclick="goTo()",屬於 Google 文件列為不建議的寫法
圖片搜尋 (Google 圖片)<a> 包住 <img> 時,Google 以 <img> 的 alt 作為該連結的錨點文字底圖 <img> 透過 usemap="#name" 綁定熱區;Google 靠 <img> 的 alt、檔名與周邊文字理解圖片❌ 底圖 <img> 漏寫 alt,或在 alt 裡塞滿關鍵字
行動裝置 (Mobile-First)隨 RWD 文字自然換行,觸控目標清晰coords 以 CSS 像素計算、不會跟著圖片縮放,在手機小螢幕上容易偏移❌ 未在 <figure> 底部提供輔助文字連結,手機使用者難以點中熱區

二、 深入底層:Google 文件與 HTML 規格怎麼看 map 與 area?

搜尋引擎爬蟲不會拿著滑鼠去圖片座標 (420, 40) 上面點點看會發生什麼事,而是解析 DOM 樹狀結構中的標籤與屬性。

1. 把影像地圖拆成兩件事來看

一組 <img usemap="#..."> 與 <map> 在 SEO 上可以拆成兩個面向:

  • 圖片本身:Google 圖片的官方建議把 alt 視為描述圖片最重要的屬性,並搭配描述性檔名與周邊文字。
  • 熱區連結:每個 <area href> 指向的頁面。Google〈讓連結可供檢索〉文件只保證 <a href>,沒有提到 <area>,所以重要頁面不能只靠熱區當唯一入口。

2. area 的 alt 在規格與 Google 文件中的定位

根據 Google Search Central 官方可檢索連結要點(Make your links crawlable) 以及 WHATWG <area> 規範:

  • 在一般文字連結 <a href="/cloud-hosting">高可用性雲端主機方案</a> 中,Google 會擷取 高可用性雲端主機方案 這串文字作為 Anchor Text(錨點文字);若 <a> 包的是圖片,Google 文件寫明會改用 <img> 的 alt 作為錨點文字。
  • 但是在 HTML <map> 標籤 中,<area> 的內容模型是「Nothing」、沒有結束標籤,語法上不能寫 <area>高可用性雲端主機方案</area>。
  • 因此 WHATWG 規格規定:<area> 帶有 href 屬性時,alt 屬性必須存在,它就是該超連結的文字;沒有 href 時則不得寫 alt。螢幕閱讀器也依此讀出熱區用途。
  • 至於 Google 是否把 <area> 的 alt 當作錨點文字,官方文件沒有說明。實務上把 alt 寫成能描述目標頁的文字,同時提供 <a href> 文字連結,就不必依賴沒有官方保證的行為。

三、 實作程式碼對決:從「SEO 盲區」重構為「可檢索的影像地圖」

讓我們看一個真實企業網站常見的反面教材,並一步步將它重構為符合 HTML 規格與 Google 可檢索建議的程式碼。

1. ❌ 常見的 SEO 災難寫法(爬蟲讀不懂的「三無」影像地圖)

許多工程師在趕工時,會寫出下面這種「視覺上能點,但 SEO 卻是零分」的程式碼:

<!-- ❌ 錯誤示範:這是讓 SEO 顧問看到會吐血的寫法 -->
<div class="banner-box">
  <!-- 錯誤 1:<img> 沒有 alt,也沒有 width/height,載入時版面會跳動 (CLS) -->
  <img src="/img/2026_promo_final_v3.jpg" usemap="#promo">

  <map name="promo">
    <!-- 錯誤 2:沒有標準 href,改用 onclick 觸發 JS 跳轉,Google 無法可靠檢索 -->
    <area shape="rect" coords="0,0,300,200" onclick="window.location.href='/sale/laptops'">

    <!-- 錯誤 3:有寫 href,但完全沒寫 alt,違反 HTML 規格,連結也沒有任何文字說明 -->
    <area shape="rect" coords="301,0,600,200" href="/sale/monitors">
  </map>
</div>

2. 🟢 生產環境等級的 SEO 友善 map 最佳實踐

要讓這張影像地圖可被正確解讀,我們必須補齊 描述性 alt、真實 href、防 CLS 尺寸宣告,以及語意化 <figure> 輔助文字連結:

<!-- 🟢 正確示範:兼顧連結可檢索性、圖片搜尋與 Core Web Vitals 的標準架構 -->
<figure class="promo-map-container" aria-labelledby="promo-map-caption">
  <!-- 1. 明確指定 width 與 height 鎖定長寬比,降低 CLS 版面位移 -->
  <img
    src="/images/2026-hardware-buying-guide-map.webp"
    alt="2026 創作者電腦硬體選購要點:包含商務筆電、4K 專業校色螢幕與人體工學鍵盤專區"
    width="900"
    height="450"
    loading="eager"
    fetchpriority="high"
    usemap="#hardware-guide-map"
  >

  <!-- 2. 每個 <area> 都使用真實可檢索 URL,alt 描述目標頁內容 -->
  <map name="hardware-guide-map" id="hardware-guide-map">
    <area
      shape="rect"
      coords="20,30,430,420"
      href="/categories/creator-laptops"
      alt="創作者高效能商務筆電專區:搭載最新處理器與獨立顯卡"
    >
    <area
      shape="rect"
      coords="450,30,880,220"
      href="/categories/4k-color-accurate-monitors"
      alt="4K 專業廣色域校色螢幕推薦:Delta E 小於 2 的設計首選"
    >
    <area
      shape="rect"
      coords="450,240,880,420"
      href="/categories/ergonomic-mechanical-keyboards"
      alt="工程師人體工學機械式鍵盤:長時間寫程式不疲勞"
    >
  </map>

  <!-- 3. 結合可見的文字摘要與 HTML 連結,為爬蟲與手機用戶提供可靠入口 -->
  <figcaption id="promo-map-caption" class="promo-map-summary">
    <strong>硬體採購分區快速導覽:</strong>
    您可以直接點擊上方圖示,或透過文字連結瀏覽
    <a href="/categories/creator-laptops">創作者高效能商務筆電</a>、
    <a href="/categories/4k-color-accurate-monitors">4K 專業校色螢幕</a> 以及
    <a href="/categories/ergonomic-mechanical-keyboards">人體工學機械式鍵盤</a>。
  </figcaption>
</figure>

四、 HTML map 在 SEO 上的 4 大盲點與排查實務

在進行網站 SEO 技術稽核(Technical SEO Audit)時,只要發現頁面使用了 <map> 標籤,請務必針對以下四大盲點進行排查:

盲點 1:把整頁重要文案「烤進圖片裡」再用 map 切連結

在電商活動頁(Landing Page)中,最常看到設計師出一張長達 3000px 的大圖,把所有標題、產品規格、優惠說明通通做成圖片像素,工程師則用一張大 <img> 配上 <map> 交差了事。

  • 問題:圖片上的文字像素不是 HTML 文字,搜尋引擎與螢幕閱讀器能直接讀到的只有 alt;整頁只有一張 <img> 和 <map> 時,頁面幾乎沒有可供解析的 HTML 內文。WCAG 1.4.5「文字圖像」也要求能用文字呈現的內容就用文字,而不是做成圖片。
  • 解法:將 <map> 限制在「真正具有空間幾何關聯的圖表」(如地理地圖、樓層導覽圖、產品局部結構拆解圖);至於一般商品卡片列表或活動文案,請一律使用標準的 <section>、<article> 與 HTML 文字排版。

盲點 2:使用 href="javascript:void(0)" 或自訂 data-url 進行跳轉

Google Search Central 明確指出:Google 通常只能檢索帶有 href 屬性的 <a> 元素;href="javascript:..."、只靠 onclick 跳轉都屬於官方不建議的寫法。<area> 本身就不在官方保證範圍內,再拿掉 href 就更沒有被檢索的依據。

  • 如果你為了做 SPA 路由跳轉或埋設 GA 追蹤碼,把 <area> 寫成 <area shape="rect" coords="..." data-href="/target" onclick="navigate(this)">,這個熱區在 HTML 層級就不是超連結,data-href 只是自訂資料屬性。
  • 解法:務必在 <area> 上保留真實的 href="/target" 屬性;若需由前端路由接管跳轉,請在 click 事件處理器中呼叫 event.preventDefault(),再把 area.getAttribute('href') 交給路由函式(例如 Next.js 的 router.push()、React Router 的 navigate()),達成「使用者無刷跳轉、HTML 保留真實網址」。

盲點 3:在 area alt 中堆砌關鍵字(Keyword Stuffing)或重複貼上相同文字

有些新手知道 <area alt> 是連結文字後,便矯枉過正,在每一個 <area> 的 alt 裡塞滿重複的關鍵字:

<!-- ❌ 壞實務:3 個不同熱區卻寫一模一樣的關鍵字堆砌 alt -->
<area shape="rect" coords="0,0,100,100" href="/taipei" alt="便宜租屋 台北租屋 台中租屋 高雄租屋 租屋網推薦">
<area shape="rect" coords="100,0,200,100" href="/taichung" alt="便宜租屋 台北租屋 台中租屋 高雄租屋 租屋網推薦">

Google 垃圾內容政策(Spam Policies)把關鍵字堆砌列為違規行為,Google 圖片的官方建議也明確要避免在 alt 中塞滿關鍵字;同時也會讓視障讀者的螢幕閱讀器播報出完全無法區分的混亂資訊。每個 <area> 的 alt 都應精準描述「該特定熱區所指向的目標頁面主題」。

盲點 4:行動版(Mobile-First Indexing)熱區過小或重疊

Google 採用 行動裝置優先索引(Mobile-First Indexing),主要以智慧型手機版的網頁內容進行檢索與索引:

  1. <area> 的 coords 以 CSS 像素計算,不會隨圖片縮放;如果你的 <map> 沒有配合手機螢幕寬度動態換算 coords,座標就會偏離圖片甚至超出視窗。
  2. 如果多個 <area> 熱區在縮小後的圖片上靠得太近,手機用戶極易誤觸;WCAG 2.5.5(AAA)建議觸控目標至少 44x44 CSS 像素。因此,搭配下方可見的文字導覽連結(<figcaption> 內的 <a>)是兼顧行動版可用性與連結檢索最穩健的防線。

五、 上線前必查:HTML map 影像地圖 SEO 5 點檢驗清單

五、 上線前必查:HTML map 影像地圖 SEO 5 點檢驗清單

在發布任何包含 <map> 影像地圖的網頁前,請對照以下 5 點 Checklist 進行最終查核:

  • 1. 每個 <area> 皆具備真實 href:確認所有可點擊的 <area> 都寫有標準相對或絕對路徑的 href(不要用空 href=""、href="#" 或 href="javascript:...")?
  • 2. 每個 <area> 皆具備唯一且具描述性的 alt:確認沒有任何一個帶 href 的 <area> 遺漏 alt 屬性,且每個 alt 都能描述目標頁面的主題?
  • 3. 宿主 <img> 具備完整屬性與防位移尺寸:底圖 <img> 是否已填寫描述整張圖主旨的 alt、明確標註 width 與 height(降低 CLS),並使用 Google 支援的圖片格式(如 WebP、AVIF)?
  • 4. 提供可見的 HTML 文字連結作為雙保險:在 <figure> 的 <figcaption> 或地圖下方,是否已同步列出核心頁面的標準 <a href> 文字連結,確保行動版用戶與爬蟲擁有可靠的檢索路徑?
  • 5. 用工具驗證:Lighthouse 的「Links are crawlable(連結可供檢索)」只檢查 <a> 元素,可用來確認上一點的文字連結;「Image elements have [alt] attributes」檢查 <img> 的 alt。<area> 是否漏寫 alt,請用 W3C Nu HTML Checker 驗證,它會回報「Element area is missing required attribute alt」。

六、 總結與延伸學習

HTML <map> 標籤 是一把雙面刃:用對了,它能在單張視覺圖表上提供直覺的分區導覽;但 Google 官方只保證 <a href> 可被檢索,所以 <area> 要照規格寫好 href 與 alt,重要頁面再補上文字連結。用錯了(漏寫 alt、濫用 onclick、把整頁文案做成圖片),它就會變成搜尋引擎與螢幕閱讀器都讀不懂的圖片。

當我們搞懂了 <map> 的 DOM 結構(上一篇)與可檢索性(本篇)後,下一篇 無障礙網頁的基石:善用 HTML map 標籤與 area 屬性打造完美的螢幕閱讀器導覽體驗 將進一步深入 無障礙網頁(Web Accessibility / WCAG) 領域,看看視障朋友的螢幕閱讀器與鍵盤焦點是如何走訪 <map> 導覽地圖的!


七、 參考資料與權威規範延伸閱讀

發佈留言