Blog お役立ちブログ
JobPosting構造化データで求人情報を検索に表示させる方法
オンライン採用の競争は年々激しさを増し、広告費を掛けても応募が伸び悩む企業は少なくありません。検索エンジンが求職者の最初の接点になる現在、Google の「求人検索機能」へ自社求人を正しく届けることは、広告に頼らず応募数を底上げする最もコスト効率の高い手段です。本稿では経営者や人事担当者が自社で実装できるよう、専門知識を平易な言葉に置き換えながら手順と注意点を解説します。
JobPosting構造化データとは
検索エンジンはページをクロールした後、内容をアルゴリズムで理解し「求人ページかどうか」を判定します。しかし通常の HTML だけでは職種名や勤務地といった要素を機械が誤読するリスクがあります。そこで用いられるのが構造化データです。中でも JobPosting は「これは求人情報ですよ」ということを示す標準フォーマットで、
- 募集職種(title)
- 雇用形態(employmentType)
- 給与(baseSalary)
- 勤務地(jobLocation)
などを JSON-LD 形式で明示します。これにより Google はページを「求人専用のインデックス」に格納し、求職者が検索する際にリッチリザルトとして表示できるようになります。
JobPosting誕生の背景
2017 年、Google が米国で「Google for Jobs」を開始したのを機に、求人ページは単なる通常検索結果から専用求人枠へシフトしました。以降、日本を含む世界 120 か国以上に展開され、多くの企業が構造化データの最適化に乗り出しています。
Google検索に求人を表示させる仕組み
Google が求人リッチリザルトを生成する流れは大きく 3 段階です。
1. クロールとインデックス
クローラがページを取得し、構造化データを解析。JobPosting が正しくマークアップされていれば「求人インデックス」に登録されます。誤ったプロパティ名や日付フォーマットがある場合、エラーとして Search Console に通知され、リッチ表示の対象外となります。
2. マッチング
ユーザー(求職者)が「大阪 製造 正社員 高卒」など複合キーワードで検索すると、Google は求人インデックスから条件が一致する JobPosting を抽出します。このとき title、employmentType、jobLocation が特に重視されます。
3. リッチリザルト生成
抽出された求人は、ロゴや給与レンジを含むカード型 UI に変換され、検索結果画面上部の 求人ボックス に並びます。ここでクリックされる確率(CTR)は通常の青色リンクの約 3 倍との調査もあり、応募数への影響は絶大です。
| 構造化データタイプ | 主な用途 | 代表的プロパティ | リッチリザルト例 |
|---|---|---|---|
| Article | 記事・ブログ | headline, image, datePublished | Top Stories |
| Product | 商品紹介 | name, offers, aggregateRating | 商品スニペット |
| JobPosting | 求人情報 | title, baseSalary, employmentType, jobLocation | 求人検索ボックス |
上表のとおり、JobPosting は採用特化型。正しく実装すれば求人ボックスに掲載され、露出を確保できます。
リッチリザルトの要件
求人ボックスに表示されるためには、必須プロパティを漏れなく記述し、かつ募集が終了したら期限切れ(validThrough)を更新する必要があります。Google は期限切れ求人を嫌い、放置するとインデックス全体がペナルティを受ける可能性があるため注意が必要です。
導入メリットと成果指標
構造化データの実装は技術作業に見えますが、その効果は売上や採用コストの数値となって現れます。
クリック率(CTR)の向上
求人ボックス内のカードにロゴ・給与・勤務地が表示されることで視認性が高まり、
製造業で +210%、介護施設で +185%、IT ベンチャーで +240% のクリック率向上を示した事例があります。
リンクに到達する前に主要情報が一覧できるため、興味の薄いユーザーは離脱し、応募意欲の高いユーザーだけがクリックする「質の高いトラフィック」を獲得できます。
応募完了率の改善
Google から直接求人詳細へ遷移するため、媒体横断の遷移や広告 LP を挟む導線よりもステップ数が減少します。ある介護施設では、
- Before:求職者が広告→求人媒体→自社応募フォームと 3 クリック
- After:Google 求人ボックス→自社応募フォームの 1 クリック
に短縮され、応募完了率が 12.4%→28.9% と倍増しました。
広告費削減
キーワード広告で月 30 万円以上を投下していた製造業 A 社は JobPosting へ完全移行後、広告費を 0 円 にしつつ前年同月比 1.6 倍の応募を確保。オーガニック流入なので長期的な費用対効果(ROI)が高い点も魅力です。
| 成果指標 | 導入前平均 | 導入後平均 | 改善率 |
|---|---|---|---|
| ページ CTR | 1.2% | 3.7% | +208% |
| 応募完了率 | 9.5% | 22.3% | +135% |
| 広告費(月) | 300,000 円 | 0 円 | -100% |
上記のように、構造化データは単なる技術トレンドではなく「採用 KPI を直接押し上げる武器」だと位置付けられます。これらの成果指標を追うことで、経営層へも成果を説明しやすくなります。
実装に必要なリソースと担当範囲
「何から始めれば良いのか分からない」という声に応えて、必要な役割を整理します。
| 役割 | 主なタスク | 推奨担当者 |
|---|---|---|
| データ収集 | 募集要項、勤務地、給与テーブルの最新化 | 人事担当 |
| コード実装 | JSON‑LD の生成、CMS テンプレート編集 | 情報システム/外部制作会社 |
| QA・検証 | Search Console でのリッチリザルトテスト、期限切れチェック | 運用担当 |
中小企業では一人が兼務するケースも多いですが、「期限切れ管理」だけは必ず責任者を明確化してください。放置が最も大きな機会損失につながります。
実装前の準備チェックリスト
- 募集要項の最新化
募集職種名・勤務地・雇用形態・給与レンジなどを最新情報に統一。古い原稿が複数残っていると誤ったデータが構造化される。 - ページ URL の固定
index.html?123 のような動的 ID を排除し、求人ごとに恒久的な URL を用意。Google は URL 変更を嫌う。 - 期限設定ポリシー策定
validThrough は「採用予定人数充足時」など曖昧指定ではなく、日付+時間+タイムゾーンで明記。運用担当が更新日を管理できるフローを決める。 - 検索コンソール権限の整理
検証エラーを即時確認できるよう、人事・情シス双方にフル権限を付与。通知メールも共有グループ化しておく。 - バックアップ環境の構築
誤実装で求人ページが崩れた場合に即時ロールバックできるステージング環境を持つ。
構造化データの記述ステップ
ステップ1:必須プロパティを洗い出す
Google が「必須」と定める 8 項目(title, description, identifier, datePosted, validThrough, employmentType, hiringOrganization, jobLocation)を全ページに網羅する。欠落が 1 つでもあると求人ボックス表示の対象外になる。
ステップ2:JSON‑LD を生成する
CMS を使用している場合はテンプレートに下記のような変数展開を組み込む。
jsonコピーする<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "JobPosting",
"title": "{{職種名}}",
"description": "{{仕事内容}}",
"identifier": {
"@type": "PropertyValue",
"name": "採用管理ID",
"value": "{{求人ID}}"
},
"datePosted": "{{公開日}}",
"validThrough": "{{終了日}}T23:59+09:00",
"employmentType": "{{雇用形態}}",
"hiringOrganization": {
"@type": "Organization",
"name": "{{会社名}}",
"sameAs": "{{コーポレートURL}}",
"logo": "{{ロゴURL}}"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressLocality": "{{勤務地市区町村}}",
"addressRegion": "{{勤務地都道府県}}",
"streetAddress": "{{勤務地番地}}",
"postalCode": "{{郵便番号}}",
"addressCountry": "JP"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "JPY",
"value": {
"@type": "QuantitativeValue",
"minValue": {{最小年収}},
"maxValue": {{最大年収}},
"unitText": "YEAR"
}
}
}
</script>
ステップ3:画像最適化
求人カードに企業ロゴが表示されるため、120×120 px 以上、正方形、背景透過 PNG を用意。ファイルサイズは 50 KB 以下に抑え、読み込み遅延を防ぐ。
ステップ4:多言語対応(必要時)
東京本社で外国人採用を行う IT ベンチャーなら、英語版 JSON‑LD を <link rel="alternate" hreflang="en"> と併用して配置。Google は hreflang と構造化データを突合し、適切な言語で求人を表示する。
ステップ5:自動公開・停止フロー
CMS の公開設定に合わせ、datePosted と validThrough を cron で自動更新。これにより期限切れ放置のリスクをゼロに近づける。
検証・テストとエラー解消法
検証ツールの使い分け
- リッチリザルト テスト:JobPosting が検出されるか即時確認。
- url検査ツール(Search Console):インデックス済みかどうか、クロール日時も把握。
- 構造化データテスト(旧ツール):構文的エラーを詳細ログで追える。
代表的なエラーと対処
| エラーメッセージ | 原因 | 解決策 |
|---|---|---|
| Missing required field “title” | 変数名誤り・空欄 | CMS 変数を再マッピング |
| Invalid ISO date | validThrough の形式ミス | YYYY-MM-DD + タイムゾーンで再入力 |
| Image too small | ロゴ解像度不足 | 120 px 以上の画像を再アップロード |
インデックス反映の速さを測定
更新後 24 時間以内にクロールされるかを観測し、遅い場合は Search Console から「インデックス登録をリクエスト」。それでも反映されない場合は内部リンク不足か noindex 設定を疑う。
業種別ベストプラクティス
製造業:現場写真と勤務シフトを明記
製造ラインのシフト制は求職者が気にするポイント。description に「日勤専属」「夜勤専属」「2 交替制」などを具体的に書くとマッチ率が上がる。さらに jobLocation に工場名を入れると、Google がマップ情報を補完し可視性が高まる。
介護施設:資格要件を構造化
介護職員初任者研修や介護福祉士など資格名を qualifications プロパティで列挙。求職者は資格フィルタで検索するため、記述があるだけで露出が段違いに増える。
IT ベンチャー:リモート勤務表記を必須化
jobLocationType: "TELECOMMUTE" を追加し、雇用形態に「フルリモート可」を盛り込むことで全国から応募を獲得。description で開発環境(例:PHP/Laravel、AWS)を列挙するとスキルキーワード検索にもヒットしやすい。
運用・更新のポイント
1. 期限切れ監視を自動化する
- validThrough の 7 日前にアラートメールを送るスクリプトを設定。
- 採用管理システムと API 連携し、採用充足時に公開停止を自動トリガー。
2. KPI ダッシュボードで成果を可視化
Google Looker Studio で Search Console と応募フォームのコンバージョンデータを統合し、「クリック→応募完了」までのファネルを週次で確認。
3. モバイル最適化は必須
求人ボックス利用者の約 78% がスマートフォン経由。CLS(レイアウトシフト)が大きいと離脱率が跳ね上がるため、画像サイズ指定と遅延読み込みを徹底する。
| 運用タスク | 推奨頻度 | 主要チェックポイント |
|---|---|---|
| 期限切れ求人の非公開 | 毎日 | validThrough 超過の有無 |
| 構造化データエラー確認 | 週次 | 必須プロパティ欠落・警告メッセージ |
| KPI ダッシュボード更新 | 週次 | CTR・応募完了率・滞在時間 |
| モバイル表示テスト | 月次 | CLS・LCP・FCP |
よくある失敗事例と改善策
事例1:一括貼り付けで JSON 構文エラー
コピペ時に全角ダブルクォーテーションが混入し、リッチリザルト対象外に。改善策:IDE で JSON リントを採用し、コミット前に自動検証。
事例2:期限更新を忘れて求人が「終了扱い」
Search Console に「期限切れ」と表示されるが人事が気づかず 2 週間放置。改善策:公開中求人一覧を Google Apps Script で定時配信し、赤字でハイライト。
事例3:URL 変更でインデックスリセット
CMS リニューアルでスラッグが変わり、過去の評価を失った。改善策:リダイレクトではなく旧 URL を温存し、新規求人のみ新テンプレートを使用。
| 失敗パターン | 発生部門 | 影響範囲 | 即効リカバリー手順 |
|---|---|---|---|
| JSON 構文エラー | 情報システム | 全求人が非表示 | リント→再デプロイ→インデックス再送信 |
| 期限切れ放置 | 人事 | 当該求人のみ | validThrough 更新→Fetch as Google |
| URL 構造変更 | Web 制作 | 旧求人全体 | 旧 URL 復活→canonical 再設定 |
まとめ
JobPosting 構造化データは、求人情報を検索結果の最前面に押し上げるための「採用 SEO」基盤です。
- 必須プロパティを網羅した JSON‑LD を設置し、Google の求人インデックスへ確実に登録する。
- 給与・勤務地など求職者が重視する情報を明確にし、クリック率と応募完了率を同時に改善する。
- 期限管理とエラー検証を運用フローに組み込み、求人ボックス表示を継続的に維持する。
実装と運用を正しく行えば、広告費に依存せずとも応募を安定的に獲得できます。貴社の採用チャネルを強化する第一歩として、今日から JobPosting の最適化に取り組んでみてください。