Rank Math
One canonical, one sitemap, one set of job data
Rank Math does more than Yoast on job pages, so the division of work is different — and it hinges on a module you may or may not have switched on. W3Bullhorn checks which, rather than assuming, because getting it wrong in either direction costs you.
Detected from the running plugin, not from a settings table.
One of 412 roles, each on its own URL. Eligibility for Google’s job experience remains Google’s decision.
| Page titles | Rank Math. W3Bullhorn emits none |
|---|---|
| Canonical addresses | Rank Math. It emits one on every URL including archives, so the plugin stands down |
| XML sitemap | Rank Math. It switches core sitemaps off and ships its own, and the plugin never re-enables them |
| Job structured data | Rank Math **if its rich-snippet module is on**. Otherwise W3Bullhorn, so a job page is never left with none |
| Indexing rules for filtered listings | W3Bullhorn, and this needed the same fix as on Yoast sites |
The conditional one
Standing down from structured data, but only when there is something to stand down for
If Rank Math’s rich-snippet module is on, it emits job structured data of its own, and two sets on one page is worse than either. So the plugin stands down. If that module is off, Rank Math emits none, and standing down would leave your job pages with no job data at all — which is the difference between appearing in Google for Jobs and not.
- The module setting is read, not assumed
- A setting that cannot be understood is treated as "off", so the plugin keeps emitting
- Never two sets of job data on one page
- Never zero sets either
A privately owned main contractor in Leeds is hiring a senior QS to take commercial ownership of a £40m mixed-use scheme through to practical completion, reporting to the commercial director.
- Five years’ post-graduate experience with a main contractor
- Valuations above £5m run without supervision
Defensive reading
Why it fails safe in that direction
A deliberate choice, and worth the explanation.
The module setting is read defensively: a stored value that is not the shape the plugin expects cannot be interpreted as "the module is on". That asymmetry is intentional. A wrong "on" silently removes structured data from every job page on the site — an invisible failure you would discover from a traffic graph months later. A wrong "off" produces, at worst, two sets of job data, which is visible the first time anybody tests a page.
Given a choice between a quiet failure and a loud one, the loud one is correct.
Robots
The filtered-listing fix applies here too
Like Yoast, Rank Math replaces WordPress’s own robots output with its own. The plugin’s instruction that filtered and sorted listing addresses should not be indexed was being calculated and then discarded on any site running either plugin. It was found by examining what each surface actually does rather than whether a compatibility hook existed, and fixed so the instruction survives.
Without that fix, the symptom is facet URLs in Google several weeks later — a careers section competing with itself, with nothing in any log to explain it.
FAQ
Questions about Rank Math and job pages
Short answers here. Anything else, ask us directly.