# ウェブページ制作チェックリスト【初心者向け解説付き】

## 📱 レスポンシブデザイン

### - [ ] スマートフォン（320px〜）で表示確認
**意味**: 小さい画面でもちゃんと見られるかチェック
**なぜ必要**: ユーザーの半分以上がスマホでサイトを見ています
**確認方法**: ブラウザの開発者ツール（F12）でスマホ表示をシミュレート

### - [ ] タブレット（768px〜）で表示確認
**意味**: iPadなど中サイズの画面での見え方をチェック
**なぜ必要**: スマホとPCの中間サイズで、レイアウトが崩れやすい
**確認方法**: 開発者ツールでiPadサイズに設定して確認

### - [ ] デスクトップ（1024px〜）で表示確認
**意味**: 一般的なパソコンの画面サイズでの表示確認
**なぜ必要**: まだまだPC利用者も多い
**確認方法**: 普通にPCブラウザで開いて確認

### - [ ] 大画面（1440px〜）で表示確認
**意味**: 大きなモニターでの表示確認
**なぜ必要**: コンテンツが広がりすぎて読みにくくならないようにする
**確認方法**: ブラウザウィンドウを最大化して確認

### - [ ] 横向き表示の確認
**意味**: スマホやタブレットを横にしたときの表示
**なぜ必要**: 動画視聴時など、横向きで使う人もいます
**確認方法**: 開発者ツールでデバイスの向きを変更

### - [ ] viewport metaタグの設定
**意味**: `<meta name="viewport" content="width=device-width, initial-scale=1.0">`の記述
**なぜ必要**: これがないとスマホで正しく表示されません
**確認方法**: HTMLの`<head>`内にこのタグがあるか確認

### - [ ] タッチ操作に適したボタンサイズ（最小44x44px）
**意味**: ボタンやリンクを指で押しやすい大きさにする
**なぜ必要**: 小さすぎると誤タップが増えてユーザーにストレス
**確認方法**: 開発者ツールで要素のサイズを測定

### - [ ] メディアクエリの適切な設定
**意味**: CSS で `@media (max-width: 768px) {}` のような画面サイズ別の指定
**なぜ必要**: 画面サイズによってレイアウトを変えるため
**確認方法**: CSSファイルに適切なブレークポイントがあるか確認

---

## 🔍 SEO対策

### 基本設定

### - [ ] titleタグの設定（各ページ固有、50-60文字）
**意味**: `<title>ページタイトル</title>`の設定
**なぜ必要**: Google検索結果に表示される最重要要素
**ポイント**: ページごとに異なるタイトルを。同じタイトルはNG
**例**: `美味しいコーヒーの淹れ方 | 初心者ガイド`

### - [ ] meta descriptionの設定（各ページ固有、150-160文字）
**意味**: `<meta name="description" content="ページの説明">`
**なぜ必要**: 検索結果の下に表示される説明文になります
**ポイント**: 魅力的な文章でクリック率が変わります
**例**: `初心者でも美味しいコーヒーが淹れられる方法を写真付きで解説。必要な道具から豆の選び方まで、プロが教えるコツを紹介します。`

### - [ ] h1タグの適切な配置（1ページに1つ）
**意味**: `<h1>メインの見出し</h1>`
**なぜ必要**: ページの主題を示す最重要見出し
**ポイント**: 1ページに複数あると何が主題かわからなくなる
**例**: `<h1>初心者のためのコーヒーの淹れ方</h1>`

### - [ ] h2-h6タグの階層構造
**意味**: 見出しを h1 → h2 → h3 のように順番に使う
**なぜ必要**: 文章の構造がGoogleや読者に伝わりやすくなる
**NG例**: h1の次にいきなりh3を使う
**OK例**: h1 → h2 → h3 → h2 → h3

### - [ ] 画像のaltタグ設定
**意味**: `<img src="coffee.jpg" alt="コーヒーを淹れている様子">`
**なぜ必要**: 視覚障害者や画像が表示されないときに内容を伝える、SEOにも効果
**ポイント**: 画像の内容を具体的に説明する
**NG例**: `alt="画像"`
**OK例**: `alt="ドリッパーでお湯を注いでいる様子"`

### - [ ] 適切なURL構造（シンプル、わかりやすい）
**意味**: URLを意味のある英単語で構成する
**なぜ必要**: ユーザーもGoogleもURLから内容を推測できる
**NG例**: `example.com/page123?id=abc`
**OK例**: `example.com/coffee/brewing-guide`

### - [ ] robots.txtファイルの設置
**意味**: サイトのルートに置くファイルで、検索エンジンへの指示を書く
**なぜ必要**: 検索結果に表示したくないページを指定できる
**場所**: `example.com/robots.txt`
**例**: 管理画面をクロールさせない設定など

### - [ ] XMLサイトマップの作成
**意味**: サイト内の全ページリストをXML形式で作成
**なぜ必要**: Googleがサイト構造を理解しやすくなる
**ツール**: WordPressならプラグイン、それ以外は自動生成ツール
**場所**: `example.com/sitemap.xml`

### 構造化データ

### - [ ] schema.orgのマークアップ（適切な種類）
**意味**: JSON-LD形式でページの情報を機械読み取り可能にする
**なぜ必要**: Google検索結果でリッチスニペット（星評価など）が表示される
**種類**: Article（記事）、Recipe（レシピ）、Product（商品）など
**ツール**: Googleの構造化データマークアップ支援ツール

