🚀 はじめに:この記事でできること

Hugo + PaperMod + GitHub Pagesで運用するブログに、Google Search Console(以下、Search Console) を導入するための完全ガイドです。
操作 → 目的 → 結果 → 注意/補足 の順で、初心者が迷いやすいポイント(URL構成・ユーザー/プロジェクトサイトの違い)も含めて整理します。
この手順を完了すると、所有権の確認が成功し、サイトマップ送信が完了、URL検査でクロール促進できる状態になります。

補足
この記事は HTMLファイルアップロード方式 で所有権確認を行い、サイトマップ登録URL検査運用の要点までを扱います。


🧭 前提:サイト種別とURL構成

本文着手前に、GitHub Pagesのサイト種別公開URLを正しく把握します。これがSearch Consoleのプロパティ設定とbaseURL整合の土台になります。

操作

  • 自サイトが ユーザーサイトプロジェクトサイト かを確認する
    • ユーザーサイト:https://username.github.io/
    • プロジェクトサイト:https://username.github.io/repository-name/

目的

  • Search Console登録方式(URL プレフィックス)と、HugoのbaseURL/内部リンク/画像パス/OGPを公開URLに合わせて一貫させる。

前提

  • GitHub Pagesの公開設定が済んでいる(ユーザーサイト or プロジェクトサイト)

結果(この時点でできること)

  • 以降の設定で、URL不一致による所有権確認失敗やサイトマップ404を回避できる。

注意
プロジェクトサイトは公開パスが/repository-name/ を含みます。Search ConsoleのURLプレフィックス、検証ファイルURL、サイトマップURLの末尾スラッシュサブパスが一致しているか、常に確認しましょう。

補足:サイト種別の早見表

  • ユーザーサイト:https://username.github.io/サブパスなし
  • プロジェクトサイト:https://username.github.io/repository-name/サブパスあり

🧩 前提条件の確認(Hugo設定)

Search Console導入前に、Hugoの基本SEO設定(robots.txt と sitemap)を整えます。

操作

  • hugo.yaml(またはconfig.toml)に以下の設定を追加/確認

目的

  • robots.txtsitemap.xml を自動生成し、クロールとインデックスの土台を作る。

前提

  • baseURL が公開URLと一致している(サイト種別に応じてサブパスの有無に注意)
# 検索・SEO系(hugo.yaml例)
baseURL: "https://username.github.io/repository-name/"  # サイト種別に合わせて必ず一致
enableRobotsTXT: true      # robots.txtを出力
canonifyURLs: true         # 正規URLに整形
sitemap:
  changefreq: daily
  priority: 0.5
  filename: sitemap.xml    # sitemap.xml が生成される

結果(この時点でできること)

  • 公開時に https://username.github.io/repository-name/robots.txt.../sitemap.xml が取得可能になる。
  • 相対/絶対リンクの不整合が減り、Search ConsoleでのURL検査やサイトマップ登録がスムーズ。

補足
既にrobots.txtSitemap: 行が出力されていれば、追加のlayouts/robots.txtは不要です。


🏁 Step 1:Search Consoleにサイトを登録

Search Consoleでサイトのプロパティを作成します。

