blog-post-optimizer について
Blog Post Optimizerは、ブログ記事やウェブコンテンツの見出し、SEO、構成、読みやすさ、統計情報を分析します。評価や改善案、メタタグをPython APIまたはコマンドラインから得たいコンテンツ制作者向けです。
主な機能
- 01見出し分析と代替案の提案
- 02SEOキーワードとメタデータの確認
- 03見出し階層と段落構成の検証
- 04読みやすさと文の複雑さの評価
- 05記事量と読了時間の集計
- 06メタタグとHTMLレポートの生成
活用シーン
- 01公開前の記事草稿を確認
- 02見出し案を比較
- 03キーワード配置とSEO項目を確認
- 04分析結果をJSONまたはHTMLで出力
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dkyazzentwatwa/ chatgpt-skills --skill blog-post-optimizerインストール後、Claude Code で/blog-post-optimizerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/blog_post_optimizer.pypower_words.jsonrequirements.txt詳細
ブログ記事オプティマイザー
ブログ記事、記事、ウェブコンテンツを最適化するための包括的なコンテンツ分析ツールキットです。見出し、SEO 要素、コンテンツ構成、読みやすさを分析し、スコアと実行可能な改善提案を生成します。
クイックスタート
from scripts.blog_post_optimizer import BlogPostOptimizer
# Initialize optimizer
optimizer = BlogPostOptimizer()
# Analyze a blog post
with open('blog_post.md', 'r') as f:
content = f.read()
# Full analysis
results = optimizer.analyze_full(
content=content,
headline="10 Ways to Boost Your Productivity",
keywords=["productivity", "time management", "efficiency"]
)
# View scores
print(f"Overall Score: {results['overall_score']}/100")
print(f"Headline Score: {results['headline']['score']}/100")
print(f"SEO Score: {results['seo']['score']}/100")
print(f"Readability Grade: {results['readability']['grade_level']}")
# Export HTML report
optimizer.export_html_report(results, 'report.html')
機能
1. 見出し分析
- パワーワードの検出 - 感情を引き起こす語句を特定します
- 文字数 - 最適な範囲は50~60文字です
- 感情への訴求力 - 見出しがエンゲージメントを促す可能性を測定します
- A/B テスト用の提案 - 別の見出し案を生成します
2. SEO 最適化
- キーワード密度 - 主キーワードの目標値は1~2%です
- キーワードの目立ちやすさ - 最初の100語以内に配置されているか確認します
- メタディスクリプション - 150~160文字の説明文を自動生成します
- タイトルタグ - 50~60文字に最適化します
- URL スラッグ - SEO に適したスラッグを生成します
3. コンテンツ構成
- 見出し階層 - H1/H2/H3 の構成を検証します
- 段落の長さ - 理想は3~5文です
- リストの使用状況 - 番号付きリストと箇条書きを検出します
- 画像の配置 - 視覚要素があるか確認します
- 小見出しの配置 - 一貫した間隔が保たれているか確認します
4. 読みやすさの分析
- Flesch-Kincaid グレード - 目標はグレード8~10です
- 読みやすさスコア - 理想は60~70です
- 文の複雑さ - 1文あたりの平均語数です
- 受動態 - 割合(10%未満を目指します)
5. コンテンツ統計
- 単語数 - 記事の長さを追跡します
- 読了時間 - 1分あたり265語として推定します
- 文字数 - 総文字数です
- 平均文長 - 1文あたりの語数です
6. メタタグ生成
- Open Graph - ソーシャルメディアのプレビュー用タグ
- Twitter Cards - Twitter 固有のメタタグ
- Schema.org - 記事の構造化データ(JSON-LD)
API リファレンス
BlogPostOptimizer
optimizer = BlogPostOptimizer()
analyze_headline(headline: str) -> Dict
見出しの効果を分析します。
戻り値:
{
'score': 75, # 0-100
'character_count': 52,
'power_words': ['boost', 'proven'],
'emotional_impact': 68,
'suggestions': [
"10 Proven Ways to Boost Your Productivity Today",
"Boost Your Productivity: 10 Essential Strategies"
]
}
analyze_seo(content: str, keywords: List[str]) -> Dict
SEO 要素を分析します。
戻り値:
{
'score': 80,
'keyword_density': {'productivity': 1.8, 'time management': 0.9},
'keyword_prominence': True, # In first 100 words
'meta_description': 'Discover 10 proven ways to boost productivity...',
'title_tag': '10 Ways to Boost Productivity | Your Site',
'url_slug': 'boost-productivity-10-ways'
}
analyze_structure(content: str) -> Dict
コンテンツの構成を分析します。
戻り値:
{
'score': 85,
'h1_count': 1,
'h2_count': 10,
'avg_paragraph_length': 4.2, # Sentences
'list_count': 3,
'warnings': ['Paragraph on line 45 is too long (8 sentences)']
}
analyze_readability(content: str) -> Dict
読みやすさのスコアを算出します。
戻り値:
{
'flesch_kincaid_grade': 8.5,
'reading_ease': 65.2,
'avg_sentence_length': 15.3,
'passive_voice_pct': 8.5,
'complexity_score': 72
}
calculate_content_stats(content: str) -> Dict
基本的なコンテンツ統計を算出します。
戻り値:
{
'word_count': 1250,
'reading_time_minutes': 5,
'character_count': 7890,
'sentence_count': 85,
'paragraph_count': 28
}
generate_meta_tags(title: str, description: str, keywords: List[str]) -> Dict
ソーシャルメディアと SEO 用のメタタグを生成します。
戻り値:
{
'open_graph': {
'og:title': '10 Ways to Boost Your Productivity',
'og:description': 'Discover proven strategies...',
'og:type': 'article'
},
'twitter_card': {
'twitter:card': 'summary_large_image',
'twitter:title': '10 Ways to Boost Your Productivity'
},
'schema_org': {
'@context': 'https://schema.org',
'@type': 'Article',
'headline': '10 Ways to Boost Your Productivity'
}
}
analyze_full(content: str, headline: str, keywords: List[str]) -> Dict
すべてのメソッドを組み合わせた包括的な分析を行います。
戻り値:
{
'overall_score': 78,
'headline': {...},
'seo': {...},
'structure': {...},
'readability': {...},
'stats': {...},
'recommendations': [
{'priority': 'high', 'issue': '...', 'fix': '...'}
]
}
export_html_report(results: Dict, output_path: str)
グラフと改善提案を含む、色分けされた HTML レポートを生成します。
CLI の使い方
単一ブログ記事の分析
python scripts/blog_post_optimizer.py \
--input blog_post.md \
--headline "10 Ways to Boost Your Productivity" \
--keywords "productivity,time management,efficiency" \
--output report.html \
--format html
クイック分析(JSON 出力)
python scripts/blog_post_optimizer.py \
--input article.txt \
--headline "Ultimate Guide to Python" \
--keywords "python,programming" \
--format json
見出しのみの分析
python scripts/blog_post_optimizer.py \
--headline-only "10 Productivity Hacks You Need to Know"
CLI 引数
| 引数 | 説明 | デフォルト |
|---|---|---|
--input, -i | 入力ファイル(txt/md/html) | - |
--headline | ブログ記事の見出し | コンテンツから抽出 |
--keywords, -k | カンマ区切りのキーワード | - |
--output, -o | 出力ファイルのパス | stdout |
--format, -f | 出力形式(json/html) | json |
--headline-only | 見出しのみを分析 | False |
例
例1:HTML レポート付きの全体分析
optimizer = BlogPostOptimizer()
with open('article.md') as f:
content = f.read()
results = optimizer.analyze_full(
content=content,
headline="The Complete Guide to Remote Work",
keywords=["remote work", "productivity", "work from home"]
)
optimizer.export_html_report(results, 'seo_report.html')
例2:見出しの最適化
optimizer = BlogPostOptimizer()
headline = "Ways to Improve Your Writing"
analysis = optimizer.analyze_headline(headline)
print(f"Score: {analysis['score']}/100")
print(f"Power words found: {', '.join(analysis['power_words'])}")
print("\nSuggestions:")
for suggestion in analysis['suggestions']:
print(f" - {suggestion}")
例3:SEO キーワード分析
optimizer = BlogPostOptimizer()
with open('post.md') as f:
content = f.read()
seo = optimizer.analyze_seo(
content=content,
keywords=["python", "tutorial", "beginners"]
)
for keyword, density in seo['keyword_density'].items():
print(f"{keyword}: {density:.1f}%")
依存関係
nltk>=3.8.0
textblob>=0.17.0
beautifulsoup4>=4.12.0
pandas>=2.0.0
matplotlib>=3.7.0
reportlab>=4.0.0
lxml>=4.9.0
制限事項
- HTML の解析:複雑な HTML 構造は精度に影響する場合があります
- キーワードの文脈:キーワードの文脈(肯定的/否定的)は考慮されません
- 対応言語:読みやすさとパワーワードの分析は英語のみです
- パワーワード:主観的なものであり、効果は読者層によって異なります
- 読みやすさ:数式は目安であり、絶対的な基準ではありません
- SEO:検索エンジンのアルゴリズムは常に変化します
- 画像分析:実際の画像コンテンツは分析できません
- 外部リンク:外部リンクの品質は検証しません
コメント
Markdown 対応