### - [ ] Open Graphタグ（SNSシェア用）
**意味**: `<meta property="og:title" content="タイトル">`など
**なぜ必要**: FacebookやLINEでシェアされたときの見た目を制御
**必須項目**: og:title, og:description, og:image, og:url
**画像サイズ**: 1200x630pxが推奨

### - [ ] Twitter Cardタグ
**意味**: `<meta name="twitter:card" content="summary_large_image">`など
**なぜ必要**: Twitterでシェアされたときの表示を最適化
**種類**: summary（小さい画像）、summary_large_image（大きい画像）
**確認**: Twitter Card Validatorで事前チェック可能

### - [ ] canonicalタグの設定
**意味**: `<link rel="canonical" href="正規URL">`
**なぜ必要**: 重複コンテンツがある場合、どれが本物か指定する
**例**: スマホ版とPC版で別URLの場合など
**ポイント**: 基本的には自分自身のURLを指定

### パフォーマンスSEO

### - [ ] ページ読み込み速度（Core Web Vitals）
**意味**: Googleが定めた3つの速度指標（LCP、FID、CLS）
**なぜ必要**: 遅いサイトは検索順位が下がる
**目標**: 緑色（Good）の範囲に入れる
**測定**: PageSpeed InsightsやSearch Consoleで確認

### - [ ] モバイルフレンドリーテスト合格
**意味**: Googleのモバイルフレンドリーテストツールで合格する
**なぜ必要**: スマホで使いやすいサイトは検索で優遇される
**ツール**: https://search.google.com/test/mobile-friendly
**確認項目**: 文字サイズ、タップ要素の間隔など

### - [ ] HTTPSの実装
**意味**: URLが`https://`で始まる（暗号化通信）
**なぜ必要**: セキュリティとSEOの両方で必須
**取得方法**: レンタルサーバーなら無料で取得できることが多い
**表示**: ブラウザのアドレスバーに鍵マークが出る

### - [ ] 301リダイレクトの適切な設定
**意味**: 古いURLから新しいURLへの自動転送
**なぜ必要**: URL変更時にSEO評価を引き継げる、404エラーを防ぐ
**種類**: 301（恒久的）、302（一時的）
**設定**: .htaccessファイルやサーバー設定で行う

### - [ ] 404ページのカスタマイズ
**意味**: 存在しないURLにアクセスしたときの表示
**なぜ必要**: ユーザーを適切なページに誘導できる
**含めるもの**: ホームリンク、検索ボックス、人気ページへのリンク
**ポイント**: ユーモアを交えつつ、離脱を防ぐ

### ローカルSEO（実店舗がある場合）

### - [ ] Googleビジネスプロフィールの登録・最適化
**意味**: Google検索やマップに店舗情報を表示
**なぜ必要**: 「近くの○○」検索で表示される、ローカル検索の必須
**登録**: https://business.google.com から無料登録
**最適化**: 写真、営業時間、カテゴリ、投稿を充実させる
**確認**: Google検索で店舗名を検索して表示されるか

### - [ ] NAP情報の一貫性（Name, Address, Phone）
**意味**: サイト内のすべての場所で店舗名・住所・電話番号を統一
**なぜ必要**: 情報が異なるとGoogleが混乱し、ローカルSEOに悪影響
**確認**: フッター、お問い合わせ、会社概要で完全一致するか
**ポイント**: 表記ゆれ（株式会社/㈱、1-2-3/1丁目2番3号）も統一

### - [ ] ローカル構造化データ（LocalBusiness schema）
**意味**: JSON-LDで店舗情報を機械読み取り可能にする
**なぜ必要**: Googleが店舗情報を正確に理解できる
**含む情報**: name, address, telephone, openingHours, geo（緯度経度）
**ツール**: schema.orgのLocalBusinessドキュメント参照

### - [ ] 営業時間・住所の明記
**意味**: サイト上に見やすく営業時間と住所を表示
**なぜ必要**: ユーザーの利便性、ローカルSEOの基本
**推奨場所**: フッター、お問い合わせページ、トップページ
**追加情報**: 定休日、臨時休業の案内方法も考慮

### - [ ] Googleマップの埋め込み
**意味**: iframeでGoogleマップを表示
**なぜ必要**: アクセス方法が直感的にわかる
**実装**: Google Maps → 共有 → 地図を埋め込む
**注意**: 読み込み速度への影響を考慮（lazy loadingを使う）

### ローカルSEO（実店舗がある場合）

### - [ ] Googleビジネスプロフィールの登録・最適化
**意味**: Google検索・マップに店舗情報を表示
**なぜ必要**: 「近くのカフェ」などの検索で表示されるため
**登録**: https://business.google.com で無料登録
**最適化**: 写真追加、営業時間正確に、レビューへの返信
**効果**: ローカル検索結果の上位表示、Googleマップでの発見性向上

### - [ ] NAP情報の一貫性（Name, Address, Phone）
**意味**: サイト内外で店舗名・住所・電話番号を統一
**なぜ必要**: 情報が食い違うとGoogleが混乱し、順位が下がる
**確認箇所**: サイト内、Googleビジネス、SNS、ポータルサイト
**ポイント**: 表記ゆれ（株式会社/（株）、番地の書き方）も統一
**例**: ○「東京都渋谷区1-2-3」×「渋谷区1丁目2番3号」の混在はNG

