Kit Viết Blog Chuẩn SEO + GEO Trên Claude Code 2026
TL;DR
Vòng đời một bài blog có 2 nửa: viết mới + làm mới khi bài bắt đầu “mục”. Kit này lo cả 2. /blog-pipeline chạy end-to-end 7 phase từ keyword đến WordPress draft. /blog-refresh-pipeline hồi sinh bài cũ đang tụt hạng. Bài này giải thích từng phase, cách chặn “AI slop”, chi phí thực tế, và khi nào không nên dùng. Cross-link: audit hạ tầng · audit nội dung · setup tool & API.
Cuối 2025, mình viết 16 bài SEO mỗi tháng. Mỗi bài phải tự chain 10–15 skill Claude Code rời rạc. Không có template. Không có gate chặn tự động.
Ba tuần sau, mình audit và thấy 4 bài AI-feel lọt qua. Traffic 4 bài đó drop rõ sau Google Helpful Content sweep. Bài còn lại không drop, vì có first-person data, câu lệch nhau, operator narrative.
Vấn đề cốt lõi: quy trình không nhất quán. Mỗi bài là một phiên bản khác nhau của “cách mình làm hôm nay”. Không có gì chặn bài kém trước khi publish.
Nhưng đó chỉ là nửa vấn đề đầu tiên: viết bài mới. Nửa còn lại mình phát hiện muộn hơn. Bài cũ không cần xóa, chỉ cần làm mới đúng cách. Thống kê nội bộ của mình: bài >12 tháng tuổi tụt trung bình 2–3 hạng mỗi quý nếu không cập nhật. Một bài hạng 5 hôm nay có thể ra khỏi top 10 sau 6 tháng mà bạn không làm gì.
Mình cần 2 lệnh. Một lệnh cho viết mới. Một lệnh cho làm mới bài cũ. Cả 2 đều phải có gate chặn tự động.
Đó là lý do mình build /blog-pipeline và /blog-refresh-pipeline.
Bài này cover cả 2 pipeline. Khác với 2 bài khác trong series: audit hạ tầng kiểm tra server và Core Web Vitals, audit nội dung soi toàn bộ portfolio. Muốn setup tool và API trước? Xem bài setup.
Đọc xong bài này, bạn sẽ biết:
/blog-pipelineviết bài mới qua 7 phase ra sao- mỗi phase dùng skill gì và chống “AI slop” thế nào
- chi phí thật 1 bài gồm những gì
/blog-refresh-pipelinelàm mới bài cũ- khi nào viết mới so với làm mới, và dùng cho ai
/blog-pipeline làm gì?

/blog-pipeline [keyword] là 1 lệnh duy nhất. Nó chạy toàn bộ quy trình viết bài blog từ đầu đến cuối. Research → brief → write → audit → image → publish. Không cần tự orchestrate từng skill. Không cần nhớ skill nào chain với skill nào.
Outcome: bài chuẩn SEO + GEO, có ảnh hero, tạo WordPress draft sẵn sàng review. Mình duyệt rồi mới publish thật. Pipeline mặc định tạo status draft, không auto-publish.
Điểm khác biệt quan trọng nhất: đây là state machine, không phải wrapper hay prompt template. Mỗi phase có exit criteria rõ ràng. Phase sau không bắt đầu nếu phase trước chưa pass. Fail gate → halt với diagnostic, không silent skip.
Ví dụ VN: Phase 3 Write ra bài có burstiness SD 3.8, câu đều nhau kiểu AI. Gate chặn lại. Pipeline rewrite lần 2. Nếu lần 2 vẫn fail, rewrite lần 3. Sau 3 lần fail, pipeline halt và báo bạn, không push bài kém lên WordPress.
7 phase của pipeline:

