SEO for Recruitment Agencies

You're selling to two audiences who want opposite things, on one website. That's the whole problem, and almost no agency site solves it.

Updated July 2026 · Sources cited at the bottom of the page

The Problem Nobody Names

A recruitment agency has two customers.

The client has a vacancy and wants to know you can fill it. The candidate wants a job and wants to know you're worth registering with.

They search in opposite directions. The client types "engineering recruitment agency Brisbane". The candidate types "engineering jobs Brisbane".

Most agency sites are built entirely for one of them, usually the client, and then wonder why the candidate pipeline is dry.

Everything below follows from that split.

A Warning About This Search Term

Worth knowing before you research this yourself.

Search "SEO for recruitment agencies" and half the results are recruiters who place SEO staff. Herd Digital, KAS Placement and Search For Hire all rank for it, and none of them do what you're looking for.

The query is genuinely ambiguous, so Google hedges and serves both readings.

It matters for you too. If you recruit in a field with a name that means something else, your own keyword research will be full of the same noise. Check what's actually ranking before you build a page for a term.

What It Costs

Published SEO rates for professional service businesses sit around $750 to $3,000 a month.

Against a single placement fee, that's a low bar. One mid-level placement at a 15% fee on an $85,000 salary is $12,750.

So the question isn't whether the maths works. It's whether the agency you hire understands that you need candidates as well as clients, because most will only build you the client half.

What I charge

My Growth Retainer is $2,000/mo. Three needle movers ship every month or that month is free.

If you want the diagnosis before committing, that's the Deep Dive Audit at $1,497. Five findings or it's free.

Rankings take 8 to 12 weeks. Three months minimum, then cancel any time.

Want to know whether your niche is winnable? Tell me what you recruit for and where.

Ask me directly →

Build for the Client

The client is searching for a specialist, not a generalist. That's the wedge.

One page per discipline, per city

"Civil engineering recruitment Brisbane" beats "recruitment services" every time, because the person searching has a specific hole to fill.

List the roles you place inside that discipline. Give a typical time to fill and a typical salary band.

Say what your fee model is. Contingent, retained, or both, and roughly what it costs.

Proof that survives a sceptic

How many roles you filled in that discipline last year. Average time to fill. Your fall-through rate, if it's good.

Named client logos with permission. A short case study per discipline.

Every agency claims a deep talent pool. Numbers are the only version of that claim anyone believes.

Build for the Candidate

This is where the traffic is, and where most agencies leave the biggest asset on the table.

Your job board is an SEO asset, if you let it be

Most agency job boards are invisible to Google. Roles load through JavaScript, each listing has no unique URL, and expired roles 404 into nothing.

Fixed properly, each live role is a page that can rank for "[job title] jobs [city]".

Give every role a real URL. Add JobPosting structured data so it can appear in Google's jobs experience.

When a role closes, don't delete the page. Redirect it to the discipline page, or keep it up marked as filled with a link to similar roles. Deleting is how agencies bleed their own rankings every month.

Career content that isn't filler

Salary guides for your disciplines. Real ones, from your own placement data.

Interview guidance specific to the field you recruit in, not generic advice.

A salary guide built on your own numbers is the single best link magnet in this industry, and it doubles as the credibility the client half of the site needs.

The Keywords Worth Chasing

Client-side

"[Discipline] recruitment agency [city]", "[discipline] recruiters", "hire [role]", "staffing agency [city]", "executive search [discipline]".

Lower volume, very high value. One conversion is a placement fee.

Candidate-side

"[Job title] jobs [city]", "[discipline] jobs", "graduate [discipline] jobs", "[job title] salary [city]".

Far higher volume. Feeds the pool that makes the client half possible.

The salary queries

"[Role] salary [city]", "[discipline] salary guide", "how much does a [role] earn".

Enormous volume, and you're one of the few businesses that can answer from real data instead of a survey. Nobody else in your market is doing this properly.

Skip

"How to write a resume", "interview tips", "how to quit your job".

Generic career content that a thousand sites already own. It has no connection to a placement.

Getting Named When Someone Asks AI for a Recruiter

People now ask ChatGPT and Gemini for a recommendation instead of scrolling a map. That answer has two layers and they're not the same list.

The body of the answer names businesses. The footnotes cite sources.

You can be the source a model reads and still not be the business it names. Lily Ray's testing found Google appears to have decoupled what it cites from who it recommends.

What moves the naming

Being talked about somewhere other than your own site. Reviews, local coverage, directory listings, threads where a real customer names you.

And ranking on page one, because that still feeds the source list.

What doesn't

An llms.txt file. Two studies looked for an effect and found none. ALLMO checked 94,614 cited URLs and found exactly one llms.txt page.

Schema on its own. It helps machines read a page, it doesn't make an assistant recommend you.

More here: AI search optimization services.

Your First 90 Days

Weeks 1 to 2

Audit the job board. Does each role have a unique URL? Does it render without JavaScript? Is there JobPosting schema?

That one check is usually worth more than everything else on this list.

Weeks 3 to 6

Build the top three discipline pages for the client side. Roles placed, time to fill, salary bands, fee model.

Weeks 7 to 10

The salary guide, built from your own placement data. One per discipline if you have the numbers.

Fix the expired-role handling so you stop deleting your own rankings.

Weeks 11 to 12

Links: industry associations, universities you recruit from, client companies, the trade press in your discipline.

Then measure two things separately. Client enquiries and candidate registrations. One number hides the other.

On-Page Basics That Still Matter

Short list, mostly ignored on agency sites.

Titles that name the discipline and the city

"Civil Engineering Recruitment, Brisbane" beats "Sectors". Under about 60 characters.

