Understand your personas
Why persona analysis is essential: identify, segment and use your audience to create high-performing pages.

A persona earns its place in a programmatic SEO project when it changes something you will build: a query pattern, a data field, a block on the page, a call to action. If yours only describes someone’s age and hobbies, it will sit in a slide while your template ships to thousands of URLs without it.
Over the next few chapters I’ll follow one illustrative example. Say you run a job board for hotel and restaurant staff in France, with 30 roles and 2,000 cities. On paper that makes 60,000 pages. Two very different people land on them: a line cook looking for work close to home, and a restaurant owner who has to fill a position before the weekend. They share a database and almost nothing else.
Start with the traffic you already have
If the site gets visits, your best source is free. Search Console comes first because it holds the actual words people typed. Open Performance, then Search results, then the Queries tab, and use a custom regex filter to isolate questions:
^(how|what|why|which|when|can|do)\b
Run a second pass with terms that split your audiences. On the job board, hire|recruit|staffing pulls out employers, and jobs|vacancies|work pulls out candidates. Two filters and you can already see which audience the site attracts today and which one it ignores.
GA4 adds the behaviour. The Demographic details report under User attributes tells you roughly who is coming, though Google hides small segments on low-traffic properties, so read it as a hint. The landing page report is more useful: compare engagement rate and key events by page group, because sitewide averages tell you nothing about a template.
Microsoft Clarity or Hotjar finish the picture by showing where people click and where they stop. On templated pages, watch one page group at a time. You might find that employers on mobile never scroll far enough to reach the “post a job” button.
No traffic yet: read the market
For a new project, Google Trends shows how interest moves through the year. On our job board you would check whether seasonal hospitality roles peak before summer and plan publication around it. AnswerThePublic and AlsoAsked surface the questions around a topic. Semrush or Ahrefs give you the vocabulary and approximate volumes.
Keep those volumes in a separate tab from the persona work. At this stage you want to learn how people phrase their need. Sizing the opportunity comes in the goals and opportunities chapter.
Get the words from people directly
Tools give you queries. People give you reasons. A short survey in Typeform or Google Forms with two or three open questions beats a long one: what are you trying to get done, what have you tried, and what almost stopped you.
Then read what people write when nobody is asking them. Trustpilot and G2 reviews, Reddit, Quora, Facebook groups and LinkedIn discussions are full of objections in plain language. I look for two things there: vocabulary I would not have guessed, and details that could become data. If line cooks keep asking whether staff housing is included, that is a boolean field in your database and a filter on your page.
SimilarWeb and SparkToro help with the last piece, which is where your audience spends time and which competitors already serve it. That tells you which sites to study when you design the template.
Segment on what changes the page
The usual criteria all have a place:
- demographics such as location and language
- sector, and B2B versus B2C
- search stage, from discovery to ready to act
- the goal behind the visit
- the pain points and obstacles that block action
My opinion: on programmatic pages, search stage, goal and obstacles do most of the work. Age and gender rarely justify a different template. Location and language often do, because they change the data you display and the words you use.
Two to four personas is plenty. Each one you add means another template to maintain or another set of conditions inside one template.
Map each persona to queries, data and pages
This table is the actual deliverable of the persona phase. Here it is for the job board:
| Candidate (line cook) | Employer (restaurant owner) | |
|---|---|---|
| Query patterns | {role} jobs in {city}, {role} salary in {city} |
hire a {role} in {city}, {role} job description |
| Search stage | Ready to apply | Urgent need, comparing options |
| Data the page needs | Live jobs, shift type, housing, advertised pay | Candidates available, typical pay, posting price |
| Page type | Listing by role and city | Hiring page by role and city |
| Main action | Apply or create a job alert | Post a job |
| What makes them leave | Expired ads, no pay shown | No proof that candidates exist locally |
If a cell in the data row stays empty, you have found a gap in your database before it became a gap on 60,000 pages. The database chapter picks up from there.
Let the SERP settle the intent
I classify each query pattern by looking at what Google shows for a handful of real variations. Four categories cover almost everything:
| Intent | Example | What to do with it |
|---|---|---|
| Navigational | “HubSpot blog” | Leave it. It belongs to the brand. |
| Informational | “how does programmatic SEO work” | Only with data of your own, such as pay by role and city |
| Commercial | “best SEO tool for agencies” | Comparison pages, if you have real criteria to compare |
| Transactional | “hire a line cook in Lyon” | First priority: listing and action pages |
Be careful with the informational row. Mass-producing guides from a keyword list, with nothing behind them, is what Google’s scaled content abuse policy targets. Generic explanations are also the first thing AI-generated answers absorb. A page holding numbers nobody else has published gives both the reader and those systems a reason to use it.
Turn personas into template decisions
Three decisions follow from the work above.
Sequence comes first: generate pages for transactional and commercial patterns before anything informational. Next, give each persona its own template when their needs diverge. On the job board, one hybrid page for candidates and employers would serve neither, so I would build two and link between them.
Then adapt the calls to action and navigation. A candidate needs “create an alert for this role” next to the listings. An employer needs a price and a posting form within reach.
Treat the words on the page as data too. On the Deux.io project, the 90+ variables covered titles and metadata, and also value propositions and highlighted profiles. What a page says to its reader was generated as carefully as its technical tags.
Before moving on, apply one test to each persona and page type: list what this person gets here that a generic page on the same topic would not give them. If the list is empty, drop that page type.
Your next step
Create one sheet with a row per persona and these columns: query patterns, intent, data needed, data you already have, page type, main action. Fill it using real queries from Search Console or the SERP. Any row where “data needed” and “data you already have” don’t match is your first task, and the finished sheet is the input for setting goals and scoring opportunities.