Hướng dẫn về JobPosting Schema

Cách implement JobPosting dữ liệu có cấu trúc để xuất hiện trong Google cho Jobs — đó five bắt buộc properties, đó được khuyến nghị các trường đó thực ra drive clicks, remote-job markup, đó nội dung policies đó nhận postings disapproved, và cách xóa expired jobs correctly.

Xuất bản lần đầu: 27 thg 6, 2026 · Cập nhật lần cuối: 8 thg 8, 2026 · Advanced
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này

JobPosting schema là đó schema.org/JSON-LD markup bạn put on một single job-listing trang để become eligible cho Google cho Jobs. Five properties là bắt buộc — tiêu đề, mô tả, datePosted, hiringOrganization, và jobLocation (với một fully-remote exception) — và đó được khuyến nghị ones (validThrough, employmentType, baseSalary) là nơi đó nhấp-qua và filtering giá trị lives. Nội dung-schema parity là non-negotiable: mọi thứ trong đó JSON-LD phải được visible on đó trang. Đó hầu hết phổ biến disapproval nguyên nhân là putting đó markup on một listing trang thay vì một job theo trang. Expired-job hygiene là an ongoing obligation, không một một-time setup — leave dead jobs trực tiếp và bạn risk một manual hành động. Và Google Lập chỉ mục API là scoped để JobPosting và BroadcastEvent chỉ; misusing điều này as một chung 'chỉ mục nhanh hơn' button có thể cost bạn access. Bing hỗ trợ đó giống nhau vocabulary nhưng documents điều này far hơn lightly — lean Google.

TL;DR — JobPosting schema (schema.org/JobPosting, trong JSON-LD) làm một single-job trang eligible cho Google cho Jobs. Google requires five properties — title, description, datePosted, hiringOrganization, jobLocation — với applicantLocationRequirements/jobLocationType: TELECOMMUTE substituting cho location on fully remote vai trò. Đó được khuyến nghị set (validThrough, employmentType, baseSalary, identifier, directApply) là nơi đó CTR và filtering giá trị lives. Hai hard rules: một job theo trang, và nội dung-schema parity (mỗi JSON-LD giá trị phải được visible on đó trang). Expired-job hygiene là an ongoing compliance task với three sanctioned removal các phương thức; leaving expired jobs trực tiếp risks một manual hành động. Google Lập chỉ mục API là scoped để JobPosting và BroadcastEvent chỉ và là hiện tại approval-gated — không treat điều này as một chung “index faster” (bản dịch) «chỉ mục nhanh hơn» button. Bing hỗ trợ đó giống nhau vocabulary nhưng documents điều này far hơn thinly; lean Google.

Evidence for this claim Google documents jobLocationType TELECOMMUTE and applicantLocationRequirements for fully remote jobs. Scope: Google Search JobPosting remote-job requirements; hybrid roles should not be marked as fully remote. Confidence: high · Verified: Google: JobPosting structured data

My chung stance on schema hasn’t changed cho job listings: I’m fan của markup as dài as nó earns bạn tìm kiếm feature. JobPosting clears đó bar cleanly — nó gate để Google cho Jobs, genuine SERP surface — so nó worth đang làm, và worth đang làm precisely. precision là toàn bộ game ở đây, vì job listings là một của nhiều hơn heavily policed structured-dữ liệu types Google chạy.

five bắt buộc properties

