Communityライティング&編集github.com

on-page-seo

ページのタイトル、メタディスクリプション、H1、見出し構成、シェアタグ、コンテンツの深さとキーワード配置をページ独自のトーンで書き換え、その結果を測定します。

on-page-seo とは?

このスキルは、単一のWebページのオンページSEO要素を最適化するために設計されています。具体的には、タイトルタグ、メタディスクリプション、H1見出し、見出し構造(H2など)、OGタグ、ビューポート設定を、ページの既存のトーンとスタイルを維持しながら書き換えます。さらに、`page_audit.py`と`text_stats.py`という2つのスクリプトを実行して、変更前後の状態を比較・検証します。このスキルは、「タイトルとメタディスクリプションを書き直して」「見出しを修正して」「このページを[キーワード]に最適化して」「タイトルが切れている理由」「ページが薄いので何を追加すべきか」といったユーザーのリクエストに応答するのに適しています。サイト全体の問題には`technical-seo-audit`を、キーワードグループ化には`keyword-clusters`を、新しい記事の作成には`content-brief`を、スキーママークアップには`structured-data`を、コンバージョンコピーには`landing-page-copy`を使用してください。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/FinnTech3/growth-stack/tree/HEAD/agensi/growth-stack/skills/on-page-seo

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

オンページSEO

必要要件: Python 3.10以上。page_audit.pyはライブページへのネットワークアクセスが必要。text_stats.pyはオフラインで、1つのファイルを読み取ります。

私が最初に変更すべき点は、タイトル、次に説明文、次にH1です。これらはコストがかからず、検索結果でユーザーが最初に目にする部分であり、スクリプトで検出できるミスが発生しやすい部分です。

入力

  • ページURL、および1つのプライマリクエリと最大2つのセカンダリクエリ。ユーザーが指定しない場合は、text_stats.pyから上位フレーズを取得して1つ提案し、確認を求めます。
  • 現在のコピー(新しいコピーがページ独自のトーンを維持するため)。

スクリプトの実行

各スクリプト(shared/scripts/page_audit.py、shared/scripts/text_stats.py)を変更せずに一時ファイルに書き込み、実行し、その後削除します。page_audit.pyは、指定されたページを読むためだけにネットワークを使用し、ローカルファイルは読み取りません。text_stats.pyはネットワーク呼び出しを行わず、1つのテキストファイルまたは標準入力を読み取ります。

A="$(mktemp "${TMPDIR:-/tmp}/page_audit.XXXXXX")"   # shared/scripts/page_audit.py を変更せずに貼り付け
T="$(mktemp "${TMPDIR:-/tmp}/text_stats.XXXXXX")"   # shared/scripts/text_stats.py を変更せずに貼り付け
python3 "$A" https://example.com/page --json                # 証拠: スニペット、コンテンツ、リンク・画像、基本情報
python3 "$T" copy.md --keyword "プライマリフレーズ" --top 15    # トーン、読みやすさ、キーワード配置
rm -f "$A" "$T"

終了コード0と1は監査結果に従います(1は高または重大なギャップを示します)。終了コード2は不正な入力を意味します。text_stats.pyは、ファイルが見つからない、空またはバイナリ入力、または範囲外のオプションがある場合に終了コード2を返します。

手順

  1. 監査を実行します。snippet、content、basicsの証拠(タイトルと説明の長さ、H1の数、単語数)を引用します。
  2. 既存のコピーをtext_stats.pyで測定します。読みやすさ、1文あたりの単語数、あなた対私たちの使用頻度に注意します。これらに合わせます。
  3. タイトルを作成します:30~60文字、プライマリフレーズを前方に、クリックしたくなる理由、ブランドは最後に。サイト内で一意にします。
  4. 説明文を作成します:70~160文字、回答または約束、1つの証明点、引用符は使用しません。パターンを参照してください。
  5. 訪問者の言葉でトピックを述べるH1を1つ作成します。H2をページが答える質問として順番に構築し、レベルをスキップしないようにします。
  6. シェアタグ(og:title、og:description、og:image、twitter:card)と、失われている場合はlangとビューポートを追加または修正します。
  7. --keywordを使用して配置を確認します:フレーズがタイトル、H1、最初の100単語内に自然に出現している必要があります。
  8. 両方のスクリプトを再実行します。変更前後の失われた部分を比較します。

出力

タイトル、説明、H1、H2のアウトラインについて、文字数を含む変更前後の表。貼り付ける正確なheadマークアップ。本文の編集箇所を置き換え文として。text_stats.pyの変更前後の読み取り値。監査で回復された部分。

終了条件

  • タイトルが30~60文字、説明が70~160文字、H1が正確に1つ、H2が2つ以上、見出しレベルがスキップされていないこと。
  • --keywordがプライマリフレーズを見出しと最初の100単語内にあると報告すること。
  • 不自然に繰り返されるフレーズがないこと。目安: 100単語あたり3回以上の使用はキーワードスタッフィングです。
  • 読みやすさがオリジナルよりも悪化していないこと(ユーザーが異なる文体を要求した場合を除く)。
  • 再監査でsnippetとcontentの部分が回復され、他の部分に後退がないこと。

エッジケースとエラー

  • ページが価格、お問い合わせ、ログインページの場合:300語は適用されない場合があります。単語数に関する部分は目安であると述べ、そのままにします。
  • タイトルがすでにランクインしておりユーザーが不安な場合:一度に1つの要素を変更し、日付を記録します。
  • 2つのページが同じフレーズを追いかけている場合:停止し、keyword-clustersを使用します。両方を書き換えないでください。
  • 英語以外のページの場合:スクリプトの質問と動詞リストは英語です。該当しない部分として報告します。
  • 検索エンジンはタイトルとスニペットを書き換えることがあります。新しいものは提案であり、エンジンが上書きする可能性があると述べます。

ルール

  • ページのトーンに合わせます。ページが「あなた」と言っているなら、あなたも「あなた」と言います。
  • 事実、価格、説明のための証明点をでっち上げないでください。ページにあるもの、またはユーザーが提供したもののみを使用します。
  • キーワードカウントはスタッフィングを検出するためのものであり、目標ではありません。密度を決して目指さないでください。
  • ランキングを決して約束しないでください。何を変更し、何を明確にすべきかを伝えます。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル