Webサイト公開前チェックリスト
Webサイトを公開する前に、品質を担保しリスクを最小限に抑えるためのチェックリストです。優先度と確認例を参考に、計画的に確認を進めてください。
優先度
- Lv3:必須 - 公開前に必ず対応すべき最重要項目
- Lv2:強く推奨 - ユーザー体験や信頼性に大きく影響する項目
- Lv1:推奨 - 対応が望ましいが、公開後の対応も可能な項目
優先度でフィルタリング
🔐 セキュリティ
| 優先度 | チェック項目 | 確認例(どうなっていればOKか) |
|---|---|---|
| Lv3 | SQLインジェクション対策 | ログイン画面のID入力欄に `' OR '1'='1` のような文字列を入力しても、ログインできずエラーになる |
| Lv3 | クロスサイトスクリプティング (XSS) 対策 | 入力フォームに `<script>alert('XSS')</script>` と入力して送信しても、アラートは実行されず、文字列として表示される |
| Lv3 | CSRF (クロスサイトリクエストフォージェリ) 対策 | 重要な処理を行うフォームのHTMLソースに、`_csrf_token` のような推測困難なトークンが埋め込まれている |
| Lv3 | Cookieのセキュリティ設定 | ブラウザの開発者ツールでCookieを確認し、HttpOnly, Secure, SameSite 属性にチェックが入っている |
| Lv3 | 権限管理 | ユーザーAでログイン中に、ユーザーBの編集ページのURL(例: `/users/B/edit`)に直接アクセスしても、閲覧できずエラーページ等に遷移する |
| Lv3 | ファイルアップロード機能の検証 | 許可していない拡張子(.php .exe など)のファイルをアップロードしようとすると、エラーメッセージが表示されて失敗する |
| Lv3 | オープンリダイレクト対策 | URLパラメータに外部サイトを指定(例: `?redirect=https://evil.com`)しても、外部サイトにはリダイレクトされない |
| Lv3 | エラーメッセージの表示 | 意図的にサーバーエラーを発生させても、ユーザーには「エラーが発生しました」等の汎用的なメッセージが表示され、プログラムの内部情報が漏洩しない |
| Lv3 | 管理画面の保護 | 許可されていないIPアドレスから管理画面のURLにアクセスすると、アクセスが拒否される。URLが `/admin` のような単純なものではない |
| Lv3 | 依存関係の脆弱性スキャン | `npm audit` や `bundle audit` 等のコマンドを実行し、重大な(CRITICAL/HIGH)脆弱性が報告されない |
| Lv3 | 定期的なバックアップ | クラウドサービスの管理画面などで、データベース等のバックアップが定期的に作成されていることを確認できる |
| Lv2 | レスポンスヘッダの設定 | 開発者ツールのNetworkタブでレスポンスを確認し、X-Frame-Options などのセキュリティ関連ヘッダが付与されている |
⚖️ 法務・コンプライアンス
| 優先度 | チェック項目 | 確認例(どうなっていればOKか) |
|---|---|---|
| Lv3 | プライバシーポリシーの設置 | 全ページのフッター等から「プライバシーポリシー」ページへリンクされており、内容が記載されている |
| Lv3 | 利用規約の設置 | 全ページのフッター等から「利用規約」ページへリンクされており、内容が記載されている |
| Lv3 | 特定商取引法に基づく表記(ECサイト等) | フッター等からページへリンクされており、事業者名、所在地、連絡先などが明記されている |
| Lv2 | Cookieポリシーと同意バナーの設置 | サイト初回訪問時にCookie利用に関するバナーが表示され、「同意する」等の操作ができる |
| Lv1 | 著作権表記 | フッターに `© 2025 Your Company Name` のようなコピーライト表記がある |
👤 主要機能
| 優先度 | チェック項目 | 確認例(どうなっていればOKか) |
|---|---|---|
| Lv3 | フォームの動作確認 | 問い合わせフォームから送信後、サンクスページが表示され、管理者と送信者本人に自動返信メールが届く |
| Lv3 | ログイン・新規登録・退会 | 新規登録フローを完了でき、そのアカウントでログインできる。退会処理後はログインできなくなる |
| Lv3 | 決済機能(該当する場合) | テスト用のクレジットカード情報で商品を購入でき、管理画面に受注デ ータが正しく反映される |
| Lv2 | SNS連携 | Googleアカウント等でログインでき、サービス内でユーザー情報が正しく紐付いている |
🖋️ コンテンツと表示
| 優先度 | チェック項目 | 確認例(どうなっていればOKか) |
|---|---|---|
| Lv3 | ダミーデータの削除 | サイト内を「Lorem ipsum」「ダミー」「テスト」等で検索してもヒットしない。仮画像が残っていない |
| Lv3 | レスポンシブ対応 | スマホやPCで表示した際に、レイアウトが崩れたり、要素が画面からはみ出したりしていない |
| Lv2 | 誤字脱字・表記ゆれのチェック | 文章校正ツールや複数人での目視確認を行い、誤字脱字や「ですます調」の不統一がない |
| Lv2 | リンク切れの確認 | サイト内の全リンクをクリックして、404ページが表示されない |
| Lv2 | ブラウザ互換性 | Chrome, Safari, Edge の最新版で主要ページを表示し、表示や動作に問題がない |
| Lv1 | ファビコン・WebClipアイコン | PCブラウザのタブやスマホのホーム画面に、設定したアイコンが表示される |
📈 SEO
| 優先度 | チェック項目 | 確認例(どうなっていればOKか) |
|---|---|---|
| Lv3 | noindex の確認 | 公開したいページのHTMLソースに `<meta name="robots" content="noindex">` が含まれていない |
| Lv2 | title タグの設定 | 各ページのブラウザタブに、そのページの内容を表す固有のタイトルが表示されている |
| Lv2 | meta description の設定 | Google検索結果で、ページURLの下に内容を要約した説明文が表示される |
| Lv2 | canonical URLの設定 | URLのwww有無などで重複がある場合、ページのHTMLソースに正規化URLを示す canonical タグが指定されている |
| Lv2 | 404ページの用意 | 存在しないURLにアクセスした際、サイトのデザインに合った「ページが見つかりません」画面が表示される |
| Lv2 | XMLサイトマップの生成と登録 | `https://example.com/sitemap.xml` にアクセスするとサイトのURL一覧が表示され、Search Consoleで正常に認識されている |
| Lv1 | OGP設定 | TwitterやFacebookでURLを投稿した際に、意図した画像やタイトル、説明文のカードが表示される |
🚀 パフォーマンスとアクセシビリティ
| 優先度 | チェック項目 | 確認例(どうなっていればOKか) |
|---|---|---|
| Lv2 | 表示速度 | Google PageSpeed Insightsで計測し、モバイル・PC共に極端に低いスコア(赤色)になっていない |
| Lv2 | 画像のレイアウトシフト防止 | ページを再読み込みした際に、画像の表示によってコンテンツの位置がガクッとずれる現象が起きない |
| Lv2 | alt 属性の設定 | 画像が表示されない設定のブラウザでも、alt属性のテキストによって画像の内容が伝わる |
| Lv1 | セマンティックHTML | HTMLソースを見た際に、見出しが `<h1>` `<h2>`、段落が `<p>` など、意味的に正しいタグでマークアップされている |
🔩 運用・保守
| 優先度 | チェック項目 | 確認例(どうなっていればOKか) |
|---|---|---|
| Lv3 | ドメイン・SSL証明書の有効期限確認 | ブラウザの鍵マークから証明書情報を確認し、有効期限が十分に残っている。ドメイン管理サービスで自動更新が有効になっている |
| Lv2 | エラー監視・通知 | テストで意図的にエラーを発生させると、SentryやSlack等の監視ツールにエラー内容が通知される |
| Lv2 | アクセス解析ツールの導入 | Google Analyticsのリアルタイムレポートで、自身のアクセスが計測されていることを確認できる |
| Lv1 | 問い合わせ対応の準備 | 問い合わせフォームからテスト送信し、担当者のメールボックスにメールが届く |