Job board SEO: how a job board gets found on Google
By the JobClay team ·
People look for work by typing the job, the place or both into a search engine: "nurse jobs in Boston", "remote Rust jobs", "marketing manager jobs". A job board that answers those searches gets visitors without paying for them, and visitors are what employers pay a board for. This post takes each part of job board SEO in turn: what Google's own documentation asks for, and what JobClay does.
Where a job board shows up in Google
- In Google's job search. Google shows job listings in a search experience of its own, often called Google for Jobs, where job seekers filter by things such as location and job title. Job pages that carry JobPosting structured data can appear in it.
- In ordinary results, for job pages and landing pages. A page that lists every live Rust job in Berlin can rank for "rust jobs berlin" like any other page.
- In ordinary results, for everything else. Company pages answer searches for an employer, and blog posts answer the searches that are not for a job yet: what a role pays, how to move into a field, what an interview covers.
Job posting data on every job page
JobPosting structured data is a block in a job's page that gives its title, description, employer, place, posting date and more, in a form Google reads. Google's job posting documentation sets the rules, and four of them shape how a job board is built:
- Data on the job's own page only, never on a page that lists jobs, such as search results.
- Data that matches the page: it describes the job a visitor can read there.
- No expired jobs. A job that no longer takes applications must be expired: its page removed (so it answers 404 or 410), its data removed, or its
validThroughdate set in the past. - A way to apply. Google does not allow a job with no way to apply, or one whose description needs a login to read.
On JobClay, every job page carries JobPosting data built from the job itself, and the job list and landing pages carry none. A job that expires, for example when its time runs out or its source stops listing it, keeps its page, which says the job is closed, and its data carries the expiry in the past, so Google reads it as expired. A job you or its employer close is taken down, and its address answers 404. Jobs from a source with Hide from search engines turned on carry no job data, and their pages tell search engines not to index them. Our post on getting your jobs into Google for Jobs goes through the fields one by one, and the common reasons jobs fail to appear.
Landing pages for skills, places and remote work
People search for work by what they do, where, or both. Landing pages answer those searches: /jobs/rust/, /jobs/in-berlin/, /jobs/rust/in-berlin/, /jobs/remote/, each listing the live jobs that match under its own title and description.
They come with a warning. Google's spam policies treat doorway pages as abuse: pages made to rank for many similar searches that lead visitors somewhere less useful, including pages aimed at particular cities or regions that funnel people to one page. A landing page that lists real jobs is the page the searcher wanted; thousands of empty pages for every skill in every town are the other kind. So the rule is simple: a page only where there are jobs to show.
On JobClay:
- Places and remote work. Each place with live jobs gets a page, whether a city, a region or a country, and
/jobs/remote/lists remote jobs. - The lists you choose. On Lists, tick Landing pages on a list, such as skills or specialties, and each active term in it gets a page at
/jobs/{term}/, with pages for the term in a place and for the term with remote work, such as/jobs/rust/in-berlin/. A new board starts with a Category list that has landing pages on and no terms yet. - Empty pages stay out of search. A landing page with no live jobs tells search engines not to index it, and the landing sitemap lists only pages with live jobs.
- Titles and descriptions from templates. The Search result templates on SEO and Tag Manager set every landing page's title and description, with placeholders such as the term, the place and the number of live jobs. The default title template,
{remote} {term} Jobs[ in {place}] | {board}, gives "Rust Jobs in Berlin | Your Board" on one page and "Rust Jobs | Your Board" on another: text in square brackets is left out when a placeholder in it is empty. - One address for the job list. Every filtered, searched or paged view of
/jobs/names/jobs/as its canonical address, so search engines do not take filtered views for pages of their own.
Choose lists by how people search, not by how you file jobs, and name terms the way searchers write them: the term's name goes into the page's title.
Sitemaps and robots.txt
A sitemap lists a site's pages for search engines. Google's sitemap overview says one helps most on large sites and on new sites with few links from elsewhere, such as a young job board, and that it does not guarantee every page in it is crawled and indexed. For job pages, Google's job posting documentation asks that the sitemap give each job's canonical address, that Googlebot can reach every address in it, and that search result and list pages stay out of it.
Every JobClay board has a sitemap index at /sitemap.xml on its main address. It points to separate sitemap files for jobs, companies, landing pages, and other pages such as the home page, content pages and blog posts. The job files list live jobs, newest first, without those hidden from search engines; the company and landing files list only companies and landing pages with live jobs. The board's robots.txt names the sitemap, and keeps crawlers out of the employer area and job seekers' signed-in pages.
One step is yours: verify your board in Google Search Console and submit /sitemap.xml in its Sitemaps report, which then shows when Googlebot read it and any errors it found.
Tell search engines when a job opens or closes
A job found late gets no visitors while it is fresh, and a closed job still shown sends them to a dead end. Two services report a change without waiting for a crawl.
IndexNow tells Bing, Yandex and the other engines that take part about pages that were added, changed or removed. The IndexNow FAQ says one submission is shared with every participating engine; Google is not among those it lists. Submitting does not guarantee indexing.
Google's Indexing API is Google's own route. Its job posting documentation recommends it over sitemaps for job pages, because it prompts Googlebot to crawl a page sooner, and still recommends a sitemap for the whole site. The API can only be used for pages with job posting data or livestream videos. It is free, and a Google Cloud project gets 200 notifications a day by default, new and removed pages alike. An accepted notification means Google may recrawl the page soon, not that the page is indexed.
On JobClay:
- IndexNow is on for every board, with nothing to set up. A new job, a job whose address changed and a job that closed are sent within minutes. You can turn it off on SEO and Tag Manager.
- The Indexing API runs on a key from your own Google Cloud project, so the daily quota is your board's alone. You create the project, turn on the API, make a service account and upload its key, then add the service account as an owner of your site in Search Console. The Google indexing guide walks through each step.
- Posted jobs go first. Each day, new jobs posted by employers or by you go first, then new imported jobs, then closed jobs; what the quota leaves waits for the next day. You can keep imported jobs out of the quota altogether.
- Jobs already live when you connect reach Google through your sitemap.
Redirects when you move from another site
If your board already lives elsewhere, its old pages may rank; moving without redirects throws that away. Google's advice for a move with URL changes is to send each old address to its new equivalent with a permanent server-side redirect, not to send many old addresses to one unrelated page such as the home page, and to keep the redirects as long as possible, generally at least a year.
On JobClay's Redirects page you add each old path (From) and the page it should lead to (To), and visitors and search engines get a permanent (301) redirect. A redirect works only where the board has no page of its own at that address. Add them before you switch your domain, so the old pages keep their place in search.
Map with care. An old category page such as /category/nursing/ has a clear new home in the landing page /jobs/nursing/. An old page for a job that has since closed has no equivalent, and Google warns that sending many old addresses to one unrelated page can be treated as a soft 404, so let those go.
JobClay handles its own moves. When a job is retitled, its old address redirects to the new one. When you connect your own domain and make it primary, the board's JobClay address and any other connected domain redirect to it, and every page's canonical link names the main address.
A blog for the searches jobs cannot answer
Many searches around work are not for a job yet: what a role pays, how to move into a field, which certificate employers ask for. A niche board can answer them, and link each answer to its jobs: a post on becoming a cardiac nurse links to the board's cardiac nursing jobs.
Google's guide to helpful, reliable, people-first content says its ranking systems are designed to favour information made to help people, not content made to manipulate rankings, and a post stuffed with keywords is the second kind.
Every JobClay board has a blog, written in the console's Blog, with categories, an RSS feed at /blog/feed.xml, BlogPosting data on each post, and its posts in the board's sitemap. Content pages, made on Pages, suit text that rarely changes, such as a page for employers.
What no software can do
Markup, sitemaps and fast notices make a board easy for search engines to read; they do not make it worth ranking. Google's job posting documentation says it does not guarantee that structured data features appear in results. JobClay does the technical groundwork; the jobs, the niche and the writing are yours, and our posts on filling a new board with jobs and niche job board ideas cover them.
A checklist for a new board
- Fill the board with real jobs in your niche.
- Set your board's country on Region: job data needs it for jobs with no city and for remote jobs, as the Google for Jobs post explains.
- On Lists, turn on landing pages for the lists people search by, then adjust the templates on SEO and Tag Manager.
- Verify the board in Search Console and submit
/sitemap.xml. - Connect Google's Indexing API with a key of your own.
- Moving from another site? Add redirects for the old addresses before you switch domains.
- Write posts that answer your visitors' questions, and link them to your landing pages.
- Every few weeks, check Search Console for job data errors and the searches that bring visitors.
The SEO feature page sums up what JobClay does for search, and the guide to creating a job board covers the rest of the setup.
Ready to build one? See how to create a job board with JobClay.
JobClay