Employment type schema is one of the checks I take seriously in the Job Boards category. It is high-priority, and for a job site it is not really an SEO nicety — it is the difference between showing up in Google’s job experience with a clean listing or being quietly dropped from it.
What this check is really about
Google reads job listings through JobPosting structured data, and one of the fields it looks for is employmentType. This check is flagging that your job pages either omit that field or fill it with a value Google does not recognise. The accepted values are a fixed vocabulary — FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN, VOLUNTEER, PER_DIEM, OTHER — and Google is strict about them. “Full-time,” “Freelance,” or a localised label will not validate. The machine wants the enum, not the human phrasing.
When it fails, nothing visibly breaks on the page. That is exactly why it slips: a recruiter reads the listing fine, so no one notices the field Google needed is missing or malformed underneath.
Why it earns a high priority
Structured data is how a job board competes for the rich, filterable job listings Google shows above the regular results. Get employmentType right and your roles become eligible for those filters — a candidate narrowing to “part-time” can actually find you. Get it wrong and you are relying on ten blue links while competitors sit in the enhanced experience. On a site whose entire value is matching people to roles, that visibility is the product.
How I’d fix it in WordPress
Difficulty Level: EASY – This fix is straightforward and can typically be completed by anyone with basic WordPress knowledge.
Estimated Time: 10 min
The order I work in:
- Run the audit to get the exact list of job URLs that fail, so you fix the pattern once rather than page by page.
- Find where the schema comes from. If you run a jobs plugin (WP Job Manager, Simple Job Board) it likely outputs
JobPostingalready — the field is either unmapped or empty. If your SEO plugin generates it, the mapping lives there. - Map your “employment type” field to one of Google’s enum values. If your form lets recruiters type free text, add a dropdown constrained to the eight accepted values so the bad data stops at the source.
- Validate a fixed page in Google’s Rich Results Test, then re-run the audit and check Search Console after Google recrawls.
The trap: fix the field, not the symptom
Here is the mistake I see teams make, and the reason this check comes back a month later. They hand-edit the three listings the audit flagged, mark it done, and move on. Then the next recruiter posts a role, types “Full-time” into a free-text box, and the failure is back. Structured data problems are almost always template or input problems wearing a content costume.
So fix it at the point of entry. Constrain the input to the enum, or add a mapping layer that translates whatever recruiters type into the value Google accepts. Do that once and every future listing is correct without anyone thinking about it. That is the difference between clearing a check and closing it.
Tools I actually reach for
- Yoast SEO – Comprehensive SEO plugin with built-in checks
- Rank Math – Feature-rich SEO plugin with detailed analysis
- Google Search Console – Free tool to monitor your site’s search presence
- SEO Roadmap – Complete SEO audit and action plan tool
Where people go wrong
- Using a human-readable label (“Freelance,” “Full time”) instead of the exact enum value.
- Fixing the flagged pages by hand and leaving the input form unconstrained, so the problem returns.
- Editing schema live on production without checking a page in the Rich Results Test first.
- Assuming the fix worked without waiting for Google to recrawl and confirming in Search Console.
This guide is part of the SEO Roadmap knowledge base – your complete resource for WordPress SEO optimization.
Last modified: August 2, 2026
United States / English
Slovensko / Slovenčina
Canada / Français
Türkiye / Türkçe