SEO 領域一直有個應該被討論,但長期以來被忽略的議題:Google 究竟如何解析HTML,以及它在 SEO 實務上的意義?
在最近一集 Google 官方的 podcast 節目《Search Off the Record》中,Google Search Relations 團隊成員 Martin Splitt 與 Gary Illyes 針對這個議題進行了一場討論,以下是筆者整理的重點:
一、中繼資料(Metadata)應放置的位置
Martin 與 Gary 談到,所有 Metadata 都應該放在 <head> 區塊中,無一例外。這裡所謂的 Metadata,指的是所有帶有 Metadata 訊號的標籤,包括 robots 指令和 canonical 標籤在內。如果 Metadata 出現在 <body> 區塊中,Google 會直接忽略,例如 hreflang 標籤若出現在 <body> 區塊, Google 會直接忽略其訊號。
二、HTML 是否完全有效(Validity)並不是那麼重要
Martin 與 Gary 談到過去為了跨瀏覽器正常顯示所要求的 HTML 有效性在今天瀏覽器與搜尋引擎容錯率大幅提高的情況下已經不是那麼重要,意思就是說:
(一)標籤不完美(例如:少了一個</span>)並不會影響排名
(二)HTML 完全有效或接近完全有效也不會為排名帶來加分
三、語意標籤對使用者有幫助,但並非排名要素
Gary 的看法是,<H1> 標籤,無論是以 H1+H2+H3 的標準階層方式顯示,或者是整個頁面使用多個 H1,對 Google 而言差別不大。同樣地,一些語意標籤,例如:
- <article>
- <section>
- <nav>
- <header>
確實對可及性(accessibility)與使用者體驗有幫助,但它們本身並不是值得過度焦慮的排名因素。
四、資源提示對使用者有用,但其本身最多只對SEO 有間接影響
Gary 談到,資源提示,例如:
- dns-prefetch
- preload
- preconnect
對於真實使用者的頁面速度體驗可能有很大幫助,但對於 Google 爬蟲而言幾乎沒有任何意義,因為:
- 爬蟲不會像瀏覽器一樣同步抓取資源
- Google 會在自己的基礎設施中做資源快取
- 爬蟲並不是即時跟隨抓取頁面連結
因此這些技術對 SEO 的影響最多只是間接的,例如:讓網站更快、使用者停留更久、轉換率更高…等等,也就是說,資源提示本身並非排名訊號。
五、混亂訊號是個問題
節目中也明確建議不要讓 Google 收到互相衝突的 Metadata 訊號,特別是在使用 JavaScript 時。例如:伺服器回傳的HTML 中包含一個標準網址(canonical),但 JavaScript 在渲染後又把標準網址改成另一個,這時 Google 會同時看到兩個標準網址,然後只能猜測你的真正意圖。
對於這個問題,Gary 建議如果可以在初始 HTML 裡放入 Metadata,就直接放,如果真的做不到,透過 JavaScript 加入是可以接受的,但必須理解用 JavaScript 修改已存在的 Metadata 會產生模糊訊號,對任何搜尋引擎來說都很難正確解讀。
總結與建議:
Martin 和 Gary 的對話清楚地說明了 Google 如何解析 HTML,從他們的對話中,我們也得出了幾項具體的行動建議:
- Metadata 一定要放置在 <head> 區塊
- 不要將 HTML 有效性錯誤理解為排名要素
- 不要將語意標籤視為排名要素
- 不要將資源提示視為排名要素
- 避免混亂訊號,尤其是在指定標準網址時
對於 Google 而言,訊號清晰比完美的標籤重要,網站經營者要做的,是提供 Google 一份沒有歧異,結構清楚的文件,然後不要妨礙 Google 理解內容即可。
筆者要特別提醒的是:這畢竟是 Google(甚至是 Gary 個人)的觀點,不代表其他搜尋引擎(包括傳統搜尋引擎和 AI 搜尋引擎)也一定是這樣,如果網站經營者能夠在不多投入過多時間和資源的前提下,能確保 HTML 有效性、確保語意標籤正確,並透過資源提示改善網站效能,當然是再好不過。