/blog-pipeline viết bài mới · /blog-refresh-pipeline làm mới bài cũ.Quy trình 1 bài đi qua step gì?
Mình sẽ đi qua từng phase. Mỗi phase có 1 đoạn giải thích + artifact ra. Bảng phase→skill ở cuối section để bạn tham chiếu kỹ thuật.
Phase 0: Setup + Capability detect
Pipeline kiểm tra prereq trước khi làm gì khác. BRAND.md tồn tại không? VOICE.md tồn tại không? MCP tool ready chưa? Nếu thiếu thứ gì, halt với diagnostic rõ ràng. Không bao giờ chạy bài với config thiếu.
Phase 0.7 detect tier research tự động. Có GSC OAuth không? Có DataForSEO MCP không? Fallback WebSearch built-in. Pipeline pick tier cao nhất available và log vào pipeline-state.json. Bạn không cần tự chọn.
Artifact ra: articles/[slug]/ folder được tạo. pipeline-state.json ghi tier và config.
Phase 1: Research
Đây là phase quan trọng nhất về độ sâu dữ liệu. Có 2 luồng song song.
Luồng 1: blog-discourse đào ý kiến cộng đồng. Skill này scrape Reddit thread, Quora, Google PAA, lấy câu hỏi thật người dùng đang hỏi. Không phải câu hỏi mình đoán. Ví dụ VN: topic “n8n Prometheus monitoring”, discourse tìm ra thread Reddit “n8n memory leak sau 3 ngày chạy queue mode”, một pain point thật mà keyword tool không cho thấy.
Luồng 2: data keyword. T1 dùng blog-google đọc GSC data thật của site: striking-distance keyword, actual query 30 ngày. T2 dùng seo-dataforseo: SERP top 10, keyword volume, competitor backlinks. T3 dùng WebSearch built-in, nhẹ hơn nhưng vẫn đủ dùng.
Artifact ra: DISCOURSE.md (ý kiến cộng đồng) + research.md (data keyword + competitor).
Phase 1.5a: Anti-cannibalization
blog-cannibalization so keyword và search intent của bài mới với toàn bộ bài cũ trên site. Nếu trùng cao → dừng lại, gợi ý merge thay vì viết bài mới. Tránh tình huống viết bài mới xong phát hiện đã có bài cũ cạnh tranh, mất công và hại cả 2 bài.
Decision có 3 loại: SAFE (proceed bình thường) · PROCEED_WITH_LINK (viết nhưng link về bài cũ) · MERGE_INTO_HUB (đừng viết mới, merge vào). Artifact: decision log trong pipeline-state.json.
Phase 2: Brief
blog-brief chọn 1 trong 12 format bài dựa trên keyword và SERP intent. Sau đó dựng outline H2/H3, chọn stats, chọn FAQ, chọn internal link. Output là brief.md với đủ thông tin để Phase 3 Write không cần search thêm.
Quan trọng: brief có research_packet nhúng vào. Phase 3 detect research_packet trong brief và skip research lần 2. Không bao giờ research trùng lặp.
Phase 3: Write
Phase này có vòng lặp tự động. blog-write viết bài theo brief, chèn marker [ANSWER-FIRST] và [STAT] ở đúng vị trí. Xong, blog-reviewer chấm điểm 100 điểm theo 5 dimension.
Nếu điểm <90 hoặc M5 Naturalness fail → pipeline tự rewrite. Tối đa 3 vòng lặp. Đến vòng 3 vẫn fail → halt, bạn biết rõ fail ở điểm nào.
Ví dụ VN: bài “Claude Code MCP setup” iteration 1 ra burstiness SD 3.8 và 4 banned phrase. FAIL. Iteration 2 xen câu ngắn, thay từ lặp. SD lên 7.2, banned phrase còn 1. PASS.
Artifact ra: blog.md pass gate, zero [PLACEHOLDER] token.
Phase 4: Audit (4 skill song song)
4 skill chạy cùng lúc, không tuần tự. blog-analyze: E-E-A-T, AI detection, readability. blog-seo-check: 22 Rank Math check (title, meta, keyword density, schema). blog-geo: AI citability từng H2, tức khả năng ChatGPT hoặc Perplexity trích dẫn. blog-factcheck: verify nguồn, detect dead link.
Kết quả merge thành composite score 0–100. Gate: ≥90 và zero lỗi P0 (factual error, dead link, broken schema).
Phase 5: Image
Kit chạy AI-first cho ảnh thương hiệu: hero, ảnh section và infographic sinh bằng AI (Gemini qua Nanobanana) theo đúng style brand của bạn. Riêng chart, bảng số liệu, sơ đồ → dùng SVG vì chữ/số luôn sắc, AI hay méo.
Điểm hay: mỗi slot có fallback free tự động. Hết quota AI hay banana lỗi → kit tự rớt sang stock free (Pexels/Pixabay/Unsplash/Openverse) hoặc SVG. Không bao giờ để bài trống ảnh, không bao giờ bill bất ngờ.
Bạn cấu hình từng loại ảnh dùng nguồn nào trong block image_sources (overrides per-site). Muốn tiết kiệm thì lật slot sang free là chi phí ảnh về gần $0. Không giới hạn số ảnh. Mọi nguồn fail (hiếm) → bài vẫn publish, chỉ thiếu hero + cảnh báo.
Phase 6: Publish
Kit không khóa WordPress, không khóa RankMath. Bạn dùng plugin SEO nào, kit tự nhận — RankMath, Yoast, hoặc generic. Cấu hình bằng field seo_plugin: auto trong BRAND.md là xong.
Với WordPress: kit tạo draft, set SEO meta đúng theo plugin bạn đang cài, đặt schema, lên lịch đăng, rồi chạy 9-check verify sau khi publish. Nếu publish lỗi giữa chừng, kit tự rollback ảnh mồ côi — không để rác trên server.
Với static site (Hugo, Jekyll, Astro, MDX): kit export file content, ghi front-matter đúng chuẩn SSG, copy ảnh vào repo của bạn. Cấu hình qua cms_platform và export_root trong BRAND.md. Ghost hoặc headless CMS khác: chưa auto được, import tay.
Status luôn là draft — kit không bao giờ tự publish. Muốn bỏ qua Phase 6 hoàn toàn, thêm --no-publish vào lệnh.
Phase 7: Repurpose (optional)
blog-repurpose sinh social variant: Twitter thread, LinkedIn post, Threads. Optional, pipeline hỏi trước khi chạy. Skip bằng --no-repurpose.
| Phase | Phase làm gì | Skill | Skill làm gì |
|---|---|---|---|
| 1 Research | Đào dữ liệu từ khóa + ý kiến cộng đồng | blog-discourse + blog-google (T1) / seo-dataforseo (T2) / WebSearch (T3) |
discourse: scrape Reddit/PAA/Quora · google: GSC query + CrUX + NLP entity · dataforseo: SERP + keyword volume + competitor |
| 1.5a Cannibal | Chống tự cạnh tranh | blog-cannibalization |
So title/intent bài cũ, dừng nếu trùng cao, trả SAFE / PROCEED_WITH_LINK / MERGE_INTO_HUB |
| 2 Brief | Chốt hướng + outline | blog-brief |
Chọn 1/12 format, dựng outline H2/H3, chọn stats/FAQ/internal link, nhúng research_packet |
| 3 Write | Viết + tự chấm + lặp | blog-write + blog-reviewer |
Writer viết (marker [ANSWER-FIRST]/[STAT]) · reviewer chấm 100 điểm + M5 · lặp ≤3 lần đến ≥90 |
| 4 Audit | Soi 4 góc song song | blog-analyze + blog-seo-check + blog-geo + blog-factcheck |
Quality/E-E-A-T/AI-detect · on-page 22 check · AI-citability từng H2 · verify nguồn + link |
| 5 Image | Ảnh hero + section | SVG (chart) + stock free (Pexels/Pixabay/Unsplash/Openverse) → AI fallback. Free-first | Thử từng bước, fail mới chuyển sang bước tiếp, luôn có ảnh |
| 6 Publish | Đăng WordPress draft | blog-publish |
Tạo WP draft + Rank Math meta + schema markup, trả post_id + URL |
| 7 Repurpose | Biến thể social (optional) | blog-repurpose |
Sinh Twitter thread / LinkedIn / Threads, lưu vào article folder |
12 format bài pipeline hỗ trợ
blog-brief tự chọn 1 trong 12 format dựa trên keyword và SERP intent. Bạn không cần chỉ định. Pipeline đọc keyword, đọc top 10 SERP, chọn format phù hợp nhất.
Bảng dưới là một phần ví dụ, không phải toàn bộ logic:
| Keyword signal | Format tự chọn |
|---|---|
| “X vs Y”, “so sánh”, “comparison” | comparison |
| “how to”, “cách”, “hướng dẫn” | how-to-guide |
| “step by step”, “từng bước” | tutorial |
| “ultimate guide”, “complete guide”, “toàn tập” | pillar-page |
| “best”, “top N”, “tốt nhất” | listicle |
| “review”, “đánh giá” | product-review |
| “case study”, “thực tế” | case-study |
| “what is”, “là gì”, “định nghĩa” | definition-glossary |
| “FAQ”, “câu hỏi thường gặp” | faq-knowledge |
| “thống kê”, “research”, “data” | data-research |
| “tin tức”, “news”, “update mới” | news-analysis |
| “quan điểm”, “góc nhìn”, “opinion” | thought-leadership |
Mỗi format có cấu trúc H2/H3 riêng, thứ tự section riêng, và instruction viết riêng. Xem cấu trúc đầy đủ 12 format ở folder directives/outline_prompts/ trong kit. Cấu trúc từng format mình sẽ giải thích chi tiết ở bài riêng.
Ví dụ VN: mình gõ /blog-pipeline "n8n Prometheus Grafana monitoring". Pipeline đọc SERP, thấy top 3 đều là tutorial step-by-step. Tự chọn format tutorial. Brief ra outline 8 H2 theo cấu trúc tutorial. Mình không cần chỉ định format.
Chặn “AI slop” thế nào?
“AI slop” là văn bản AI sinh ra mang đặc trưng nhận ra ngay. Câu đều nhau về độ dài. Lặp từ nhiều. Dùng những phrase AI hay dùng: “delve into”, “leverage”, “comprehensive”, “tuyệt vời”, “đỉnh cao”. Đôi khi bịa số hoặc citation không tồn tại.
Ví dụ VN dễ nhận ra: đoạn văn toàn câu 18–22 từ, lặp “hiệu quả” 6 lần trong 3 đoạn, mở đầu bằng “Trong bối cảnh hiện nay”. Reader đọc là biết. Google Helpful Content cũng biết.
Mình từng ship 4 bài dạng đó. Không phát hiện vì không có gate đo được. Đây là lý do mình add M5 Naturalness vào pipeline. Không phải paranoid, mà vì đã bị đau thật.
M5 Naturalness: 3 ngưỡng đo được, không cảm quan
Cả 3 ngưỡng đều tính được từ text. Pipeline tự detect. Bạn không cần đọc lại từng câu.
Ngưỡng 1: Banned phrase <3 lần toàn bài. Pipeline đếm số lần xuất hiện phrase trong danh sách đen. “Delve into”, “leverage”, “comprehensive”, “robust”, “seamless”, “tuyệt vời”, “đỉnh cao”, “đột phá”. Vượt ngưỡng → fail → rewrite.
Ngưỡng 2: Burstiness SD ≥5. Đo độ lệch chuẩn độ dài câu. AI sinh câu đều nhau, SD 2–4. Con người viết lúc ngắn lúc dài, SD 7–10. Dưới 5 → fail. Ví dụ VN: bài “setup Redis” toàn câu 15–20 từ, SD ≈ 3. Mình xen vào: “Cài xong. Restart service. Kiểm tra log.” SD lên 8. Pass. Bài đọc tự nhiên hơn hẳn.
Ngưỡng 3: TTR ≥0.35. Type-Token Ratio = số từ duy nhất / tổng từ. AI lặp từ nhiều, TTR thấp. Dưới 0.35 → fail. Sửa bằng dùng từ đồng nghĩa, thay đổi cách diễn đạt.
Pipeline lặp tối đa 3 vòng. Đến vòng 3 vẫn fail → halt với diagnostic rõ ngưỡng nào fail và tại sao. Bạn biết chính xác cần sửa ở đâu.
Ví dụ VN từ bài thật: bài “Claude Code skills” iteration 1: burstiness SD 3.8 + banned phrase 4 lần. FAIL. Iteration 2: SD 7.2 + 1 banned phrase. PASS. Composite Phase 4: 92/100. Không có gate đó, bài đi thẳng lên WordPress và mình không biết nó AI-detectable.
Bài viết ra giọng của bạn, không phải giọng AI
Đây là điểm khác biệt mình thấy rõ nhất khi dùng kit cho ongboit.com.
Lúc setup, kit phân tích chính các bài đang chạy tốt của bạn — cân theo click từ Search Console và engagement từ GA4. Từ đó ra hồ sơ giọng: câu dài bao nhiêu từ, mức trang trọng, tỉ lệ first-person. Kit ghi hồ sơ này vào VOICE.md, mỗi bài mới đều đọc từ đó trước khi viết.
Ngoài giọng, kit còn rút số liệu thật, quan điểm thật, giai thoại thật của bạn vào một “kho” riêng (stats/opinions/stories). Mỗi lần cần dẫn chứng, writer kéo từ kho ra — không tự bịa số. Ví dụ: cần nói chi phí, kit ghi đúng “$0.40 một bài” vì đó là số bạn đã đo thật, không phải số chế ra.
Kết quả là bài đọc ra giọng người làm thật. Chi tiết cụ thể khó bịa chính là dấu hiệu số 1 của văn người viết — và là thứ Google đang dùng để đánh giá E-E-A-T phần Experience.
Không biết viết gì tiếp? 3 cách bắt đầu
Có sẵn keyword, chạy luôn: /blog-pipeline "từ khóa" → 1 bài hoàn chỉnh.
Chưa nghĩ ra keyword, dùng /blog-from-queue. Kit đọc Search Console của bạn, tự tìm chủ đề ROI cao — những bài đang gần top, thêm một chút là lên hẳn. Kit tự quyết viết mới hay làm mới bài cũ, rồi chạy luôn. Hợp nhất khi bạn không muốn mất thời gian chọn đề.
Muốn đánh cả cụm: /blog-pipeline "chủ đề lớn" --cluster → 1 bài pillar + nhiều bài spoke, tự tạo liên kết chéo. Quản nhiều site cùng lúc thì có /blog-fleet — 1 lệnh, kit chạy content cho mọi site, mỗi site tự chọn chủ đề từ data GSC riêng của nó. Lưu ý: site mới chưa có data GSC thì dùng keyword hoặc cluster trước, chờ đủ data mới dùng fleet.
Bài cũ “mục” dần: /blog-refresh-pipeline