操作

  1. Search Consoleへアクセス:https://search.google.com/search-console/
    Search Console のウェルカムページ
  2. プロパティを追加」→ URLプレフィックス を選択
  3. 公開URLを入力(例:https://username.github.io/repository-name/
  4. 続行」で所有権確認へ進む

目的

  • サイトのデータ収集と、インデックス状況の可視化を可能にする。

前提

  • 公開URL(ユーザー/プロジェクトサイト)が確定している

結果(この時点でできること)

  • サイトプロパティが作成され、検証用HTMLファイルの取得へ進める。

補足
「ドメイン」方式はDNS設定が必要です。GitHub Pagesのプロジェクトサイトなら、URLプレフィックス方式が手軽で確実です。


📂 Step 2:所有権の確認(HTMLファイルアップロード方式)

HTMLファイル方式が、Hugo × GitHub Pagesでは安全でわかりやすいです。

2-1. Search Consoleで確認用HTMLファイルを取得

操作

  • HTMLファイルをアップロード」を選び、googleXXXXXXXXXXXX.html をダウンロード

目的

  • 指定ファイルを公開URL配下に置くことで、サイト所有者であることを証明する。

前提

  • Search Consoleのプロパティ(URLプレフィックス)が作成済み

結果(この時点でできること)

  • 次の手順でファイルをサイトルート(公開パス)に配置すれば、検証が成功する見込み。

注意
ファイル内容は編集しないでください。

2-2. Hugoに設置(static/へ配置)

操作

  • googleXXXXXXXXXXXX.html をプロジェクトの static/ 直下に保存

目的

  • Hugoのビルドで static/ 配下が公開ルートに複製される仕組みを利用する。

前提

  • static/ ディレクトリを運用している(テーマやビルド設定が標準的である)
# プロジェクト直下の構成例
.
├─ config/ または hugo.yaml     # サイト設定
├─ content/                     # 記事
├─ layouts/                     # テンプレート(必要に応じて)
├─ static/                      # 公開ルートへ複製される
│  └─ googleXXXXXXXXXXXX.html   # ← 所有権確認用HTML
└─ themes/                      # PaperMod等

結果(この時点でできること)

  • 公開後に https://username.github.io/repository-name/googleXXXXXXXXXXXX.html へアクセス可能になる。

注意
公開パスが/repository-name/ を含むことに留意。Search ConsoleのURLプレフィックス検証ファイルURL一致しているか確認してください。

2-3. ビルド & デプロイ(gh-pagesへ)

操作

  • 既存のワークフローでビルド→gh-pagesブランチへデプロイ

目的

  • static/ の検証用ファイルをビルド成果物(public/)に反映し、公開する。

前提

  • GitHub Pages の設定(Build and deployment → Source: Deploy from a branch / Branch: gh-pages / (root))が済んでいる
# 1) ビルド(公開用ファイルを生成)
hugo
# 2) 生成物の確認(任意)
# public/ 以下に googleXXXXXXXXXXXX.html があるか確認
# 3) gh-pagesブランチへコミット・プッシュ(例)
git add -A
git commit -m "Add Search Console verification file"
git push origin gh-pages

結果(この時点でできること)

  • GitHub Pages設定が正しければ、数十秒〜数分で公開。

補足
gh-pages以外の運用でも、公開URLが一貫していれば問題ありません。

2-4. Search Consoleで「確認」

操作

  • Search Console画面で「確認」をクリック

目的

  • 検証ファイルが公開URL配下にあることをGoogleに通知し、所有権を確定する。

前提

  • 公開URLで検証ファイルが200で取得可能

結果(この時点でできること)

  • 所有権が確認され、サイトの管理URL検査サイトマップ送信が可能になる。

トラブルシューティング

  1. baseURL が公開URLと一致しているか
  2. static/に置いたか
  3. public/にコピーされているか
  4. gh-pagesへ反映されているか
  5. URL末尾に/repository-name/が入っている
    を順に確認しましょう。

🗺️ Step 3:サイトマップ登録

Hugoは sitemap.xml を自動生成します。Search Consoleへ送信して可視化とエラー検知を強化します。

操作

  • Search Console左メニュー「サイトマップ」で、https://username.github.io/repository-name/sitemap.xml を入力→「送信

目的

  • クロール対象と優先度のヒントを提供し、インデックスの安定化を促す。

前提

  • enableRobotsTXT: truesitemap の設定が有効

結果(この時点でできること)

  • ステータスが「成功」となり、サイト全体のURL把握と問題検知が容易になる。

補足
robots.txtSitemap: 行が既に含まれているため、クローラはサイトマップを自然に参照します。明示登録は可視化・通知・エラー追跡の面で有用です。
参考:サイトマップの基本(Google公式) → https://support.google.com/webmasters/answer/156184


🚀 Step 4:インデックス登録の促進(URL検査)

新規記事やトップページが検索結果に出ない場合、URL検査でクロールを促します。

操作

  1. 左メニュー「URL検査
  2. 例:https://username.github.io/repository-name/posts/記事のスラッグ/ を入力
  3. インデックス登録をリクエスト」をクリック

目的

  • 重要ページのクロールをリクエストし、インデックスの遅延を短縮する。

前提

  • 公開URLでページが200で取得可能、内部リンクが適切

結果(この時点でできること)

  • ページがキューに入り、数分〜数日でインデックス更新が反映される見込み。

注意
インデックスは即時ではありません。モバイル対応・読み込み速度・内部リンクなど、ページ品質も重要です。
参考:URL検査ツールの使い方(Google公式) → https://support.google.com/webmasters/answer/9012289


🧪 Step 5:導入後の運用ポイント

Search Consoleで継続的に品質を監視し、改善を行います。

操作

  • 「カバレッジ」「ページエクスペリエンス」「モバイルユーザビリティ」「リンク」「Search Console ↔ GA4連携」を定期レビュー

目的

  • エラー/除外の早期発見、Core Web Vitals改善、内部リンク強化、流入分析の精度向上。

前提

  • GA4プロパティとWebストリームが設定済み

結果(この時点でできること)

  • インデックスの安定化と、検索パフォーマンスの継続改善サイクルの構築。

補足1
GA4とSearch Consoleの連携は、GA4管理画面「プロダクトリンク」から設定可能。反映には数日かかることがあります。
補足2
PaperModは軽量・高速で、Core Web Vitals改善に有利。画像最適化(resourcesキャッシュ、imageショートコード)やminify設定も効果的です。


✅ よくあるつまずき(チェックリスト)

  • 失敗時は baseURL → 検証ファイル配置 → デプロイ設定 → 実URL確認 の順で点検した
  • baseURL が公開URLと完全一致している(末尾スラッシュ、/repository-name/の有無を含む)
  • サイト種別を把握している(ユーザーサイト username.github.io / プロジェクトサイト username.github.io/repository-name/
  • Search Consoleのプロパティ種別に URL プレフィックスを選んだ(プロジェクトサイトでDNS不要の方式)
  • 検証用HTMLをstatic/直下に置き、内容は未編集である
  • ビルド後、public/検証ファイルが出力されている
  • GitHub Pagesの デプロイ設定(gh-pages / root) が正しい
  • 公開後に https://username.github.io/repository-name/googleXXXXXXXXXXXX.html200で取得可能
  • robots.txt公開済み で、Sitemap: 行が含まれている
  • sitemap.xml200で取得可能 で、Search Consoleのサイトマップ登録が 成功
  • canonifyURLs: true により canonical/内部リンクの不整合 がない
  • H1はFront Matterのtitle に委ね、本文は H2から開始(PaperMod前提)
  • H2見出しの先頭に絵文字を1つ付与し、要約文(操作/目的/前提/結果)を直下に置いた
  • toc: true / tocopen: true をFront Matterに設定している
  • slugは短い英語+ハイフン区切りで、重複・大文字・空白がない
  • SEOタイトルに主キーワード+対象読者+意図(方法/ガイド/入門)を含めた
  • **description(120–160字)**で検索意図(導入/操作/環境構築/トラブル回避)を網羅した
  • 記事中のコードブロックは、前に「目的/前提」、**後に「結果/次にできること/注意」**のテンプレ説明を置いた
  • 内部リンク・画像・OGPで、プロジェクトサイトの サブパス/repository-name/ を考慮した
  • 公開後に ローカル/本番 の両方でリンク/画像/目次の崩れがないか確認した

📚 参考リンク

注記
公式ドキュメントのインターフェイスは随時更新されます。画面ラベルが変わっている場合は、上記リンクの最新情報を参照してください。


🔧 拡張案(次にやると良いこと)

  1. layouts/partials/head.htmlの最適化
    • metaタグ(description / og: / twitter:)の充実
  2. 構造化データ(JSON-LD)
    • Article / BreadcrumbList をテンプレートに追加して検索結果をリッチ化
  3. 画像最適化パイプライン
    • resourcesimage processing(WebP生成、srcset)でLCP改善
  4. 内部リンク設計の強化
    • 関連記事 / 人気記事 / タグページ への導線をPaperModのパラメータで整備
  5. CI/CDの自動化
    • GitHub Actionsで main → 自動ビルド → gh-pages デプロイを標準化
  6. Search Consoleの拡張活用
    • 「ページのインデックス登録」エラー(重複・noindex・リダイレクト)を継続監視・是正

🎯 まとめ

  • HTMLファイルアップロード方式は、Hugo × GitHub PagesでのSearch Console導入に最適。
  • static/へ検証ファイルを置き、通常どおりビルド・デプロイすればOK。
  • sitemap.xml登録robots.txtでの案内 の両輪がベストプラクティス。
  • 導入後は URL検査品質改善 を回し、インデックスを安定化しましょう。