Skip to main content

Posts

Careers Website SEO Study 2026: how 60 large employers set up Google for Jobs

a pink and black background with black circles and text
a person smiling at camera
See other posts from by Melanie Murphy CMO

We crawled the careers websites of 60 large employers, rendered in Chrome, and checked 25 SEO and structured data points against Google's JobPosting documentation. This study shows what is in place, what is missing and how to fix it.

82%of job pages carried JobPosting markup
72%had every property Google requires
43%had no H1 in the initial HTML
17%set baseSalary in their JobPosting

Executive summary

  1. We crawled the careers websites of 60 large employers (the home page and one job page each, rendered in Chrome, on 30 October 2026) and checked 25 SEO and structured data points against Google's JobPosting documentation.
  2. 49 of 60 job pages (82%) carried JobPosting markup, and 43 of 60 (72%) had every property Google requires. 45 of 60 (75%) delivered the markup in the initial HTML, without needing JavaScript.
  3. The recommended properties were much less common: employmentType on 73% of sites, directApply on 48%, validThrough on 18% and baseSalary on 17%.
  4. 26 of 60 job pages (43%) had no H1 in the initial HTML, and only 25 of 60 (42%) kept the job page title tag within 60 characters.
  5. Basics were mostly in place: all 60 job pages returned HTTP 200, 58 of 60 had no noindex tag and 53 of 60 had a canonical tag. Sector differences were small (complete markup on 67% to 75% of sites in every sector group).
  6. Separate subgroup, clearly labelled: the 8 Happydance careers websites we tested passed a median of 12 of 12 foundation checks against 10 of 12 for the 60-site sample, and 6 of 8 passed all twelve against 6 of 60.
  7. This is a technical audit of what is on the page. It does not measure rankings, indexation counts or traffic, and it covers one job page per site.

How to read this study

We checked what a search engine sees on each site: whether the job page can be crawled and indexed, whether it carries the structured data Google asks for, and whether the basic on-page elements are in place. A pass means the check was met on the pages we tested. A fail does not mean the site is missing from Google for Jobs; We did not test what Google shows.

Test method

  • Sample: the same 60 large employers as the Careers Website Speed Report 2026 (a convenience sample across 14 sectors and four regions), plus the 8-site Happydance subgroup reported separately.
  • Pages: each site's home page and one job page, chosen and validated automatically.
  • Rendering: Chrome with JavaScript on, five seconds after the DOM loaded, plus a second pass with JavaScript off to read the initial HTML.
  • Structured data: JSON-LD parsed including nested graphs and lists. JobPosting required properties checked against Google's documentation: title, description, datePosted, hiringOrganization and jobLocation with addressCountry (or a fully remote job with applicantLocationRequirements).
  • Recommended properties checked: validThrough, employmentType, baseSalary, directApply, identifier and jobLocationType.
  • Crawlability: robots.txt read for Googlebot rules on the job URL and for a sitemap declaration; noindex and canonical read from the rendered page.
  • Lighthouse SEO scores come from the same runs as the Speed Report (mobile, medians of three runs).

Results: how top employers set up careers website SEO

The core checks

How many top employers pass each careers website SEO check

Share of 60 employers passing, higher is better; job page unless stated.

  • Job page returns HTTP 200100%
  • No noindex on home or job page97%
  • Job URL not blocked by robots.txt for Googlebot97%
  • Job page has a canonical tag88%
  • Job page has a meta description87%
  • JobPosting markup on the job page82%
  • JobPosting markup in the initial HTML75%
  • All required JobPosting properties present72%
  • Job page H1 present in the initial HTML57%
  • Job page title tag 60 characters or fewer42%

One job page per site, rendered with JavaScript on unless stated.

Crawl and indexing basics were largely sound. The gaps were in the details that help a job page be understood: 18% had no JobPosting markup, 43% had no H1 in the initial HTML, and 58% had a job page title tag over 60 characters, which search results may truncate.

JobPosting schema: required and recommended properties