“Decay” là gì? Bài SEO tụt hạng dần theo thời gian dù bạn không làm gì. Thông tin lỗi thời, link chết, bài mới của đối thủ mạnh hơn, hoặc Google update, tất cả đều gây decay. Không phải bài nào cũng cần xóa. Phần lớn chỉ cần làm mới đúng cách.
Ví dụ VN: bài “cài đặt n8n trên VPS” viết năm 2024. Năm 2025, n8n ra queue mode mặc định, Docker compose thay đổi, tutorial cũ không còn chính xác. Bài từ hạng 4 rớt xuống hạng 9. Không cần viết bài mới, cần refresh bài cũ.
Phát hiện bài cần refresh: blog-decay
Skill blog-decay quét toàn bộ portfolio và phân loại bài vào refresh queue theo 4 mức ưu tiên:
- Critical (làm trong 7 ngày): bài tụt >5 hạng trong 30 ngày gần đây hoặc có thông tin sai nghiêm trọng.
- High (30 ngày): click giảm >20% so với cùng kỳ, hoặc có link chết P0.
- Medium (90 ngày): tuổi >12 tháng, thông tin lỗi thời nhẹ.
- Low (watchlist): bài mồ côi không internal link, hoặc cannibal nhẹ với bài khác.
5 signal blog-decay đo: tuổi bài · click giảm (GSC) · link chết · cannibalization score · orphan status.
Chạy refresh: /blog-refresh-pipeline [slug]
Sau khi có refresh queue, chạy từng bài theo thứ tự ưu tiên. 6 phase:
Phase 1: Backup. Chụp toàn bộ bài live (HTML + meta) lưu vào blog-v1-backup.html. Đây là rollback point. Nếu refresh làm hỏng bài, restore 1 lệnh.
Phase 2: Diagnose. blog-google đọc GSC top query, blog-analyze tìm anti-pattern và info-gap. Output: danh sách điểm yếu cụ thể, gồm thiếu section nào, section nào outdated, H2 nào cần rewrite.
Phase 3.1: Brief-Reuse. Pipeline quyết định có tái dùng brief cũ không. Brief còn mới (schema khớp, tuổi <90 ngày) → reuse-verbatim, không tốn thêm tiền. Brief cũ vừa (90–180 ngày) → partial update. Brief >180 ngày → full brief mới. Tiết kiệm đáng kể chi phí với bài refresh thường xuyên.
Phase 4: Plan. LLM đọc diagnose report và sinh refresh-plan.md: H2 nào giữ nguyên, H2 nào cần sửa, H2 nào thêm mới.
Phase 4.5: Anti-cannibalization. blog-cannibalization check H2 mới không cạnh tranh với bài khác trong cùng site. Tránh việc thêm section mới rồi tạo cannibal mới.
Phase 5: Write + Push LIVE. blog-rewrite viết lại phần cần sửa. Preflight check. wp_push_safe đẩy thẳng LIVE với rollback hook. Nếu push fail, tự động restore backup Phase 1.
Phase 6: Verify. Kiểm tra bài live render OK, meta không drift so với intent, không broken link mới.
Khác blog-pipeline quan trọng: input là bài LIVE đang có rank, không phải bài mới. Push thẳng lên live, không qua draft. Đó là lý do Phase 1 backup là bắt buộc, không thể skip.
| Phase | Phase làm gì | Skill | Skill làm gì |
|---|---|---|---|
| 1 Backup | Chụp bài live (rollback point) | orchestrator + wp_push_safe |
Lưu blog-v1-backup.html + meta trước khi thay đổi gì |
| 2 Diagnose | Tìm điểm yếu | blog-google + blog-analyze |
GSC top query · anti-pattern · info-gap so competitor top 5 |
| 3.1 Brief-Reuse | Quyết tái dùng brief cũ | decision tree | reuse-verbatim ($0) / partial / full theo schema + tuổi brief |
| 4 Plan | Lên kế hoạch sửa | LLM plan | Sinh refresh-plan.md: giữ / sửa / thêm H2 nào |
| 4.5 Cannibal | Chống đụng bài khác | blog-cannibalization |
H2 mới không cạnh tranh với bài khác trong site |
| 5 Write+Push | Viết lại + đẩy LIVE | blog-rewrite + wp_push_safe |
Rewrite phần cần + preflight + push LIVE (rollback tự động nếu fail) |
| 6 Verify | Kiểm tra live | verify | Render OK + meta không drift + không broken link mới |
Viết mới hay làm mới?
Câu hỏi thực tế: mình có bài “n8n Docker setup” từ 2024. Keyword vẫn có traffic. Bài tụt hạng 4 vị trí. Viết bài mới hay refresh bài cũ?
Bảng quyết định nhanh:
| Tình huống | Pipeline nào | Lý do |
|---|---|---|
| Chủ đề hoàn toàn mới, chưa có bài nào | /blog-pipeline |
Không có gì để tái dùng, viết mới từ đầu |
| Bài cũ tụt hạng, thông tin lỗi thời | /blog-refresh-pipeline |
URL có sẵn có authority, giữ và làm mới |
| Bài cũ quá outdated, cần rewrite 80%+ | /blog-refresh-pipeline mode Full |
Vẫn giữ URL cũ, không tạo bài mới, tránh mất authority |
| 2 bài cũ cannibal nhau | /blog-refresh-pipeline → merge |
Merge vào bài mạnh hơn, redirect bài yếu |
| Cụm bài (pillar + spoke) | /blog-pipeline --cluster |
Pipeline sinh cluster-plan.json, chạy từng spoke theo plan |
| Bài cũ hạng 1–3, chỉ thiếu 1 section nhỏ | /blog-refresh-pipeline mode Light |
Không cần rewrite nhiều, update nhẹ, tránh rủi ro drop |
Rule of thumb của mình: nếu URL đã có tuổi và có rank, giữ URL đó. Làm mới luôn tốt hơn viết mới khi URL có sẵn authority. Chỉ viết bài mới khi chủ đề thực sự chưa có gì trên site.
Ví dụ VN: bài “Claude Code MCP setup” hạng 6, traffic giảm 25% so với 6 tháng trước. Diagnose: thiếu section về MCP transport type mới (stdio vs SSE), link official docs một số dead. Mode Light đủ: update 2 đoạn + fix link + thêm 1 H2 mới. Chi phí ~$0.15. Không cần viết lại toàn bài.
Chi phí thực tế 1 bài
Mình sẽ nói thẳng về số. Không giấu, không làm màu.
Claude Max $100/tháng: LLM included
Nếu bạn dùng Claude Max $100/tháng, toàn bộ LLM call của pipeline nằm trong plan. Bạn không trả thêm token lẻ. Claude Code chạy trên subscription, không phải pay-per-API.
Amortize đơn giản: viết 20 bài/tháng → phần Claude ≈ $5/bài. Viết 40 bài → $2.50/bài. Càng viết nhiều, càng rẻ mỗi bài.
Metered theo lần dùng: ~$0.15/bài tiền mặt
Ngoài Claude subscription, chi phí thực tế mỗi bài chủ yếu từ 2 nguồn:
- DataForSEO: ~$0.067/bài nếu dùng T2. Không bắt buộc: T1 GSC miễn phí, T3 WebSearch miễn phí.
- Gemini ảnh: ~$0.04/ảnh (model Nano Banana). Một bài thường 1 ảnh hero + 2-3 ảnh section (sơ đồ/screenshot tùy loại bài) nên ~$0.08-0.12/bài. AI Studio có quota test miễn phí (giới hạn rate, không còn gói “100 ảnh/tháng”). Hết quota thì pipeline tự fallback sang ảnh stock free (Unsplash/Pexels/Pixabay/Openverse) nên $0.
GSC và CrUX miễn phí. WordPress REST API miễn phí.
Ví dụ 1 bài cụ thể: $0.40 với token-API pay-per-use
Trong ví dụ này mình tính theo token-API (kiểu Claude Pro pay-per-token, không phải Max subscription). Pipeline chạy keyword “n8n Prometheus Grafana monitoring”, T1 GSC, Gemini ảnh:
| Phase | Thời gian (approx) | Chi phí USD (token-API) | Status |
|---|---|---|---|
| 0 Setup + 0.7 Detect | ~0:20 | $0.00 | OK, T1 detected |
| 1 Research (T1 GSC) | ~2:30 | $0.067 | OK |
| 1.5a Cannibalization | ~0:15 | — | SAFE, proceed |
| 2 Brief | ~1:00 | $0.020 | OK |
| 3 Write (2 vòng lặp) | ~4:30 | $0.180 | PASS, composite 94 |
| 4 Audit (4 song song) | ~1:30 | $0.045 | OK |
| 5 Image (Gemini, 2 ảnh) | ~2:00 | $0.08 | OK |
| 6 Publish | ~0:30 | $0.005 | OK, WP draft |
| Tổng | ~12–13 phút | $0.40 | Composite 94/100 |
Quan trọng: $0.40 là ví dụ tính theo token-API pay-per-use. Nếu bạn dùng Claude Max $100/tháng, bạn không trả khoản LLM lẻ đó, chỉ trả DataForSEO ~$0.067 + Gemini ~$0.08 = ~$0.15/bài tiền mặt.
Phase 3 Write chiếm phần lớn thời gian vì cần 2 vòng lặp. Vòng 1 fail M5: burstiness SD thấp. Vòng 2 pass.
Lệnh thật mình chạy: /blog-pipeline "n8n Prometheus Grafana monitoring" --site ongboit.com. Pipeline tự nhận article type = Tutorial (từ SERP intent), chạy T1 vì site có GSC OAuth.
Phase 3 Write chạy 2 vòng: vòng 1 fail vì burstiness SD thấp, vòng 2 pass (composite 94/100). Đó là lý do Phase 3 chiếm phần lớn thời gian — và là chỗ kit chặn “AI slop” trước khi bài ra.
Chi phí refresh so với viết mới
- Refresh Light: ~$0.15/bài (update nhẹ, brief reuse)
- Refresh Medium: ~$0.40–0.60/bài
- Refresh Full: ~$0.80–1.20/bài
So với thuê writer
Writer freelance thông thường: $50–150/bài tùy chất lượng và độ dài. Pipeline không thay thế editor judgment và chiến lược content. Nhưng cho phần execution, gồm research, viết draft, audit, image, publish, chi phí thấp hơn đáng kể.
Dùng vào việc gì? 6 persona và cách bắt đầu
Pipeline phù hợp với nhiều profile khác nhau. Mình dùng 6 persona phổ biến nhất, với cột “bắt đầu từ đâu” cụ thể cho từng trường hợp.
| Persona | Viết mới | Làm mới | Bắt đầu từ đâu |
|---|---|---|---|
| Solo blogger (4–16 bài/tháng) | ✅ use case chính | Bài cũ tụt hạng | /blog-pipeline "từ khóa" bài đầu tiên |
| Multi-site owner (2–5 site) | ✅ flag --site |
✅ cả portfolio | Setup per-site xong, dùng --site [domain] |
| Agency / freelancer | Viết draft cho khách | Giữ rank cho khách | /blog-decay audit portfolio khách → refresh queue |
| In-house content marketer | ✅ team 1 site | ✅ định kỳ hàng quý | Brief 1 chủ đề thử với /blog-pipeline |
| Niche affiliate / review site | ✅ format product-review | ✅ update giá, spec | /blog-pipeline "tên sản phẩm review" |
| SEO không rành code | ✅ chạy lệnh đơn | ✅ | Đọc bài setup trước, sau đó 1 lệnh duy nhất |
Solo blogger: Bạn duy trì 1 site, viết đều đặn. Quality drift là vấn đề thật sau bài thứ 50+, khi quy trình “chuẩn” thay đổi theo tâm trạng từng ngày. Pipeline enforce gate tự động, bạn không cần tự hỏi “bài này đã audit chưa, burstiness ổn chưa”. Ví dụ VN: blogger ongboit.com chạy pipeline mỗi tuần 2–3 bài, không cần orchestrate thủ công.
Multi-site owner: Mình đang run ongboit.com và một site tiếng Anh song song. Hai site pipeline riêng, config không trộn. Ongboit ra giọng “mình – bạn”, câu ~11 từ. Site kia ra giọng professional hơn. Cùng 1 pipeline, 2 brand voice khác nhau, nhờ --site [domain] scope toàn bộ về BRAND.md của site đó.
Agency / freelancer: Pain point thật: khách hàng có 80 bài cũ, 30 bài đang decay. Chạy /blog-decay một lần → có ngay refresh queue phân loại Critical/High/Medium/Low. Chạy refresh từng bài theo thứ tự. Không cần audit thủ công từng bài.
In-house content marketer: Bạn không cần biết kỹ thuật sâu. 1 lệnh /blog-pipeline "từ khóa" là đủ. Pipeline tự research, tự brief, tự viết, tự audit. Bạn chỉ cần duyệt draft trước khi publish.
Niche affiliate: Format product-review có instruction riêng: disclosure section, comparison table, pros/cons, affiliate CTA positioning. Pipeline tự chọn format này khi keyword có “review” hoặc “đánh giá”. Refresh quan trọng: giá, spec, availability thay đổi thường xuyên, mode Light refresh nhanh chóng.
SEO không rành code: Cần setup 1 lần theo bài setup. Sau đó mọi thứ là 1 lệnh. Không cần biết Python, Node.js, hay Docker để chạy pipeline hàng ngày. Setup ban đầu có friction, nhưng chạy pipeline mỗi ngày thì không.
Không có API trả phí vẫn viết được không?
Câu hỏi hay gặp: “Chưa có DataForSEO thì sao? Kit có chạy không?” Trả lời ngắn: vẫn chạy. Pipeline dùng 3-tier tự động.
| Tier | Cần gì | Chi phí research | Phù hợp khi nào |
|---|---|---|---|
| T1 GSC connected | GSC OAuth cho site bạn own | $0 (miễn phí) | Site cá nhân/công ty mình own, setup OAuth 1 lần |
| T2 DataForSEO | DataForSEO API key | ~$0.067/bài | Client site không GSC access, site mới chưa có GSC data |
| T3 WebSearch fallback | Chỉ cần Claude Code | $0 (miễn phí) | Demo, prototype, chưa có budget |
Phase 0.7 tự detect và pick tier cao nhất available. Bạn không cần chọn. Nếu muốn force: --tier 3.
T3 có limitation rõ: không có keyword volume thật, không cannibalization scan chính xác, competitor analysis chỉ top 3–5 organic. Với T3, ưu tiên topic informational broad, tránh niche commercial keyword cạnh tranh cao.
Khi nào không nên dùng?
Mình muốn honest về giới hạn. Không phải mọi trường hợp đều fit.
- Chưa biết Claude Code basics. Kit assume bạn có Claude Pro hoặc Max, biết khái niệm skill, MCP, và slash command cơ bản. Không cần biết code, nhưng cần quen terminal. Học basics trước, xem Claude Code Roadmap.
- Site trên Shopify, Ghost, Webflow, hoặc static site. Phase 6 Publish chỉ work với WordPress REST API. Phase 1–5 (research → write → audit → image) vẫn chạy và ra file local, nhưng push lên non-WP CMS sẽ break. Roadmap có plan support nhưng chưa ship.
- Cần quyết định chiến lược content. Pipeline không quyết định nên viết gì, build cluster topic ra sao, hay target keyword nào. Đó là quyết định bạn phải làm trước khi gõ lệnh. Pipeline giỏi execution, không giỏi strategy.
- Ảnh AI không phù hợp ngành. Industrial, medical, legal, food: một số ngành cần ảnh thật. Hero ladder có fallback Unsplash/Pexels nhưng không thay thế được ảnh sản phẩm thật.
- Không quen CLI. Setup ban đầu cần edit
.mcp.json, chạy Python script, cơ bản Node.js. Không có GUI installer hiện tại. Non-CLI user có thể dùng nhưng friction cao.
Giá, bắt đầu, và FAQ
Chi phí bắt buộc và optional
Chi phí bắt buộc: Claude Pro $20/tháng (tối thiểu) hoặc Claude Max $100/tháng (recommended nếu viết nhiều: LLM included, không trả token lẻ).
Chi phí optional:
- DataForSEO: ~$0.067/bài nếu dùng T2. Không bắt buộc.
- Gemini AI Studio: có quota test miễn phí (giới hạn rate). Hết quota: ~$0.04/ảnh, hoặc fallback ảnh stock free $0.
- WordPress hosting: bạn đã có. Pipeline không thêm hosting cost.
- GSC và CrUX: miễn phí nếu own site.
Toàn bộ setup chi tiết (cài Claude Code, Python, Git, cấu hình MCP server, lấy API key, chạy onboarding wizard per-site) có hướng dẫn step-by-step riêng: cách setup claude-growth kit 2026.
Kit claude-growth: founding member early access
Pipeline /blog-pipeline 7 phase + /blog-refresh-pipeline 6 phase + quality gate chống AI-slop + onboarding per-site. Tier, pricing, và điều khoản đầy đủ sẽ công bố trên Gumroad khi page mở bán Q3 2026.
→ Email request founding member access
Hoặc reply “Send Gumroad link khi launch” để mình notify ngay khi page mở.
FAQ
Q1: Refresh có làm hỏng bài live không?
Phase 1 của refresh-pipeline luôn backup bài live vào blog-v1-backup.html trước khi thay đổi gì. Nếu push fail, tự động restore backup. Mình không bao giờ cho pipeline push mà không có rollback point.
Q2: Kit có support đa ngôn ngữ không?
Có. 8 ngôn ngữ có curated rules: en, vi, es, fr, ja, zh, pt, id. Set BRAND.language=vi → trigger Vietnamese-specific rules: diacritic floor >14%, VN banned phrase list, audit profile riêng. Test trên nhiều bài ongboit.com tiếng Việt production.
Q3: Kit có deprecate sau vài tháng không?
Không có kế hoạch deprecate. Kit đang ở v1.0 stable. Breaking change thông báo trước 2 minor version, có migration script. CHANGELOG.md track mọi thay đổi. Có thể pin version nếu cần stability tuyệt đối.
Q4: Cần SEO plugin gì?
Không bắt buộc plugin cụ thể nào. Kit tự nhận RankMath, Yoast, hoặc generic WordPress meta — đọc từ field seo_plugin trong BRAND.md, mặc định auto.
Nếu bạn dùng RankMath Free: kit set được title và meta description cơ bản. Muốn đầy đủ hơn (5 focus keyword, schema nâng cao qua REST API) thì cần RankMath Pro ≥ 1.0.220. Dùng Yoast hoặc plugin khác: kit set meta qua post-meta chuẩn WordPress, không cần bản Pro.
Q5: Viết cluster (pillar + spoke) được không?
Được. Phase 1.5b optional sinh cluster-plan.json với 1 pillar + 5–8 spoke dựa trên research data. Chạy /blog-pipeline từng spoke theo plan, mỗi spoke link về pillar. Anti-cannibalization Phase 1.5a cross-check các spoke tránh tự cannibal nhau.
Q6: Tại sao không tự ráp skill stack trên Claude Code?
Hoàn toàn được. Skill rời rạc trên Claude Code đều mạnh. Tự ráp pipeline tương đương mất khoảng 1–2 tuần dev + debug, với 3 layer cần build: Skills (heavy lifting đã có), Pipeline (orchestration + state management), Bridges (WordPress REST, DataForSEO, Gemini). Dùng kit trade onboarding 1 lần lấy 1–2 tuần build + ongoing maintenance. Nếu bạn thích control mọi corner case và có thời gian, DIY hợp lý. Nếu muốn focus vào content và chiến lược thay vì orchestration code, kit hợp lý hơn.