### - [ ] ローカル構造化データ（LocalBusiness schema）
**意味**: JSON-LDで店舗情報を機械読み取り可能に
**なぜ必要**: Googleが店舗情報を正確に理解できる
**含む情報**: 店名、住所、電話、営業時間、価格帯、評価
**実装**: `<script type="application/ld+json">` でLocalBusinessスキーマ
**ツール**: Googleの構造化データマークアップ支援ツール

### - [ ] 営業時間・住所の明記
**意味**: サイト内の見やすい場所に店舗情報を掲載
**なぜ必要**: ユーザーが来店しやすくなる、信頼性向上
**場所**: フッター、お問い合わせページ、トップページ
**詳細**: 定休日、臨時休業の告知方法も用意
**アクセシビリティ**: HTMLタグでマークアップ（addressタグなど）

### - [ ] Googleマップの埋め込み
**意味**: サイト内にGoogleマップを表示
**なぜ必要**: 道順がわかりやすい、視覚的にわかる
**実装**: Google Maps Embed APIで埋め込みコード取得
**配置**: アクセスページ、フッター
**注意**: レスポンシブ対応（iframe-containerで囲む）

---

## 📊 Google Analytics & トラッキング

### - [ ] Google Analytics 4（GA4）の設置
**意味**: Googleの無料アクセス解析ツールを導入
**なぜ必要**: 訪問者数や行動を把握できる
**手順**: 1) GAアカウント作成 2) トラッキングコード取得 3) HTMLに埋め込み
**確認**: リアルタイムレポートで自分のアクセスが見えるか

### - [ ] Googleタグマネージャー（GTM）の設置（推奨）
**意味**: GA、広告タグ、その他のスクリプトを一元管理するツール
**なぜ必要**: コードを直接編集せずにタグを追加・管理できる、複数ツール使用時に便利
**メリット**: エンジニア不要でマーケターがタグ管理可能
**実装**: GTMコンテナ作成 → GTMコードをHTML埋め込み → GTM内でGA等を設定
**推奨**: 複数のトラッキングツールを使う予定があれば導入

### - [ ] Googleタグマネージャー（GTM）の設置（推奨）
**意味**: 複数のトラッキングコードを一元管理するツール
**なぜ必要**: GA、広告タグ、ヒートマップなどを1つの管理画面で扱える
**メリット**: コード変更なしでタグ追加・削除が可能、エンジニア不要
**設定**: 1) GTMアカウント作成 2) コンテナコードをHTMLに設置 3) GTM経由でGA等を設定
**推奨理由**: 複数ツール使用時や頻繁にタグ変更する場合に効率的

### - [ ] イベントトラッキングの設定
**意味**: ボタンクリックやファイルダウンロードを記録
**なぜ必要**: どのボタンが押されたか、ユーザー行動が詳しくわかる
**例**: 「お問い合わせボタン」「PDFダウンロード」「動画再生」
**設定**: GA4のイベント設定画面またはGTMで設定

### - [ ] コンバージョン目標の設定
**意味**: 「問い合わせ完了」など重要なアクションを目標として設定
**なぜ必要**: サイトの成果を数値で測定できる
**例**: フォーム送信、商品購入、会員登録
**設定**: GA4の「コンバージョン」画面でイベントを指定

### - [ ] クロスドメイントラッキング（必要な場合）
**意味**: 複数のドメインをまたいだユーザー行動を追跡
**なぜ必要**: ECサイトと決済サイトが別ドメインの場合など
**例**: example.com → payment.example.net
**設定**: GA4でドメインリストを設定

### - [ ] IPアドレス除外設定（自社アクセス）
**意味**: 自分や社内からのアクセスをカウントしない
**なぜ必要**: 正確な訪問者数を測るため
**方法**: GA4のデータフィルターで自社IPを除外
**確認**: 自分のアクセスが反映されないことを確認

### - [ ] データ保持期間の設定
**意味**: ユーザーレベルのデータを何ヶ月保存するか
**なぜ必要**: プライバシー保護とデータ量のバランス
**選択肢**: 2ヶ月 or 14ヶ月
**推奨**: ビジネス用途なら14ヶ月

### - [ ] プライバシー設定の確認
**意味**: データ収集に関する設定の確認
**なぜ必要**: GDPR等の法規制への対応
**項目**: データ共有設定、Google信号データの収集
**ポイント**: プライバシーポリシーに記載内容と一致させる

---

## 🔎 Google Search Console

### - [ ] プロパティの追加と所有権の確認
**意味**: Search Consoleにサイトを登録して自分のものと証明
**なぜ必要**: Search Consoleを使うための第一歩
**方法**: HTMLファイルアップロード、メタタグ、DNS、GAアカウントなど
**確認**: 緑のチェックマークが表示される

### - [ ] XMLサイトマップの送信
**意味**: 作成したサイトマップをGoogleに通知
**なぜ必要**: ページを早く正確にインデックスしてもらえる
**手順**: サイトマップ項目 → 新しいサイトマップの追加 → URLを入力
**URL例**: `https://example.com/sitemap.xml`

### - [ ] URL検査ツールでインデックス確認
**意味**: 特定のURLがGoogleに登録されているか確認
**なぜ必要**: 検索結果に出ない原因を特定できる
**使い方**: URLを入力 → 「インデックス登録をリクエスト」も可能
**見方**: 「URLはGoogleに登録されています」が理想

