
本篇內容採用簡潔段落、清晰副標題與條列清單的網頁文章格式,並穿插可直接複製的 HTML 原始碼範例(附有註解)。在文章的最後,我們還設計了一個常見問題解答(Q&A)單元,針對常見的混淆與誤用提供澄清。
HTML5 語意元素概述
HTML5 引入了許多語意化元素(Semantic Elements),讓開發者能透過標籤名稱直接表達內容結構和意義,不再僅僅依賴無語意的 <div>。<section> 與 <article> 就是其中的代表。它們同屬於「章節型內容(sectioning content)」元素,在頁面文件的大綱(outline)中建立新的章節,協助組織內容層次。不同的是,兩者在語意定義與適用情境上各有側重。下面我們分別介紹這兩個元素的語意含義與用途。
<article> 元素的語意與典型用途
<article> 元素代表文件、網頁或應用中的一個獨立、自包含的內容組成部分,旨在可以獨立分發或重複使用。換言之,<article> 通常包含完整且獨立的資訊單元,即使脫離目前頁面,單獨取出仍有意義。
例如:
- 部落格文章或新聞稿件(具獨立標題與內文,可作為一篇文章單獨存在)。
- 論壇帖子或使用者留言(每則留言內容自成一體)。
- 產品卡片、互動小工具(如天氣 widget)等,可獨立嵌入其他站點的組件。
以上都是 <article> 的典型應用場景。由於 <article> 表示完整的內容項目,通常會包含自己的標題(例如文章標題、帖子標題)和內容。實務上,一個頁面中可以有多個 <article> 元素,例如新聞網站首頁串接多篇新聞摘要,每篇新聞就是一個 <article>。同時,<article> 元素可以相互巢狀:內部的 <article> 被視為與外部 <article> 相關的獨立項目,例如部落格文章內的每條讀者評論都可用 <article> 表示。這確保每個獨立單元在語意上清晰可辨。
值得注意的是,<article> 強調內容的完整與獨立性。如果某塊內容需要與其他內容一起閱讀才能充分理解,就可能不適合用 <article>。反之,如果內容符合「可獨立存在並可供聚合/轉載」的特質,那選擇 <article> 最為恰當。HTML 規範明確指出:凡是內容在理論上適合以獨立項目的形式發佈(例如供 RSS 訂閱),就應使用 <article> 元素。
<section> 元素的語意與典型用途
<section> 元素則表示文件中的一個通用的主題區段(thematic grouping),通常具有自帶的標題。它是一種泛用的章節容器,當沒有更具體的語意元素可用時,就可以使用 <section> 來組織內容。
例如:
- 將長篇文章切分為多個主題分節(例如引言、內容本體、結論各自一個 <section>)。
- 網站首頁按照不同主題區塊分區(例如「最新消息」「產品介紹」「聯絡資訊」等區段)。
- 網頁中的功能模組區域(假如沒有專用元素,例如一組搜尋結果列表,就可以整體包在 <section> 中)。
<section> 著重於將相關內容群組為一個主題單位。按照 HTML5 規範,<section> 應該在文件大綱中扮演一個節點,因此通常需要有自己的標題來描述該區段的主題。大部分情況下,每個 <section> 開頭會有適當階層的標題(<h1>~<h6>)作為區段的名稱,讓文件結構更清晰。一份技術文件可以由多個章節(<section>)組成,每個章節有自己的小標題,構成層次分明的大綱。
另外,HTML5 標準建議:只有在沒有更恰當的語意元素時才使用 <section>。也就是說,能用具體元素的場合就用具體元素。例如,導覽菜單內容應使用 <nav>,旁支附屬資訊使用 <aside>,主要內容區使用 <main> 等,而不是籠統用 <section>。<section> 是語意上的萬用章節容器,但開發者應避免為了版面方便就濫用。若只是為了樣式或版面目的包裹內容,且該容器本身不具語意角色,那麼使用 <div> 會更適合。總之,<section> 應當真正代表文件在主題上的一個區塊,而非純粹的視覺區塊。
<section> 與 <article> 的差異與選擇
從上述定義可以看出,<article> 和 <section> 雖然都能作為分段容器,卻有明顯的語意側重:
- 獨立性 vs. 群組性: <article> 用於獨立完整的內容單元,強調自足性;<section> 則用於內容的主題分組,強調與整體的關聯性。換句話說,如果內容拿出上下文仍能獨立理解,那應該用 <article>。如果內容是眾多主題中的一部分,需要依附於更大內容架構,那就適合用 <section>。
- 典型語意角色: <article> 通常扮演文章、貼文、消息等角色,每個 <article> 都像是一則獨立的故事;<section> 則類似章節、專欄,把相關的內容段落聚在一起形成一個部分。例如,一份報告書中的「第1章」「第2章」可視為 <section>,其中的每節內容仍屬於整份報告的一部分,而非獨立文章。
- 必要標題: 兩者理論上都應有適當的標題作為識別(這對無障礙和結構清晰度都很重要)。特別是 <section> 幾乎應該必有標題;<article> 則一般會包含自己的標題(例如新聞標題)以表明該內容的主題。如果某區段沒有合理的標題描述,可能意味著應該用 <div> 而非 <section>。
- 巢狀關係: 在語意允許下,<article> 和 <section> 可以彼此巢狀,但必須符合邏輯結構。例如,可以在一個 <section> 裡放多個 <article>,代表該區段包含數個獨立內容項目;也可以在 <article> 內劃分 <section>,將長文章拆成數個子章節。巢狀時要注意層次意義:外層 <section> 的標題是總體主題,內部各 <article> 是並列的獨立條目;外層 <article> 是主要內容單元,內部分成若干 <section> 作章節劃分。這種巢狀結構在需要時可以運用,但切忌混淆:不要在沒有語意必要時過度嵌套。
- 與其他語意元素的關係: 如果內容屬於主要內容區,應置於 <main> 中;若是側邊相關內容,例如作者資訊或延伸閱讀清單,應使用 <aside>。導覽選單則用 <nav> 容器。這些元素與 <section>/<article> 並非對立,而是協同組成完整語意結構。
簡而言之,選擇 <section> 或 <article> 的關鍵在於內容是否為獨立單元。請自問:「這段內容拿出來能當作一篇獨立的文章嗎?」如果是,就用 <article>;如果不是,而只是整體內容的一部分,那就用 <section>(或其他更適合的容器)。HTML5 規範提供了一條總則:若區塊內容會被列入文件的大綱目錄(Table of Contents),則適合用 <section>;若內容適合供外部轉載或聚合,則應使用 <article>。在實務中,這通常相當明確,例如博客首頁上的每篇貼文是 <article>,而將所有貼文集合起來的區塊是 <section>。反之,在單篇貼文詳細頁中,整篇文章是 <article>,文章內為了結構清晰可以劃分若干 <section> 作章節。
最後要注意的是,不要為了語意而生硬使用 <section>/<article>。它們是語意工具,但濫用會適得其反。如果某區塊沒有清晰的語意角色或主題,就不應硬套這兩個元素。例如,只為了方便掛 CSS 樣式而包一層容器的情況,應使用 <div> 而非 <section>。保持語意結構的純粹,有助於未來維護和無障礙體驗,也讓搜尋引擎更容易解析內容。
SEO 影響:語意標記對搜尋引擎的作用
了解 <section> 和 <article> 的差異後,我們關心的另一個問題是:正確使用這些語意元素對 SEO 有何影響?雖然使用哪個標籤不會直接提升排名或產生額外的「語意權重」數值,但語意清晰的結構有助於搜尋引擎更有效地理解頁面內容。這種理解上的優勢可能間接影響到索引效率、摘要生成以及使用者體驗,進而影響 SEO 表現。
以下是幾個要點說明:
- 協助搜索引擎解析主要內容: <article> 標記通常用於標示主要內容區域(尤其對新聞或博客文章頁面而言),讓搜索爬蟲更容易找到頁面的正文起點。例如,對新聞網站,Google 會將 <article> 視為新聞正文的開始,包括標題在內。如果正確使用 <article> 將文章主體包裹,搜尋引擎在抓取時就能迅速定位主要內容區塊,提高索引效率。反之,若所有內容只是雜亂無章地放在 <div> 中,搜尋引擎可能需要依靠其他線索來判斷哪部分是正文。
- 清晰的結構有利於語意理解: 使用 <section> 搭配標題(<h2>, <h3> 等)將內容分成有邏輯的子部分,不僅提升人類讀者的體驗,也讓搜尋引擎更清楚內容的主題分佈。例如,一篇長文透過多個 <section> 劃分章節並有小標題,Google 的演算法可以更容易地瞭解各部分討論的要點,可能有助於產生較佳的摘要或直接解答(featured snippet)。語意良好的結構提高了內容的結構清晰度,搜尋引擎能判斷出哪些文字屬於同一主題段落。
- 間接提升可及性與使用者體驗: 良好的語意標記對無障礙(accessibility)工具很有幫助,例如螢幕閱讀器可以直接跳轉 <article> 或宣告 <section> 的標題。這意味著使用者(包括搜尋引擎的類人模型)能更有效率地瀏覽內容。Google 雖然主要關注內容本身的品質,但使用者體驗也是排名考量之一。語意化結構帶來的清晰體驗,可能降低跳出率並提高停留時間,這些使用者行為指標對 SEO 表現有正面影響。
- 注意:非正確語意不致致命,但錯失良機: Google 官方曾表示,他們無法完全信任所有頁面的語意標記(畢竟網上有太多不合規的 HTML)。因此,若單單因一個 <section> 用成 <article> 就判斷錯誤主題,Google 的算法會有彈性,不至於讓排名大幅異動。然而,這並不表示語意標記無用;反而,在內容品質相當時,語意清晰的頁面更具優勢。想像兩篇內容相似的文章,A 網站語意結構井然有序、主次分明,B 網站全部用 <div> 混雜一團,搜尋引擎更傾向正確抓取並呈現 A 網站的重要內容。語意標記是一種最佳實踐(Best Practice):它不會直接給你排名加分,但會讓你的內容對搜尋引擎更友善。從長遠看,這有助於SEO。
綜上所述,正確運用 <section> 和 <article> 提升了語意清晰度與結構化程度,而這種清晰結構對 SEO 有積極影響。它能協助搜尋引擎快速理解內容架構,進一步提高索引和呈現效果。例如,在 Google 新聞等服務中,使用 <article> 標記主內容是很有價值的做法。當然,SEO 成效最根本的還是內容品質和相關性,但語意標記提供的額外資訊層,猶如為引擎提供地圖,幫助其更好地發揮內容價值。
HTML 範例:正確使用 <section> 與 <article>
為了將理論付諸實踐,下面通過幾個HTML範例說明 <section> 和 <article> 在實際頁面中的用法。這些範例展示了不同情境下兩者的選擇,並附有註解說明其語意意圖。
範例1:首頁區塊與獨立文章列表
假設我們正在建立一個新聞網站首頁,頁面包含「最新消息」區塊,其中列出數篇可獨立點閱的新聞文章。我們可以這樣組織HTML:
<main> <!-- 最新消息區塊開始 --> <section> <h2>最新消息</h2> <!-- 區段標題:該<section>的主題 --> <article> <h3>消息標題一</h3> <!-- 文章標題 --> <p>這是第一篇消息的摘要內容...</p> </article> <article> <h3>消息標題二</h3> <p>這是第二篇消息的摘要內容...</p> </article> <article> <h3>消息標題三</h3> <p>這是第三篇消息的摘要內容...</p> </article> </section> <!-- 最新消息區塊結束 --> <!-- 其他區塊例如活動公告等,可以類似地使用<section>組織 --> </main>
說明:上述程式碼中,我們使用一個 <section> 將首頁的「最新消息」區域包起來,並以 <h2> 作為區段標題描述這個區塊的主題。區段內包含了多個 <article>,每個 <article> 對應一則新聞消息。每篇消息都有自己的 <h3> 標題和段落內容。這種結構清楚地表達了語意:頁面主體包含一個名為「最新消息」的區域,其中每條消息是可獨立閱讀的文章項目。搜尋引擎或讀屏軟體可以輕易地理解這種層次關係。如果將來我們要提供 RSS 訂閱,這些 <article> 中的內容就可以各自獨立發佈。
範例2:單篇文章內的章節劃分
接下來,假設使用者點擊了其中一則「消息標題一」,進入該新聞的詳細頁。此時整頁主要內容就是一篇完整文章,我們可以用 <article> 來包裹,並在內部分成數個 <section> 來組織章節:
<article> <h1>消息標題一 - 詳細報導</h1> <!-- 文章主標題 --> <section> <h2>引言</h2> <p>這是本篇消息的引言段落,簡要說明事件背景...</p> </section> <section> <h2>詳細內容</h2> <p>這裡是新聞事件的詳細內容正文部分,提供完整資訊...</p> <p>正文可能包含多段落,所以也可以有多個<p>標籤。</p> </section> <section> <h2>結語</h2> <p>這是新聞報導的結尾部分,對整起事件進行總結...</p> </section> <footer> <p>作者:張小明|發布日期:2025-10-28</p> </footer> </article>
說明:在這個範例中,我們用一個 <article> 元素表示整篇新聞報導,其 <h1> 作為文章標題。文章內部按照內容邏輯,劃分為「引言」「詳細內容」「結語」三個章節,每個章節使用 <section> 並有自己的 <h2> 小標題。這種結構讓長篇內容的層次變得清晰:讀者可以輕鬆瀏覽,引擎也能據此解析文章的大綱結構。特別是我們加入了 <footer> 元素提供作者和日期等資訊,這也是HTML5的語意元素,用於標示文章的頁腳資料(僅適用於外層的 <article>,不會影響巢狀的內部 <article>)。整體而言,這套標記方式既提升了可讀性,又遵循了語意最佳實踐,有利於SEO和無障礙體驗。
範例3:純粹為版面而非語意的容器
最後再舉一個反面例子,很多新手會犯的錯誤:假設我們只是想給某段文字加上一個背景色或特殊版面,便隨手用了 <section> 或 <article> 作為容器,沒有賦予它任何語意上的角色:
<!-- 範例:不要這樣做 --> <section class="highlighted"> 這段文字只是需要高亮樣式,但並非一個獨立章節。 </section>
上例中,用 <section> 來僅僅為文字加樣式是不恰當的。因為這段內容本身並不是文件的一個語意區段,也沒有標題或主題,只是視覺強調而已。正確的做法是使用非語意元素 <div> 搭配 CSS:
<div class="highlighted">這段文字只是需要高亮樣式,但並非一個獨立章節。</div>
如上所示,當容器沒有語意意義而只是呈現用途時,應使用 <div>。這可以避免語意結構被濫用而變得混亂。總之,要牢記:語意元素應服務於內容結構,而非純粹視覺效果。
問與答:常見混淆與誤用
最後,我們通過問答形式,針對開發者常見的疑惑進行解答,加深對 <section> 和 <article> 的理解:
問:什麼時候一定要用 <article>?什麼時候用 <section> 就夠了?
答:當你有一段內容能獨立成篇、可單獨取出閱讀時,應使用 <article>(例如完整的一篇文章、一則新聞或使用者評論)。反之,當內容只是眾多主題內容中的一部分,需要與其他部分一起呈現時,使用 <section> 較恰當(例如文章的某個章節,或首頁上的某個主題區塊)。簡而言之:獨立發佈的內容單元選 <article>,內容群組或章節選 <section>。如果拿不準,想想該內容會不會出現在文件的大綱目錄中(會的話傾向 <section>),或者會不會出現在 RSS 等聚合中(會的話傾向 <article>)。
問:可以在 <section> 裡面放 <article> 嗎?反過來在 <article> 裡面放 <section> 可以嗎?
答:可以,前提是語意結構合理。在一個 <section> 裡放多個 <article> 很常見,例如上一節的首頁範例中,一個「最新消息」區段包含了多篇獨立文章。相反,在 <article> 內使用 <section> 劃分章節也很常見,例如我們將長文章拆成幾個有標題的小節。關鍵是要根據內容的邏輯關係決定巢狀:<section> 裡的 <article> 應該是並列的獨立項目,<article> 裡的 <section> 應該是此篇內容的內部分節。只要遵循這個原則,巢狀不會出問題。
問:如果我用錯了(比如本來該用 <article> 的用了 <section>),對SEO或網站有多嚴重的影響?
答:不會產生災難性後果,但不利於最佳體驗。瀏覽器呈現上幾乎沒有差異,搜尋引擎也通常能憑內容自動判斷重點,不至於完全迷失。但長遠看,語意結構錯用會降低代碼的可讀性與可維護性,也可能讓某些依賴語意的工具(如螢幕閱讀器或自動摘要程式)無法發揮作用。另外,微妙的影響在SEO細節上:例如 Google 雖然能容錯,但正確的語意標記能讓它更快抓取重點內容。所以建議盡量修正,而不是抱僥倖心理。語意標記的價值在於長期積累的品質,每一次正確使用都在提升頁面的專業度與可及性。
問:<section> 或 <article> 可以不放標題嗎?
答:理論上可以不強制,但非常建議不要省略標題。根據HTML5標準,<section> 幾乎在任何情況下都應該包含一個標題;<article> 則通常會有自己的標題(例如 <h1> 或 <h2> 作文章標題)。標題讓使用者和搜索引擎都清楚瞭解該區塊內容的主題。如果缺少標題,語意上就缺乏定位依據,也就失去了使用這些語意元素的意義。實務中,只有在非常特殊的情境下(比如網頁應用介面中的區段沒有對應標題)才會出現無標題的 <section>,但這種情況並不常見。總之,請為每個 <section>/<article> 提供適當的標題,這是良好習慣。
問:為了SEO,我是不是應該盡量用 <section> 和 <article> 包住所有內容?
答:不是的。SEO 並非比誰用的語意標記多,而是比內容品質和結構是否清晰。濫用語意元素可能讓結構過於複雜、喧賓奪主。正確的做法是在合理的地方才使用合理的標籤:內容主體用 <article>,章節用 <section>,導覽用 <nav>,側欄用 <aside>,等等。不要把無意義的容器都升格為語意元素。例如,不要為了塞關鍵字而隨意增加多餘的 <section>,那對SEO沒有幫助。Google 更在意內容本身和使用者體驗。如果你的語意結構清晰且符合內容邏輯,就已經滿足SEO對結構的需求,多用不當反而可能弄巧成拙。總結:語意標記要恰到好處,畫龍點睛即可。
總結
透過以上講解與範例,相信您對 <section> 和 <article> 兩者的正確使用已有了清晰的認識。在網頁開發中,語意即是承載內容的靈魂:選對元素,結構清晰,既方便了後續維護與樣式控制,也讓使用者和搜尋引擎都能迅速抓住內容重點。未來撰寫 HTML 時,不妨多問問自己這段內容的角色,再選擇最貼切的標籤。如此一來,您的網頁將同時擁有良好的結構和可讀性,並在無形中為SEO打下扎實的基礎。祝您在實踐中運用自如,寫出語意豐富又對搜索友好的優質HTML內容!
參考來源:本文章內容綜合參考了 MDN Web Docs、HTML5 規範說明以及 Google 搜尋中心等權威資料,並融入實際開發經驗。希望這些觀點能對您有所裨益,在日常開發中成為得心應手的指南。