SKILL.md
readonlyread-only
name
fixing-metadata
description
Audit and fix HTML metadata including page titles, meta descriptions, canonical URLs, Open Graph tags, Twitter cards, favicons, JSON-LD structured data, and robots directives. Use when adding SEO metadata, fixing social share previews, reviewing Open Graph tags, setting up canonical URLs, or shipping new pages that need correct meta tags.
version
1.0.1
工作流程
- 找出缺少或不正確中繼資料的頁面(標題、描述、Canonical、OG 標籤)
- 根據下方的優先級規則進行審核 — 優先修正嚴重問題(重複、索引)
- 確保 title、description、canonical 和 og:url 彼此一致
- 在真實 URL(非 localhost)上驗證社群卡片是否正確呈現
- 保持差異最小化,僅限於中繼資料範圍 — 不要重構不相關的程式碼
適用時機
請參考以下準則:
- 新增或變更頁面標題、描述、Canonical、Robots
- 實作 Open Graph 或 Twitter Card 中繼資料
- 設定 Favicon、App 圖示、Manifest、Theme-color
- 建立共用 SEO 元件或版面中繼資料預設值
- 新增結構化資料(JSON-LD)
- 變更語系、替代語言或 Canonical 路由
- 上線新頁面、行銷頁面或可分享連結
依優先級分類的規則
| 優先級 | 類別 | 影響 |
|---|---|---|
| 1 | 正確性與重複 | 嚴重 |
| 2 | 標題與描述 | 高 |
| 3 | Canonical 與索引 | 高 |
| 4 | 社群卡片 | 高 |
| 5 | 圖示與 Manifest | 中 |
| 6 | 結構化資料 | 中 |
| 7 | 語系與替代語言 | 低-中 |
| 8 | 工具邊界 | 嚴重 |
快速參考
1. 正確性與重複(嚴重)
- 每個頁面只在一個地方定義中繼資料,避免衝突系統
- 不要輸出重複的 title、description、canonical 或 robots 標籤
- 中繼資料必須是確定性的,不能有隨機或不穩定的值
- 對任何使用者產生或動態字串進行跳脫與清理
- 每個頁面必須有安全的 title 和 description 預設值
2. 標題與描述(高)
- 每個頁面必須有 title
- 在整個網站中使用一致的 title 格式
- 保持標題簡短易讀,避免關鍵字堆砌
- 可分享或可搜尋的頁面應有 meta description
- 描述必須是純文字,不能包含 Markdown 或引號垃圾
3. Canonical 與索引(高)
- Canonical 必須指向頁面的首選 URL
- 僅對私人、重複或非公開頁面使用 noindex
- Robots meta 必須符合實際的存取意圖
- 預覽或暫存頁面應預設為 noindex(若可能)
- 分頁頁面必須有正確的 canonical 行為
4. 社群卡片(高)
- 可分享頁面必須設定 Open Graph 標題、描述與圖片
- Open Graph 與 Twitter 圖片必須使用絕對 URL
- 偏好正確的圖片尺寸與穩定的長寬比
- og:url 必須與 canonical URL 一致
- 使用合理的 og:type,通常是 website 或 article
- 適當設定 twitter:card,預設為 summary_large_image
5. 圖示與 Manifest(中)
- 至少包含一個可在各瀏覽器運作的 favicon
- 相關時包含 apple-touch-icon
- Manifest 必須有效,且使用時需正確引用
- 有目的地設定 theme-color,避免 UI 外觀不一致
- 圖示路徑應穩定且可快取
6. 結構化資料(中)
- 除非 JSON-LD 清楚對應到實際頁面內容,否則不要新增
- JSON-LD 必須有效,並反映實際渲染的內容
- 不要虛構評分、評論、價格或組織資訊
- 除非必要,每個頁面偏好一個結構化資料區塊
7. 語系與替代語言(低-中)
- 正確設定 html lang 屬性
- 當有在地化版本時設定 og:locale
- 僅在頁面確實存在時才加入 hreflang 替代連結
- 在地化頁面必須根據語系正確設定 canonical
8. 工具邊界(嚴重)
- 偏好最小變更,不要重構不相關的程式碼
- 除非要求,否則不要遷移框架或 SEO 函式庫
- 遵循專案現有的中繼資料模式(Next.js metadata API、react-helmet、手動 head 等)
審查指引
- 優先修正嚴重問題(重複、Canonical、索引)
- 確保 title、description、canonical 和 og:url 一致
- 在真實 URL(非 localhost)上驗證社群卡片
- 偏好穩定、無趣的中繼資料,而非花俏或動態的
- 保持差異最小化,僅限於中繼資料範圍






