みなさんこんにちは!エンジニアの高澤です!
今回はGoogleしごと検索(JobPosting)とは?求人情報の構造化データを対応する方法を徹底解説していきたいと思います。
実際に筆者自身クライアントの求人ポータルサイトの開発をした経験を元に、当記事をおまとめいたしました。
Googleしごと検索とは、例えば「WordPress 求人」などで検索した時に、構造化データを追加したご自身の求人ページが、検索結果の上部(目立つ箇所)に求人情報の一覧として最適化された表示形式で表示されるGoogleの仕組みのことを言います。
このように、今回は求人ページの検索結果のSEOに関する内容となっており、ご自身のサイトが多数の求人ページを公開している場合は、Googleしごと検索(JobPosting)の仕組みを活用することでたくさんの流入を望むことができます。
今回のGoogleしごと検索(JobPosting)の記事を読んでいただくことで、無理なく構造化データをページに追加することができ、初心者にもわかりやすくGoogleしごと検索(JobPosting)について知ることができるのできます。
実際のサイト開発の仕事や、ウェブ担当者などの方にとってもわかりやすい内容となっておりますので、よろしければぜひご活用ください。
構造化データとは
構造化データとは、Googleのボットにページに関する情報を提供し、コンテンツとしてどんな情報が提供されているのか分類してもらうためのデータのことを言います。
Googleは、インデックスされているページのコンテンツを正確に把握しようと努めておりますが、この構造化データをページに実装することで、Googleボットはページの意図を理解しやすくなり、ユーザーの興味を引きやすい表示形式(リッチリザルト)で検索結果に表示することができます。
Google検索は、常にページのコンテンツを正確に理解するよう努めています。そのため、構造化データを使用してページの意図を伝えると、Google はそのページをより正確に理解できるようになります。
構造化データの例で言えば、下図のように「ラーメン 新宿」で検索するとおそらく下図のように出てくるかと思います。

画面左側に、ラーメンの画像と店名、評価の星、価格、などといった形で情報が一覧で表示され、画面右側にはそのマップが表示されているかと思います。
これを構造化データによるリッチリザルトと言います。
このような形で検索結果に表示させたい場合は、各ページに構造化データのコードを追加して、ページごとのコンテンツ内容をGoogleに伝えるようにしましょう。
ちなみに構造化データに関しては、以下のURLからGoogle公式ページで詳しく解説しておりますので、よろしければご確認ください。

Googleしごと検索(Google for jobs)とは
Googleしごと検索(JobPosting)とは、検索結果の上部に最適化された形(リッチリザルト)で求人情報を表示できる機能のことを言います。
例えば「WordPress 求人」などで検索した時に、構造化データを追加したご自身の求人ページが、検索結果の上部(目立つ箇所)に求人情報の一覧として最適化された表示形式で表示されるGoogleの仕組みのことを言います。
Googleしごと検索(JobPosting)を利用するには、ページが求人に関するコンテンツであることをGoogleに伝えるための構造化データをページに追加する必要があります。
下図の赤枠部分がGoogleしごと検索(JobPosting)のリッチリザルトになります。

また、Googleしごと検索(JobPosting)はPCとスマホどちらも対応しております。
求職者はスマホで求人を探す場合も考えられるため、うまくいけば一定の流入数を見込めるのではないかと思います。

このように、Googleしごと検索(JobPosting)は、ユーザーが「近くのバイト」や「Webデザイナー 求人」などと検索すると、ユーザーがいる位置情報や求めているものを分析した上で、検索結果の上部に求人情報が一覧で表示されます。
これは、何度も言いますが求人情報ページに「構造化データ」が設定されていると自動的に表示される仕組みになっており、特別な登録や申請は不要です。
つまり、自社サイトの求人情報ページに正しい構造化データのマークアップさえすれば、100%確実にとは言いませんが(Googleボットにインデックスされる必要があるため)、Googleしごと検索(JobPosting)に無料で掲載されることになります。
Googleしごと検索(JobPosting)についてもっと詳しく知りたければ、以下のGoogle公式のページからご確認いただけますので、よろしければご確認ください。