JobPosting property coverage across 60 employers

Share of the 60 sites whose job page markup includes each property.

  • Required properties complete72%
  • employmentType73%
  • identifier72%
  • directApply48%
  • validThrough18%
  • baseSalary17%

Required properties are set by Google. employmentType, identifier, directApply, validThrough and baseSalary are recommended.

Of the 49 sites with JobPosting markup, 43 (88%) had every required property. In five of the six sites with incomplete required markup, the gap was a missing addressCountry in the job location. Google says JobPosting belongs on single-job pages only; none of the 60 sites placed it on the home page.

Google recommends validThrough and a way to retire expired jobs, and recommends baseSalary and directApply where they apply. Few employers set them, which is the clearest opportunity in the data.

Sector view

Complete required JobPosting markup by sector group

Share of sites in each sector group with every required property.

  • Finance and insurance70% (7 of 10)
  • Healthcare, energy, auto, industrial and services71% (10 of 14)
  • Retail, food and consumer goods67% (8 of 12)
  • Technology, telecoms and media75% (9 of 12)
  • Travel, hospitality and transport75% (9 of 12)

Sector groups are our own and small, so we do not rank sectors.

Happydance subgroup (labelled, separate)

The 8 Happydance careers websites we tested are reported here separately and never mixed into the 60-site figures. Happydance publishes this study and has an interest in the result.

Happydance subgroup vs other sites: six careers website SEO checks

Share of sites passing, higher is better. Subgroup: 8 Happydance sites, labelled and separate from the 60.

Happydance subgroup (8)Other sites (60)

  • Canonical points to the job page itself100%
    63%
  • Job page H1 in the initial HTML100%
    57%
  • JobPosting in the initial HTML100%
    75%
  • JobPosting title matches the H1100%
    65%
  • Home page has exactly one H1100%
    73%
  • Home page has Organization schema100%
    45%

Six selected checks; all 25 results are in Appendix A. Small subgroup.

Foundation checks passed: median of 12

Twelve foundation checks (indexing, JobPosting basics, titles and meta). Higher is better.

Happydance subgroup (8)Other sites (60)

  • Median checks passed of 1212 of 12
    10 of 12

The foundation list is in Appendix A. It excludes salary, directApply, validThrough and title length, which few sites pass. Small subgroup.

Sites passing all 12 foundation checks

Share of sites in each group. Higher is better.

Happydance subgroup (8)Other sites (60)

  • Sites passing all 1275%
    10%

Happydance subgroup: 6 of 8. Main sample: 6 of 60.

MeasureHappydance subgroup (8)Main sample (60)
Median foundation checks passed of 121210
Sites passing all 126 of 86 of 60
Median Lighthouse SEO score (mobile)9692
JobPosting in the initial HTML8 of 845 of 60
Job page H1 in the initial HTML8 of 834 of 60

The subgroup is small and consists of Happydance builds, so it shows what these 8 sites measured, not what every Happydance site will measure. Appendix A lists every check, including those where the subgroup passes fewer sites.

Careers website SEO fix list

  1. Put JobPosting markup on every single-job page and nowhere else. Check it matches the visible page.
  2. Include every required property: title, description, datePosted, hiringOrganization, and jobLocation with addressCountry (or applicantLocationRequirements for fully remote jobs).
  3. Serve the markup and the H1 in the initial HTML, not only after JavaScript runs.
  4. Add validThrough, and remove or update the markup when a job closes. Google says expired jobs need a past validThrough or removal.
  5. Add employmentType, identifier, directApply and baseSalary where they apply.
  6. Use one H1 per page and a unique job title tag within about 60 characters.
  7. Add a canonical tag pointing to the job page's own URL.
  8. Declare the sitemap in robots.txt and keep job URLs crawlable.
  9. Consider Google's Indexing API for job URLs, as Google recommends, and keep a sitemap too.
  10. Validate in the Rich Results Test and watch URL Inspection and Search Console after changes.

