skills/drift/SKILL.md
Blog SEO drift monitoring. Capture baselines of SEO-critical elements, detect changes, and track regressions over time. Use when user says "drift", "SEO baseline", "track changes", "did anything break", "SEO regression", "before and after deployment", "monitor SEO changes", "compare SEO", or "deployment check".
npx skillsauth add rainday/smart-blog-skills driftInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Git for your SEO. 捕捉 SEO 基準線,偵測回歸,追蹤隨時間的變化。
| 指令 | 功能 |
|------|------|
| /smart-blog-skills:drift baseline <url> | 擷取當前 SEO 狀態作為「已知良好」快照 |
| /smart-blog-skills:drift compare <url> | 將當前狀態與儲存的基準線比較 |
| /smart-blog-skills:drift history <url> | 顯示歷史比較紀錄 |
| 元素 | 說明 | |------|------| | Title tag | 頁面標題(含字元數) | | Meta description | 描述標籤(含字元數) | | Canonical URL | 標準化 URL | | Robots directives | meta robots 和 X-Robots-Tag | | H1 標題 | 所有 H1 的文字和數量 | | H2 標題 | 所有 H2 的文字和數量 | | H3 標題 | 所有 H3 的文字和數量 | | JSON-LD schema | 結構化資料類型和內容 | | Open Graph 標籤 | og:title, og:description, og:image | | HTTP 狀態碼 | 200/301/302/404/500 | | 內容摘要 | 字數、段落數、圖片數 |
| 規則 | 觸發條件 | |------|---------| | Title 消失 | title 標籤為空或缺失 | | Noindex 新增 | meta robots 新增 noindex | | Canonical 變更 | canonical URL 改變(指向其他頁面) | | HTTP 狀態變更 | 200 → 4xx 或 5xx | | H1 消失 | 所有 H1 被移除 | | Schema 完全移除 | 所有 JSON-LD 被刪除 |
| 規則 | 觸發條件 | |------|---------| | Title 文字改變 | title 內容不同 | | Meta description 消失 | description 為空或缺失 | | Meta description 文字改變 | description 內容不同 | | H1 數量改變 | H1 數量增加或減少 | | H1 文字改變 | H1 內容不同 | | Schema 類型改變 | @type 修改或增減 | | OG 標籤消失 | og:title 或 og:image 消失 | | Robots 指令改變 | 非 noindex 的 robots 指令修改 |
| 規則 | 觸發條件 | |------|---------| | H2 結構改變 | H2 數量或文字有差異 | | 內容字數大幅改變 | 字數增減超過 20% | | OG 內容更新 | og: 標籤有新內容 |
將快照儲存為 Markdown 檔案至 .drift/ 目錄(可建在專案根目錄或使用者家目錄):
.drift/
baselines/
[url-slug]_[timestamp].md
comparisons/
[url-slug]_compare_[timestamp].md
index.md (歷史紀錄索引)
---
url: https://example.com/blog/post
captured_at: 2026-05-15T10:30:00
status_code: 200
---
## Title
Example Blog Post Title (45 chars)
## Meta Description
Blog post description here... (155 chars)
## Canonical
https://example.com/blog/post
## Meta Robots
index, follow
## H1
- "Example Blog Post Title"
## H2 (5 headings)
- "Introduction"
- "Main Section"
- ...
## Schema Types
- BlogPosting
- Person
## Open Graph
- og:title: Example Blog Post Title
- og:description: Blog post description...
- og:image: https://example.com/img.jpg
## Word Count
~1,847 words
.drift/baselines/ 找最近的 [url-slug]_*.md.drift/comparisons/# SEO Drift 報告:[URL]
**比較時間:** [Timestamp]
**基準線時間:** [Timestamp]
## 嚴重問題 CRITICAL ⛔
- **Noindex 新增**:meta robots 從 `index, follow` 變為 `noindex, follow`
→ 立即修復。頁面將被移出搜尋索引。
→ 建議:執行 `/smart-blog-skills:seo-check` 做完整 SEO 驗證
## 警告 WARNING ⚠️
- **Title 改變**
- 舊:「2025 年最佳工具」
- 新:「最佳工具清單」
→ 確認是刻意修改還是意外遺失關鍵字
## 資訊 INFO ℹ️
- **H2 結構改變**:從 6 個 H2 變為 8 個 H2
## 無變動 ✅
- Canonical URL:無變動
- Schema:無變動
- HTTP 狀態:200(無變動)
| 發現 | 建議 |
|------|------|
| Schema 移除或修改 | /smart-blog-skills:schema <url> |
| Title/meta description 改變 | /smart-blog-skills:seo-check <url> |
| H1/標題結構改變 | /smart-blog-skills:analyze <url> |
| OG 標籤消失 | /smart-blog-skills:seo-check <url> |
| Noindex 新增 | 立即手動檢查並修復 |
讀取 .drift/index.md 和 .drift/comparisons/ 目錄,顯示:
/smart-blog-skills:drift baseline https://example.com/blog/post # 部署前
# ... 部署 ...
/smart-blog-skills:drift compare https://example.com/blog/post # 部署後
/smart-blog-skills:drift compare https://example.com/blog/post # 月度檢查
/smart-blog-skills:drift history https://example.com/blog/post # 查看趨勢
/smart-blog-skills:drift compare https://example.com/blog/post # 查什麼變了
/smart-blog-skills:drift history https://example.com/blog/post # 什麼時候變的
| 狀況 | 處置 |
|------|------|
| URL 無法訪問 | 回報錯誤,不猜測狀態 |
| 無此 URL 的基準線 | 提示先執行 baseline |
| 返回 4xx/5xx | 仍記錄(狀態碼本身是追蹤欄位) |
| .drift/ 目錄不存在 | 自動建立,無錯誤 |
documentation
Smart Blog 寫文章。從零寫一篇新的部落格文章,包含模板選擇、研究、 YouTube 影片嵌入、Humanizer 反 AI 審稿、品質檢查。 內建反幻覺驗證,繁體中文優先。 Use when user says "write blog", "寫文章", "寫部落格", "new blog post", "smart-blog write", "blog write".
testing
Translate existing blog posts into one or more target languages with SEO-optimized localization. Produces native-quality translations that preserve markdown structure, frontmatter, schema JSON-LD, image and chart embeds, and citation capsules. Localizes keywords, meta tags, numbers, dates, currencies, and quote styles per locale. Flags machine-translation artifacts for review. Run BEFORE localize: this handles language conversion; localize handles cultural adaptation after translation completes. Use when user says "translate blog", "blog translate", "uebersetzen", "traduire", "traducir", "translate post", "blog auf Deutsch", "blog en espanol".
development
Extract, suggest, and sync tags and categories for blog posts across all major CMS platforms. Supports WordPress REST API, Shopify GraphQL, Ghost Content API, Strapi REST/GraphQL, and Sanity GROQ. Generates tag suggestions from content analysis (keyword frequency, heading extraction, semantic grouping), enforces minimum post-count thresholds to prevent thin tag archives, and syncs taxonomy via authenticated API calls. Use when user says "tags", "categories", "taxonomy", "tag suggestions", "sync tags", "WordPress tags", "Shopify tags".
development
Blog strategy development including topic cluster architecture with hub-and-spoke design, audience mapping, competitive landscape analysis, AI citation surface strategy across ChatGPT/Perplexity/AI Overviews, distribution channel planning (YouTube, Reddit, review platforms for GEO), content scoring targets, measurement framework, and content differentiation through original research and first-hand experience. Use when user says "blog strategy", "content strategy", "blog positioning", "what should I blog about", "blog topics", "content pillars", "blog ideation".