Job board SEO

Automated SEO analysis and reporting for job boards

Individual postings expire in weeks. The job-title-plus-location category pages are what you actually own, and they are almost never reported on separately. GSC Wizard splits the two, watches expiry hygiene on the postings, and treats the category grid as the long-term asset it is.

Built for sites where most URLs are gone within 30 days.

GSC Wizard dashboard example for Automated SEO Analysis & Reporting for Job Boards

The asset you are not reporting on

Postings are inventory. The 'jobs in {city} for {title}' grid is the business.

Postings churn out every month and take their rankings with them. The category grid persists, compounds, and captures the query volume that actually repeats. Yet almost every job board reports on posting traffic, because that is where the raw click volume looks biggest.

The problem

What is specific to job boards

Three problems that come from URLs with a 30-day lifespan.

1

Expired postings left in the index actively hurt you

A user clicks a job in search, lands on 'this position is no longer available', and bounces. Repeated across thousands of stale listings that is a persistent bad-experience signal on a whole URL pattern, and it drags the pattern down for the live postings too.

2

The category grid is huge and unaudited

Job titles times locations times seniority is thousands of category pages. Some rank and carry the site, many have never had an impression, and plenty compete with each other. Nobody has looked at the grid as a whole because the reporting tools show URLs, not grids.

3

Aggregators and employer career pages take the same queries

You compete with the employer's own careers site, with Google for Jobs, and with three other aggregators for the identical query. Your reporting cannot see any of that, so a structural loss of position on the category grid reads as 'traffic is down a bit'.

The setup

How to set it up

Split posting from category, then run the two like separate products.

Step 1

Separate postings from the category grid

Content groups split /job/ from /jobs/{title}/{location}/ so the churning inventory stops setting the trend line for the pages that persist.

Content groups →

Step 2

Read the grid as a grid

URL clustering groups the category pages by pattern so you can count how many cells rank, how many are empty, and where two cells are competing for the same query.

URL clustering →

Step 3

Audit expiry hygiene continuously

The indexing monitor plus zero-impression analysis surfaces expired postings still sitting in the index, so removal or redirection becomes a routine batch job rather than an annual clean-up.

Indexing monitor →

Step 4

Catch category-grid decay early

Decay tracking on the category group alone flags the cells sliding out of the top ten while the noisy posting traffic is excluded from the baseline.

Content decay report →

The output

The job board weekly

Inventory on one side, the durable asset on the other.

JOB BOARD REPORT - week 34

CATEGORY GRID (persistent asset)
  Cells live               8,420
  Ranking top 10           2,110    25%
  Positions 11-30          1,980    24%   <- the growth budget
  Zero impressions         4,330    51%   <- prune or merge
  Clicks                 214,900    +6% vs 4wk

POSTINGS (inventory)
  Live postings           41,200
  Clicks                 388,400    URL set turns over ~monthly
  Expired but indexed      9,840    <- fix: 410 or redirect to
                                      the matching grid cell

GRID DECAY - top cells sliding
  /jobs/registered-nurse/manchester   pos 3.2 -> 7.1
  /jobs/warehouse/leeds               pos 4.0 -> 8.6

CANNIBALIZATION
  'nurse jobs manchester' - grid cell and a seniority variant
  alternate. Merge the variant into the main cell.

Redirecting an expired posting to its matching grid cell is the highest-value routine on a job board: it fixes the bad-experience signal and feeds authority into the page you want ranking.

What to watch

Metrics for a churning job site

Grid coverage rate

Share of category cells that rank in the top ten. The single best measure of the durable half of a job board's SEO.

Expired-but-indexed count

Stale postings still reachable from search. Every one is a user landing on a dead end, and the pattern pays for it collectively.

Category click share

How much traffic comes from pages that will still exist in six months. If postings dominate, your SEO resets every month.

Near-miss cell count

Grid cells sitting in positions 11 to 30. On a job board this is almost always the cheapest available growth.

Frequently asked questions

What should I do with expired job postings?

Do not leave them indexed as 'no longer available'. Either return a 410 or redirect to the matching category cell for that title and location. The redirect is usually better - it fixes the dead-end experience and passes signals into the page you want to rank permanently.

How do I know which category pages to build next?

Look at the near-miss cells first, in positions 11 to 30 - those need improvement, not creation. For genuinely new cells, check that the title-plus-location combination has impressions in your existing data before generating another thousand pages nobody searches for.

Our top pages change constantly. How do we report a trend?

Report at group level. The category grid as a cohort and postings as a cohort are both stable series even though the individual URLs underneath turn over completely each month.

Can we track how many of our postings actually get indexed?

Yes, the indexing monitor tracks a defined URL set over time and reports index status, so you get an indexation rate for new postings rather than spot-checking individual URLs.

Written by Jan-Willem Bobbink · Published August 29, 2026

Nearby

Other setups worth a look

See all 20 industry setups

Grow the grid, clean up the inventory

Split postings from categories, find the near-miss cells, and stop leaking traffic to expired jobs.