Limitations

  • Convenience sample of 60 recognisable employers, not a representative sample. North America is over-represented.
  • One job page per site. A site can pass on one job page and fail on another, and some sites mark up only some jobs.
  • We read the page as a browser sees it from one data-centre location. Bot protection or personalisation can change what a site serves.
  • No Search Console, indexation or ranking data. We cannot say whether Google shows a site's jobs in Google for Jobs.
  • addressCountry was read from the first jobLocation listed, so a site that lists the country only in a later location would show as incomplete.
  • Our JobPosting checks are our reading of Google's documentation, not Google's own validator. Validate your own pages in Google's Rich Results Test.
  • Happydance publishes this study. The subgroup is small and was chosen as Happydance builds.
  • Sites change at any time. Results describe 30 October 2026.

Frequently asked questions

What is careers website SEO?

Careers website SEO is making a careers website and its job pages easy for search engines to crawl, understand and show. It covers crawlability, titles and meta descriptions, headings, canonical tags and JobPosting structured data.

How do you get jobs to show on Google for Jobs?

Google's documentation says to add JobPosting structured data to each single-job page, keep it consistent with the visible page, and make the pages crawlable. Google also recommends the Indexing API for job URLs and still advises submitting a sitemap.

What is JobPosting schema?

JobPosting is a schema.org type that describes a job in structured data, usually as JSON-LD. Google uses it to understand a job and can show it in job search results.

Which JobPosting properties are required by Google?

Google requires datePosted, description (in HTML), hiringOrganization, jobLocation (with addressCountry) and title. For fully remote jobs, applicantLocationRequirements can stand in for jobLocation.

Which JobPosting properties are recommended?

Google recommends applicantLocationRequirements, baseSalary, directApply, employmentType, identifier, jobLocationType and validThrough.

What happens to expired jobs in structured data?

Google says expired jobs should carry a validThrough date in the past, or the page or the markup should be removed.

Can JobPosting go on the careers home page?

No. Google says JobPosting markup belongs on single-job pages, not on list pages. None of the 60 employers in our study put it on the home page.

How can I test my careers website markup?

Run a job page through Google's Rich Results Test, then check URL Inspection and Search Console after the page is live.

Related reading

Sources

Right of reply and corrections

If you own a careers website that was tested and believe a result is wrong, tell us and we will check it and correct it. Employer names are not published in this edition.

Appendix A: all checks

Show all 25 checks
CheckMain sample (60)ShareHappydance subgroup (8)Foundation 12
Job page returns HTTP 20060100%8
No noindex on home or job page5897%8yes
Job URL not blocked by robots.txt for Googlebot5897%8yes
Job page has a canonical tag5388%8yes
Job page canonical points to its own URL3863%8
Job page H1 present in the initial HTML3457%8yes
Job page text present in the initial HTML4982%8
Sitemap declared in robots.txt3863%7
JobPosting markup on the job page4982%8yes
JobPosting markup in the initial HTML (no JavaScript)4575%8yes
All required JobPosting properties present4372%6yes
JobPosting: employmentType (recommended)4473%8yes
JobPosting: identifier (recommended)4372%8
JobPosting: validThrough (recommended)1118%1
JobPosting: directApply (recommended)2948%1
JobPosting: baseSalary (recommended)1017%0
JobPosting description uses HTML paragraphs or lists2237%8
JobPosting title matches the page H13965%8yes
No JobPosting markup on the home page60100%8
Job page title tag 60 characters or fewer2542%2
Job page has a meta description5287%8yes
Home page title tag 60 characters or fewer5388%7
Home page has a meta description5795%8yes
Home page has exactly one H14473%8
Home page has Organization or WebSite markup2745%8yes

The twelve foundation checks were set as the core indexing, JobPosting basics, title and meta checks. They exclude salary, directApply, validThrough, title length and a few others that are less widely adopted or optional.

Check your own careers website

Run the same kind of checks on your own careers website with the free audit scorecard.

Get the free audit scorecard

Related Articles