Configure SEO for Each Page

Set meta titles, descriptions, and use template variables to generate unique SEO content across thousands of pages.

Every page on your board has a meta title and description that appear in search results. These are the first thing potential visitors see, and they directly affect whether someone clicks through to your board or scrolls past it. Template variables let you write one template and generate unique, contextual SEO content for every page type, so your Engineering Jobs page, your Marketing Jobs page, and your San Francisco Jobs page each get distinct titles without any manual work.

Unique meta content across pages prevents duplicate content issues and signals to search engines that each page offers distinct value. This is especially important for programmatic SEO pages like category and location pages, where boards can easily generate hundreds of unique, indexable URLs.

Access page SEO settings

  1. Go to Board settings in the sidebar
  2. Click Website builder
  3. Select the page type you want to optimize from the page selector dropdown
  4. Click the SEO panel in the right sidebar

Each page type has its own SEO settings that apply to all instances of that page.

Set meta title and description

The meta title (max 70 characters) appears as the clickable headline in search results and in browser tabs. The meta description (max 220 characters) appears below the title in search results.

  1. Enter your title in the SEO title field
  2. Enter your description in the Meta description field
  3. Use template variables for dynamic content (see below)
  4. Click Save to apply

Place your most important keywords near the beginning of the title. Write descriptions that give searchers a reason to click. Think of them as a one-sentence pitch for the page.

Template variables

Template variables are placeholders like {{category}} or {{location}} that automatically insert page-specific content. Write one template and every instance of that page type gets unique, contextual SEO copy.

The available tokens vary by page. The right SEO panel only shows tokens you can actually use on the selected page, so the easiest way to discover what's supported is to open the page in the builder and check the Supported tokens section. The reference below mirrors that, organized by page group.

Common tokens

These appear on multiple page types:

  • {{board_name}}: your board's name. Available on every page that supports SEO templates.
  • {{count}}: number of items (jobs, companies, or articles), formatted with thousands separators.
  • {{job_label}} / {{company_label}}: "Job"/"Jobs" or "Company"/"Companies", auto-pluralized based on {{count}}. Pulled from your global entity labels.
  • {{category}}: job category or job title.
  • {{location}}: geographic location name (city, region, or country).
  • {{skill}}: skill name (e.g. React, TypeScript).
  • {{tag_name}} / {{tag_description}}: blog tag name and description.

The salary pages add a much wider set of finance-flavored tokens. Those are listed with the salary section below.

Home

  • / (Home page): {{board_name}}.

Jobs

  • Jobs list (/jobs): {{board_name}}, {{count}}, {{job_label}}.
  • Jobs locations index (/jobs/locations): {{board_name}}, {{job_label}}. Per-row counts use your global job singular/plural labels.
  • Individual job page: no tokens. Each job's title and description drive its own SEO.
  • Post a job (/jobs/new) and post-success / checkout-canceled: {{board_name}}.
  • Category pages (/jobs/[category]): {{board_name}}, {{category}}, {{count}}, {{job_label}}.
  • Location pages (/jobs/locations/[location]): {{board_name}}, {{location}}, {{count}}, {{job_label}}.
  • Combination pages (/jobs/[category]/[location]): {{board_name}}, {{category}}, {{location}}, {{count}}, {{job_label}}.

Companies

  • Companies list (/companies): {{board_name}}, {{count}}, {{company_label}}.
  • Individual company page: no tokens. Each company's content drives its SEO.

Salaries

The salaries section ships with the richest token vocabulary so you can write descriptive titles and metas without manual work on every page.

  • Salaries hub (/salaries) and the by-company / by-location / by-skill / by-title indices: {{board_name}}, {{job_label}}. Per-row counts use the global job singular/plural labels.
  • Skills in a location (/salaries/locations/[location]/skills) and titles in a location: {{board_name}}, {{location}}, {{job_label}}.
  • Locations for a skill (/salaries/skills/[skill]/locations): {{board_name}}, {{skill}}, {{job_label}}.
  • Locations for a title (/salaries/titles/[title]/locations): {{board_name}}, {{category}}, {{job_label}}.

