【SEO】Googleしごと検索での求人情報の構造化データには細かい勤務地情報が必要である

結論から言うと、Googleしごと検索での求人情報の構造化データには細かい勤務地情報が必要になります。

恐らく、勤務地情報の細かいプロパティに関しては、「**必須**」にはなっていないので、記載しなくても問題ないと放置している人がいるかもしれません。

実はそういった人は重大なミスに気付けていません。

その理由は以下からどうぞ。

#そもそもGoogleしごと検索とは

ご存知の通り、Googleしごと検索（Google for Jobs）とは、Google検索において、求人や転職関連のクエリに対して、求人情報が検索結果の上部に掲載される機能のことを言います。

このGoogleしごと検索に求人が掲載されるようする対応としては、求人情報の構造化データ「JobPosting」をJSONベースのデータ形式で記述できるJSON-LDで求人ページに実装するというのが、一般的な流れとなります。

具体的にschema.orgで定義され、Googleが必要とする求人情報の各プロパティは以下です。

```javascript

<script type="application/ld+json"> 
{
  "@context" : "https://schema.org/",
  "@type" : "JobPosting",
  "title" : "Software Engineer",
  "description" : "<p>Google aspires to be an organization that reflects the globally diverse audience that our products and technology serve. We believe that in addition to hiring the best talent, a diversity of perspectives, ideas and cultures leads to the creation of better products and services.</p>",
  "identifier": {
    "@type": "PropertyValue",
    "name": "MagsRUs Wheel Company",
    "value": "1234567"
  },
  "datePosted" : "2017-01-18",
  "validThrough" : "2017-03-18T00:00",
  "employmentType" : "CONTRACTOR",
  "hiringOrganization" : {
    "@type" : "Organization",
    "name" : "Google",
    "sameAs" : "http://www.google.com",
    "logo" : "http://www.example.com/images/logo.png"
  },
  "jobLocation": {
  "@type": "Place",
    "address": {
    "@type": "PostalAddress",
    "streetAddress": "1600 Amphitheatre Pkwy",
    "addressLocality": ", Mountain View",
    "addressRegion": "CA",
    "postalCode": "94043",
    "addressCountry": "US"
    }
  },
 "baseSalary": {
    "@type": "MonetaryAmount",
    "currency": "USD",
    "value": {
      "@type": "QuantitativeValue",
      "value": 40.00,
      "unitText": "HOUR"
    }
  }
}
</script>
```

ここに記載されているプロパティが全て必須という訳ではありません。

必須かどうかについては、[構造化データテストツール](https://search.google.com/structured-data/testing-tool)でチェックできます。

#jobLocationについて

以下に示すのは、「jobLocation」といってオフィスや店舗といった働く人にとっての職場となる勤務地を指定する必須のプロパティになります。

```json
"jobLocation" : [
    {
        "@type" : "Place",
        "address":{
            "@type": "PostalAddress",
            "streetAddress" : "梅田３丁目１−１",
            "addressLocality" : "大阪市北区",
            "addressRegion" : "大阪府",
            "postalCode" : "530-0001",
            "addressCountry": "JP"
        }
    }
],
```

##jobLocationの各プロパティのエラーと警告の有無

jobLocation自体は必須になりますが、その子プロパティにあたるpostalCode, addressRegion, addressLocality, streetAddressの各プロパティはいずれも**あくまで推奨**です。

| プロパティ | エラー | 警告 |
|:-----|:------:|:------:|
| addressCountry | × |  × |
| postalCode | × |  ◯ |
| addressRegion | × |  ◯ |
| addressLocality | × |  ◯ |
| streetAddress | × |  ◯ |

必須ではないので、無くてもクローリングはされますが、「警告」としてアラートは表示されます。

ただ、ここが大きな勘違いポイントです。
必須ではない思い込んでしまうが故に設定しないケースが多いからです。

これは結果としてユーザー流入の機会損失になります。

#Googleしごと検索における地理的情報の重要性に関して

Googleしごと検索の大きな特徴としては（しごと検索に限った話ではないですが）、**検索ユーザーの位置情報をもとに、勤務地が近くにある求人情報を優先的に表示する**ことです。

つまり、そもそも求人情報に細かい勤務地情報が無い場合、たとえクローラーに求人ページが構造化データで定義された「求人情報」であるとして認識されていたとしても、勤務地という地理的情報が無いのであれば、Googleも検索ユーザーに対して位置情報をもとにした求人を検索結果に返すことはできないのです。

（私が経験した事例では、5000件超の有効となる構造化データで定義された「求人情報」のページがあったとしても、全ての求人でjobLocationでの地理的な勤務地情報がない場合、Googleしごと検索でのデイリーの表示回数が平均5未満とか・・・そんな状態でした）

まとめると、jobLocation内で細かい勤務地情報を設定することは、たとえ推奨プロパティであったとしても、ほぼ必須に等しいということになります。（無いと意味がありません）

もしサーチコンソールでGoogleしごと検索で表示回数が異様に少なく、勤務地情報が無い場合は、必ずjobLocationの各プロパティを設定するようにすると良いでしょう。

#勤務地が複数ある場合
もし求人に複数の勤務地が存在するからという理由で、勤務地情報の設定ができていないのであれば、その場合は、jobLocationプロパティを配列にして複数追加することができます。

以下の例は、大阪と名古屋に勤務地が2カ所存在する場合のマークアップになります。

配列で複数追加すると、例えば大阪で求人を検索したユーザには大阪が勤務地の求人情報として表示され、名古屋で求人を検索したユーザには名古屋が勤務地の求人情報として表示されるといったイメージです。

```json
"jobLocation" : [
    {
        "@type" : "Place",
        "address":{
            "@type": "PostalAddress",
            "streetAddress" : "梅田３丁目１−１",
            "addressLocality" : "大阪市北区",
            "addressRegion" : "大阪府",
            "postalCode" : "530-0001",
            "addressCountry": "JP"
        }
    },
    {
        "@type" : "Place",
        "address":{
            "@type": "PostalAddress",
            "streetAddress" : "名駅１丁目１−４",
            "addressLocality" : "名古屋市中村区",
            "addressRegion" : "愛知県",
            "postalCode" : "450-0002",
            "addressCountry": "JP"
        }
    }
],
```