Google job-posting structured-dữ liệu tài liệu lists five bắt buộc properties. Miss bất kỳ một và trang không phải eligible:

  • title“The title of the job (not the title of the posting). For example, ‘Software Engineer’ or ‘Barista’.” (bản dịch) «Đó tiêu đề of đó job (không đó tiêu đề of đó posting). Ví dụ, ‘Software Engineer’ hoặc ‘Barista’.» (nhảy đến trích dẫn) Này trips mọi người lên constantly — đó giá trị là đó role, không trang của bạn <h1> hoặc SEO tiêu đề.
  • description — đó đầy đủ HTML job mô tả. Điều này không được chỉ repeat đó tiêu đề; Google wants đó real, hoàn tất mô tả.
  • datePosted — đó original date đó employer posted đó job, trong ISO 8601 (e.g., 2017-01-24).
  • hiringOrganization“The organization offering the job position. This must be the name of the company (for example, ‘Starbucks, Inc’).” (bản dịch) «Đó organization offering đó job position. Này phải được đó name of đó company (ví dụ, ‘Starbucks, Inc’).» (nhảy đến trích dẫn) Cho một job board này phải được đó real employer, không đó board.
  • jobLocation — đó physical worksite nơi đó employee sẽ báo cáo, không đó place đó job đã là posted. Không bắt buộc nếu bạn supply applicantLocationRequirements cho một remote role.

minimal, hợp lệ ví dụ:

{
  "@context": "https://schema.org/",
  "@type": "JobPosting",
  "title": "Software Engineer",
  "description": "&lt;p>Full job description in HTML…&lt;/p>",
  "datePosted": "2026-06-27",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "Example Co",
    "sameAs": "https://www.example.com"
  },
  "jobLocation": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "Raleigh",
      "addressRegion": "NC",
      "addressCountry": "US"
    }
  }
}

được khuyến nghị properties đó thực ra move needle

Eligibility xuất hiện từ bắt buộc five, nhưng CTR và filtering giá trị xuất hiện gần như hoàn toàn từ được khuyến nghị đặt — những điều này là các trường Google cho Jobs lets searchers filter on:

  • validThrough — date posting expires, trong ISO 8601. có nuance worth stating plainly: omit nó hoàn toàn nếu job không bao giờ expires, nhưng nếu job làm có end date, bao gồm nó và giữ nó chính xác. Leaving stale validThrough trong place là compliance vấn đề, không harmless default.
  • employmentTypeFULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN, VOLUNTEER, PER_DIEM, hoặc OTHER ( array là được phép).
  • baseSalary ( MonetaryAmount) — thực tế base salary provided by employer, không estimate; chỉ employer có thể supply nó. sử dụng unitText của HOUR/DAY/WEEK/MONTH/YEAR, và minValue/maxValue cho range. với pay-transparency laws spreading, Đây là increasingly không tùy chọn trên thực tế.
  • identifier ( PropertyValue) — employer unique job/req ID; matters cho de-duplication, especially on aggregators.
  • directApply — indicates liệu posting URL lets ai đó apply trực tiếp on đó trang web thay vì chuyển hướng elsewhere.

Beta properties

Google requested đặt của additional properties lại trong 2021 đó là vẫn flagged beta: educationRequirements.credentialCategory, experienceRequirements.monthsOfExperience, và experienceInPlaceOfEducation. những điều này grew out của Google Career Certificate push during pandemic-era job market. Google own cách diễn đạt tại launch là đó vì nó là vẫn developing Cách nó dùng information, bạn có thể không see bất kỳ appearance hoặc effect trong Google Search right away.

beta-thuộc tính cách diễn đạt trên là paraphrased từ Google launch statement as relayed trong công cụ tìm kiếm Journal March 2021 coverage; nó không phải quoted verbatim ở đây vì I sourced nó secondhand. xác nhận chính xác wording so với trực tiếp tài liệu trước khi treating nó as trực tiếp quote.

My take: thêm them nếu họ’re cheap để populate từ của bạn ATS, nhưng không hold lên launch cho them — họ’re tương lai-proofing, không eligibility.

Remote và hybrid jobs: TELECOMMUTE đã xong right

Remote markup có three distinct patterns, và getting nó sai là kinh điển nội dung-mismatch flag.