Googleしごと検索(Google for jobs)の利用例
Googleしごと検索(JobPosting)の利用例、必要とする場面について解説したいと思います。
利用例しては、主に以下の場面で利用されることがあります。
- 求人情報を掲載する専用サイト(求人ポータル)を作る場合
- 自社採用サイトを作る場合
それぞれ解説いたします。
求人情報を掲載する専用サイト(求人ポータル)を作る場合
Googleしごと検索(JobPosting)の利用例として、ご自身で(自社で)求人情報を多数掲載する求人ポータルサイトを作る場合(もしくは運用している場合)、Googleしごと検索(JobPosting)は非常に大きな威力を発揮します。
むしろ必須と言っても過言ではないかもしれません。
例えば、ご自身で飲食もしくは不動産など特定の職種の求人に特化したサイトを作ったりして、Indeedや求人ボックス、Greenなどの総合ポータルサイトなどと差別化させたサイトを運用しようとしているとします。
おそらく求人ページのみだとSEO的にインパクトが弱いため、サイトの評価が高まらず自然検索に引っかかる可能性が低い状態となってしまう可能性がるかもしれません(一概には言えませんが)。
そこで、お役立ち情報としてブログ記事もあわせて公開するといったいわゆるインバウンドマーケティングを実施し、求職者の役に立てるコンテンツを提供しつつ、求人ページへの導線を設置してそこから応募してもらう、という流れを施作としていることでしょう。
ただ、この施作のみだとコンテンツSEOのみに依存する形になるため、引き続き良質な記事を量産するコストをかける必要が出てきます。
そこで、Googleしごと検索(JobPosting)の登場です。
Googleしごと検索(JobPosting)であれば、求人ページに構造化データを組み込むことによって、Google検索エンジンが「あ、このページは求人情報を提供しているページなのね!最適化してインデックスしたろ!」となるわけです。
このように、「コンテンツSEO+Googleしごと検索」の掛け合わせにより、ユーザーは自然検索とGoogleしごと検索(JobPosting)のリッチリザルトの両面からの流入を見込めます。
コンテンツSEOを掛け合わせることができるのは、基本的には総合ポータルサイトでは実現できない部分であり、自社で開発する求人ポータルの強みかと思います。
なので、ご自身、もしくは自社で求人情報を掲載する求人ポータルサイトを作る場合には、Googleしごと検索(JobPosting)がしばしば利用されます。
自社採用サイトを作る場合
もう一つの利用例としては、自社採用サイトを作る場合Googleしごと検索(JobPosting)は利用されるかと思います。
自社の採用サイトに載せている求人情報をGoogleしごと検索(JobPosting)のリッチリザルトに掲載することによって当然露出が増えるので、利用しないよりも多くの流入を見込めるかと思います。
またGoogleしごと検索(JobPosting)に対応させる構造化データのコードを実装したページのURLが、リッチリザルトにリンク先として掲載されるので、サイト用サイトを作り込んでおけば、「お、ここの会社すごい雰囲気良さそう!」と言った具合にポジティブな印象を与えることができるかと思います。
なので、そういった意味でも、自社採用サイトはアニメーションを取り入れたり、配色を明るめにしたり、また従業員さんの写真を多く取り入れるなどポジティブな印象を与えるための要素を多く取り入れたサイトとして作っておいて、Googleしごと検索(JobPosting)を利用するというのもまた戦略かなと筆者は個人的に思います。
このような理由から、自社採用サイトを作る場合には、Googleしごと検索(JobPosting)がしばしば利用されます。
Googleしごと検索(Google for jobs)のメリット
Googleしごと検索(JobPosting)のメリットについて解説いたします。
おそらく求人サイトを運営するにあたって、このGoogleしごと検索(JobPosting)にメリットがないことがあるのか?とすら思いますが、事前にメリットを把握しておくことで、導入する際に検討材料となるかと思いますので、確認しておきましょう。
まずメリットとしては以下があります。
- 無料であること(掲載自体にコストはかからない)
- 自然検索で上位にならなくても検索結果の求職者に見てもらえる
- 求職者に求人ページへ直接アクセスさせることができる
それぞれ解説いたします。
無料であること(掲載自体にコストはかからない)
最大のメリットの一つは、無料でGoogle検索に求人を表示できることかと思います。
さらに、Google検索を使う多くのユーザーにアプローチできるため、求人の露出が増え、応募のチャンスが広がるため、コストをかけて広告を打つ必要が無くなる可能性があります。
また、検索結果にご自身の求人ページへのリンクや求人内容が直接表示されるため、SEO効果もあり、自社サイトのアクセスアップにもつながります。中小企業や個人事業主でも、求人サイトに掲載費を払わずに人材募集ができるのは大きな利点です。
Googleしごと検索(JobPosting)に付随して発生するコストを上げるとすれば、求人ポータルサイトを作る際の開発費や求人情報を入力する作業時間などではないでしょうか。
いずれにせよ、Googleしごと検索(JobPosting)であれば、広告費や掲載料がかからないため、予算を抑えて人材募集をしたい企業や個人にとって、非常にコストパフォーマンスの高い仕組みです。
自然検索で上位にならなくても検索結果の求職者に見てもらえる
もう一つのメリットは、コンテンツSEOなどで自然検索で上位を狙わなくても、Googleしごと検索(JobPosting)のリッチリザルトとして検索結果の上部に求人情報を表示できるところです。
そもそも求人ページとして自然検索上位を狙うのは、クライアントの求人ポータルサイトを開発した経験上難易度は高いのかなと肌で感じております(もちろん不可能ではありません)。
そこで、またまたGoogleしごと検索(JobPosting)の登場です…!
Googleしごと検索(JobPosting)であれば、求人ページにコンテンツSEO対策を施さなくても、しっかり求人情報として必要な情報を盛り込めば、Googleボットにインデックスされて求人情報として分類されることによって、リッチリザルトに求人ページの情報を掲載することができます。
求職者に求人ページへ直接アクセスさせることができる
Googleしごと検索(JobPosting)のリッチリザルトには、ご自身のサイトの求人ページの情報を一覧で表示させることが可能です。
そして、応募ボタンをクリックすることによって、直接その求人ページへユーザーをアクセスさせることができます。
これは、わざわざ自社で求人ページを用意しなければいけない手間はありますが、逆にいうと自社で用意した求人ページへアクセスさせることができるということです。
つまり、求人ページをうまいこと求職者に応募してもらえるような構成にして作り込めば、それだけチャンスがあるということです。(そこが大変なところではありますが…)
また、ここまでご自身で求人ページを用意しなければいけないことを前提で話を進めてきましたが、engageやGreenなどの外部サービスを利用することによって、わざわざエンジニアにプログラムを書いてもらって開発しなくても求人ページを作成してGoogleしごと検索(JobPosting)を利用することが可能です。
ご自身のサイトの方針によりますが、ご自身のサイトで求人ページを作るのであれば、圧倒的に自由度が高いので、どちらの手段で求人ページを作成するかはしっかり事前にメリット・デメリットを調査した上で検討しましょう。
Googleしごと検索(Google for jobs)を掲載する方法・手段
次は、Googleしごと検索(JobPosting)を掲載する方法・手段について解説いたします。
Googleしごと検索(JobPosting)を掲載する方法や手段はいろいろありまして、それぞれメリット・デメリットや特徴、コストのかかり具合など様々な違いがありますので、ここでしっかり確認しておきましょう。
方法・手段については主に以下があります。
- 構造化データを埋め込む
- WordPressのプラグインで対応する
- 外部の求人サービスを使う
- 求人ポータルサイトに求人情報を掲載する
それぞれ解説いたします。
構造化データを埋め込む
まず基本として、構造化データを埋め込む方法があります。
この方法は、ご自身のサイトの求人ページに構造化データのコードをHTMLに直接記述することになるので、最も自由度の高い方法になります。
正しく設定すれば、Googleしごと検索(JobPosting)に無料で表示させることができます。
自由度が高く、自社ブランドを活かした採用情報の掲載が可能ですが、HTMLやJSONの知識が必要になります。自社にエンジニアがいる、またはWeb制作に慣れている方向けになるでしょう。
当記事では、この構造化データを埋め込む方法についてこの後解説いたします。
WordPressのプラグインで対応する
WordPressでサイトを運用されている方限定になりますが、Googleしごと検索(JobPosting)を利用する方法として、WordPressのプラグインを利用して対応する方法があります。
例えば、「WP Job Manager」や「Schema & Structured Data for WP & AMP」などの構造化データのコードを手動で追加できるプラグインがあるので、利用してみても良いかと思います。
ウェブ担当者の方やブロガーの方で、Googleしごと検索(JobPosting)を導入したい場合は、まずプラグインでの対応を検討していただき、やりたいことができなかったり、コストをかけても良いなどがあれば、エンジニアへ依頼して構造化データを埋め込む形でサイトに実装してもらうのも手かと思います
外部の求人サービスを使う
もし自社で求人サイトを運用する必要がなかったり、戦略として外部サービスの導入が必要などがあれば、外部の求人サービスを使うというのも手段の一つかと思います。
engage(エンゲージ)やJobMaker(ジョブメーカー)などの外部サービスを使うと、求人情報の構造化データを自動で生成・掲載してくれます。
自社でコードを編集する必要がなく、管理画面から入力するだけで対応可能です。費用がかかる場合もありますが、求人管理の手間を省けるため、効率よく採用活動をしたい企業に向いています。
費用がそもそもかかるのか、かかるなら料金はいくらするのか、などはサービスによって変わってくるため、事前にしっかり確認しておきましょう。
求人ポータルサイトに求人情報を掲載する
また、求人ポータルサイトに求人情報を掲載するという方法もあります。
Googleしごと検索と提携している求人サイト(Indeed、Greenなど)に求人情報を掲載すると、その情報がGoogleしごと検索に連携されて表示されることがあります。
自社サイトがない場合や、手間をかけずに掲載したい場合におすすめです。サイトによっては掲載費用がかかることもあるため、事前に確認しておきましょう。
Googleしごと検索(Google for jobs)の構造化データの基礎知識
Googleしごと検索の構造化データの基礎知識について解説いたします。
これまで触れてきましたが、Googleしごと検索に求人情報を掲載するには、「構造化データ」と呼ばれる特別なコードを求人ページに追加する必要があります。
構造化データは、Googleがそのページの内容を正しく理解するためのマークアップであり「JobPosting」という形式のスキーマ(構造、枠組み)を使います。
構造化データは通常、JSON-LDという形式でページのHTML内に記述され、求人のタイトル・会社名・勤務地・雇用形態・給与・仕事内容などの情報を設定します。Googleはこのデータをもとに求人情報を検索結果に表示します。
構造化データの実装で重要なのは、「正確で最新の情報を記述すること」です。
また、Googleが読み取れるように、公式のスキーマルールに沿って書く必要があります。設定が正しくないとGoogleしごと検索のリッチリザルトに表示されないため、リッチリザルトテストなどのツールで確認すると安心して実装できます。
初心者でも、やり方さえわかってしまえば導入は難しくありません。WordPressユーザーであれば、プラグインを使って簡単に対応することも可能です。
構造化データの形式とは
そもそも構造化データには、記述方法としていくつか形式が用意されております。
実装するにあたって、サイトの作りや構造によって変わってくるところもあるかと思いますが、ここでどんな形式があるか解説しておきたいと思います。
構造化データの形式としては、以下があります。
データの形式 | 内容・特徴 |
---|---|
JSON-LD(ジェイソン・エルディー) | もっとも推奨されている形式(特にGoogle)です。 ・JSONというプログラミングでよく使われる形式で書く ・ページの<head>タグなどにまとめて記述できる HTMLとは分離して書けるので、ページの見た目に影響しない ・コード管理がしやすく、実装も簡単 |
microdata(マイクロデータ) | HTMLのタグに直接属性を追加して書く形式です。 ・HTMLの中に「itemprop」などの属性を加えて構造化 ・HTMLとデータが一体化していて視覚的にわかりやすい ・ただしHTMLの構造が複雑になると管理しづらくなる |
RDFa Lite(アールディーエフエー・ライト) | HTMLに属性を追加して書く軽量な方法です。 ・Microdataと似ていて、HTMLタグに「property」や「typeof」を追加 ・XHTMLにも使える ・Microdataより柔軟だが、記述ルールが少し複雑 |
RDFa(アールディーエフエー) | HTML5を拡張して構造化データを記述できる方式です。 ・RDFa Liteよりも高機能 ・「about」や「rel」などの属性で、Web上の他の情報とつなげられる ・複雑なデータを扱えるけど、初心者には少し難しい |
Googleでは公式で「JSON-LD」での実装を推奨しております。(※こちらのGoogle公式ページで推奨であることを公言しております)
筆者的には、JSON-LDが一番コード的にシンプルで書きやすいとも思います。
そのため、当記事ではJSON-LDでの構造化データの実装方法を解説したいと思います。
構造化データのコードの書き方(JSON-LD)
JSON-LDのコードを使用して求人情報を記述する場合の書き方について解説いたします。
Googleしごと検索に対応するには、求人ページに「JobPosting」形式の構造化データを記述する必要があります。
Googleが推奨している形式は「JSON-LD」で、以下のコードののように<script type=”application/ld+json”>タグの中にJSON形式で情報を記述します。
以下は標準的な求人情報の構造化データになります。
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "JobPosting",
"title": "Webエンジニア",
"description": "私たちは自社サービスの開発・保守運用を担うWebエンジニアを募集しています。フレックスタイム制、リモートワークも可能で、働きやすい環境を整えています。",
"identifier": {
"@type": "PropertyValue",
"name": "株式会社サンプルテック",
"value": "ST-001"
},
"datePosted": "2025-04-01",
"validThrough": "2025-06-30T23:59",
"employmentType": "FULL_TIME",
"hiringOrganization": {
"@type": "Organization",
"name": "株式会社サンプルテック",
"sameAs": "https://www.sampletech.co.jp",
"logo": "https://www.sampletech.co.jp/logo.png"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "渋谷2-21-1",
"addressLocality": "渋谷区",
"addressRegion": "東京都",
"postalCode": "150-0002",
"addressCountry": "JP"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "JPY",
"value": {
"@type": "QuantitativeValue",
"value": 300000,
"unitText": "MONTH"
}
}
}
</script>
上記コードは一般的な求人情報の内容になります。
コードの見方としては、まずコード自体はJSON形式となっており、左にプロパティ、右にそのデータ(値)を記述するようになっております。
上記構造化データのコードで使われているプロパティや意味は以下の表の内容となります。
項目 | 説明 |
---|---|
@context | スキーマの種類を指定(基本的に固定で “https://schema.org/”) |
@type | この構造化データの種類。JobPosting は求人情報を表します |
title | 求人の職種名(例:「Webエンジニア」) |
description | 仕事内容の説明(HTMLタグもOK) |
identifier | 企業の内部IDや名前(例:「株式会社サンプルテック」) |
datePosted | 求人掲載日(ISO形式:YYYY-MM-DD) |
validThrough | 応募締切日(時間も含む場合あり) |
employmentType | 雇用形態(例:FULL_TIME = 正社員) |
hiringOrganization | 採用する会社の情報(会社名、ロゴ、公式サイトURLなど) |
jobLocation | 勤務地の住所(都道府県・市区町村・郵便番号など) |
baseSalary | 給与情報(通貨:JPY、日本円。月給制なら MONTH) |
求人情報として最低限必要な項目は、職種名(title)、仕事内容(description)、掲載日(datePosted)、掲載期限(validThrough)、雇用形態(employmentType)、会社情報(hiringOrganization)、勤務地(jobLocation)、給与(baseSalary)などです。
必要があれば、「時給制」や「複数勤務地」などのパターンも対応可能です。
コードの記述において、住所の書き方や通貨単位(JPY)、給与の単位(MONTHやHOUR)に注意しましょう。実装後は、Googleのリッチリザルトテストで正しく認識されているか確認することが重要です。
実際にリッチリザルトテストを使ってご確認いただくと、下図のように「1件の有効なアイテムを検出しました」と表示され、無事構造化データの作成が正しく行われているのが確認できます。
(※万が一エラーになった場合、仕様が変更されているかもしれないので、Google公式ページからご確認ください)

また、例えば在宅の求人情報などの場合にも正確にGoogleに伝えることができます。
以下は在宅(リモート)の求人情報の構造化データになります。
<html>
<head>
<title>ソフトウェアエンジニア</title>
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "JobPosting",
"title": "ソフトウェアエンジニア",
"description": "私たちは、グローバルなユーザーに向けたサービス・技術開発を行うソフトウェアエンジニアを募集しています。多様な価値観や文化を尊重し、リモートワークでもチームとして高い成果を目指します。",
"identifier": {
"@type": "PropertyValue",
"name": "グーグル合同会社",
"value": "1234567"
},
"datePosted": "2024-01-18",
"validThrough": "2024-03-18T00:00",
"applicantLocationRequirements": {
"@type": "Country",
"name": "日本"
},
"jobLocationType": "TELECOMMUTE",
"employmentType": "FULL_TIME",
"hiringOrganization": {
"@type": "Organization",
"name": "グーグル合同会社",
"sameAs": "https://www.google.com",
"logo": "https://www.example.com/images/logo.png"
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "JPY",
"value": {
"@type": "QuantitativeValue",
"value": 5000,
"unitText": "HOUR"
}
}
}
</script>
</head>
<body>
</body>
</html>
上記構造化データのコードで使われているプロパティや意味は以下の表の内容となります。
項目 | 内容・意味 |
---|---|
@context | スキーマの種類を指定(基本的に固定で “https://schema.org/”) |
@type | 求人情報であることを示します。Googleしごと検索に必要です。JobPosting は求人情報を表します |
title | 募集する職種名です。(例:「ソフトウェアエンジニア」) |
description | 募集内容の詳細な説明です。企業の姿勢や仕事内容などを記載します。 |
identifier | 求人の識別情報です。企業名やIDなどを含めて、Googleに誰の求人かを明示します。 |
datePosted: “2024-01-18” | 求人情報を掲載した日付です。 |
validThrough: “2024-03-18T00:00” | 求人の締切日時です。ISO形式(YYYY-MM-DDTHH:MM)で記載します。 |
applicantLocationRequirements | 応募者がどの国に住んでいる必要があるかを指定します。この例では「日本在住者限定」です。 |
jobLocationType: “TELECOMMUTE” | リモートワークが可能であることを示します。TELECOMMUTEは「完全在宅勤務可」の意味です。 |
employmentType: “FULL_TIME” | 雇用形態を指定します。この場合は「正社員(フルタイム)」です。 |
hiringOrganization | 採用企業の情報(企業名、Webサイト、ロゴなど)を含みます。 |
baseSalary | 給与情報を示します。ここでは「時給5,000円」、通貨は日本円(JPY)、単位はHOUR(時間)となっています。 |
こちらに関しても、リッチリザルトテストを使ってご確認いただくと、下図のように「1件の有効なアイテムを検出しました」と表示され、構造化データの作成が正しく行われているのが確認できます。
(※万が一エラーになった場合、仕様が変更されているかもしれないので、Google公式ページからご確認ください)

構造化データのプロパティ一覧
Googleしごと検索に関する構造化データのプロパティ(JobPostingプロパティ)一覧について解説いたします。
以下のGoogle公式ページに詳しく解説しておりますが、ここでざっと目を通すことによって必要だった記述漏れを防ぐなどすることが可能かと思いますので、しっかり確認しておきましょう。

構造化データには、以下のように必ず含めなければならない必須のプロパティと、必要であれば含めることができる任意のプロパティがあります。
- 構造化データの必須のプロパティ
- 構造化データの任意のプロパティ
- 構造化データの任意のプロパティ(Bata版)
それぞれ分けて解説いたします。
構造化データの必須のプロパティ
Googleしごと検索の構造化データの必須のプロパティについて解説します。
ここで解説するプロパティは、必ず構造化データの記述として含めなければならない内容となっております。
以下が必須のプロパティをまとめた表になります。
プロパティ名 | 説明・ポイント |
---|---|
datePosted | 求人の掲載日。ISO形式で記載(例: 2024-01-18)。 |
description | 求人の詳細説明。HTML形式で段落やリスト可(例: <p>、<ul>など)。titleと同じ内容は禁止。 |
hiringOrganization | 求人をしている組織。会社名を指定する必要あり(例: “スターバックス株式会社”)。所在地は含めないように注意。 |
jobLocation | オフィスや作業現場など、従業員の職場となる特定の場所。できるだけ多くのプロパティを指定すること推奨。指定するプロパティが多いほど、ユーザーに質の高い求人情報を提供可能。 |
title | 職務の名称。たとえば、”Webエンジニア”、”バリスタ” のように指定。 |
構造化データの任意のプロパティ
Googleしごと検索の構造化データの任意のプロパティについて解説します。
こちらは構造化データとして絶対に記述しないといけない内容ではありませんが、追加することによってより正確かつ詳細に求人情報をGoogleに伝えることができるので、筆者的には用意できている情報がある限り、追加することを強くおすすめいたします。
求人情報によって内容が変わってくるかと思いますので、しっかり判別した上で追加しましょう。
以下が任意のプロパティをまとめた表になります。
プロパティ名 | 説明・ポイント |
---|---|
applicantLocationRequirements | 従業員が在宅勤務を行うために所在する必要のある地域。完全リモートの場合は必須(例: “name”: “Japan”)。 |
baseSalary | 実際の基本給。value または minValue と maxValue で指定。unitText には “HOUR” などを使用。 |
directApply | 直接応募が可能かを示す。応募までのステップが簡潔なら true。 Google における「直接応募」とは、不要な手順を省き、少ないステップでスムーズに応募できることを意味します。 たとえば、何度もログインしたり、複雑な入力を求められる場合は「直接応募」ではないとされます。 |
employmentType | 雇用形態。複数指定可(例: “FULL_TIME”、”CONTRACTOR”)。 |
identifier | 求人の一意のID。会社名とID番号を指定(例: “value”: “1234567”)。 |
jobLocationType | 完全なリモートワークの場合 “TELECOMMUTE” を指定。applicantLocationRequirements の併用が推奨。 求人が完全にリモートワークである場合、jobLocationType プロパティは必須。 |
validThrough | 求人の有効期限(ISO形式)。例: “2024-03-18T00:00″。期限なしの場合は省略。 |
構造化データの任意のプロパティ(Bata版)
Googleしごと検索の構造化データの任意のプロパティ(Bata版)について解説します。
推奨されるJobPostingプロパティに加えて、Bata版(ベータ版)のプロパティを追加して、求人情報に学歴や経験に関する情報を追加できます。
このBata版のプロパティはまだ開発中のため、すぐには Google 検索に表示されなかったり、効果が表れない場合もありますのでご注意ください。
以下が任意(Bata版)のプロパティをまとめた表になります。
プロパティ名 | 説明 |
---|---|
educationRequirements | 求人に必要な学歴。学歴要件がない場合は no requirements を使用。配列で複数の学歴要件を指定可能。例: 学士号、大学院修了など。 |
educationRequirements.credentialCategory | 求人に必要な学位を指定。例: 高校卒(high school)、準学士号(associate degree)、学士号(bachelor degree)、認定資格(professional certificate)、大学院修了(postgraduate degree)。 |
experienceRequirements | 求人に必要な経験。経験要件がない場合は no requirements を使用。 |
experienceRequirements.monthsOfExperience | 必要な最小経験月数。例えば、「シェフとして 12 か月」など。 |
experienceInPlaceOfEducation | 経験が教育資格の代わりになる場合は true。true に設定すると、experienceRequirements プロパティと educationRequirements プロパティの両方を指定する必要あり。 |
Googleしごと検索(Google for jobs)の構造化データをWordPressで実装する方法
それでは早速、Googleしごと検索(Google for jobs)の構造化データをWordPressで実装する方法について解説いたします。
大前提として、WordPressで独自にテーマを開発する場合、もしくは一般配布されているテーマをカスタマイズする場合を想定したものとします。
ここでの内容は、WordPress以外のCMSやASPで構造化データを追加する場合や、HTMLべたがきで実装するサイトで構造化データを追加する場合でも参考になる内容になるかと思いますので、よろしければご確認ください。
作業の手順としては、以下のイメージとなります。
- 公開したい求人情報を整理する
- 求人情報ページ用のカスタム投稿タイプを追加
- カスタムフィールドを追加
- 求人情報を入力して公開
- カスタム投稿タイプのPHPテンプレートファイルを作成(※任意)
- テーマのPHPテンプレートファイルに構造化データのコードを追加
- 出力されたコードが正しいかリッチリザルトテストツールで確認
ここでは、基本となる必須のプロパティでの構造化データを出力できることを目標にして、解説していきたいと思います。
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "JobPosting",
"datePosted": "2025-04-06",
"title": "希望に溢れた事務募集中!",
"description": "<p>◎電話応対(オンラインショップの受注、商品に対する質問等)<br>◎在庫管理<br>◎出荷業務<br>◎企画書等の書類作成(簡単なデータ入力)など</p><p>資格不要、学歴不問。未経験の方でも丁寧に指導いたします。</p><p>事業拡大による増員募集です。安定した環境で長く働きたい方を歓迎します。</p>",
"hiringOrganization": {
"@type": "Organization",
"name": "株式会社サンプルカンパニー",
"logo" : "http://sokulabo.com/wp-content/uploads/2025/02/favicon-2.png"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "西新宿2-8-1",
"addressLocality": "新宿区",
"addressRegion": "東京都",
"postalCode": "160-0023",
"addressCountry": "JP"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "JPY",
"value": {
"@type": "QuantitativeValue",
"minValue" : "200000",
"maxValue" : "250000",
"unitText": "MONTH"
}
},
"validThrough": "2025-05-06T23:59",
"employmentType": "FULL_TIME"
}
</script>
それでは、手順にしたがって進めていきましょう。
公開したい求人情報を整理する
まずはGoogleしごと検索のリッチリザルトに対して公開したい求人情報を整理しましょう。
ここでは一つの例として、以下の内容を想定して実装していきたいと思います。もし変更の必要があれば、お好きなように追加したり削除したりでカスタマイズしていただいても問題ありません。
- 投稿日
- 求人タイトル
- 求人内容
- 企業名
- 企業ロゴ
- 住所
- 都道府県
- 市区町村
- 郵便番号
- 最低賃金
- 最高賃金
- 有効期限
- 雇用形態
上記の求人情報の内容をベースにして、下図のように構造化データを出力できるようにいたします。