### - [ ] モバイルユーザビリティレポートの確認
**意味**: スマホでの使いやすさに問題がないか
**なぜ必要**: 問題があるとモバイル検索順位が下がる
**確認項目**: テキストが小さすぎる、タップ要素が近すぎるなど
**対応**: エラーを修正 → 修正を検証

### - [ ] Core Web Vitalsレポートの確認
**意味**: ページ速度とユーザー体験の評価
**なぜ必要**: 速度が検索順位に影響する
**指標**: LCP（読み込み）、FID（応答性）、CLS（視覚的安定性）
**目標**: すべて「良好」の緑色に

### - [ ] カバレッジレポートの確認
**意味**: サイト内のページがGoogleにどれだけ登録されているか
**なぜ必要**: インデックスされていないページを発見できる
**見方**: エラー、警告、有効、除外の4種類
**対応**: エラーを優先的に修正

### - [ ] 手動対策の確認
**意味**: Googleからペナルティを受けていないか
**なぜ必要**: ペナルティがあると検索結果に出なくなる
**表示**: 「問題は検出されませんでした」が正常
**対処**: もし問題があれば、指摘内容を修正して再審査リクエスト

---

## 🤖 LLMO（LLM最適化）対策

### コンテンツ構造

### - [ ] 明確な見出し構造（LLMが理解しやすい）
**意味**: h1, h2, h3を論理的に使う
**なぜ必要**: ChatGPTなどのAIがコンテンツを正しく理解できる
**ポイント**: 見出しだけ読んで内容が把握できるように
**例**: 「○○の方法」→「準備」→「手順1」→「手順2」

### - [ ] 段落の適切な長さ（過度に長くない）
**意味**: 1段落を3-5文程度に抑える
**なぜ必要**: 長すぎるとAIも人間も理解しにくい
**NG例**: 10行以上の段落が続く
**OK例**: 3-4行で1つのアイデアを完結

### - [ ] 箇条書きの活用
**意味**: リスト形式で情報を整理
**なぜ必要**: AIが要点を抽出しやすい
**使いどころ**: 手順、特徴、メリット・デメリット
**例**: 「必要なもの: - コーヒー豆 - ドリッパー - フィルター」

### - [ ] FAQ形式のコンテンツ追加
**意味**: よくある質問と回答のセクション
**なぜ必要**: AIが質問に対する答えとして引用しやすい
**構造**: `<div itemscope itemtype="https://schema.org/FAQPage">`
**効果**: Googleの検索結果にFAQが表示されることも

### - [ ] まとめセクションの設置
**意味**: 記事の最後に要点をまとめる
**なぜ必要**: AIが記事全体の要約として使いやすい
**内容**: 3-5個の重要ポイント
**例**: 「この記事のポイント」「まとめ」

### セマンティック最適化

### - [ ] 自然言語での記述（キーワードの過度な詰め込みを避ける）
**意味**: 普通の文章で書く、キーワードを不自然に繰り返さない
**なぜ必要**: AIは文脈を理解するので、自然な文章の方が評価される
**NG例**: 「コーヒー コーヒー豆 コーヒーの淹れ方」を連発
**OK例**: 「美味しいコーヒーを淹れるには、良質な豆選びが重要です」

### - [ ] 文脈情報の明確化
**意味**: 「それ」「これ」だけでなく、具体的に何を指すか書く
**なぜ必要**: AIは文脈を完全には理解できない場合がある
**NG例**: 「それを使います」
**OK例**: 「ドリッパーを使います」

### - [ ] 関連情報へのリンク
**意味**: 関連記事や参考資料への内部リンク
**なぜ必要**: AIが知識のつながりを理解できる
**ポイント**: リンクテキストは「こちら」ではなく内容を説明
**例**: 「[コーヒー豆の選び方](...)」

### - [ ] 日付・時間情報の明記
**意味**: 情報がいつのものか、更新日を記載
**なぜ必要**: AIは情報の鮮度を重視する
**場所**: 記事の上部または下部
**例**: 「公開日: 2024年1月15日 / 更新日: 2024年3月20日」

### - [ ] 引用元・出典の明記
**意味**: データや事実の情報源を示す
**なぜ必要**: AIは信頼性の高い情報を優先する
**方法**: 「出典: ○○調査 (2024)」
**ポイント**: 公式サイトや学術論文など信頼できる源を

### メタデータ

### - [ ] JSON-LDによる構造化データ
**意味**: `<script type="application/ld+json">`形式のメタデータ
**なぜ必要**: AIが記事の種類や内容を正確に理解できる
**種類**: Article, HowTo, Recipe, Product など
**ツール**: Googleの構造化データマークアップ支援ツール

### - [ ] article:published_time、article:modified_timeの設定
**意味**: Open Graphタグで公開日・更新日を指定
**なぜ必要**: AIが情報の新しさを判断できる
**形式**: ISO 8601形式（2024-01-15T10:00:00+09:00）
**例**: `<meta property="article:published_time" content="2024-01-15T10:00:00+09:00">`

### - [ ] author情報の明記
**意味**: 著者名や執筆者情報
**なぜ必要**: 誰が書いたかでコンテンツの信頼性が変わる
**方法**: JSON-LDのauthorフィールド、またはページ内に明記
**ポイント**: 専門家であることを示す経歴も添える

