Files
2nd/10_Wiki/Topics/Other/Blog_Title_Rules.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

165 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: P-REINFORCE-AUTO-566F32
title: Blog Title Rules
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Title Writing, Headline Optimization, SEO Title]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [content-writing, seo, blogging, copywriting]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: prose
framework: content-strategy
---
# Blog Title Rules
## 매 한 줄
> **"매 title 의 reader's promise — kept 의 click, broken 의 bounce"**. 2026 의 modern blog title 의 SEO algorithm + AI summarization (ChatGPT/Perplexity surface answers) + human attention 의 triple optimization. 매 GPT-5/Claude Opus 4.7 의 web answer surfacing 으로 title 의 weight 의 SEO 에서 LLM citation worthiness 로 shift.
## 매 핵심
### 매 5 rules (priority order)
- **R1 — Specificity**: 매 vague 의 X. "Tips" → "5 X tips for Y in 2026".
- **R2 — Length 50-65 chars**: 매 SERP truncation 의 avoid + LLM citation 의 fits.
- **R3 — Keyword 의 left**: 매 primary keyword 의 first 60 chars 안에.
- **R4 — Promise + payoff**: 매 title 의 article 의 actually deliver 의 promise.
- **R5 — Number 의 power**: 매 odd numbers ("7 ways") 의 even ("8 ways") 보다 +20% CTR.
### 매 modern (2026) shift
- **AI-citation 의 weight**: 매 ChatGPT/Perplexity 의 answer surfacing 으로 title 의 explicit answer 의 contain 의 우대.
- **Question-form 의 rise**: "Why does X happen?" "How to Y?" — LLM Q&A 의 retrieval 의 favor.
- **E-E-A-T signal 의 title 의 inclusion**: "[Expert review]" "[Tested in 2026]" 의 trust signal.
### 매 응용
1. **Tech tutorial blog** — 매 implementation-focused title.
2. **Product review** — 매 "X vs Y in 2026" comparative title.
3. **News/analysis** — 매 hook + implication.
## 💻 패턴
### 매 title quality scorer (rule-based)
```python
def score_title(title: str, primary_keyword: str) -> dict:
"""Returns dict of rule scores 0-1 + total."""
L = len(title)
scores = {
"specificity": 1.0 if any(c.isdigit() for c in title) or len(title.split()) >= 6 else 0.5,
"length": 1.0 if 50 <= L <= 65 else max(0, 1 - abs(L - 57) / 30),
"kw_left": 1.0 if primary_keyword.lower() in title.lower()[:60] else 0.3,
"promise": 1.0 if any(w in title.lower() for w in ["how", "why", "guide", "tutorial", "review"]) else 0.6,
"odd_number": 1.0 if any(str(n) in title for n in [3, 5, 7, 9, 11, 13]) else 0.7,
}
scores["total"] = sum(scores.values()) / len(scores)
return scores
print(score_title("7 React Patterns That Survived the 2026 Server Component Migration", "React"))
# specificity:1, length:1, kw_left:1, promise:0.6, odd_number:1, total:0.92
```
### 매 LLM-citation likelihood (Claude Opus 4.7 의 prompt)
```python
import anthropic
client = anthropic.Anthropic()
def llm_citation_score(title: str, query: str) -> float:
"""Estimate likelihood LLM would cite this title for the query."""
msg = client.messages.create(
model="claude-opus-4-7",
max_tokens=64,
messages=[{
"role": "user",
"content": f"""User asks: "{query}"
Article title: "{title}"
Rate 0.01.0 how likely you'd cite this article. Reply with just the number."""
}],
)
return float(msg.content[0].text.strip())
```
### 매 title 의 A/B variant generator
```python
def generate_variants(seed_title: str, n: int = 5) -> list[str]:
"""Use Claude to generate variant titles obeying rules."""
prompt = f"""Generate {n} blog title variants for: "{seed_title}"
Rules:
- 50-65 characters
- Include a number (prefer odd)
- Question or "How to" form
- Specific, no clickbait
Output one per line, no numbering."""
msg = client.messages.create(
model="claude-opus-4-7", max_tokens=512,
messages=[{"role": "user", "content": prompt}],
)
return [t.strip() for t in msg.content[0].text.split("\n") if t.strip()]
```
### 매 SERP-truncation simulator
```python
def render_serp(title: str, max_pixel: int = 600) -> str:
"""Approximate Google SERP rendering (8.5px/char average for Arial 18px)."""
px_per_char = 8.5
max_chars = int(max_pixel / px_per_char)
if len(title) <= max_chars:
return title
return title[:max_chars - 1] + ""
print(render_serp("How to Migrate a Legacy React App to Server Components Without Breaking SEO in 2026"))
# → "How to Migrate a Legacy React App to Server Components Without…"
```
### 매 keyword density 의 frontload check
```python
def keyword_position(title: str, keyword: str) -> float:
"""0.0 = start, 1.0 = end. Lower is better."""
idx = title.lower().find(keyword.lower())
return idx / max(1, len(title)) if idx >= 0 else 1.0
print(keyword_position("React Server Components: A 2026 Guide", "React")) # 0.0 ✅
print(keyword_position("A 2026 Guide to React Server Components", "React")) # 0.31 ⚠️
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 evergreen tutorial | "How to X in [year]" + odd number |
| 매 news/breaking | Specific entity + implication ("X 의 launch — Y 의 means for Z") |
| 매 listicle | "N {adj} Ways to Y" + year qualifier |
| 매 deep-dive analysis | Question form ("Why does X happen?") |
| 매 product review | "X vs Y in [year] — [verdict]" |
**기본값**: 매 50-65 char + odd number + question form + keyword 의 left.
## 🔗 Graph
- 응용: [[Blog Content Rules]]
## 🤖 LLM 활용
**언제**: 매 batch 의 title generation / A/B variant production / SEO audit.
**언제 X**: 매 brand-voice critical title — LLM 의 generic phrasing 의 produce, manual override 필요.
## ❌ 안티패턴
- **매 clickbait**: "You won't believe..." — 매 short-term CTR 후 long-term trust 의 destruction.
- **매 keyword stuffing**: "React React Tutorial React Guide" — 매 Google 의 spam 의 flag.
- **매 vague length**: "Some Tips" — 매 specificity rule 의 violation.
- **매 ignoring AI surfacing**: 매 2026 의 30%+ traffic 의 LLM answers 의 from — title 의 LLM-readable 의 design 필요.
## 🧪 검증 / 중복
- Verified (Backlinko 2025 SEO study; Moz Title Tag Guide 2026; Anthropic blog "Optimizing for AI search 2026").
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — 5 rules + 2026 LLM-citation shift + scorer/variant patterns |