求人情報ページ用のカスタム投稿タイプを追加
次は、求人情報ページ用のカスタム投稿タイプを追加しましょう。
カスタム投稿タイプを作成する方法をいろいろありますが、今回は「Advanced Custom Fields」プラグインを使用して作成したいと思います。
WordPress管理画面左メニュー「プラグイン」から「新規プラグイン追加」で、画面の右側にある検索バーに「Advanced Custom Fields」と入力していただくと、下図の検索結果が表示されるかと思います。

確認できたら「今すぐインストール」をクリックしていただき、有効化しましょう。
Advanced Custom Fieldsをインストールして有効化できたら、次はプラグインの設定画面からカスタム投稿タイプの追加の設定をします。
WordPress管理画面左メニューに「ACF」というメニュー項目が追加されていると思うので、サブメニューにある「投稿タイプ」をクリックしてください。

クリックしたら、次は「新規追加」をクリックしてください。

すると、下図のように入力ページに切り替わるので、「複数ラベル」を「求人情報」、「単数ラベル」を「求人情報」、「投稿タイプキー」を「job」の内容で入力して、画面右上にある「変更内容を保存」ボタンをクリックしてください。

すると、下図のようにWordPress管理画面左メニューに「求人情報」が追加されます。

カスタム投稿タイプを作成することで、既存の「投稿」や「固定ページ」のように、求人情報ページとしてページを作成することができます。