### - [ ] 専門性・権威性の示唆
**意味**: E-E-A-T（経験、専門性、権威性、信頼性）の証明
**なぜ必要**: AIは信頼できる情報源を優先する
**方法**: 著者プロフィール、資格、実績、レビューなど
**例**: 「コーヒーソムリエ資格保持者が執筆」

### LLM向けコンテンツ

### - [ ] ハウツー形式のコンテンツ
**意味**: 「○○の方法」「○○のやり方」という構成
**なぜ必要**: AIがステップバイステップで引用しやすい
**構造**: HowToスキーマを使う
**例**: 「コーヒーの淹れ方」を段階的に説明

### - [ ] ステップバイステップの説明
**意味**: 手順を番号付きで明確に分ける
**なぜ必要**: AIが順序を正確に理解・伝達できる
**形式**: 「手順1: ○○」「手順2: ○○」
**ポイント**: 各ステップに見出しをつける

### - [ ] 具体的な例の提示
**意味**: 抽象的な説明だけでなく、具体例を示す
**なぜ必要**: AIが実例を使って説明を補強できる
**方法**: 「例えば」「具体的には」で導入
**例**: 「浅煎りの豆は、例えばエチオピア産のイルガチェフェなど」

### - [ ] 疑問文に対する明確な回答
**意味**: 「○○とは何か?」という問いに直接答える
**なぜ必要**: AIが質問応答として引用しやすい
**構造**: 質問見出し → 直後に答え
**例**: 「Q: コーヒーの適温は? A: 85-95℃が最適です」

---

## ⚡ パフォーマンス最適化

### - [ ] 画像の最適化（WebP形式、圧縮）
**意味**: 画像ファイルを軽くする
**なぜ必要**: 画像はページの重さの大部分を占める
**方法**: TinyPNG、ImageOptimなどのツールで圧縮
**WebP**: JPGより30%軽い次世代フォーマット（代替画像も用意）

### - [ ] 画像の遅延読み込み（lazy loading）
**意味**: 画面に見えていない画像は後で読み込む
**なぜ必要**: 初期読み込みが速くなる
**実装**: `<img src="..." loading="lazy">`
**対象**: ファーストビュー外の画像すべて

### - [ ] CSSの最小化
**意味**: CSSファイルから空白や改行を削除して軽量化
**なぜ必要**: ファイルサイズが小さくなり読み込みが速くなる
**ツール**: CSSNano、csso など
**例**: 100KB → 70KB に削減

### - [ ] JavaScriptの最小化
**意味**: JSファイルから不要な文字を削除
**なぜ必要**: 読み込み・実行が速くなる
**ツール**: UglifyJS、Terser など
**注意**: 元ファイルは保管しておく

### - [ ] 不要なCSSの削除
**意味**: 使われていないCSSルールを削除
**なぜ必要**: 無駄なコードがファイルサイズを増やしている
**ツール**: PurgeCSS、UnCSS
**確認**: Chrome DevToolsのCoverage機能

### - [ ] フォントの最適化（font-display: swap）
**意味**: フォント読み込み中もテキストを表示
**なぜ必要**: フォント待ちで画面が真っ白になるのを防ぐ
**設定**: `@font-face { font-display: swap; }`
**効果**: テキストが即座に表示される（フォントは後から適用）

### - [ ] キャッシュ戦略の実装
**意味**: 一度読み込んだファイルをブラウザに保存させる
**なぜ必要**: 2回目以降の訪問が爆速になる
**設定**: .htaccessやサーバー設定で有効期限を指定
**対象**: CSS、JS、画像は長め（1年）、HTMLは短め（1時間）

### - [ ] CDNの利用
**意味**: コンテンツ配信ネットワークを使う
**なぜ必要**: 世界中どこからでも速く読み込める
**サービス**: Cloudflare（無料あり）、AWS CloudFront など
**効果**: 物理的に近いサーバーから配信される

### - [ ] Lighthouseスコア80以上（各カテゴリ）
**意味**: Googleの評価ツールで高得点を取る
**なぜ必要**: パフォーマンスの総合評価
**カテゴリ**: Performance、Accessibility、Best Practices、SEO
**測定**: Chrome DevTools → Lighthouse タブ
**目標**: すべて80点以上（緑色）

---

## 🔒 セキュリティ

### - [ ] SSL証明書の実装（HTTPS）
**意味**: 通信を暗号化する
**なぜ必要**: データ盗聴を防ぐ、Googleが必須としている
**取得**: Let's Encryptなら無料（レンタルサーバーで自動設定可）
**確認**: URLが`https://`で、鍵マークが表示される

### - [ ] Cookie同意バナーの設置（EU・CA向けは必須）
**意味**: Cookie使用についてユーザーの同意を取得するポップアップ
**なぜ必要**: GDPR（EU）、CCPA（カリフォルニア州）で法的に必須
**対象地域**: EUや米国カリフォルニア州のユーザーがいる場合
**実装**: CookieYes、OneTrust、Cookiebotなどのツール
**最低限**: Cookie使用の説明、同意/拒否ボタン、プライバシーポリシーへのリンク
**日本のみ**: 法的義務はないが、GA使用なら推奨

### - [ ] セキュリティヘッダーの設定

#### - [ ] Content-Security-Policy
**意味**: どのスクリプトや画像を読み込むか制限
**なぜ必要**: XSS攻撃を防ぐ
**設定例**: `Content-Security-Policy: default-src 'self'`
**効果**: 外部からの悪意あるスクリプト実行を防止