Fully remote. Set jobLocationType để TELECOMMUTE, cho jobs trong mà đó employee có thể hoặc phải hoạt động remotely 100% of đó time. Google requires mỗi TELECOMMUTE posting để specify ít nhất một eligible country — qua applicantLocationRequirements (Google được ưu tiên phương thức) hoặc, failing đó, một default taken từ jobLocation. có không hợp lệ scenario nơi một remote job carries zero location information: “unrestricted” (bản dịch) «unrestricted» trong thực tế có nghĩa là listing mỗi country bạn’ll accept applicants từ, không omitting đó trường. Đó on-trang mô tả phải rõ ràng chẳng hạn đó role là fully remote cũng — nội dung-schema parity áp dụng ở đây as nhiều as anywhere.

Evidence for this claim Google documents jobLocationType TELECOMMUTE and applicantLocationRequirements for fully remote jobs. Scope: Google Search JobPosting remote-job requirements; hybrid roles should not be marked as fully remote. Confidence: high · Verified: Google: JobPosting structured data
{
  "@type": "JobPosting",
  "jobLocationType": "TELECOMMUTE",
  "applicantLocationRequirements": {
    "@type": "Country",
    "name": "USA"
  }
}

Đó ví dụ là một US-chỉ remote role. Cho “remote within the EU” (bản dịch) «remote trong đó EU» hoặc bất kỳ multi-country role, repeat applicantLocationRequirements cho mỗi eligible country — đó thuộc tính name là đó giống nhau liệu bạn là naming một country hoặc ten.

Hybrid. MỘT hybrid role là không fully remote. Cho điều này một real office jobLocation, và chỉ thêm đó TELECOMMUTE flag nếu đó role genuinely qualifies as remote — Google own hybrid ví dụ pairs một physical jobLocation với jobLocationType (plus applicantLocationRequirements khi đó remote option là itself geography-restricted). Đó mistake để tránh: marking an occasional-hoạt động-từ-home role as TELECOMMUTE. đó là một nội dung mismatch đang chờ để happen — TELECOMMUTE là cho 100%-remote hoạt động, và đó trang có để lại đó lên. Khi trong doubt, đó Các cây quyết định tab có một “should this use TELECOMMUTE?” (bản dịch) «nên này dùng TELECOMMUTE?» walkthrough.

Evidence for this claim Google documents jobLocationType TELECOMMUTE and applicantLocationRequirements for fully remote jobs. Scope: Google Search JobPosting remote-job requirements; hybrid roles should not be marked as fully remote. Confidence: high · Verified: Google: JobPosting structured data

Google cho Jobs eligibility và regional availability

Một surprise cho international nhóm: Google cho Jobs không phải global. nó trực tiếp trong 50+ countries trên North America, Latin America, Europe, Middle East và North Africa, Sub-Saharan Africa, và Asia — nhưng không mọi nơi. nếu của bạn listings là technically perfect và vẫn không cho thấy, kiểm tra đó experience là khả dụng trong của bạn đích country trước khi bạn spend day gỡ lỗi của bạn JSON-LD.

nội dung policies đó nhận postings disapproved

Google job-posting nội dung policies là stricter hơn phần lớn structured-dữ liệu rules, và họ’re worth knowing by của họ thực names vì Search Console sẽ cite them. từ tài liệu củ Google:

  • Single-job các trang chỉ. “The JobPosting markup must only be used on pages that contain a single job posting.” (bản dịch) «Đó JobPosting markup phải chỉ là dùng on các trang đó contain một single job posting.» (nhảy đến trích dẫn) Này là đó single hầu hết phổ biến thực tế disapproval — không markup on listing/tìm kiếm-kết quả các trang.
  • Irrelevant nội dung — đó posting nội dung phải được relevant để đó job.
  • Incomplete nội dung — Google không cho phép job postings với incomplete job các mô tả.
  • Misrepresentation — không fake jobs, từ khóa stuffing, sai location dữ liệu, impersonation, hoặc posting ai đó khác listing không có authorization.
  • Profanity — không obscene, profane, hoặc offensive language.
  • Disguised quảng cáo / promotional nội dung — không affiliate-program listings hoặc other promotional nội dung dressed lên as một job.
  • Expired postings — Google không cho phép expired job postings. “Ideally you should remove expired job postings from your website.” (bản dịch) «Ideally bạn nên xóa expired job postings từ của bạn website.» (nhảy đến trích dẫn)
  • Jobs không có một way để apply — mỗi posting cần một way để apply (career-fair invites và login-gated postings là exempted).
  • Resume collection — chỉ cho open, actively-hiring positions.
  • Job các yêu cầu — đó markup là cho thực tế openings, không solicitations từ mọi người seeking hoạt động.
  • Payment bắt buộc — không bao giờ require an applicant để pay.
  • Editorial nội dung — proper grammar và capitalization; không all-caps spam.

