TRG Digital
Free tool

Google for Jobs
checker

Google for Jobs lists a job only when its page carries valid JobPosting structured data that Google can crawl and index. Paste a job advert URL and this checker tests the markup, the required and recommended properties and the indexing settings, then tells you what to fix.

Check a job page ↓
Run the check

Test a job advert

Rules follow Google's job posting structured data documentation. Up to 10 checks an hour.

Use the page for a single job, not your jobs listing. We read the page once, as Google would before running scripts, and don't store its content.

What it checks

Ten checks on one job page

  1. 01Page statusThe page returns HTTP 200, not a 404, 410, 403 or server error.
  2. 02IndexingNo noindex in the robots meta tag or the X-Robots-Tag header, and robots.txt lets Googlebot in.
  3. 03CanonicalThe canonical tag doesn't point Google at a different URL, such as the jobs listing.
  4. 04Valid JSON-LDEvery structured data block parses. One stray comma makes Google ignore the whole block.
  5. 05JobPosting foundIncluding inside @graph, arrays and nested objects. Microdata is noted.
  6. 06Required propertiestitle, description, datePosted, hiringOrganization (with a name) and jobLocation, or the remote alternative.
  7. 07DatesvalidThrough hasn't passed and datePosted isn't in the future.
  8. 08Description lengthA description that's missing or only a couple of lines.
  9. 09Recommended propertiesbaseSalary, employmentType, validThrough, identifier and directApply, with Google's allowed values.
  10. 10ATS iframesJobs shown in an iframe from an ATS with no JobPosting on your own page.
JobPosting schema

Required and recommended properties

These are the properties Google documents for JobPosting structured data. Required properties decide whether a job is eligible at all; recommended ones improve how it shows and who sees it. Google recommends JSON-LD, and says it can read JSON-LD that is injected with JavaScript.

Required

title
The job title only: no salary, codes, dates or company name.
description
The full advert as HTML: responsibilities, qualifications, skills, working hours, education and experience. It can't be the same as the title.
datePosted
When the job was first posted, in ISO 8601 (for example 2026-01-24).
hiringOrganization
The company hiring, with a name. Google allows "confidential" for an anonymous client.
jobLocation
Where the person will work, including addressCountry. A 100% remote job can use applicantLocationRequirements with jobLocationType TELECOMMUTE instead.

Recommended

baseSalary
The actual base pay from the employer, with currency, an amount or range, and unitText of HOUR, DAY, WEEK, MONTH or YEAR.
employmentType
FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN, VOLUNTEER, PER_DIEM or OTHER (case-sensitive).
validThrough
The closing date. Leave it out only if the job never expires or the date is unknown.
identifier
Your own unique reference for the job.
directApply
Whether people can apply on the page without extra clicks, form steps or logins.
jobLocationType / applicantLocationRequirements
For fully remote jobs: TELECOMMUTE, plus the countries or regions applicants can work from.
Diagnosis

Why jobs don't show in Google for Jobs

When a recruitment website's jobs are missing from Google for Jobs, the cause is nearly always on the job page itself. These are the six we see most, in the order to rule them out. For the full walk-through read why your jobs are not showing on Google for Jobs, and for how it works end to end, our Google for Jobs guide.

01

No JobPosting markup on the job page

Google lists jobs from pages with JobPosting structured data. Many recruitment sites show jobs without it, or only on the listing page.

02

The job sits in an iframe or widget

If your ATS shows jobs in an iframe or in a script-loaded widget, the markup belongs to the ATS's page, not yours. Each job needs its own page on your domain.

03

Missing required properties

No datePosted, a hiringOrganization without a name, or a jobLocation without a country are the usual gaps in older job board plugins.

04

The page can't be indexed

A leftover noindex, a robots.txt rule on /jobs/ or a login wall keeps Google out. Google says job pages must not be blocked by robots.txt, noindex or login requirements.

05

Expired or misdated jobs

A validThrough date that has passed marks the job as expired. Google asks you to remove filled jobs, so stale adverts work against you.

06

Markup that doesn't match the page

Google's guidelines say all information in the markup must be visible on the job page, and each page should carry one job, not a list.

Source: Google Search Central, job posting structured data. To see what Google renders, including script-built markup, use the Rich Results Test.

Fix it properly

Every job, every time

We build job pages that are generated from your ATS with complete JobPosting markup, and removed when the role closes. Or start with a free audit of your whole site, which includes a Google for Jobs check across several of your adverts.

Get a free website audit ↗Job pages & careers sites ↗
FAQs

Google for Jobs, answered.

All FAQs →
Related
GuideJobs not showing on Google for Jobs? ↗GuideGoogle for Jobs guide ↗GuideStructured data for recruitment sites ↗ServiceATS-connected platforms ↗ResourcesAll free tools and resources ↗

Ready to
stand out?

Book a free 30-minute strategy call. We'll review your website, search visibility and brand, and show you where the growth exists.

Book a strategy call ↗