これで求人ページ用のカスタム投稿タイプの作成ができました。
カスタムフィールドを追加
次は、カスタムフィールドを追加を前述で作成した「求人情報」のカスタム投稿タイプに追加し、ページの編集画面に各求人情報のデータを入力できるようにしていきましょう。
WordPress管理画面左メニューの「ACF」のサブメニューにある「フィールドグループ」をクリックしてください。

クリックしたら、次は「新規追加」をクリックしてください。

すると、下図のように入力ページに切り替わります。

あとはひたすら入力作業です。
「フィールドグループタイトル」は「求人情報」と入力し、以下の内容でカスタムフィールドを作成してください。
入力が完了したら、「変更内容を保存」ボタンをクリックして設定を保存してください。
カスタムフィールド名 | カスタムフィールドタイトル | データ形式・入力例 |
---|---|---|
job_title | 求人のタイトル | データ形式:「テキスト」 入力例:希望に溢れた事務募集中! |
job_description | 求人の仕事内容 | データ形式:「テキストエリア」 入力例: ◎電話応対(オンラインショップの受注、商品に対する質問等) ◎在庫管理 |
job_hiringorganization_name | 企業名 | データ形式:「テキスト」 入力例:株式会社サンプルカンパニー |
job_hiringorganization_logo | ロゴ画像 | データ形式:「画像」 出力例:9999(メディアID) |
job_streetaddress | 住所 | データ形式:「テキスト」 入力例:西新宿2-8-1 |
job_addressregion | 都道府県 | データ形式:「テキスト」 入力例:東京都 |
job_addresslocality | 市区町村 | データ形式:「テキスト」 入力例:新宿区 |
job_postalcode | 郵便番号 | データ形式:「テキスト」 入力例:160-0023 |
job_basesalary_minvalue | 月の最低賃金 | データ形式:「テキスト」 入力例:200000 |
job_basesalary_maxvalue | 月の最高賃金 | データ形式:「テキスト」 入力例:250000 |
job_validthrough | 求人情報の有効期限 | データ形式:「テキスト」 入力例:2025-05-06T23:59 |
job_employmenttype | 雇用形態 | データ形式:「ラジオボタン」 入力例: FULL_TIME : フルタイム PART_TIME : パートタイム CONTRACTOR : 契約社員 TEMPORARY : 派遣社員 INTERN : インターンシップ VOLUNTEER : ボランティア PER_DIEM : は日雇い OTHER : その他 |
入力が完了したら、「設定」の箇所で「投稿タイプ」を「求人情報」に設定してください。

これで、下図のように求人情報の投稿タイプの編集画面に、各入力内容が反映されてカスタムフィールドが入力できるようになっているかと思います。

下にスクロールしてみて、すべての入力の枠が設定できていることが確認できたら完了です。

求人情報を入力して公開
求人ページとして必要なページを作成するための箱(投稿タイプ)とカスタムフィールド(求人情報)は設定できたので、あとはページを作成していきましょう。
下図のように、シンプルに先ほどのカスタムフィールドの表の入力例を参考にして、各項目を入力してページのタイトルを入力したら、「公開」をクリックしてください。

これで入力作業は完了です。
このあと出力するために必要な作業を進めていきます。
カスタム投稿タイプのPHPテンプレートファイルを作成(※任意)
次は、「求人情報」としてのカスタム投稿タイプのPHPテンプレートファイルを作成します。
ただ、この作業に関しては任意になりまして、外注でテーマ開発をしてもらっている場合か、ご自身でテーマを作成されている場合におすすめな内容となっております。
もし有料のテーマ(XWRITEやSWELL等)無料のテーマ(Cocoon等)などの一般的なテーマを購入などしてお使いいただいている場合は、カスタム投稿タイプのPHPテンプレートファイルを作成する必要はないかもしれません。(ご自身でページをPHPやCSS、JavaScriptというプログラムでカスタマイズできるなら話は変わってきます)
ざっくりで恐縮ですが、各テーマの公式サイトなどから配布されている子テーマをダウンロードして、その子テーマにsingle.phpを親テーマから複製して作成し、後述の「テーマのPHPテンプレートファイルに構造化データのコードを追加」で解説するコードをコピー&ペーストしていただければいいのではないかと思っております。(※ここでは販売テーマの子テーマについては触れませんので、ご了承ください)
前置きが長くなりましたが、早速作りましょう。
PCのデスクトップなどに「single-job.php」というファイル名でPHPファイルを作成してください。
なぜ「single-job.php」なのかというと、先ほどプラグインで「投稿タイプキー」を「job」で投稿タイプを作成したかと思いますが、「single-【投稿タイプキー】.php」という法則で作成するという仕様がWordPress側で決まっているためです。
ファイルはPCから操作して手動で作成していただいてもいいですし、以下のコマンドをターミナルなどから実行して作成していただいても構いません。
touch single-job.php
下図のように作成できましたでしょうか?

