Think it’s difficult to attract job seekers to your website? Think again! Google for Jobs has the potential to dramatically grow candidate traffic and increase conversion rates on job boards by connecting Google user queries to job opportunities based on skills and location.

This guide will walk you through the most important aspects of Google for Jobs (GFJ), including:

The implementation of GFJ will focus on WordPress as this consists of 37% of all websites on the internet-- so it's likely you will be applying this to a WordPress site!

What is Google for Jobs (GFJ)?

Google for Jobs is a job board by Google that displays within the search engine results pages (SERP) whenever a query with the necessary intent is searched for in Google. This is commonly referred to as a 'SERP feature'. You can see this demonstrated by the search query "seo jobs london":

How Does Google For Jobs Work?

You cannot post jobs directly to Google, you have to add structured data called Schema to your job posts, which, in turn, must be crawled and indexed by Google to show up in the Google for Jobs SERP feature.

Job posting schema

Here is what a complete GFJ json ld job posting schema looks like courtesy of Google's guidelines:

    <title>Software Engineer</title>
    <script type="application/ld+json">
      "@context" : "",
      "@type" : "JobPosting",
      "title" : "Software Engineer",
      "description" : "<p>Google aspires to be an organization that reflects the globally diverse audience that our products and technology serve. We believe that in addition to hiring the best talent, a diversity of perspectives, ideas and cultures leads to the creation of better products and services.</p>",
      "identifier": {
        "@type": "PropertyValue",
        "name": "Google",
        "value": "1234567"
      "datePosted" : "2017-01-18",
      "validThrough" : "2017-03-18T00:00",
      "employmentType" : "CONTRACTOR",
      "hiringOrganization" : {
        "@type" : "Organization",
        "name" : "Google",
        "sameAs" : "",
        "logo" : ""
      "jobLocation": {
      "@type": "Place",
        "address": {
        "@type": "PostalAddress",
        "streetAddress": "1600 Amphitheatre Pkwy",
        "addressLocality": "Mountain View",
        "addressRegion": "CA",
        "postalCode": "94043",
        "addressCountry": "US"
      "baseSalary": {
        "@type": "MonetaryAmount",
        "currency": "USD",
        "value": {
          "@type": "QuantitativeValue",
          "value": 40.00,
          "unitText": "HOUR"

This looks overly complicated to type out manually yourself. There are some 'schema shortcuts' available so that you can avoid the heavy lifting here:

Therefore in order to gain visibility for the job posting you don't have to painstakingly fill out every field.

...In lieu of a good example of how this would be used I can provide an example by Joe Hall on his blog providing ChatGPT SEO use case prompt examples with the output:


Generate JSON-LD schema for a local restaurant named Chez Joe’s Gourmet Hotdogs at the address 1234 Frankfurter Street, Columbia SC 29201 with the phone number 803-555-3434.



  "@context": "",

  "@type": "Restaurant",

  "name": "Chez Joe's Gourmet Hotdogs",

  "address": {

    "@type": "PostalAddress",

    "streetAddress": "1234 Frankfurter Street",

    "addressLocality": "Columbia",

    "addressRegion": "SC",

    "postalCode": "29201"


  "telephone": "803-555-3434"


What can it do?

What impact can GFJ have

How to Rank and Drive Traffic

You can watch a video of some tips for GFJ that I presented with Authoritas. Alternatively, if you would prefer to read you can carry on reading the tips from Marco Bonomo and myself...

There are Loads of Great Free Resources to Help You.

Become familiar with the resources. These include Google's official guidelines, for the most up to date best practice on implementation; SEO resources on the subject such as his own article on Search Engine Land on how to optimise for better rankings; and finally how to implement to actually implement and test the schema using tools like Merkle's Schema Markup Generator which will help you create the necessary JSON-LD and actually test it as well.

Good Quality Job Adverts are a Must!

Good quality ad copy is required. After all, there is no point in ranking your job ads if the content is rubbish-- sorry recruiters but your job ads are generally lacking in quality.

Marco outlines what your job advert should include, not just from a ranking perspective but for user experience and conversions as well:

Additionally, I would really insist on adding in the salary and benefits into your job ad, especially if you are a recruitment agency. Recruitment agencies have a disadvantage as they post jobs anonymously, however, they do have an advantage by being able to be transparent about salary upfront (an advantage that some in-house recruiters do not get). Anecdotally Coburg Banks has reported an increase of 62% in applications when including salary on their job ads; Jobsite reports a 25%-35% drop when no salary info is posted; Ukrecruiter, the recruitment knowledge network also reports that 82% of professionals say that salary is the most important factor when looking for a new job. So probably best to include that.

Location, Location, Location

Another area where recruiters are falling down is with location specifics. It used to be implied that all jobs were on-site unless otherwise stated, since 2020 this has reversed. Now some adverts are just confusing like this one:

Sorry, but is your role remote or hybrid? Turns out that it's hybrid so why add 'work from home' on the job ad as the primary location.

Marco particularly emphasises being precise with your location as well. Down to the specific street and postcode, this is because Google uses your IP address to determine the suitability of job adverts.

How to Specify a Remote Job that Still Requires a Location.

Remote jobs are particularly problematic because for tax reasons they will still need to specify an actual location. This is how it's done:


Then you need to specify a location:

"@type": "Country", 
"name": "USA"}

Reporting on GFJ Success

Finally, Marco talks about reporting success and impact. I cannot really go into much detail here that has not already been covered in his very good article on the subject, the only real thing to emphasise is that all the data is collected in Google and can be curated into a Google Data Studio dashboard for easy reporting. I do go into more detail in this section of the article on what to actually report on.

Credit: Search Engine Land

Keyword research for your job posts.

Avoid 'ninjas', 'jedis' and 'rockstars'. Look at ranking your job posts as an SEO initiative, at the base of any keyword research initiative is keyword research. this does not have to involve signing up to an expensive SEO tool for monthly use but rather you can sign up for a free 7 day trial with ahrefs for $7 and do all the keyword research required for the whole year done then (or near enough). Ahrefs' keyword research guide will make sure you make good use of this trial period.

You want to avoid 'ninjas', 'jedis' and 'rockstars' and other 'cutesy' job role names that people are not going to be searching for.

Something like 'Social Media Ninja' is not going to be something people search for when looking for a new role, and even if they did you would probably want to stay away from anyone who refers to themselves as a 'ninja'.

Continual Test and Improve Job Adverts.

There are semantic similarities between quite a few jobs, especially within tech roles. If you restrict yourself to generic job titles such as 'web developer' or 'front end developer' you are probably missing out on some niche searches specific to the tech stack involved.

This is another reason why it's important to get your site information architecture right as well, as 'front end developer jobs', 'javascript jobs', and 'react jobs' can all have the same search intent, however, when posting your jobs on GFJ the results could all be very different.

There's no reason why you cannot use two different adverts for the same job on occasions to test the water, this is why measurement is so important if you do not know impressions, CTRs of your job ad on GFJ then you're just guessing.

Don't Abuse the Schema

Google come down on you hard if you end up not using this Schema as intended as per their guidelines, this does include the need to correctly expire your job advert.

'Manual actions' are very bad, as it means Google will essentially stop ranking your pages and you will no longer have any traffic until you rectify the issue-- this can take a while!

The easiest way is to remove the page so that there is a 404 or 410 server response.

Getting Started: Adding Google for Jobs to your WordPress Site.

Bypassing Developer Resource and Adding GFJ to Existing Job Board / Site

If your site or job board is already in production and GFJ is now an afterthought fear not as you can add the necessary schema with Google Tag Manager.

There are 5 good reasons for doing it this way outlined in this LinkedIn article here.

  1. Fast deployment time with low development costs
  2. Bypass the limitations of your ATS or careers site
  3. Rely on GTM’s powerful features to correct job details
  4. Ongoing optimisation in bulk or in detail
  5. Easy to upgrade the GFJ set-up with new features

There is a lack of information on the actual specifics of doing this for job schema (which means I will have to create a guide at some point in the future) in the meantime Erudite give a decent top-level breakdown of the basics of adding schema to GTM.

WordPress Plugins

If budgets are tight the plugin option is a way to get your project wrapped up very quickly and cheaply.

WP Job Manager is a plugin I have used before which is easy to use and integrates with GFJ straight out of the box. This plugin was the best one I could find and simple enough to use.

There's no point reinventing the wheel here, it's also regarded as one of the best options by both WPbeginner and WPExplorer.

It's even open source so you can see how it works on GitHub.

Build your own from the Ground up

A theory I will be testing soon is building a job board on top of Woocommerce and Oxygen page builder, which should be a low-cost alternative to building your own from the ground up.

Building your own job site from the ground using a freelance WordPress developer will cost you £1000+ but is a great option if you are looking for scalable ways to post many jobs with the GFJ schema in place.

As can be seen with this Builtvisible example JSON-LD is added to the page via the custom fields in the WP backend:

Points to note are that JSON-LD is the preferred structured data type by Google and this can be added to either the <head> or the <body> of the page.

Getting your Pages Crawled and Indexed.

If you have got the Schema onto your job ad then you have done the bulk of the work. Now the jobs have to be crawled and indexed in a timely manner.

In order to optimise crawling and indexing you should do the following:

Further Reading

Official Google Guidelines for Google For Jobs Posting

Builtvisible's Guide to Recruitment Website SEO

Recruitment website optimisation part 2: SEO for Job Postings

Google for Jobs: Everything you need to know to optimize for better ranking

I have decided that I like WordPress so much that I am going to build a site from scratch and document it.

Update: after signing up to Oxygen Builder when it was on offer I have now pivoted this project into Oxygen build documentation as the build is so good and still allows you to delve technically into style sheets, HMTL and PHP. Therefore Part 2 will be about my experiences with that.

What is the Objective Here?

Getting better at technical SEO and product ownership by building upon a WordPress (WP) site from the bottom up. This is particularly relevant to site speed and Core Web Vitals, but also other things like JavaScript, using APIs but also very useful for working with developers.

Gives me something to blog about-- I am also planning on blogging about various other topics such as SEO strategy, tech SEO, SEO automation.

I actually really enjoy front end development and I have a hypothesis that I may well have become a WP developer if I had chosen a different career path in 2011. So the scratch needs to be itched.

Gives me chance to benchmark against recommendations in the O'Reilly book Designing for Performance.

Last but not least, I believe that SEO will be blending closer to product marketing/product ownership (for the sites where organic search is a dominant part of the marketing channel mix) in the coming years. I am evening seeing an increased need for component-level testing on CMS' over the last year. In short to give the best product (read: website) recommendations you need to have good knowledge yourself.

The WP market share is massive (40% of all websites and 64% of CMS’ according to Kinsta) and as an SEO Consultant, I am going to be involved in WordPress for a while still, and with powerful ecommerce options available like WooCommerce it would be solid option for learning more about.

Setting up the WordPress Dev Environment

Using is a decent option for this type of thing and would recommend for setting up quick and easy WP dev environments. However, I will be going for VS Studio to get the job done and backing files up on SQL server first before editing files.

XAMP as an alternative?

Choosing the Theme: Avada vs GeneratePress vs Underscores

Historically I have use Avada in the past, however, themes like this whilst easy to use and make great looking websites will not help me understand web dev any better. These themes are often very bloated and quite slow. As I am making a bunch of content about WP optimisation then this will also not be worthwhile.

Decided to host on Hostinger as this was ac cheap and reliable provider. Using GeneratePress, straight out the box comes with some pretty nice performance scores straight out the box:

Despite that, I want to strip out the vast amount of styles and functionality whilst still maintaining some core functionality on which to build upon. That is where I have selected Underscores, provided there is no unnecessary theme bloat that slows things down…Literally stripped everything away and now I have to start again. It looks like a turd but gets a 100 performance score so a good place to start.

If I run Lighthouse again though it is ugly and slow...

But that is okay as it gives me something to work with.

What about the CSS?

For the CSS I did initially plan on using Bootstrap to Style this bad boy up. But had 2nd thoughts.

Vanilla CSS vs Bootstrap vs Tailwind CSS

Just the right type of video to help out with such things:

The summary of the video is as follows:

BootStrap covers the basics of CSS functionality seemed like the best way to go, however, there are a couple of other options: vanilla CSS, or Tailwinds. As much as I like to use vanilla CSS, I think it might require a bit too much learning, however, learning vanilla {insert tech} before any framework would be optimal for learning. I would also get to upload a massive unnecessarily bloated CSS file to my theme initially to compare load speeds.

Here's more on the other options:


Also watched this YouTube video and thought it looked good and did all I need it to do (as as n SEO I am not very familiar: 

I also watched this video to verify it was good enough: 

(I also just wanted to embed those videos so I could make a video about performance and video embeds)


Tailwinds is the other option for ease of implementation.

Also tempted to use Webpack as well in the future but we will see how that works out.

Looks pretty repulsive so far, and I am going to have to switch to a local dev environment.

In the meantime I will switch back the GeneratePress which is s pretty slick theme which I would probably build upon if I did not want to go through the ‘WordPress Tech SEO Challege’.

Setting up the WordPress Dev Environment

Using is a decent option for this type of thing and would recommend for setting up quick and easy WP dev environments. However, I will be going for VS Studio to get the job done and backing files up on SQL server first before editing files.

But I will also be exploring XAMPP as an option.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram