一款專注於基本 head 中繼資料的 HTML meta 標籤產生器,最多會產生五個元素:UTF-8 字元集宣告、響應式 viewport、title 元素、description meta 標籤,以及一個只在有提供值時才會出現的選擇性 author meta 標籤——不多也不少。這種狹窄的範疇正是重點所在。大多數標籤產生器會把十幾種詞彙表(Open Graph、Twitter Cards、robots 指令、canonical 連結)堆疊在同一個表單中,這使得複製到與 CMS 或佈景主題已輸出內容相矛盾或不相關的標記變得非常容易。像 Meta Tag Generator 這樣的基本區塊產生器,則專注在幾乎每份 HTML 文件都需要的基礎中繼資料,把專業化的決策留給專屬工具處理。一切都在瀏覽器中執行,因此你所輸入的頁面標題、描述,以及選性的 author 都不會離開你的裝置。最後你會得到一個單一、可審視的區塊,只要複製一次,就能對照實際交付的原始碼進行檢查,並作為可靠的起始語法。你可以複製什麼,就會貼上什麼:沒有伺服器,也沒有任何與你正在建置的頁面相關的遙測資訊。

html meta tags generator
HTML Meta Tags Generator: Build a Clean Basic Block

基本輸出區塊的內部結構

輸出內容是一組依照小型規格寫成的固定 HTML 元素序列,而非可設定的功能清單。每一行都會經過修剪、長度限制、無效控制字元的檢查,並在其對應的內容中進行 HTML 跳脫。這些元素每次都會依照相同的順序輸出;author 行只有在有提供值時才會出現,下表說明實際會輸出哪些內容,以及每一行各自負責什麼。

ElementFormatRole in the document head
<meta charset="utf-8">UTF-8 encoding declarationTells the browser how to interpret the document's bytes; placed before any textual metadata.
<meta name="viewport" content="width=device-width, initial-scale=1">Responsive layout baselineMakes the page match the device width while preserving user zoom.
<title>…</title>Document titleShown in browser tabs, bookmarks, history, and used as one input to a search-result title.
<meta name="description" content="…">Page summaryA short human-readable summary that some search engines may use to describe a result.
<meta name="author" content="…">Optional authorship metadataIncluded only when a maintained value is supplied; omitted entirely when left blank.

canonical 連結、robots 指令、Open Graph 屬性和 Twitter Cards 在這個區塊中刻意不會出現。這些項目各自代表一個獨立的頁面決策,而這些決策往往仰賴在你撰寫標題與描述當下可能尚未掌握的資訊;把它們全混在同一個表單裡,極容易與你的 CMS、佈景主題或 SEO 外掛已經注入的內容產生衝突。

為什麼基本標籤要與 SEO 和社群標籤分開

WHATWG HTML 規範將 title 元素與中繼資料名稱視為一組小型、定義明確、每份文件都需要的詞彙表(WHATWG HTML semantics)。專門的 SEO 標籤則存在於不同的命名空間,適用不同的規則。rel="canonical" 連結代表「這個 URL 是該內容的首選位址」,這是重複內容的決策,而非中繼資料的決策。name="robots" 標籤控制索引與摘要預覽,這是索引方面的決策。og:title 與 twitter:card 則控制頁面被分享時的呈現方式,這是社群呈現方面的決策。

把這些決策堆疊在同一個冗長的表單中,會讓你很容易複製到相互矛盾或不相關的標記。如果你的佈景主題已經根據請求 URL 插入了一個 canonical 連結,再從產生器多加一個充其量是無害的;但如果插入的是一個互相衝突的版本,你的頁面就會同時送出兩個 canonical 訊號。robots 指令也存在同樣的風險:全站性的 CMS「noindex」結合產生器的「index, follow」,就會產生互相矛盾的區塊。把基本標籤集中在一個可審視的位置,並把專門的標籤交給各自的工具處理,能降低這類風險,也讓每一項決策在上線後都易於檢視。如果你已經因為前一個產生器而有一團混亂的標籤區塊,取得乾淨 meta 標籤區塊的指南會從另一個角度帶你逐步完成這次稽核。

產生基本的 head 區塊