作成できたら、テーマを構成するディレクトリファイルのトップ階層にファイルをコピー&ペーストしてください。(下図はテーマファイル内のざっくりしたイメージです)

あとは、このsingle-job.phpを自由に求人ページとしてデザインされるように実装していただいて問題ありません。
テーマのPHPテンプレートファイルに構造化データのコードを追加
次は構造化データを出力するコードを追加していきます。
以下のコードをheader.phpなどヘッダーの出力の役割のあるテーマのPHPテンプレートファイルのheadタグ内にコピー&ペーストしてください。
もし有料のテーマ(XWRITEやSWELL等)無料のテーマ(Cocoon等)などの一般的なテーマを購入などしてお使いいただいている場合は、header.phpを親テーマから子テーマへ複製して、その複製した子テーマのheader.phpのheadタグ内に以下のコードをコピー&ペーストしてださい。
<?php
if(is_singular('job')):
$job_datePosted = get_the_time('Y-m-d');//"datePosted" : "投稿日"
$job_title = get_field('job_title'); // "title" : "求人タイトル"
$job_description = get_field('job_description'); // "description" : "求人内容"
$job_hiringorganization_name = get_field('job_hiringorganization_name'); // "hiringOrganization" : "企業名"
$job_hiringorganization_logo = get_field('job_hiringorganization_logo')['url']; // "hiringOrganization" : "企業ロゴ"
$job_streetaddress = get_field('job_streetaddress'); // "streetAddress" : "住所"
$job_addressregion = get_field('job_addressregion'); // "addressRegion" : "都道府県"
$job_addresslocality = get_field('job_addresslocality'); // "addressLocality" : "市区町村"
$job_postalcode = get_field('job_postalcode'); // "postalCode" : "郵便番号"
$job_basesalary_minvalue = get_field('job_basesalary_minvalue'); // "minValue" : "最低賃金"
$job_basesalary_maxvalue = get_field('job_basesalary_maxvalue'); // "maxValue" : "最高賃金"
$job_validthrough = get_field('job_validthrough'); // "validThrough" : "有効期限"
$job_employmenttype = get_field('job_employmenttype'); // "employmentType" : "雇用形態"
$job_description = <<<EOF
{$job_description}
EOF;
?>
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "JobPosting",
"datePosted": "<?php echo $job_datePosted; ?>",
"title": "<?php echo $job_title; ?>",
"description": "<?php echo $job_description; ?>",
"hiringOrganization": {
"@type": "Organization",
"name": "<?php echo $job_hiringorganization_name; ?>",
"logo": "<?php echo $job_hiringorganization_logo; ?>"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "<?php echo $job_streetaddress; ?>",
"addressLocality": "<?php echo $job_addresslocality; ?>",
"addressRegion": "<?php echo $job_addressregion; ?>",
"postalCode": "<?php echo $job_postalcode; ?>",
"addressCountry": "JP"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "JPY",
"value": {
"@type": "QuantitativeValue",
"minValue" : "<?php echo $job_basesalary_minvalue; ?>",
"maxValue" : "<?php echo $job_basesalary_maxvalue; ?>",
"unitText": "MONTH"
}
},
"validThrough": "<?php echo $job_validthrough; ?>",
"employmentType": "<?php echo $job_employmenttype; ?>"
}
</script>
<?php
endif;
?>
上記コードは、JSON-LDのGoogleしごと検索の構造化データのコードフォーマットに、WordPressで出力されるデータを組み込んだコードになります。
プラグインとしてadvanced custom fieldsを使用しているので、get_field()関数でデータを取得して出力しております。
実際に求人情報の求人ページのソースコードをご確認いただくと、下図のように出力されておりましたら完了です。