qua-line: nội dung-schema parity là non-negotiable. mỗi giá trị trong JSON-LD — salary, remote status, employment loại — phải là visibly present trong human-readable trang, hoặc Google có thể treat mismatch as misrepresentation.

Xử lý expiration và removal correctly

Đây là part nhóm dưới-xây dựng. Expired-job hygiene là ongoing obligation, không một-time setup task — bạn cần xử lý ( cron job, ATS integration, hoặc lập chỉ mục API call) để pull role moment nó closes. Google sanctions three removal các phương thức:

  1. đặt validThrough để date trong past và leave trang lên briefly.
  2. Xóa trang hoàn toàn và trả về 404 hoặc 410.
  3. Strip JobPosting markup từ trang.

risk nếu bạn không: leaving expired postings trực tiếp violates nội dung policies, và Google nói phản hồi có thể bao gồm manual hành động đó xóa job posting(s) từ job tìm kiếm experience on Google — đó scoped để của bạn job listings’ eligibility cho Jobs feature, không tự động hình phạt so với rest của bạn trang web organic thứ hạng. Evidence for this claim Google requires expired job postings to be removed or marked with a past validThrough value and no longer exposed as active jobs. Scope: Google Search JobPosting expiration policy; stale postings can trigger manual actions. Confidence: high · Verified: Google: JobPosting structured data Setting tương lai validThrough on job đó thực ra filled làm không giữ nó “safe” — trang phải reflect reality.

cho nhanh hơn removal và cập nhật on job các URL cụ thể, Google khuyến nghị của nó lập chỉ mục API over đang chờ cho thông thường re-crawl hoặc sitemap ping — see tiếp theo section cho phạm vi và access caveats.

Duplicate và syndicated postings

rất phổ biến thực-world case: giống nhau req posted để của bạn careers trang three job boards. Đây là fine. John Mueller có đã nói đó có giống nhau job posted on khác websites là rất phổ biến và dự kiến, và đó hosting giống nhau listing tại khác times hoặc on khác subdomains nên là fine cũng — Google de-duplicates giống hệt listings thay vì penalizing them, và he indicated giống nhau áp dụng để Google cho Jobs.

Mueller remarks trên là paraphrased từ February 2022 Google Hangout as recapped by iloveseo.com; I’m summarizing thay vì quoting vì I sourced nó qua đó phụ recap. Điều gì vẫn áp dụng regardless: hiringOrganization phải là thực employer, và không misrepresentation.

lập chỉ mục API là scoped — và hiện tại gated

Google Lập chỉ mục API không phải một chung “get indexed faster” (bản dịch) «nhận được lập chỉ mục nhanh hơn» tool. Theo Google Lập chỉ mục API quickstart, điều này có thể chỉ là được dùng để crawl các trang với either JobPosting hoặc BroadcastEvent embedded trong một VideoObject — job postings là một of chỉ hai legitimate dùng cases. Submitting một URL là một notification, không phải là bảo đảm: điều này không bảo đảm đó Google sẽ crawl, chỉ mục, bao gồm, xếp hạng, hoặc display đó trang on bất kỳ particular timeline.

