OG 圖片檢查
檢查頁面的 Open Graph 與卡片標籤、看見真正的預覽圖,並找出連結分享時為什麼沒有圖片。
- 圖片位址
- -
- og:title
- 未設定
- og:description
- 未設定
- og:image
- 未設定
- og:url
- 未設定
- og:type
- 未設定
- og:image:width
- 未設定
- og:image:height
- 未設定
- og:image:alt
- 未設定
- twitter:card
- 未設定
- twitter:image
- 未設定
X 官方的卡片文件目前無法公開讀取,因此上面標註的那些限制是外界普遍流傳的數字,而非我們能在原始出處查證的內容。請當作參考,而非規格。
必要標籤依據 Open Graph 協定;像素與檔案大小規則依據 Facebook 公開的說明文件。
這個工具需要伺服器。瀏覽器不被允許讀取其他網站的原始碼,因此由我們的伺服器取得頁面、只讀取其 <head> 並回報結果。圖片同樣由我們的伺服器取得,所以你的瀏覽器不會連上被檢查的網站。你輸入的網址會送到我們的伺服器;檢查內容不會被儲存。
這個工具做什麼
輸入頁面位址,這個工具會取得該頁、讀出它的 Open Graph 與卡片標籤、下載標籤所指向的圖片, 並把圖片與每一條規則的判定結果一起呈現。這是在你把連結貼到公開場合之前該做的檢查, 而不是在它已經分享得很難看之後。
你在這裡看到的圖片是由我們的伺服器取得後隨結果一併回傳的,所以觀看預覽並不會讓你的瀏覽器 連上被檢查的網站。
預覽需要哪些標籤
Open Graph 協定列出四個必要屬性:
<meta property="og:title" content="頁面的標題">
<meta property="og:type" content="article">
<meta property="og:url" content="https://example.com/the-page">
<meta property="og:image" content="https://example.com/card.png">
<meta property="og:description" content="一到兩句話的說明。">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="圖片內容的描述">
<meta name="twitter:card" content="summary_large_image">
og:description 不在協定的四個必要項目之內,但少了它,預覽卡的標題下方就沒有文字。
og:image:width 與 og:image:height 值得設定,因為 Facebook 會用它們在尚未下載圖片時
先完成排版 —— 這正是剛分享出去的連結有時會出現一塊空白的原因。
圖片規則,以及它們的出處
Facebook 公布了明確的數字:
| 規則 | 數值 |
|---|---|
| 最小尺寸 | 200 × 200 像素,低於此不會顯示任何預覽圖 |
| 大卡片門檻 | 600 × 315 像素,低於此只會得到小張縮圖 |
| 建議尺寸 | 1200 × 630 像素,適用於高解析度螢幕 |
| 長寬比 | 盡量接近 1.91:1,否則圖片會被裁切 |
| 檔案大小上限 | 8 MB |
X 官方的卡片文件目前未登入無法閱讀,因此這個工具會照常檢查 X 的標籤(twitter:card
等等),但把外界普遍引用的尺寸限制(最小 300 × 157、最大 4096 像素、小於 5 MB)標示為
僅供參考。我們寧可說明某個數字無法查證,也不願呈現一個提不出出處的數字。
為什麼連結分享出去沒有圖片
- 網址是相對路徑。
og:image="/card.png"在瀏覽器裡沒問題,對抓取器卻無效 —— 它們需要完整的https://絕對網址。這是最常見的單一問題。 robots.txt擋住了圖片。 抓取器會遵守它,因此無論其他設定多正確,卡片都會是空白的。- 它是 SVG。 語法完全有效,但主要平台都不會把 SVG 當成卡片圖片顯示。請改用 PNG、JPEG 或 WebP。
- 圖片是 404。 常見於從未隨上線一併更新的測試環境網址。
- 檔案太大。 超過 8 MB,Facebook 根本不會接受。
- 宣告的尺寸不對。
og:image:width寫 1200 而實際檔案是 600,會讓第一次顯示時排版錯誤。 - 平台把它快取住了。 這些平台的快取都很積極,所以圖片改好之後仍可能沿用舊的。Facebook 的 Sharing Debugger 與 LinkedIn 的 Post Inspector 都有重新抓取的按鈕;X 則依自己的排程更新。
最後這一點值得特別強調:這個工具告訴你的是你的頁面現在寫了什麼,它無法告訴你某個平台 上週快取了什麼。
og: 與 twitter: 的取捨
當 twitter: 標籤不存在時,X 會退回使用 Open Graph 標籤,所以兩套通常不必都寫。真正重要的
是 twitter:card —— 沒有 summary_large_image,無論你的圖片多大,得到的都是小張的方形縮圖
而不是寬版卡片。
LinkedIn、Slack、Discord、WhatsApp 與 iMessage 讀的都是 Open Graph。把 og: 標籤寫對,
幾乎就涵蓋了所有情況。
有哪些資料會送到我們的伺服器
只有你輸入的網址。我們的伺服器會取得該頁面、只讀取它的 <head>,接著取得 robots.txt
與標籤所指名的圖片。檢查內容不會被儲存,頁面的原始碼也不會回傳到你的瀏覽器 —— 回傳的只有
指名的標籤值與判定結果。
指向私人網路的位址會被拒絕而不會被取得,包括任何由轉址所導向的位址。