#### - [ ] X-Frame-Options
**意味**: 自サイトをiframeに埋め込めるか制御
**なぜ必要**: クリックジャッキング攻撃を防ぐ
**設定**: `X-Frame-Options: SAMEORIGIN`
**効果**: 他サイトのフレーム内での表示を禁止

#### - [ ] X-Content-Type-Options
**意味**: ブラウザにファイル形式を勝手に判断させない
**なぜ必要**: MIME タイプ sniffing 攻撃を防ぐ
**設定**: `X-Content-Type-Options: nosniff`
**効果**: サーバーが指定した通りにファイルを扱う

### - [ ] CSRF対策
**意味**: Cross-Site Request Forgery（偽装リクエスト）対策
**なぜ必要**: 不正な送信や操作を防ぐ
**方法**: トークンをフォームに埋め込む
**実装**: フレームワークの機能を使う（Laravel、Railsなど）

### - [ ] XSS対策
**意味**: Cross-Site Scripting（スクリプト注入）対策
**なぜ必要**: 悪意あるコードの実行を防ぐ
**方法**: ユーザー入力のエスケープ処理
**原則**: 入力は信頼せず、出力時にサニタイズ

### - [ ] SQLインジェクション対策
**意味**: データベースへの不正な命令実行を防ぐ
**なぜ必要**: データ漏洩や改ざんを防ぐ
**方法**: プリペアドステートメント（パラメータ化クエリ）を使う
**NG**: SQL文に直接ユーザー入力を結合

### - [ ] スパム対策（reCAPTCHA等、フォームがある場合）
**意味**: お問い合わせフォームへのスパム送信を防ぐ
**なぜ必要**: スパムメールの大量受信を防ぐ、サーバー負荷軽減
**ツール**: Google reCAPTCHA v3（目に見えない）、v2（チェックボックス）
**実装**: reCAPTCHAサイトキー取得 → フォームに組み込み → サーバー側で検証
**代替**: hCaptcha、Cloudflare Turnstile（プライバシー重視）
**簡易版**: ハニーポット（非表示フィールド）

### - [ ] 定期的なセキュリティアップデート
**意味**: CMS、プラグイン、ライブラリを最新に保つ
**なぜ必要**: 脆弱性が見つかったら即対応が必要
**頻度**: 最低でも月1回チェック
**通知**: WordPressなら自動通知機能あり

---

## ♿ アクセシビリティ

### - [ ] WAI-ARIA属性の適切な使用
**意味**: `role="navigation"` などの補助情報を追加
**なぜ必要**: スクリーンリーダーが要素の役割を理解できる
**例**: `<nav role="navigation">`, `<button aria-label="メニューを開く">`
**注意**: 過剰に使わない、セマンティックHTMLを優先

### - [ ] キーボード操作の対応
**意味**: マウスなしでもサイトを操作できる
**なぜ必要**: 視覚障害者や運動障害者への配慮
**確認**: Tabキーでフォーカス移動、Enterで決定できるか
**対象**: すべてのボタン、リンク、フォーム

### - [ ] フォーカスインジケーターの視認性
**意味**: Tab移動時に今どこにいるか見える
**なぜ必要**: キーボード操作の現在位置がわかる
**デザイン**: デフォルトの青枠でOK、カスタムなら明確に
**NG**: `outline: none;` で消すだけ

### - [ ] カラーコントラスト比の確保（WCAG AA以上）
**意味**: 文字と背景の色の差を十分つける
**なぜ必要**: 視覚障害者や高齢者が読みやすい
**基準**: 通常文字 4.5:1 以上、大きい文字 3:1 以上
**ツール**: WebAIM Contrast Checker、Chrome DevTools

### - [ ] スクリーンリーダーでの確認
**意味**: 音声読み上げソフトで実際にチェック
**なぜ必要**: 視覚障害者の実体験を知る
**ツール**: NVDA（Windows無料）、VoiceOver（Mac標準）
**確認点**: 見出し構造、altテキスト、フォームラベル

### - [ ] 代替テキストの充実
**意味**: 画像のalt属性に詳細な説明
**なぜ必要**: 視覚障害者が画像の内容を理解できる
**書き方**: 画像が伝える情報を文章化
**装飾画像**: `alt=""` で空にする（読み上げ不要）

### - [ ] フォームラベルの適切な関連付け
**意味**: `<label for="name">` と `<input id="name">` を紐付ける
**なぜ必要**: スクリーンリーダーが何の入力欄か伝えられる
**効果**: ラベルクリックで入力欄にフォーカス（操作性向上）
**NG**: labelを使わずplaceholderだけに頼る

---

## 📝 コンテンツ品質

### - [ ] 誤字脱字のチェック
**意味**: 文章の間違いがないか確認
**なぜ必要**: 信頼性に直結、SEOにも影響
**方法**: 音読する、他人に読んでもらう
**ツール**: Grammarly（英語）、日本語校正サポート

### - [ ] リンク切れのチェック
**意味**: すべてのリンクが正しく機能するか
**なぜ必要**: ユーザー体験の悪化、SEO評価の低下
**ツール**: W3C Link Checker、Broken Link Checker
**頻度**: 月1回程度

### - [ ] コンテンツの正確性確認
**意味**: 情報が事実として正しいか
**なぜ必要**: 誤情報は信頼を損なう、法的リスクも
**方法**: 公式情報源と照合
**特に注意**: 医療、金融、法律関連