ここまでで、Googleしごと検索に必要な実装と作業は完了です。お疲れ様でした!
出力されたコードが正しいかリッチリザルトテストツールで確認
Googleしごと検索に必要な実装と作業は完了しましたが、最後に必ずGoogleが公式で用意してくれているリッチリザルトテストツールを使って、構造化データの出力コードが正しいかどうかをテストしましょう。
以下のURLからアクセスできますのでクリックしてください。
クリックすると、下図の画面が表示されるかと思います。

中央のタブにある「コード」を選択し…

入力枠の中に以下の構造化データのコードの部分をコピー&ペーストしてください。

下図のように入力できたら、「コードをテスト」ボタンをクリックしてテストを実行してください。

コードが正しければ下図のように「1件の有効なアイテムを検出しました」という表示になりますので、これが確認できれば成功です!

逆に下図のようにエラーになりましたら、エラー内容に従って修正して、再度テストしてみてください。

ここでまで、
Googleしごと検索(Google for jobs)の注意点
最後に、Googleしごと検索の実装をするにあたっての注意点(Googleの掲げるポリシー)を解説していきたいと思います。
実はこれ控えめに言って非常に重要です…
というのも、もしポリシー違反になってしまうと、エラーになったり掲載されなくなってしまう可能性があるためです。しっかりGoogleのポリシーに従って実装するようにし、問題なくGoogleしごと検索のリッチリザルトに求人が公開されるようにするためにも確認しておきましょう。
まず、注意点としては以下になります。
- 求人詳細ページ以外に構造化データ(JobPosting)を使用している
- 求人詳細ページのコンテンツと構造化データの内容が一致していない
- 有効期限切れの求人が公開されている
- 求人詳細ページに応募機能がない
- ロゴが間違っている
- 求人の住所が不正確または存在しない
それぞれ解説いたします。
求人詳細ページ以外に構造化データ(JobPosting)を使用している
例えば、求人一覧ページ(複数の求人を掲載しているページ)など、求人詳細ページ以外にJobPosting構造化データを設置するのはポリシー違反です。
このデータは、1件の求人情報を詳細に記載している個別ページにのみ設置する必要があります。違反している場合、Search Consoleにエラーが表示され、リッチリザルトの対象外になります。
以下はGoogle公式ページの説明箇所になります。

