metadata、<meta> 知多少
🐳 前言
今天想要研究的主題是,網頁前端世界裡的三本柱 ── HTML、CSS、JavaScript 之中的 HTML。雖然 HTML 並非如同 JavaScript 有很多程式語言相關的主題與議題能夠探討,但是也是有一些有趣的主題值得研究和探索。
之前在寫 side project 或是技術面試被問到該如何優化 SEO 時,當時只有辦法大概回答出可以透過 HTML 當中的 metadata 去優化 SEO,但是並不清楚 metadata 實際上有哪些用法,或是可以做到哪些事情,所以這次想要試著以一種更詳細和全面的角度來理解 HTML 當中會使用到的 metadata 和 <meta> 這兩個東西。(當然有機會的話,之後也想要寫一個 SEO 的系列文來理解 SEO 和知道如何優化它)
本文架構如下:
- metadata 是什麼? → 首先會先定義 metadata 是什麼
- metadata 有哪些? → 接著解釋 metadata 在
HTML當中的應用 - 淺談
<meta>→ 最後會對<meta>這個用法做更深入的研究
你可能要有的先備知識:
- 知道
HTML是什麼 - 了解
<head>和<body>的差別
🐳 metadata 是什麼?
首先可以先從現有的網路資源當中,去尋找 metadata 的定義。在 MDN 文件當中,解釋了什麼是 metadata:
Metadata is — in its very simplest definition — data that describes data. For example, an HTML document is data, but HTML can also contain metadata in its
<head>element that describes the document — for example who wrote it, and its summary.
直接翻譯的話,metadata 的意思就是「描述資料」的資料 ,這樣子聽起來可能還是一頭霧水,但如果我們以一個實際的例子來說明的話,可能會清楚許多。
假設現在有一個猜拳遊戲網頁的 HTML 檔,架構如下:
<!DOCTYPE html>
<html lang="zh-Hant-TW">
<head>
<!-- metadata, 使用者不會看到,但是會提供這個 HTML 檔相關的資訊,例如以下四行 -->
<meta charset="UTF-8">
<meta name="description" content="猜拳遊戲">
<link rel="stylesheet" href="style.css">
<title>Rock_Paper_Scissors Game</title>
</head>
<body>
<!-- 使用者會看到的內容 -->
<header></header>
<main></main>
<footer></footer>
</body>
</html>
通常在 <body> 這個標籤中會放滿希望讓使用者看到的畫面;另外將描述這個網頁的資訊,比如這個網頁的作者、這個網頁的用途、這個網頁的編碼方式、要套用的 css 檔、要套用的 JavaScript 檔等等,放在 <head> 這個標籤當中。
這些放在 <head> 當中的資訊,並且用來描述這個 HTML 網頁檔是要用來做什麼、或是要運行什麼東西,都可以稱之為 metadata。通常這些 metadata 的資訊會被搜尋引擎的爬蟲爬取並解析,於是我們可以在這裡很簡單地暴力推測:如果 metadata 寫得越完整,對 SEO 的幫助越大,也可以說是優化 SEO 的方法之一。
🐳 metadata 有哪些?
在上一個小節理解 metadata 的定義之後,那接下來的問題就是:實際上要如何在 HTML 當中寫出 metadata 呢?這也是本小節試圖回答和整理的問題。
🦀 <title>
在每個 HTML 檔的 <head> 當中,基本上一定都會有 <title> 這個標籤(tag),它的語法如下:
<title>Insert Title Here | Follow it with the Website Name if you Wish</title>
藉由 title 這個標籤,可以讓搜尋引擎知道這個網頁的名稱,並將它顯示在搜尋結果頁上面。或是也可以在瀏覽器的頁籤上看到 <title> 的內容,讓使用者知道自己目前在哪個網頁,比如說進到臉書首頁時,在瀏覽器頁籤上看到 Facebook 字樣,是因為 <title>Facebook</title> 的緣故。
🦀 <link>
<link> 這個標籤的用途蠻多元的,目前我自己最常用到的是將 CSS 檔引入到 HTML 當中,讓網頁上的元素可以套用樣式,除此之外還有一些其他的用途,例如:加入網頁的 Logo、用標準網址(Canonical URL)整合重複性的網址等等。