### - [ ] 著作権・引用の確認
**意味**: 使用している画像や文章に問題がないか
**なぜ必要**: 著作権侵害は法的問題になる
**画像**: 商用利用OKのフリー素材か、ライセンス確認
**引用**: 引用元を明記、必要最小限に

### - [ ] プライバシーポリシーの設置
**意味**: 個人情報の取り扱いについての説明ページ
**なぜ必要**: 法律で義務付けられている（個人情報保護法）
**含む内容**: 取得する情報、利用目的、第三者提供、問い合わせ先
**ツール**: 雛形ジェネレーターあり

### - [ ] 利用規約の設置（必要な場合）
**意味**: サービス利用時のルール
**なぜ必要**: トラブル防止、法的保護
**必要なサイト**: 会員制、EC、投稿機能あり
**弁護士確認**: 高額取引があるなら必須

### - [ ] お問い合わせフォームの動作確認
**意味**: フォームから実際にメールが届くか
**なぜ必要**: 機会損失を防ぐ
**テスト**: 自分でフォーム送信してメール受信確認
**確認項目**: 送信完了画面、自動返信メール、管理者への通知

---

## 🌐 ブラウザ・デバイステスト

### - [ ] Chrome（最新版）
**意味**: Google Chromeの最新バージョンで表示確認
**なぜ必要**: 世界シェア1位のブラウザ（約65%）
**確認**: デスクトップ版とモバイル版の両方
**DevTools**: F12で開発者ツール、要素検証に便利

### - [ ] Firefox（最新版）
**意味**: Mozilla Firefoxで表示確認
**なぜ必要**: シェア約3%だが、レンダリングエンジンが異なる
**特徴**: CSSの実装が微妙に違うことがある
**ツール**: 開発者ツールはF12

### - [ ] Safari（最新版）
**意味**: Apple Safariで表示確認
**なぜ必要**: Mac・iPhoneユーザーが使う（シェア約20%）
**注意点**: iOS SafariとMac Safariで挙動が違うことも
**確認**: Macがなければブラウザスタックを利用

### - [ ] Edge（最新版）
**意味**: Microsoft Edgeで表示確認
**なぜ必要**: Windowsの標準ブラウザ（シェア約5%）
**特徴**: Chromiumベースなので、Chromeと似ている
**確認**: 念のため独自機能の確認

### - [ ] iOS Safari
**意味**: iPhone・iPadのSafariで確認
**なぜ必要**: iOSでは他ブラウザもSafariエンジンを使う
**注意**: デスクトップSafariとは別物
**実機テスト**: 可能なら本物のiPhoneで確認

### - [ ] Android Chrome
**意味**: Androidスマホの Chromeで確認
**なぜ必要**: Androidシェアは世界で約70%
**確認**: 実機またはエミュレーター
**注意**: 古いAndroidバージョンでの確認も

### - [ ] 各ブラウザの1つ前のバージョン
**意味**: 最新版の一つ前でも動作確認
**なぜ必要**: 自動更新しないユーザーもいる
**対象**: Chrome、Firefox、Safari、Edge
**ツール**: BrowserStackなどのクロスブラウザテストサービス

---

## 📤 公開前の最終チェック

### - [ ] ファビコンの設定
**意味**: ブラウザのタブに表示される小さいアイコン
**なぜ必要**: ブランド認知、タブの識別性
**サイズ**: 16x16, 32x32, 48x48px（複数サイズ推奨）
**形式**: .ico または .png
**設置**: `<link rel="icon" href="/favicon.ico">`

### - [ ] OGP画像の設定
**意味**: SNSシェア時に表示される画像
**なぜ必要**: シェア時の見た目でクリック率が変わる
**サイズ**: 1200x630px推奨
**形式**: JPG or PNG（2MB以下）
**タグ**: `<meta property="og:image" content="...">`

### - [ ] メタタグの重複チェック
**意味**: 同じメタタグが複数ないか確認
**なぜ必要**: 重複はエラーの原因、SEOにも悪影響
**確認**: ページのソースを見て、同じnameのmetaタグがないか
**ツール**: HTMLバリデーター

### - [ ] Googleプレビュー確認
**意味**: 検索結果でどう見えるかシミュレート
**なぜ必要**: 実際の見た目を事前確認
**ツール**: Google Search Consoleのリッチリザルトテスト
**確認項目**: タイトル、説明文、構造化データ

### - [ ] 404ページの確認
**意味**: 存在しないURLにアクセスしたときの表示
**なぜ必要**: エラーページもサイトの印象を左右
**テスト**: 適当なURL（/test-404など）にアクセス
**内容**: ホームリンク、検索、お詫びメッセージ

### - [ ] サーバーエラーページの確認
**意味**: 500エラーなどサーバー障害時の表示
**なぜ必要**: トラブル時のユーザー体験
**テスト**: テスト環境でエラーを発生させる
**内容**: シンプルに、復旧予定時刻や連絡先

### - [ ] バックアップの取得
**意味**: サイト全体のコピーを保存
**なぜ必要**: 万が一のトラブルに備える
**対象**: ファイル、データベース
**頻度**: 公開前必須、公開後は定期的に
**保存先**: 別サーバー、クラウドストレージ

### - [ ] テスト環境での最終確認
**意味**: 本番と同じ環境で動作確認
**なぜ必要**: 本番で予期せぬエラーを防ぐ
**確認**: すべての機能、リンク、フォーム
**ツール**: ステージング環境、Dockerなど