求人詳細ページのコンテンツと構造化データの内容が一致していない
求人詳細ページのコンテンツと構造化データの内容が一致していない場合、問題ありと見なされます。
例えば、ページ上の職種名とtitleプロパティが異なる、構造化データに記載された給与情報がページに表示されていない、などが該当します。
構造化データとしてマークアップに含まれるすべての情報は、ページ上にも明記する必要があります。
以下はGoogle公式ページの説明箇所になります。

有効期限切れの求人が公開されている
求人のvalidThroughプロパティに過去の日付が設定されているなどの状態で公開されていると、期限切れと見なされます。
この場合、ページを削除するか、有効期限を正しく設定し、構造化データも更新する必要があります。Indexing API を使用すると、反映が早くなります。
以下はGoogle公式ページの説明箇所になります。

求人詳細ページに応募機能がない
求人ページに、応募方法が記載されていない、または応募フォーム・リンクがない場合、Googleはそのページを不完全な求人情報と判断します。
応募手段(フォーム、メールアドレス、応募ページのリンクなど)を必ずページ上に設置しましょう。
以下はGoogle公式ページの説明箇所になります。

ロゴが間違っている
構造化データの記述にて「hiringOrganization」の「logo」に設定されているロゴ画像が誤っている、あるいはGoogleナレッジパネルに登録されたロゴと異なる場合、正しく表示されない可能性があります。
画像の比率(0.75〜2.5)に注意し、適切なロゴ画像を設定してください。ナレッジパネルの更新も有効ですが、構造化データの修正の方が反映は早くなります。
以下はGoogle公式ページの説明箇所になります。

求人の住所が不正確または存在しない
構造化データに設定された「jobLocation」や「addressLocality」、「addressRegion」などがGoogleで認識できない場合、住所が無効と判断されます。
正しい都道府県名、市区町村名を使用し、ページ上の表示とも一致させることが重要です。リッチリザルトテストなどのツールを使って、入力内容を事前に検証しましょう。
以下はGoogle公式ページの説明箇所になります。

まとめ
本記事では、筆者自身が求人ポータルサイトの開発に携わった実体験をもとに、Googleしごと検索(JobPosting)の仕組みと構造化データの対応方法について解説してきました。
Googleしごと検索とは、「WordPress 求人」などのキーワードで検索された際に、検索結果の上部に目立つ形で求人情報が表示されるGoogleの機能です。求人ページに正しく構造化データを実装することで、検索結果での可視性が高まり、より多くのアクセスを見込めるようになります。
これから求人サイトを運営する方や、Web担当者としてSEO対策を進めたい方にとって、本記事がGoogleしごと検索への対応をスムーズに進める手助けとなれば幸いです。ぜひご自身のサイトにも活用してみてください。
コメント