介面刻意設計得很精簡:一個用於文件標題的必填欄位、一個用於描述的必填欄位,以及一個用於 author 的選填欄位。下方的順序會忠實對應產生器在頁面上的實際運作流程。

  1. 輸入一個精準描述頁面內容的文件標題,而非行銷口號。標題上限為 200 個字元,遠高於搜尋結果的大致顯示範圍,但能讓你有足夠空間放上清楚的名稱。
  2. 輸入一段簡潔的頁面描述,用以摘要頁面上可見的內容。描述上限為 500 個字元,在輸出前會依屬性情境進行 HTML 跳脫。
  3. 選擇性地輸入一個會持續維護的作者名稱。author 欄位上限為 120 個字元,若留空則會完全從輸出中省略,因此原始碼中不會出現空白的區塊。
  4. 點擊產生按鈕。工具會修剪空白、拒絕控制字元、套用 HTML 跳脫,並依照固定順序輸出區塊,只有在有提供值時才會包含 author 行。
  5. 將該區塊複製到剪貼簿。這整個過程中不會有任何資料被送到伺服器;所有處理都只在你開啟的瀏覽器分頁中進行。
  6. 將區塊貼到 HTML 文件的 <head> 元素內。不要把它當成可見的內文貼上,也不要貼到會對標記進行二次跳脫的編輯器中。
  7. 在你的瀏覽器中查看原始公開原始碼以及 HTTP 回應標頭,確認編碼一致,並確認沒有任何佈景主題、外掛或框架注入了重複的 title 或 description。

限制、跳脫與長度上限

產生器套用的跳脫規則,與瀏覽器在解析 HTML 屬性值與文字內容時所預期的規則一致。每個欄位中的 & 與角括號都會被編碼。在可能影響屬性解析的位置,雙引號也會被編碼。控制字元會被直接拒絕,因此輸出內容中絕對不會出現無法列印的位元組。即使標題或描述中含有來自品牌名稱的「&」,或是句子中夾帶引號,這些規則仍能讓區塊作為原始 HTML 維持有效。

長度上限會在輸入階段就強制執行,而不僅僅是在輸出階段。標題欄位會拒絕超過 200 個字元的內容;描述欄位會拒絕超過 500 個字元的內容;選填的 author 欄位則會拒絕超過 120 個字元的內容。這些上限代表工具可接受的範圍,而非排名目標的建議值。簡短、精準的標題幾乎一定比塞好塞滿的標題表現更好,描述也是如此。

viewport 標籤固定為 width=device-width, initial-scale=1。工具絕不會輸出 maximum-scale 或 user-scalable=no,因為這些限制可能損害無障礙性,並阻止使用者放大文字。響應式版面最終仍取決於你的 CSS、媒體查詢與元件配置——viewport 標籤只是設定這些組件所建構其上的基準線。

貼上之後:稽核實際交付的原始碼

貼上區塊只是任務的中段,而非結束。CMS 範本、佈景主題函式或 SEO 外掛仍可能在片段插入之後再加上自己的標題、描述或重複的中繼資料,導致 head 中出現互相衝突的標籤。以下的稽核流程能抓出最常見的衝突。

  • 確認文件中恰好只有一個 <title> 元素。多個 title 是 HTML 解析錯誤,也是佈景主題或外掛覆寫你設定的明確徵兆。
  • 確認只有一個 <meta name="description"> 標籤。重複的描述中繼資料在 WordPress 佈景主題與頁面編輯器輸出中相當常見。
  • 確認 HTTP 回應沒有宣告不同的字元集。如果你的伺服器送出 Content-Type: text/html; charset=ISO-8859-1,瀏覽器會優先採用該標頭,而忽略 <meta charset="utf-8"> 標籤。
  • 確認片段落在 <head> 之內,而非 <body> 內或作為頁面上可見的文字。
  • 用狹窄的 viewport 造訪頁面,確認版面仍然正確地做出響應。單靠 viewport 標籤並無法保證行動裝置上有可用的版面。
  • 在你慣用的搜尋控制台中執行重新擷取,並使用其檢查工具查看搜尋系統實際上是如何解讀這個頁面的。

這個產生器不會評估關鍵字品質、像素寬度、點擊率或搜尋需求。這些是內容與產品層面的問題,而非語法層面的問題。請把複製下來的區塊視為一個正確的起始語法——你可以對其進行稽核、搭配專屬工具使用,並在日後了解訪客與搜尋系統的反應後再行調整。

為其餘需求搭配聚焦的工具

一旦基本 head 區塊就定位,剩下的每一項決策都各自配有專屬的小工具。canonical URL 是一項重複內容的決策,應當針對每個頁面決定一次,並對照平台已輸出的 canonical 連結進行檢視。robots 指令是一項索引決策,應與全站整體的檢索政策一致。Open Graph 與 Twitter Card 標籤則是社群呈現方面的決策,會依據你希望在頁面被分享時所顯示的圖片、標題與描述而定。

把每一項決策交由專屬工具處理,代表你可以單獨修改其中一項而無須重建整個區塊,並能針對平台既有的輸出對每一項決策進行稽核。這才是極簡產生器的真正價值所在:一個小而對齊標準的基礎,讓你能在其上疊加其他聚焦的工具,而不是一個聲稱能包辦一切、卻悄悄輸出衝突標記的單一表單。