【Google しごと検索】JobPosting構造化データについて調べてみた

2019年1月27日

Google向けの求人情報マークアップ(JSON-LD方式)については、以下のブログが最も丁寧に説明されているかと思います。

Google for Jobs対応 求人情報構造化データ JobPostingおさらい

本気でやるならgoogle公式のしごと検索の記事 と上記の記事を読むべき!!

が、記事が長い。長い記事を読むのが辛いせっかちさん向けにまとめました。

JSONのことがなんとなくわかってる人向け。

Google用のJobPosting項目

JSONにはコメントを入れられないので、無理やり「←必須」とか書きました

あくまで参考にとどめ、そのままコピーして使うのはやめましょう!
※記事の最後にコメントなし版も置いておきます。

実際には構造化データテストツールでエラーが出ないものもありますが、入れたいなら入れないと意味がないでしょ、というものは一部必須と書きました。

<script type="application/ld+json">
{
    "@context" : "http://schema.org/",←必須・変更しない
    "@type" : "JobPosting",←必須・変更しない
    "title" : "★職種名(記号禁止。例:PHPでWebシステムを作るプログラマー)",←必須
    "description" : "★求人情報についての説明文(改行可・html利用可)",←必須
    "identifier": {←任意(設定したいときは下記3行全部入れる)
        "@type": "PropertyValue",←変更しない
        "name": "★会社名",
        "value": "★求人の管理番号(数字のみ)"
    },
    "hiringOrganization" : {←必須
        "@type" : "Organization",←必須・変更しない
        "name" : "★会社名★",←必須
        "sameAs" : "★会社の公式サイトURL",←任意
        "logo" : "★企業ロゴURL(112x112px以上・jpg、png、gif)"←任意
    },
    "datePosted" : "★掲載日(例:2019-01-01)",←必須
    "validThrough" : "★求人終了日(例:2019-06-30)",←任意
    "employmentType" : "★雇用形態(例:正社員ならFULL_TIME)",←任意・複数設定するなら配列に
    "jobLocation": {←必須・複数設定するなら配列に
        "@type": "Place",←必須・変更しない
        "address": {←必須
            "@type": "PostalAddress",←必須・変更しない
            "streetAddress":"★番地・建物名",←任意
            "addressLocality": "★市区町村",←任意
            "addressRegion": "★都道府県",←必須
            "postalCode":"★郵便番号(例:000-0000)",←任意
            "addressCountry": "★国別コード(例:JP)"←必須
        }
    },
    "jobLocationType": "TELECOMMUTE",←任意(テレワーク・リモートワークの時だけ)
    "baseSalary": {←任意(設定したいときは@type・currency・valueの@type・value・unitTextは入れる)
        "@type": "MonetaryAmount",←変更しない
        "currency": "★どの通貨か(例:日本円ならJPY)",
        "value": {
            "@type": "QuantitativeValue",←変更しない
            "value": "★基本給(例:200000)",
            "minValue": "★給料に幅がある場合の最小値(例:100000)",←入れなくていい
            "maxValue": "★給料に幅がある場合の最大値(例:400000)",←入れなくていい
            "unitText": "★時間単位(例:月給ならMONTH)"
        }
    }
}
</script>

備考

employmentTypeの指定文字

  • “FULL_TIME" 正社員・フルタイム
  • “PART_TIME" パート・アルバイト
  • “CONTRACTOR" 契約社員
  • “TEMPORARY" 一時的な雇用
  • “INTERN" インターンシップ
  • “VOLUNTEER" ボランティア
  • “PER_DIEM" 日雇い
  • “OTHER" その他

baseSalaryのunitTextの指定文字

  • “HOUR" 時間給
  • “DAY" 日給
  • “WEEK" 週給
  • “MONTH" 月給
  • “YEAR" 年給・年棒

コメントなし版

使うときは、構造化データテストツールでテストしてください!

とりあえずこれだけあれば載るはずver

2019.1.25現在、最低限これだけは入れておけば何とかなるやつ

<script type="application/ld+json">
{
    "@context" : "http://schema.org/",
    "@type" : "JobPosting",
    "title" : "★職種名(記号禁止。例:PHPでWebシステムを作るプログラマー)",
    "description" : "★求人情報についての説明文(改行可・html利用可)",
    "hiringOrganization" : {
        "@type" : "Organization",
        "name" : "★会社名★"
    },
    "datePosted" : "★掲載日(例:2019-01-01)",
    "jobLocation": {
        "@type": "Place",
        "address": {
            "@type": "PostalAddress",
            "addressRegion": "★都道府県",
            "addressCountry": "★国別コード(例:JP)"
        }
    }
}
</script>

フルバージョン

※雇用形態や勤務地が2個あるときは、それぞれ配列として入れること

<script type="application/ld+json">
{
    "@context" : "http://schema.org/",
    "@type" : "JobPosting",
    "title" : "★職種名(記号禁止。例:PHPでWebシステムを作るプログラマー)",
    "description" : "★求人情報についての説明文(改行可・html利用可)",
    "identifier": {
        "@type": "PropertyValue",
        "name": "★会社名",
        "value": "★求人の管理番号(数字のみ)"
    },
    "hiringOrganization" : {
        "@type" : "Organization",
        "name" : "★会社名★",
        "sameAs" : "★会社の公式サイトURL",
        "logo" : "★企業ロゴURL(112x112px以上・jpg、png、gif)"
    },
    "datePosted" : "★掲載日(例:2019-01-01)",
    "validThrough" : "★求人終了日(例:2019-06-30)",
    "employmentType" : "★雇用形態(例:正社員ならFULL_TIME)",
    "jobLocation": {
        "@type": "Place",
        "address": {
            "@type": "PostalAddress",
            "streetAddress":"★番地・建物名",
            "addressLocality": "★市区町村",
            "addressRegion": "★都道府県",
            "postalCode":"★郵便番号(例:000-0000)",
            "addressCountry": "★国別コード(例:JP)"
        }
    },
    "jobLocationType": "TELECOMMUTE",
    "baseSalary": {
        "@type": "MonetaryAmount",
        "currency": "★どの通貨か(例:日本円ならJPY)",
        "value": {
            "@type": "QuantitativeValue",
            "value": "★基本給(例:200000)",
            "minValue": "★給料に幅がある場合の最小値(例:100000)",
            "maxValue": "★給料に幅がある場合の最大値(例:400000)",
            "unitText": "★時間単位(例:月給ならMONTH)"
        }
    }
}
</script>

すてきな構造化データマークアップライフをお過ごしください!

2019.1.27追記

vue.jsの練習もかねて、JSON-LDジェネレーター作りました

くれぐれも利用の際は構造化データテストツールをあわせてお使いください。