seo-article-writing
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseWhen to Use
适用场景
- Setting up a blog section for SEO
- Writing blog articles for organic traffic
- Creating comparison/review content
- Building content marketing assets
- Any project needing a file-based blog CMS
- 搭建SEO向博客板块
- 撰写博客文章获取自然流量
- 创作对比/评测内容
- 搭建内容营销资产
- 任何需要基于文件的博客CMS的项目
Prerequisites
前提条件
Before writing articles, ensure:
- Blog infrastructure is set up (see Blog Setup)
- AI image generation capability is available
- MDX support is configured in your bundler
Quick Start
快速开始
bash
undefinedbash
undefined1. Set up blog infrastructure (first time only)
1. 搭建博客基础设施(仅首次执行)
Copy assets from this skill to your project
将本技能中的资产复制到你的项目中
2. Create article folder
2. 创建文章文件夹
mkdir -p src/content/blog/{slug}
mkdir -p src/content/blog/{slug}
3. Generate unique article image using AI
3. 使用AI生成专属文章配图
See Image Generation section below
参考下文的图片生成章节
4. Write article using template
4. 使用模板撰写文章
Use assets/templates/article.mdx as base
以assets/templates/article.mdx为基础模板
---
---Workflow Overview
工作流概览
┌─────────────────────────────────────────────────────────────────┐
│ 1. SETUP (One-time) │
│ └─> Blog infrastructure │
├─────────────────────────────────────────────────────────────────┤
│ 2. RESEARCH │
│ └─> Keywords → Competitors → Content gaps │
├─────────────────────────────────────────────────────────────────┤
│ 3. OUTLINE │
│ └─> Structure → Tables → FAQs │
├─────────────────────────────────────────────────────────────────┤
│ 4. IMAGE GENERATION │
│ └─> AI-generate unique image for article content │
├─────────────────────────────────────────────────────────────────┤
│ 5. WRITE │
│ └─> Draft → Optimize → Review │
├─────────────────────────────────────────────────────────────────┤
│ 6. PUBLISH │
│ └─> MDX file → Sitemap → Verify │
└─────────────────────────────────────────────────────────────────┘┌─────────────────────────────────────────────────────────────────┐
│ 1. 搭建(仅一次) │
│ └─> 博客基础设施 │
├─────────────────────────────────────────────────────────────────┤
│ 2. 调研 │
│ └─> 关键词 → 竞品 → 内容空白点 │
├─────────────────────────────────────────────────────────────────┤
│ 3. 大纲 │
│ └─> 结构 → 表格 → 常见问题 │
├─────────────────────────────────────────────────────────────────┤
│ 4. 图片生成 │
│ └─> 为文章内容AI生成专属图片 │
├─────────────────────────────────────────────────────────────────┤
│ 5. 撰写 │
│ └─> 草稿 → 优化 → 审核 │
├─────────────────────────────────────────────────────────────────┤
│ 6. 发布 │
│ └─> MDX文件 → 站点地图 → 验证 │
└─────────────────────────────────────────────────────────────────┘Image Generation (CRITICAL)
图片生成(关键环节)
Philosophy
设计原则
Every article MUST have a unique, content-specific image. Do NOT use generic pattern backgrounds. Generate a custom image that:
- Visually represents the article topic
- Includes relevant text/title overlay
- Has a consistent brand style (dark theme, orange accents)
- Is sized 1200x630 pixels for OG sharing
每篇文章MUST有专属的、匹配内容的图片。 请勿使用通用的图案背景,生成符合以下要求的定制图片:
- 视觉上能代表文章主题
- 包含相关的文字/标题覆盖层
- 保持统一的品牌风格(深色主题、橙色点缀)
- 尺寸为1200x630像素,适配OG分享
Image Generation Process
图片生成流程
For EACH article, use AI image generation with this template:
A sophisticated hero image for "[ARTICLE TITLE]" blog article.
[DESCRIBE VISUAL CONCEPT THAT MATCHES CONTENT]
Dark background (#0f172a or #1e293b) with orange (#f97316) accents.
Modern, minimalist, professional SaaS style like Linear or Vercel.
Include text overlay: "[TITLE]" and optional subtitle.
1200x630 pixels.针对每篇文章,使用以下模板提示词生成AI图片:
A sophisticated hero image for "[ARTICLE TITLE]" blog article.
[DESCRIBE VISUAL CONCEPT THAT MATCHES CONTENT]
Dark background (#0f172a or #1e293b) with orange (#f97316) accents.
Modern, minimalist, professional SaaS style like Linear or Vercel.
Include text overlay: "[TITLE]" and optional subtitle.
1200x630 pixels.Example Prompts by Article Type
不同文章类型的提示词示例
Comparison Article
对比类文章
A sophisticated hero image for "Sunsama Alternatives" comparison article.
Modern minimalist design with floating app icons and comparison cards.
Deep navy background (#0f172a) with orange (#f97316) gradient accents.
Show multiple tools being compared with visual hierarchy.
Include title text overlay. Professional SaaS marketing style.
1200x630 pixels.A sophisticated hero image for "Sunsama Alternatives" comparison article.
Modern minimalist design with floating app icons and comparison cards.
Deep navy background (#0f172a) with orange (#f97316) gradient accents.
Show multiple tools being compared with visual hierarchy.
Include title text overlay. Professional SaaS marketing style.
1200x630 pixels.Guide/Tutorial Article
指南/教程类文章
A sophisticated hero image for "Time Blocking Guide" tutorial article.
Modern minimalist design showing calendar grid with colorful time blocks.
Dark slate background (#1e293b) with vibrant orange (#f97316) blocks.
Clean 3D floating elements suggesting productivity and organization.
Include title: "TIME BLOCKING GUIDE" and subtitle "Master Your Day".
1200x630 pixels.A sophisticated hero image for "Time Blocking Guide" tutorial article.
Modern minimalist design showing calendar grid with colorful time blocks.
Dark slate background (#1e293b) with vibrant orange (#f97316) blocks.
Clean 3D floating elements suggesting productivity and organization.
Include title: "TIME BLOCKING GUIDE" and subtitle "Master Your Day".
1200x630 pixels.VS/Comparison Article
对决/对比类文章
A sophisticated hero image for "Time Blocking vs To-Do Lists" comparison.
Split design: left side shows organized calendar blocks, right side shows
scattered checklist items. Visual contrast between order and chaos.
Dark background with orange (#f97316) and blue (#3b82f6) accents.
Include title text. Editorial style. 1200x630 pixels.A sophisticated hero image for "Time Blocking vs To-Do Lists" comparison.
Split design: left side shows organized calendar blocks, right side shows
scattered checklist items. Visual contrast between order and chaos.
Dark background with orange (#f97316) and blue (#3b82f6) accents.
Include title text. Editorial style. 1200x630 pixels.Self-Hosted/Technical Article
自托管/技术类文章
A sophisticated hero image for "Self-Hosted Productivity Apps" article.
Server/cloud icon with data flowing to personal devices.
Emphasizes privacy and control with lock/shield symbols.
Dark navy background with green (#22c55e) security accents and orange highlights.
Include title and tagline about privacy/control. 1200x630 pixels.A sophisticated hero image for "Self-Hosted Productivity Apps" article.
Server/cloud icon with data flowing to personal devices.
Emphasizes privacy and control with lock/shield symbols.
Dark navy background with green (#22c55e) security accents and orange highlights.
Include title and tagline about privacy/control. 1200x630 pixels.Routine/Habit Article
惯例/习惯类文章
A sophisticated hero image for "Daily Planning Routine" habit article.
Morning scene with coffee, notebook, and digital calendar interface.
Soft gradient from deep purple to warm orange (#f97316).
Floating UI elements showing checklist items.
Calm, productive, aspirational mood. Include title. 1200x630 pixels.A sophisticated hero image for "Daily Planning Routine" habit article.
Morning scene with coffee, notebook, and digital calendar interface.
Soft gradient from deep purple to warm orange (#f97316).
Floating UI elements showing checklist items.
Calm, productive, aspirational mood. Include title. 1200x630 pixels.Image Naming Convention
图片命名规范
Save images with descriptive names:
public/blog-{slug}.png
Examples:
- blog-sunsama-alternatives.png
- blog-time-blocking-guide.png
- blog-self-hosted.png
- blog-daily-planning-routine.png使用描述性名称保存图片:
public/blog-{slug}.png
示例:
- blog-sunsama-alternatives.png
- blog-time-blocking-guide.png
- blog-self-hosted.png
- blog-daily-planning-routine.pngUpdating Frontmatter
更新Frontmatter
After generating, update the article frontmatter:
javascript
export const frontmatter = {
// ...other fields
image: "/blog-{slug}.png"
};生成图片后,更新文章的frontmatter:
javascript
export const frontmatter = {
// ...其他字段
image: "/blog-{slug}.png"
};Blog Infrastructure Setup
博客基础设施搭建
Required Files
所需文件
Copy these from to your project:
assets/your-project/
├── src/
│ ├── content/
│ │ └── blog/ # MDX articles go here
│ │ └── {slug}/
│ │ └── index.mdx
│ ├── types/
│ │ └── blog.ts # Copy from assets/templates/
│ ├── lib/
│ │ └── blog.ts # Copy from assets/templates/
│ ├── components/
│ │ └── blog/
│ │ ├── blog-card.tsx
│ │ └── blog-layout.tsx
│ └── routes/
│ ├── blog.tsx # Blog listing
│ └── blog.$slug.tsx # Individual post
└── public/
└── blog-{slug}.png # Generated images per article将以下文件从复制到你的项目中:
assets/your-project/
├── src/
│ ├── content/
│ │ └── blog/ # MDX文章存放位置
│ │ └── {slug}/
│ │ └── index.mdx
│ ├── types/
│ │ └── blog.ts # 从assets/templates/复制
│ ├── lib/
│ │ └── blog.ts # 从assets/templates/复制
│ ├── components/
│ │ └── blog/
│ │ ├── blog-card.tsx
│ │ └── blog-layout.tsx
│ └── routes/
│ ├── blog.tsx # 博客列表页
│ └── blog.$slug.tsx # 单篇文章页
└── public/
└── blog-{slug}.png # 每篇文章生成的配图Vite/React Setup
Vite/React搭建
For Vite projects, use to load MDX files:
import.meta.globtypescript
// src/lib/blog.ts
const modules = import.meta.glob('../content/blog/*/index.mdx', { eager: true });对于Vite项目,使用加载MDX文件:
import.meta.globtypescript
// src/lib/blog.ts
const modules = import.meta.glob('../content/blog/*/index.mdx', { eager: true });Next.js Setup
Next.js搭建
For Next.js projects, use or :
@next/mdxcontentlayertypescript
// next.config.js
import mdx from '@next/mdx';
const withMDX = mdx({ extension: /\.mdx?$/ });
export default withMDX({ pageExtensions: ['ts', 'tsx', 'mdx'] });对于Next.js项目,使用或:
@next/mdxcontentlayertypescript
// next.config.js
import mdx from '@next/mdx';
const withMDX = mdx({ extension: /\.mdx?$/ });
export default withMDX({ pageExtensions: ['ts', 'tsx', 'mdx'] });Keyword Research
关键词研究
Step 1: Primary Keyword Selection
步骤1:主关键词选择
Use web search to research your topic:
Search queries to run:
- "[topic] 2026"
- "best [topic]"
- "[topic] alternative"
- "[topic] vs [competitor]"使用网页搜索调研你的主题:
可使用的搜索查询:
- "[topic] 2026"
- "best [topic]"
- "[topic] alternative"
- "[topic] vs [competitor]"Step 2: Classify Search Intent
步骤2:搜索意图分类
| Intent | Indicators | Content Type | Priority |
|---|---|---|---|
| Transactional | "best", "alternative", "buy" | Comparison, review | HIGH |
| Informational | "how to", "what is", "guide" | Tutorial, explainer | MEDIUM |
| Navigational | Brand names, specific tools | Feature page | LOW |
| 搜索意图 | 判断标识 | 内容类型 | 优先级 |
|---|---|---|---|
| 交易型 | "best", "alternative", "buy" | 对比、评测 | 高 |
| 信息型 | "how to", "what is", "guide" | 教程、解释类 | 中 |
| 导航型 | 品牌名、特定工具 | 功能页 | 低 |
Subagent Prompt: Keyword Research
子Agent提示词:关键词研究
You are an SEO expert. Research keywords for [TOPIC].
Use web search to find:
1. Primary keyword with highest search intent
2. 5 secondary keywords (long-tail variations)
3. Top 5 competitor URLs for analysis
4. Content gaps competitors are missing
Return:
- Prioritized keyword list with intent classification
- Recommended content angle
- Estimated search volume (HIGH/MEDIUM/LOW)You are an SEO expert. Research keywords for [TOPIC].
Use web search to find:
1. Primary keyword with highest search intent
2. 5 secondary keywords (long-tail variations)
3. Top 5 competitor URLs for analysis
4. Content gaps competitors are missing
Return:
- Prioritized keyword list with intent classification
- Recommended content angle
- Estimated search volume (HIGH/MEDIUM/LOW)Article Structure
文章结构
Frontmatter Template
Frontmatter模板
javascript
export const frontmatter = {
title: "SEO Title Under 60 Characters with Primary Keyword",
description: "Meta description 150-160 chars with keyword and compelling hook.",
date: "2026-01-30",
author: "Team Name",
tags: ["primary-tag", "secondary-tag", "category"],
readingTime: 10,
image: "/blog-your-article-slug.png" // UNIQUE image per article!
};javascript
export const frontmatter = {
title: "包含主关键词、字数低于60字符的SEO标题",
description: "150-160字符的元描述,包含关键词和吸引力钩子",
date: "2026-01-30",
author: "团队名称",
tags: ["主标签", "次标签", "分类"],
readingTime: 10,
image: "/blog-your-article-slug.png" // 每篇文章的专属图片!
};Article Outline Template
文章大纲模板
markdown
undefinedmarkdown
undefined[Primary Keyword in H1 Title]
[H1标题中包含主关键词]
Introduction
介绍
- Hook with statistic or pain point
- What reader will learn
- Establish credibility (1-2 paragraphs)
- 用数据或痛点引入
- 读者将学到的内容
- 建立可信度(1-2段)
[Section 2: Definition/Background]
[第2部分:定义/背景]
- What is [topic]?
- Why it matters (2-3 paragraphs)
- 什么是[主题]?
- 它的重要性(2-3段)
[Section 3: Core Content / How-To]
[第3部分:核心内容/操作指南]
- Main value proposition
- Step-by-step if tutorial
- Numbered list for scanability
- 核心价值主张
- 如果是教程则分步骤说明
- 使用编号列表提升可读性
[Section 4: Comparison Table]
[第4部分:对比表格]
| Feature | Option A | Option B | Option C |
|---|---|---|---|
| Price | Free | $10/mo | $25/mo |
| Feature | ✅ | ✅ | ❌ |
| 功能 | 选项A | 选项B | 选项C |
|---|---|---|---|
| 价格 | 免费 | $10/月 | $25/月 |
| 功能 | ✅ | ✅ | ❌ |
[Section 5: Detailed Analysis]
[第5部分:详细分析]
- 3-4 paragraphs per option
- Pros and cons
- Best use cases
- 每个选项3-4段说明
- 优缺点
- 最佳适用场景
Frequently Asked Questions
常见问题
What is [primary keyword]?
什么是[主关键词]?
[2-3 sentence answer targeting featured snippet]
[2-3句回答,目标是入选精选摘要]
Is [option A] better than [option B]?
[选项A]比[选项B]更好吗?
[Honest comparison with recommendation]
[客观对比并给出推荐]
Conclusion
结论
- Summary of key points
- Clear CTA with link to action
---- 核心要点总结
- 明确的CTA,附带跳转链接
---Writing Guidelines
写作规范
SEO Best Practices
SEO最佳实践
| Element | Guideline |
|---|---|
| Title | Primary keyword, under 60 characters |
| Meta description | 150-160 chars, keyword, compelling hook |
| H2 headers | Include secondary keywords naturally |
| Keyword density | 1-2% for primary keyword |
| Internal links | 2-3 links to relevant pages |
| External links | 1-2 authoritative sources |
| 元素 | 规范要求 |
|---|---|
| 标题 | 包含主关键词,低于60字符 |
| 元描述 | 150-160字符,包含关键词,有吸引力 |
| H2标题 | 自然融入次关键词 |
| 关键词密度 | 主关键词占比1-2% |
| 内部链接 | 2-3个指向相关页面的链接 |
| 外部链接 | 1-2个权威来源链接 |
Word Count Targets
字数目标
| Content Type | Minimum Words | Optimal |
|---|---|---|
| Comparison/Review | 2,000 | 2,500 |
| Complete Guide | 2,500 | 3,500 |
| How-To Tutorial | 1,500 | 2,000 |
| Thought Leadership | 1,800 | 2,200 |
| 内容类型 | 最低字数 | 最优字数 |
|---|---|---|
| 对比/评测 | 2000 | 2500 |
| 完整指南 | 2500 | 3500 |
| 操作教程 | 1500 | 2000 |
| 思想领导力 | 1800 | 2200 |
Complete Article Creation Workflow
完整文章创作工作流
Step 1: Research
步骤1:调研
Use keyword research agent to identify:
- Primary keyword
- Secondary keywords
- Top 5 competitors
- Content gaps使用关键词研究Agent确定:
- 主关键词
- 次关键词
- top5竞品
- 内容空白点Step 2: Generate Image
步骤2:生成图片
Use AI image generation with article-specific prompt.
Save to public/blog-{slug}.png使用文章专属提示词生成AI图片
保存到public/blog-{slug}.pngStep 3: Create Article Folder
步骤3:创建文章文件夹
bash
mkdir -p src/content/blog/{slug}
touch src/content/blog/{slug}/index.mdxbash
mkdir -p src/content/blog/{slug}
touch src/content/blog/{slug}/index.mdxStep 4: Write Content
步骤4:撰写内容
Use article writer agent with:
- Keyword targets
- Word count requirement
- Comparison tables
- FAQ section使用文章写作Agent,提供以下信息:
- 关键词目标
- 字数要求
- 对比表格
- FAQ部分Step 5: Update Frontmatter
步骤5:更新Frontmatter
javascript
export const frontmatter = {
title: "...",
description: "...",
date: "YYYY-MM-DD",
author: "Team Name",
tags: ["..."],
readingTime: X,
image: "/blog-{slug}.png" // Your generated image
};javascript
export const frontmatter = {
title: "...",
description: "...",
date: "YYYY-MM-DD",
author: "团队名称",
tags: ["..."],
readingTime: X,
image: "/blog-{slug}.png" // 你生成的图片路径
};Step 6: Add to Sitemap
步骤6:添加到站点地图
xml
<url>
<loc>https://yoursite.com/blog/{slug}</loc>
<lastmod>{date}</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>xml
<url>
<loc>https://yoursite.com/blog/{slug}</loc>
<lastmod>{date}</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>Step 7: Verify
步骤7:验证
- Image displays correctly on blog listing
- Article renders properly
- All links work
- Sitemap is valid
- 博客列表页图片显示正常
- 文章渲染正常
- 所有链接可正常访问
- 站点地图有效
Subagent Prompts
子Agent提示词
Image Generation Agent
图片生成Agent
Generate a unique blog hero image for: "[ARTICLE TITLE]"
Topic: [brief description]
Style: Dark background, orange accents, modern SaaS aesthetic
Include: Title text overlay, relevant visual elements
Size: 1200x630 pixels
Save as: blog-{slug}.pngGenerate a unique blog hero image for: "[ARTICLE TITLE]"
Topic: [brief description]
Style: Dark background, orange accents, modern SaaS aesthetic
Include: Title text overlay, relevant visual elements
Size: 1200x630 pixels
Save as: blog-{slug}.pngArticle Writer Agent
文章写作Agent
Write a [WORD_COUNT]+ word SEO article on [TOPIC].
Primary keyword: [KEYWORD]
Secondary keywords: [KEYWORD_LIST]
Include:
1. Frontmatter with all required fields
2. Introduction with hook/statistic
3. Comparison table with 4+ options
4. Detailed breakdown (3-4 paragraphs per option)
5. FAQ section with 5+ questions using h3 headers
6. Conclusion with CTA linking to [PAGE]
Image has been generated at: /blog-{slug}.png
Include this in frontmatter.Write a [WORD_COUNT]+ word SEO article on [TOPIC].
Primary keyword: [KEYWORD]
Secondary keywords: [KEYWORD_LIST]
Include:
1. Frontmatter with all required fields
2. Introduction with hook/statistic
3. Comparison table with 4+ options
4. Detailed breakdown (3-4 paragraphs per option)
5. FAQ section with 5+ questions using h3 headers
6. Conclusion with CTA linking to [PAGE]
Image has been generated at: /blog-{slug}.png
Include this in frontmatter.FAQ Writer Agent
FAQ写作Agent
Write 7 FAQ questions for article about [TOPIC].
Target keywords:
- [keyword 1]
- [keyword 2]
- [keyword 3]
Use h3 headers (###) for each question.
Each answer should be 2-3 sentences.
Target featured snippet format (direct, concise).Write 7 FAQ questions for article about [TOPIC].
Target keywords:
- [keyword 1]
- [keyword 2]
- [keyword 3]
Use h3 headers (###) for each question.
Each answer should be 2-3 sentences.
Target featured snippet format (direct, concise).Publishing Checklist
发布检查清单
- Unique image generated for this specific article
- Image saved to
public/blog-{slug}.png - Image path in frontmatter matches file
- Primary keyword in title
- Meta description optimized (150-160 chars)
- At least 1 comparison table
- At least 5 FAQ questions
- Internal links added (2-3)
- Reading time calculated
- Tags assigned (2-4)
- Date set correctly
- Article added to sitemap.xml
- 已为该文章生成专属图片
- 图片已保存到
public/blog-{slug}.png - frontmatter中的图片路径与文件路径一致
- 标题中包含主关键词
- 元描述已优化(150-160字符)
- 至少包含1个对比表格
- 至少包含5个常见问题
- 已添加内部链接(2-3个)
- 已计算阅读时长
- 已分配标签(2-4个)
- 日期设置正确
- 文章已添加到sitemap.xml
File References
文件参考
See folder for:
assets/| File | Purpose |
|---|---|
| TypeScript interfaces |
| Utility functions for loading MDX |
| Article template |
| Card component for listing |
| Layout for individual posts |
| Quick setup script |
查看文件夹获取以下文件:
assets/| 文件 | 用途 |
|---|---|
| TypeScript接口 |
| 加载MDX的工具函数 |
| 文章模板 |
| 列表用的卡片组件 |
| 单篇文章的布局组件 |
| 快速搭建脚本 |
Updates
更新日志
- v1.1 (2026-01-31): Updated to require unique AI-generated images per article
- v1.0 (2026-01-30): Initial skill with complete workflow
- v1.1 (2026-01-31):更新要求每篇文章必须使用AI生成的专属图片
- v1.0 (2026-01-30):初始版本,包含完整工作流