---
name: seo
description: テクニカル SEO、オンページ最適化、構造化データ、Core Web Vitals、およびコンテンツ戦略にわたる SEO 改善の監査、計画、実施。ユーザーが検索可視性の向上、SEO 修正、スキーママークアップ、サイトマップ/robots の作業、またはキーワードマッピングを希望する場合に使用します。
origin: ECC
---

# SEO

小手先の技巧ではなく、技術的な正確さ、パフォーマンス、コンテンツの関連性を通じて検索可視性を向上させます。

## 使用するタイミング

以下の場合にこのスキルを使用します:
- クロール可能性、インデックス可能性、カノニカル、またはリダイレクトを監査する場合
- タイトルタグ、メタディスクリプション、見出し構造を改善する場合
- 構造化データを追加または検証する場合
- Core Web Vitals を改善する場合
- キーワード調査を行い、キーワードを URL にマッピングする場合
- 内部リンクまたはサイトマップ/robots の変更を計画する場合

## 動作の仕組み

### 原則

1. コンテンツ最適化の前に技術的なブロッカーを修正する。
2. 1つのページには1つの明確な主要検索意図があるべき。
3. 操作的なパターンよりも長期的な品質シグナルを優先する。
4. インデックスがモバイルファーストであるため、モバイルファーストの前提が重要。
5. 推奨事項はページ固有で実装可能であるべき。

### テクニカル SEO チェックリスト

#### クロール可能性

- `robots.txt` は重要なページを許可し、低価値なサーフェスをブロックする必要がある
- 重要なページが意図せず `noindex` になっていない
- 重要なページはクリック数が少ない深さで到達可能
- 2ホップ以上のリダイレクトチェーンを避ける
- カノニカルタグは自己一貫性があり、ループしていない

#### インデックス可能性

- 優先 URL 形式は一貫している必要がある
- 多言語ページには使用される場合は正しい hreflang が必要
- サイトマップは意図された公開サーフェスを反映する必要がある
- カノニカル制御なしに競合する重複 URL がない

#### パフォーマンス

- LCP < 2.5s
- INP < 200ms
- CLS < 0.1
- 一般的な修正: ヒーローアセットをプリロード、レンダーブロッキング作業を削減、レイアウトスペースを確保、重い JS を削減

#### 構造化データ

- ホームページ: 適切な場合は組織またはビジネススキーマ
- 編集ページ: `Article` / `BlogPosting`
- 商品ページ: `Product` と `Offer`
- 内部ページ: `BreadcrumbList`
- Q&A セクション: コンテンツが本当に一致する場合のみ `FAQPage`

### オンページルール

#### タイトルタグ

- 約 50〜60 文字を目標にする
- 主要キーワードまたは概念を前に置く
- ボット用に詰め込まれたものではなく、人間が読めるタイトルにする

#### メタディスクリプション

- 約 120〜160 文字を目標にする
- ページを正直に説明する
- 主要なトピックを自然に含める

#### 見出し構造

- 明確な `H1` が1つ
- `H2` と `H3` は実際のコンテンツ階層を反映する必要がある
- ビジュアルスタイリングのためだけに構造をスキップしない

### キーワードマッピング

1. 検索意図を定義する
2. 現実的なキーワードバリアントを収集する
3. 意図の一致、推定価値、競合度で優先順位を付ける
4. 1つの主要キーワード/テーマを1つの URL にマッピングする
5. カニバリゼーションを検知して回避する

### 内部リンク

- 強力なページからランキングさせたいページにリンクする
- 説明的なアンカーテキストを使用する
- より具体的なものが可能な場合は一般的なアンカーを避ける
- 新しいページから関連する既存ページへのリンクを補完する

## 例

### タイトルフォーミュラ

```text
主要トピック - 具体的な修飾語 | ブランド
```

### メタディスクリプションフォーミュラ

```text
アクション + トピック + 価値提案 + 1つのサポート詳細
```

### JSON-LD の例

```json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "ページタイトルをここに",
  "author": {
    "@type": "Person",
    "name": "著者名"
  },
  "publisher": {
    "@type": "Organization",
    "name": "ブランド名"
  }
}
```

### 監査の出力形式

```text
[HIGH] 商品ページで重複するタイトルタグ
場所: src/routes/products/[slug].tsx
問題: 動的タイトルが同じデフォルト文字列に折りたたまれており、関連性が弱まり重複シグナルが生じます。
修正: 商品名と主要カテゴリを使用して商品ごとにユニークなタイトルを生成する。
```

## アンチパターン

| アンチパターン | 修正 |
| --- | --- |
| キーワードスタッフィング | まずユーザーのために書く |
| 薄い準重複ページ | 統合するかまたは差別化する |
| 実際には存在しないコンテンツのスキーマ | スキーマを現実に合わせる |
| 実際のページを確認せずにコンテンツアドバイスを提供 | まず実際のページを読む |
| 一般的な「SEO を改善する」出力 | すべての推奨事項をページまたはアセットに結びつける |

## 関連スキル

- `seo-specialist`
- `frontend-patterns`
- `brand-voice`
- `market-research`
