Googleしごと検索の構造化データ実装方法
- LOGZA WEB
- ホームページ制作の技術的な取り組み
- Googleしごと検索の構造化データ実装方法
Googleしごと検索(Google for Jobs)に求人情報を表示させるためには、求人ページに構造化データ(JobPosting)を正しく記述する必要があります。
ここでは、LOGZA WEB(ログザウェブ)が実際の制作現場で行っている実装方法をもとに、基本的なファイル構成から構造化データの記述方法、各項目の設定内容、運用時の注意点までをまとめています。
ファイル構成
Googleしごと検索は、求人ページに構造化データ(JobPosting)を記述することで対応できます。
必要なファイルは求人ページのみで、基本構成は下記の通りです。
index.php ← トップページ
├─ recruit/
└─ index.php ← 求人ページ(構造化データ記述)
構造化データ(JobPosting)の記述
構造化データ(JobPosting)はheadタグ内に記述します。
基本的にはheadタグ内であればどこでも問題ありませんが、metaタグやCSSの読み込み後に記述する形が一般的です。
<head>
<title>求人情報|会社名</title>
・・・既存のmetaやCSSなど・・・
<!-- 下記から構造化データ -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Googleしごと検索に表示されるタイトル",
"description": "ここにメインとなる求人情報の説明文を記述",
"datePosted": "2025-04-01",
"validThrough": "2025-05-31",
"employmentType": "FULL_TIME",
"image": "https://example.com/images/logo.png",
"url": "https://example.com/recruit/",
"hiringOrganization": {
"@type": "Organization",
"name": "株式会社サンプル",
"sameAs": "https://example.com"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "住所(例:○○1-2-3)",
"addressLocality": "○○市",
"addressRegion": "○○県",
"postalCode": "郵便番号",
"addressCountry": "JP"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "JPY",
"value": {
"@type": "QuantitativeValue",
"minValue": 200000,
"maxValue": 400000,
"unitText": "MONTH"
}
}
}
</script>
</head>
各項目の設定内容
構造化データ(JobPosting)で設定する際に可変となる項目において、実際の入力内容や考え方は下記の通りとなっております。
求人タイトル(title)
titleはGoogleしごと検索の一覧に表示される求人タイトルになります。
職種名が分かりやすく伝わる内容に設定します。
- 居酒屋ホールスタッフ
- 建設・土木作業
- 自動車整備士
仕事内容の説明(description)
descriptionはGoogleしごと検索で表示される求人内容の説明になります。
業務内容・条件・特徴など、求職者が仕事内容を判断できる情報を具体的に記載します。
求人の掲載開始日(datePosted)
datePostedは求人情報を掲載した日付を設定します。
形式は「YYYY-MM-DD」で記述し、実際の公開日または更新日を設定します。管理画面などから変更できるようPHPで動的に出力することも可能です。
- 2025-04-01
- <?php echo $date_posted; ?>
求人の掲載終了日(validThrough)
validThroughは求人情報の掲載終了日を設定します。
形式は「YYYY-MM-DD」で記述し、募集終了予定日を設定します。終了日が未定の場合でも、一定期間後の日付を設定しておくことで掲載状態を維持できます。管理画面などから変更できるよう、PHPで動的に出力する運用も可能です。
- 2025-05-31
- <?php echo $valid_through; ?>
雇用形態(employmentType)
employmentTypeは求人の雇用形態を設定します。
Googleが定義している形式で記述する必要があり、日本語ではなく英語のコードを使用します。
- 正社員の場合 → FULL_TIME
- パート・アルバイトの場合 → PART_TIME
- 契約社員の場合 → CONTRACTOR
- 派遣社員の場合 → TEMPORARY
- インターンの場合 → INTERN
- 日雇いの場合 → PER_DIEM
- その他の場合 → OTHER
画像(image)
imageはGoogleしごと検索の一覧に表示されるロゴ画像を設定します。
URLは絶対パス(httpsから始まるURL)で記述し、サイズは112×112px以上(推奨600×600px以上)の正方形画像を使用します。
- https://example.com/images/logo.png
求人ページURL(url)
urlは求人情報の詳細ページURLを設定します。
Googleしごと検索の一覧から遷移するリンク先となるため、実際の求人ページのURLを絶対パス(httpsから始まるURL)で記述します。
- https://example.com/recruit/
会社情報(hiringOrganization)
hiringOrganizationは求人を掲載している会社情報を設定します。
会社名や公式サイトURLを設定し、Googleに求人の提供元企業を認識させる重要な項目です。
- "@type": "Organization"(固定)
- 会社名 → name
- 公式サイトURL → sameAs
勤務地(jobLocation)
jobLocationは勤務先の所在地情報を設定します。
住所情報を設定することで、Googleしごと検索で地域に関連した求人として認識されます。
- "@type": "Place"(固定)
- "@type": "PostalAddress"(固定)
- 番地・建物名 → streetAddress
- 市区町村 → addressLocality
- 都道府県 → addressRegion
- 郵便番号 → postalCode
- 国コード → addressCountry(JP固定)
給与情報(baseSalary)
baseSalaryは給与情報を設定します。
給与の金額範囲と支払い単位(月給・時給など)を指定します。最低金額のみ、または固定金額のみでも設定可能です。
- "@type": "MonetaryAmount"(固定)
- 通貨 → currency(JPY固定)
- "@type": "QuantitativeValue"(固定)
- 最低給与 → minValue
- 最高給与 → maxValue(任意)
- 給与単位 → unitText(MONTH / HOUR / DAY など)
- 年収 → YEAR
- 月給 → MONTH
- 週給 → WEEK
- 日給 → DAY
- 時給 → HOUR
構造化データの注意事項
求人ページと構造化データは1対1で設定
構造化データ(JobPosting)は、1つの求人ページに対して1件の求人情報を記述するのが基本となります。
複数求人をまとめて1つの構造化データにするのではなく、求人ごとにページを分ける構成が推奨されています。
- recruit/driver.html → ドライバー求人の構造化データ
- recruit/staff.html → 事務スタッフ求人の構造化データ
- recruit/index.html に複数求人をまとめて1つの構造化データ
求人内容と構造化データの内容を一致させる
ページ内に表示されている求人内容と構造化データの内容は一致させる必要があります。
構造化データだけ異なる情報を記述すると、Googleに無効と判断される可能性があります。
募集終了後は日付を更新または削除
募集が終了した求人はvalidThroughを更新するか、構造化データを削除する必要があります。
終了した求人を掲載し続けると検索表示に影響する可能性があります。