One H1 per page, and never "Welcome"

Say what the page is for. Discipline pages say the discipline. Role pages say the role.

Answer the question in the first two sentences

Both Google and the AI answer engines lift short definitions off the top of a page.

Two calls to action, not one

Every page needs the client path and the candidate path visible. A site with only "submit a vacancy" tells candidates they're not wanted.

The Technical Floor, Which Is Bigger Here Than in Other Trades

Most local businesses need four technical things. A recruitment agency needs more, because your job board is a database pretending to be a website.

Every live role must have its own crawlable URL. Not a modal, not a query string that renders through JavaScript.

The listing content must be in the HTML, readable without running scripts. Test it by viewing source, not by looking at the page.

JobPosting structured data on every role, with valid dates.

Expired roles redirect rather than 404. Pagination on the board must be crawlable.

Then the normal four: fast on mobile, HTTPS, findable sitemap, nothing important blocked in robots.txt.

Get the job board right and you've often doubled the number of pages Google can see, without writing a word.

Links That Exist in This Industry

You have better link opportunities than most businesses and you're probably using none of them.

Industry associations for the disciplines you recruit in. Universities and TAFEs whose graduates you place, especially their careers pages.

Client companies. If you filled twelve roles for them, a mention on their careers page is a fair ask.

Trade press in your discipline. A salary guide built on your own placement data is a genuine story for them, not a pitch.

Job aggregators and industry job boards that syndicate your roles.

That salary guide is the single best link magnet available to a recruitment agency, and almost nobody builds one from real numbers.

How to Know If It's Working

One number will lie to you here, because you run two funnels.

Client enquiries and candidate registrations, tracked separately

A great month for candidates and a dead month for clients averages out to "steady", which tells you nothing and hides a problem.

Which discipline pages produce vacancies

If a discipline page ranks and never converts, the proof on it is too thin. Add the numbers.

Job board pages indexed

Search Console will tell you how many role pages Google has indexed against how many you have live. That ratio is the single most useful number on this list.

What I ignore

Total traffic. Candidate traffic will always dwarf client traffic, so a rising total can hide a collapsing client funnel.

Doing It Yourself vs Hiring Someone

Do this yourself

The salary guide. It has to come from your placement data and nobody outside your business has that.

The proof on the discipline pages. Roles filled, time to fill, fall-through rate.

Where it gets hard

The job board technical work. That usually needs whoever built your applicant tracking integration, and it's the highest-value fix on the site.

Writing discipline pages that don't read as the same page with a word swapped.

Ask any agency these before you sign

Have you fixed a job board for indexing before, and can I see it?

Will you report client enquiries and candidate registrations separately?

What's your plan for expired roles?

If they don't mention JobPosting schema unprompted, they haven't done this before.

Mistakes I See on Recruitment Sites

A job board Google can't read, on a site whose whole business is jobs.

Deleting expired roles instead of redirecting them.

One "Sectors We Cover" page listing eleven disciplines, ranking for none.

Generic career advice that any site could have written.

No fee information anywhere, which filters out serious clients and attracts tyre kickers.

A salary guide that's clearly copied from a competitor's survey.

Measuring "leads" as one number when clients and candidates are entirely different funnels.

Questions I Get Asked

Should I build for clients or candidates first?

Fix the job board first, because it's usually broken and it serves candidates for free. Then build the client-side discipline pages, because that's where the fee is.

How much does recruitment agency SEO cost?

Published professional service rates run about $750 to $3,000 a month. My Growth Retainer is $2,000/mo.

Judge it against one placement fee, not against a monthly budget line.

Why isn't my job board ranking?

Usually three reasons: roles load through JavaScript, listings have no unique URL, or expired roles get deleted instead of redirected. Any one of those is enough.

Do I need JobPosting schema?

Yes. It's how a role becomes eligible for Google's jobs experience, and it's one of the few places where markup genuinely changes what a page can do.

What do I do with filled roles?

Redirect to the discipline page, or keep the page up marked as filled with links to similar roles. Deleting throws away the ranking you paid to build.

Is a salary guide worth the effort?

It's the best asset in this industry. You have real placement data, which almost nobody else can claim, and it earns links while proving expertise to clients.

Should I have a page for every job title?

For live roles, yes, automatically. For evergreen pages, only for the titles you place repeatedly.

How long does it take?

8 to 12 weeks for rankings to move. Job board fixes can show results faster because you're unlocking pages that already existed.

Where This Page's Claims Come From

  • Savvy Search Marketing, published local service SEO rate range of $750 to $3,000+ per month · savvysearchmarketing.com
  • Google Search Central, JobPosting structured data documentation · developers.google.com
  • Google Search Central, Google Business Profile and local ranking guidance · developers.google.com
  • Google Search Essentials, scaled content abuse under the spam policies · developers.google.com
  • Lily Ray, ppc.land interview and lilyraynyc.substack.com, on citation and recommendation being decoupled
  • ALLMO, “LLMs.txt for AI Search Report 2026”, 1 llms.txt page among 94,614 cited URLs · allmo.ai/articles/llms-txt
  • SE Ranking, “LLMs.txt: Why Brands Rely On It and Why It Doesn't Work”, ~300,000 domains sampled · seranking.com/blog/llms-txt/
  • Prices and terms on this page match propeloseo.com/services/ as at July 2026

Other trades I've written up: electrician SEO, cleaning company SEO, and moving company SEO.

Shane Hellmrich
Shane Hellmrich
SEO Specialist · 12+ years in SEO · Updated July 2026
Sources cited above. More about my background →

Want to know if your niche is winnable?

Tell me what you recruit for and where. I'll look at who's ranking and tell you honestly whether you can beat them.