### - [ ] ステークホルダーの承認
**意味**: クライアントや上司の最終OK
**なぜ必要**: 公開後の修正は手間とコスト増
**方法**: デモサイトを見せる、スクリーンショット共有
**記録**: メールやチャットで承認を記録

---

## 🚀 公開後の作業

### - [ ] Googleインデックス登録リクエスト
**意味**: Search ConsoleからGoogleに通知
**なぜ必要**: 早く検索結果に載せるため
**手順**: URL検査 → インデックス登録をリクエスト
**反映**: 数時間〜数日かかる

### - [ ] SNSでのシェア
**意味**: Facebook、Twitter、LinkedInなどで公開を告知
**なぜ必要**: 初期トラフィック獲得、被リンク獲得
**確認**: OGP画像が正しく表示されるか
**タイミング**: 公開直後が効果的

### - [ ] 監視ツールの設定（UptimeRobotなど）
**意味**: サイトがダウンしたら通知するサービス
**なぜ必要**: 障害を早期発見できる
**サービス**: UptimeRobot（無料プランあり）、Pingdom
**設定**: 5分間隔でチェック、メール/Slack通知

### - [ ] 1週間後のアクセス解析確認
**意味**: 公開後の初期データを分析
**なぜ必要**: 問題の早期発見、改善点の把握
**確認項目**: 訪問者数、離脱率、エラーページアクセス
**対応**: 問題があれば即修正

### - [ ] エラーログの確認
**意味**: サーバーログにエラーがないかチェック
**なぜ必要**: 表面化していない問題を発見
**場所**: サーバーのerror.logファイル
**頻度**: 公開後1週間は毎日、その後は週1

### - [ ] ユーザーフィードバックの収集
**意味**: 実際の利用者の声を聞く
**なぜ必要**: 作り手が気づかない問題がある
**方法**: アンケート、問い合わせフォーム、ヒートマップ
**対応**: フィードバックを次の改善に活かす

---

## 📌 継続的なメンテナンス

### - [ ] 月次アクセス解析レポート
**意味**: 毎月のアクセス状況をまとめる
**なぜ必要**: 成長を可視化、課題を発見
**内容**: 訪問者数、人気ページ、流入元、コンバージョン
**活用**: 改善施策の優先順位づけ

### - [ ] Search Consoleレポート確認
**意味**: 検索パフォーマンスを月次で確認
**なぜ必要**: SEO効果の測定、問題の早期発見
**確認項目**: クリック数、表示回数、CTR、順位
**対応**: 順位が下がったキーワードを改善

### - [ ] エラートラッキング・監視（Sentry、Rollbar等）
**意味**: 本番環境で発生するJavaScriptエラーやサーバーエラーを自動収集
**なぜ必要**: ユーザーが遭遇したエラーを開発者が把握できる
**ツール**: Sentry（無料プランあり）、Rollbar、Bugsnag、LogRocket
**対象**: フロントエンド（JS）、バックエンド（サーバー）両方
**アラート**: 重大なエラー発生時にSlack/メール通知
**推奨**: 動的機能が多いサイト、ECサイト、会員制サイトなら必須

### - [ ] エラートラッキング・監視（Sentry、Rollbar等）
**意味**: 本番環境で発生したJavaScriptエラーやサーバーエラーを自動収集
**なぜ必要**: ユーザーが遭遇したエラーをリアルタイムで把握・修正できる
**サービス**: Sentry（無料プランあり）、Rollbar、Bugsnag、Datadog
**取得情報**: エラーメッセージ、スタックトレース、ユーザー環境、再現手順
**通知**: Slack、メールで即座に通知
**ポイント**: 複雑なサイトやECサイトでは特に重要

### - [ ] コンテンツの定期更新
**意味**: 古い情報を最新に保つ
**なぜ必要**: 情報の鮮度がSEOに影響、ユーザー信頼性
**頻度**: 最低でも四半期に1回
**対象**: 日付のある記事、統計データ、法律関連

### - [ ] セキュリティパッチの適用
**意味**: CMSやプラグインの更新
**なぜ必要**: 脆弱性を突いた攻撃を防ぐ
**頻度**: 月1回以上、重要な更新は即対応
**注意**: 更新前にバックアップ

### - [ ] バックアップの定期実行
**意味**: サイトデータを定期的に保存
**なぜ必要**: データ消失に備える
**頻度**: 週1回（更新頻度が高ければ毎日）
**自動化**: cronやバックアッププラグインで自動化
**保存期間**: 最低30日分は保持

### - [ ] パフォーマンスモニタリング
**意味**: サイト速度を継続的にチェック
**なぜ必要**: 徐々に遅くなることがある
**ツール**: Google Analytics、PageSpeed Insights
**頻度**: 月1回
**対応**: 速度低下が見られたら原因調査と最適化

---

## ✅ 使い方のヒント

1. **プロジェクト開始時**: このチェックリストをコピーして使う
2. **段階的に進める**: すべてを一度にやろうとしない
3. **優先順位をつける**: 必須項目から着手
4. **チーム共有**: 役割分担して効率化
5. **カスタマイズ**: 自分のプロジェクトに合わせて項目を追加・削除

---

**作成日**: $(date +%Y-%m-%d)  
**プロジェクト名**: _____________  
**担当者**: _____________  
**公開予定日**: _____________
