SEO診断とは
SEO診断とは、サイトが検索エンジンに正しく見つけられ、登録され、内容が伝わっているかを順番に調べ、直す箇所と順番を決める作業です。診断の結果として残すべきものは、点数ではなく「どのページの、何を、どの順番で直すか」の一覧です。
「SEO診断」で検索すると、URLを入れると点数が出る無料の診断ツールが多く表示されます。こうしたツールは、title の長さや画像の alt の抜けなど、ページの形式を調べるのは得意です。一方で、そのページがGoogleに登録されているか、Googleがどのページを正規のURLとして選んだかは、サイトの持ち主が Search Console で見ないと分かりません。この記事では、ツールの点数に頼らず、Googleの公式の道具で確かめる手順を紹介します。
診断は4つの段階で進める
SEO診断は、「技術(クロールできるか)」「登録状況(インデックス)」「ページ(title・見出しなど)」「キーワード(狙いと重なり)」の順に進めると、手戻りがありません。前の段階に問題があると、後ろの段階をいくら直しても検索結果に反映されないためです。
| 段階 | 確かめること | 使う道具 | 見る単位 |
|---|---|---|---|
| 1 技術 | robots.txt・サイトマップ・URLの転送・404 | ブラウザ・curl | サイト全体 |
| 2 登録状況 | 登録されていないページとその理由 | Search Console | サイト全体→気になるページ |
| 3 ページ | title・description・canonical・robots・h1・alt・構造化データ | ブラウザの開発者ツール | 1ページずつ |
| 4 キーワード | 同じ語句に複数のページが出ていないか | Search Console | 検索語句ごと |
表示速度(Core Web Vitals)は、4段階とは別に、PageSpeed Insights と Search Console で確かめます。
段階1:技術の診断(robots.txt・サイトマップ・リダイレクト・404)
最初に、robots.txt で大事なページを止めていないか、サイトマップがあるか、URLの揺れが1つに転送されるか、存在しないURLが404を返すかを確かめます。どれもブラウザか curl で数分で確かめられ、ここで問題が見つかると、サイト全体に影響するためです。
確かめ方
robots.txt とサイトマップは、ブラウザで「https://自分のドメイン/robots.txt」「https://自分のドメイン/sitemap.xml」を開けば中身を見られます。robots.txt に「Disallow: /」とだけ書かれていれば、サイト全体のクロールを止めている状態です。制作中の設定が残ったまま公開されていないかを確かめます。
URLの転送と404は、Windows でも Mac でも使える curl というコマンドで確かめると、返ってくる番号(ステータスコード)と転送先が一度に分かります。
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" http://www.example.com/
Windows の PowerShell では、curl を curl.exe と書き(curl だけだと別の命令が動くため)、/dev/null の代わりに NUL と書きます。301 と正しいURLが返れば転送できています。存在しないURL(https://自分のドメイン/nothing-here/ など)を調べて 404 が返れば、存在しないページを正しく扱えています。
のれんを診断した結果
このブログ(のれん)を、2026年10月20日に同じ手順で診断した結果です。6項目とも問題はありませんでした。
| 確かめたこと | 結果 |
|---|---|
| robots.txt | すべてのクローラーに全体を許可。最後にサイトマップの場所 |
| サイトマップ | sitemap.xml に16件のURL。Search Console から送信済み |
| http://noren.blog/ | 301 で https://noren.blog/ へ |
| http://www.noren.blog/ | 301 で https://noren.blog/ へ(1回で転送) |
| https://noren.blog/index.html | 301 で https://noren.blog/ へ |
| 存在しないURL | 404 |
のれんでは、これらをサイトを公開する前に設定しています。設定のしかたはSEOの内部対策のやり方で、実際のコードと一緒に紹介しています。
段階2:登録状況の診断(Search Console)
Search Console の「ページのインデックス登録」で未登録の理由を見て、意図どおりのものと直すべきものに分けます。Search Console のヘルプでは、目標は「すべての重要なページの正規バージョンがインデックスに登録されること」で、未登録が必ずしも悪い状態ではないと説明されています。
未登録の理由の仕分け
| レポートに出る理由 | 意図どおりなら | 直すときの対応(Search Console ヘルプより) |
|---|---|---|
| 代替ページ(適切な canonical タグあり) | 対応は不要 | ― |
| ページにリダイレクトがあります | 対応は不要(転送先が登録の対象) | ― |
| URL に noindex が指定されています | 外したいページなら問題なし | 出したいページなら noindex を外す |
| URL が robots.txt によってブロックされています。 | 止めたいページなら問題なし | 出したいページならブロックを外す。確実に外したいなら noindex |
| 見つかりませんでした(404) | 消したページなら問題は小さい | 移動したページなら301で転送 |
| サーバーエラー(5xx) | ― | サーバーの障害・負荷を確かめる |
| リダイレクト エラー | ― | 転送の連鎖・ループを解消する |
| ソフト 404 | ― | 無いページは404を返し、あるページは内容を充実させる |
| 重複しています。Google により、ユーザーがマークしたページとは異なるページが正規ページとして選択されました | ― | URL検査で Google が選んだURLを確かめ、内容と canonical を見直す |
| クロール済み - インデックス未登録 | ― | 再リクエストは不要。内容の質を見直す |
| 検出 - インデックス未登録 | ― | サイトへの負荷を避けて後回しにされている場合がある。様子を見る |
URL検査で1ページずつ確かめる
気になるページは、Search Console の上の検索欄にURLを入れる「URL検査」で確かめます。登録されているか、されていなければ理由、Googleが選んだ正規のURLが分かります。
直した後は「公開URLをテスト」で、今のページの状態を確かめてから「インデックス登録をリクエスト」します。Search Console のヘルプでは、リクエストには1日の上限があり、多くのページを登録したい場合はサイトマップの送信がすすめられています。反映には通常1日ほど、長いと1〜2週間かかります。
段階3:ページの診断(ブラウザで一度に確かめる)
ページごとの title・description・canonical・robots・h1・画像の alt・構造化データは、ブラウザの開発者ツールでスクリプトを1つ実行すると一度に確かめられます。ページのソースを目で追うより速く、見落としも減るためです。
使い方
- 調べたいページをブラウザ(Chrome・Edge)で開きます。
- F12 キーを押して開発者ツールを開き、「Console(コンソール)」のタブを選びます。
- 下のスクリプトを貼り付けて Enter キーを押します。初めて貼り付けるときは、ブラウザが注意を表示し、貼り付けを許可する言葉の入力を求めることがあります。表示に従ってください。
(() => {
const q = (s) => document.querySelector(s);
const r = {
title: document.title,
titleLen: document.title.length,
description: q('meta[name="description"]')?.content || '(なし)',
canonical: q('link[rel="canonical"]')?.href || '(なし)',
robots: q('meta[name="robots"]')?.content || '(指定なし)',
h1: [...document.querySelectorAll('h1')].map(h => h.innerText.trim()),
imgNoAlt: [...document.images].filter(i => !i.hasAttribute('alt')).length,
jsonld: [...document.querySelectorAll('script[type="application/ld+json"]')]
.flatMap(s => { try { const j = JSON.parse(s.textContent); return (j['@graph'] || [j]).map(x => x['@type']); } catch (e) { return ['(読めない)']; } })
};
console.table(r);
return r;
})();
このスクリプトは、開いているページの中身を読むだけで、どこにもデータを送りません。のれんの記事ページで実行すると、canonical は自分のURL、h1 は1つ、alt の無い画像は0、構造化データには BlogPosting・BreadcrumbList・FAQPage などが並びました。
結果の読み方
| 項目 | こうなっていればよい | 違ったときに疑うこと |
|---|---|---|
| title | ページごとに違い、内容が分かる | テンプレートで全ページ同じ題名になっている |
| description | ページごとに違う説明がある | 全ページ同じ・空のまま |
| canonical | 自分のURL(https・www の有無も一致) | 別のページやトップを指している |
| robots | noindex が入っていない | 制作中の noindex が残っている |
| h1 | 内容が分かる見出しがある | 空・ロゴ画像だけ |
| imgNoAlt | 意味のある画像は0 | 図や写真の説明が無い |
| jsonld | 記事なら BlogPosting などの Article 系 | 何も無い・「(読めない)」と出る |
canonical が別のページを指していると、そのページは検索結果に出にくくなります。この項目は特に優先して確かめます。
段階4:キーワードの診断(狙いの重なり)
最後に、Search Console の検索パフォーマンスで、同じ検索語句に複数のページが表示されていないかを確かめます。似た内容のページが2つあると、表示されるページが入れ替わり、どちらも順位が安定しないことがあるためです(カニバリゼーションと呼ばれます)。
確かめ方は、「検索結果」のレポートで「クエリ」のタブから気になる検索語句をクリックし、「ページ」のタブを開きます。そこに同じような内容のページが2つ以上並んでいれば、重なっている可能性があります。
重なりが見つかったら、内容が近いなら1つのページにまとめて、もう一方を301で転送します。内容が違うなら、それぞれの題名と見出しで狙う語句をはっきり分けます。記事を増やす前に、記事ごとに狙う語句を1つ決めて表で管理しておくと、重なりそのものを防げます。
表示速度の診断(PageSpeed Insights)
表示速度は、PageSpeed Insights と Search Console の「ウェブに関する主な指標」で、LCP・INP・CLS が基準を満たしているかを確かめます。Googleの説明では、良好の基準は LCP が2.5秒以内、INP が200ミリ秒未満、CLS が0.1未満です。
PageSpeed Insights には、実際の利用者のデータ(過去28日間の Chrome の利用者のデータ)と、その場で測った結果の2種類が出ます。公開したばかりのページやアクセスの少ないページでは、ページ単位の利用者のデータが足りず、サイト全体のデータが代わりに表示されるか、利用者のデータが表示されません。その場合は、その場で測った結果を目安にします。
ただし、Googleは、良いスコアでも上位表示は保証されないと説明しています。点数を100に近づけることより、「不良」と出ているページを先に直すことを優先します。
診断結果から直す順番を決める
直す順番は「登録されない問題 → URLの重複 → ページの中身 → 表示速度」が基本で、登録されていないページは他を直しても検索結果に出ないためです。診断で見つかった問題を、この4つのどれにあたるかで分けてから着手します。
| 順番 | 問題の種類 | 主な例 | 理由 |
|---|---|---|---|
| 1 | 登録されない | 出したいページの noindex・robots.txt のブロック・5xx | 登録されないページは検索結果に出ない |
| 2 | URLの重複 | Google が別のURLを正規に選んだ・似たページが2つ | 評価が分かれ、意図しないURLが出る |
| 3 | ページの中身 | title・description が全ページ同じ・alt が無い | 内容が伝わらず、クリックされにくい |
| 4 | 表示速度 | Core Web Vitals が「不良」 | 改善に時間がかかるため、1〜3の後に回す |
直した日と内容は、表などに記録しておきます。次に診断したとき、変化が直したことによるものかを確かめられるためです。
無料診断ツールの点数をどう扱うか
無料の診断ツールの点数は、形式の抜け漏れを見つけるのには使えますが、点数そのものはGoogleの評価ではないため、目標にしないほうが安全です。点数が高くても、狙う語句で検索する人が少なかったり、似た記事どうしで語句が重なっていたりすると、流入は増えません。
ツールは、段階3(ページの診断)を多くのページでまとめて行う道具として使うのが向いています。登録状況と検索語句は、Search Console でしか正確に分からないため、段階2と段階4は Search Console で確かめます。
よくある質問
SEO診断はどのくらいの頻度でやればいいですか?
新しいページを出したときと、サイトの作りを変えたときに技術と登録状況を確かめ、それ以外は月に1回 Search Console を見るのが現実的です。これは運用の目安で、Googleが頻度を決めているわけではありません。テンプレートやサーバーを変えた直後は、全ページに影響する問題が起きやすいため、必ず段階1から確かめます。
無料の診断ツールだけで足りますか?
足りません。ツールが調べられるのは主にページの形式で、Googleに登録されているか、どのURLが正規として選ばれたかは、Search Console でしか分かりません。ツールは段階3の作業を速くする道具として使います。
「クロール済み - インデックス未登録」はどう直せばいいですか?
Search Console のヘルプでは、再リクエストは不要で、コンテンツの質を見直すよう案内されています。似た内容のページがほかに無いか、検索した人の疑問に答えきれているかを確かめ、内容を足すか、近いページとまとめることを検討します。
診断は自分でやるべきですか、会社に頼むべきですか?
4段階の診断は、この記事の手順で自分でできます。直す作業がサーバーの設定やテンプレートに及ぶ場合は、制作会社や専門家に相談すると安全です。
まとめ
SEO診断は、次の順番で進めると、直す箇所と順番がはっきりします。
- 段階1:robots.txt・サイトマップ・URLの転送・404を、ブラウザと curl で確かめる
- 段階2:Search Console の「ページのインデックス登録」で、未登録の理由を「意図どおり」と「直すもの」に分ける
- 段階3:開発者ツールのスクリプトで、ページごとの title・canonical・robots・h1・alt・構造化データを確かめる
- 段階4:検索パフォーマンスで、同じ語句に複数のページが出ていないかを確かめる
- 直す順番は「登録されない問題 → URLの重複 → ページの中身 → 表示速度」
診断で見つかった問題の直し方はSEOの内部対策のやり方に、AIによる検索に向けた確認はAIO・LLMO対策のやり方にまとめています。記事の中身の誤りを確かめる手順はAIで書いた記事のファクトチェック方法で紹介しています。