Salary detail pages (the deep pages where most programmatic traffic lands) support the full vocabulary:

  • {{salary_range}}: the page's own formatted salary range (e.g. "$120K – $170K").
  • {{board_range}}: board-wide average range for the same role.
  • {{median_range}}: board-wide median range. Only available on pages where the loader exposes board-level median data; not on company × category, title × location, or skill × location.
  • {{diff_percent}}: absolute % difference vs the board average (e.g. "29").
  • {{diff_direction}}: "above", "below", or "in line with".
  • {{lowest_role}} / {{highest_role}}: names of the lowest and highest seniority levels.
  • {{lowest_range}} / {{highest_range}}: formatted salary ranges for those levels.
  • {{level_count}}: number of seniority levels with salary data.
  • {{job_count}}: number of jobs the page is based on.
  • {{company_count}} / {{top_company_name}} / {{top_company_range}} / {{top_company_count}}: companies-paying ranking data.
  • {{top_title_name}} / {{top_title_range}} / {{top_title_count}}: top-paying job title data (location detail pages only).
  • {{location_count}} / {{title_count}} / {{skill_count}}: counts used in cross-link section descriptions.
  • {{company_name}}: the company being viewed (company × category page only).

Specifically:

  • Skill detail (/salaries/skills/[skill]): all of the above except {{top_title_*}} and {{company_name}}, plus {{skill}}.
  • Title detail (/salaries/titles/[title]): mirrors skill detail but uses {{category}} (the title) instead of {{skill}}.
  • Location detail (/salaries/locations/[location]): the full set including {{top_title_*}}, with {{location}} as the proper-noun token.
  • Skill × location and title × location: like skill or title detail but adds {{location}} and drops {{median_range}} (no board-level median for these cuts).
  • Company × category (/companies/[slug]/salaries/[category]): like skill detail but uses {{company_name}} + {{category}} and drops {{median_range}}, {{top_company_*}}, {{title_count}}.
  • Company salary detail (/companies/[slug]/salaries): {{board_name}}, {{job_label}} only. The rest comes from the company's own data.

Talent

  • Talent directory (/talent) and individual talent profile pages: no tokens. Both are driven entirely by candidate content.

Blog

  • Blog index (/blog): {{board_name}}.
  • Individual blog post and blog author pages: no tokens. The post or author's content drives the SEO directly.
  • Blog tag pages (/blog/tags/[tag]): {{board_name}}, {{tag_name}}, {{tag_description}}, {{count}}.

Alerts, Account, Employer, and Pages

These are utility surfaces. SEO defaults are mostly handled by the section adapter, with {{board_name}} as the only template variable available.

  • Alerts confirm and alerts manage: {{board_name}}.
  • Account, account-connect, saved-jobs: {{board_name}}.
  • Employer dashboard: {{board_name}}.
  • Employer company detail (/employer/companies/[slug]): {{board_name}}, {{company_name}}.
  • Employer company jobs and the employer job form (/jobs/new, /jobs/[id]/edit): {{board_name}}, {{company_name}}, {{job_label}}.
  • Auth pages (sign-in, sign-up, employer sign-up, forgot password, reset password, join): no tokens. Defaults are static auth-page copy.
  • Standalone Pages (terms-of-service, privacy-policy, cookie-policy, about, board-not-found): {{board_name}}.

Example templates

Category page title: {{category}} {{job_label}} | {{board_name}} Renders as: "Backend Jobs | Tech Jobs Board"

Category page description: Find {{count}} {{category}} {{job_label}}. Browse remote and on-site opportunities. Renders as: "Find 28 Backend jobs. Browse remote and on-site opportunities."

Location page title: {{job_label}} in {{location}} | {{board_name}} Renders as: "Jobs in San Francisco | Tech Jobs Board"

Combination page title: {{category}} {{job_label}} in {{location}} | {{board_name}} Renders as: "Backend Jobs in San Francisco | Tech Jobs Board"

Blog tag page title: {{tag_name}} Articles | {{board_name}} Blog Renders as: "Career Tips Articles | Tech Jobs Board Blog"

Dynamic counts like {{count}} signal freshness to search engines. A title that says "142 Backend Jobs" tells Google the page has substantial, up-to-date content, which helps with rankings.

Frequently asked questions