Hai điều có changed landscape ở đây:

  1. Access là hiện tại approval-gated. default theo-day quota là modest, và getting có ý nghĩa volume hiện tại requires filling out Google approval form thay vì là auto-enabled. Cite Google own Requesting Approval và Quota trang as chính nguồn cho điều này.
  2. Google là visibly protecting lane từ spam. Google reps có repeatedly warned so với misusing lập chỉ mục API để push arbitrary, unsupported trang types — khuyến nghị là để stick để được ghi lại, supported sử dụng cases. vì JobPosting là một của chỉ hai của những điều đó, điều này matters trực tiếp: abuse API cho non-job nội dung và bạn risk losing access để channel của bạn job listings thực ra phụ thuộc on.
Ngành reporting (dstribute.io, alexanderchukovski.com) frames shift từ near-open lập chỉ mục API access để authorized-partner/approval model as rolling out khoảng trên 2024–2025. I’m treating những điều đó phased dates as ngành-sourced color, không Google-confirmed line by line — chính, citable fact là Google own quota-pricing/approval trang. rep warnings về API misuse là surfaced qua phụ aggregation, so I’ve paraphrased thay vì quoted them; verify chính xác wording và nền tảng so với chính nguồn trước khi quoting trực tiếp.

Khắc phục sự cố trong Search Console

Khi listing không hiển thị, hoạt động nó trong order — Playbooks tab lays điều này out as linear runbook, nhưng ngắn version:

  • Validate markup với Rich Kết quả Kiểm thử và xác nhận all five bắt buộc properties parse không có lỗi.
  • xác nhận một job theo trang — phần lớn phổ biến disapproval là JobPosting markup on listing/chỉ mục trang.
  • kiểm tra nội dung-schema parity — mỗi JSON-LD giá trị (salary, remote status, employment loại) phải là visible on trang.
  • kiểm tra validThrough và expiry — expired posting vẫn carrying trực tiếp markup nhận disapproved.
  • xác nhận regional availability — Google cho Jobs không phải khả dụng mọi nơi.
  • kiểm tra Search Console’s rich-kết quả báo cáo cho cụ thể disapproval reason và khắc phục so với đó named policy.
Caveat, theo my nguồn research: ở đó có là các báo cáo của 2026 Tìm kiếm Console job-listing reporting vấn đề affecting Cách job rich kết quả surface trong báo cáo. I haven’t là able để xác nhận đó so với chính Google nguồn, so treat nó as unverified possibility — nếu của bạn báo cáo looks sai nhưng markup validates cleanly trong Rich Kết quả Kiểm thử, reporting glitch là worth ruling trong, nhưng xác nhận trước khi concluding nó Google-side bug.

Bing và JobPosting

Bing hỗ trợ dữ liệu có cấu trúc broadly — JSON-LD, Microdata, RDFa — và cung cấp Schema Markup Validator, và nó lists JobPosting among supported types cho careers-trang và job-board markup. nhưng Bing làm không publish JobPosting-cụ thể eligibility spec anywhere near as detailed as Google, và của nó job-tìm kiếm surface có far thấp hơn được ghi lại rigor. honest summary: Bing dùng giống nhau schema.org vocabulary và giống nhau single-job-theo-trang principle, với nhiều nhẹ hơn validation và nhiều thinner tài liệu. không assume Bing/Google parity ở đây — mark lên cho Google stricter spec và Bing là covered theo mặc định.

I không thể xác nhận trực tiếp, canonical Bing Quản trị viên web Tools help URL cụ thể titled cho JobPosting during my research truyền. thay vì guess URL, I’m stating khoảng trống plainly: Bing job-listing tài liệu là genuinely thin. Re-verify hiện tại Bing help trang trước khi thêm trực tiếp link.

nơi điều này sits

JobPosting là một loại trong rộng hơn dữ liệu có cấu trúc hub điều này bài viết lives dưới, alongside commerce-focused Sản phẩm schemaProductGroup schema markup và wider Commerce schema family. nếu bạn’re implementing trên trang web, treat them giống nhau way: sử dụng loại đó maps để confirmed tìm kiếm feature, giữ JSON-LD trong parity với visible nội dung trang, và validate trước khi bạn ship.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.