pseo-keyword-matrix
pSEO Keyword Matrix
A pSEO keyword matrix is a structured combination of head terms and modifiers that generates hundreds or thousands of targetable keyword variations — each one becoming a unique page. The matrix is how you go from "we want to do pSEO" to "we're building exactly 347 pages targeting these specific queries."
The math is simple: Head terms × Modifiers = Pages. "Best CRM" (head term) × 15 industries (modifier) = 15 pages. Add another modifier dimension (company size) and you get 15 × 5 = 75 pages. The matrix scales geometrically.
The Matrix Structure
Two-dimensional matrix (most common)
| Modifier 1 | Modifier 2 | Modifier 3 | Modifier 4 | |
|---|---|---|---|---|
| Head term A | Page | Page | Page | Page |
| Head term B | Page | Page | Page | Page |
| Head term C | Page | Page | Page | Page |
Example: SaaS tool comparison pSEO
| CRM | Marketing Automation | Sales Intelligence | Revenue Intelligence | |
|---|---|---|---|---|
| Best [category] for startups | Page | Page | Page | Page |
| Best [category] for enterprise | Page | Page | Page | Page |
| [Category] pricing comparison | Page | Page | Page | Page |
| [Category] alternatives | Page | Page | Page | Page |
= 4 head terms × 4 categories = 16 pages.
Three-dimensional matrix
Add a third modifier for more specific targeting:
Head term × Category × Segment = Page
Example: "Best CRM" × "for startups" × "in healthcare" = "Best CRM for Healthcare Startups"
Warning: Three dimensions create exponential page counts. 5 × 10 × 8 = 400 pages. Only add a third dimension if every combination has genuine search demand and unique content.
Building the Matrix
Step 1: Choose head terms
Head terms are the core query patterns. They must represent real search behavior.
| Head term pattern | Example | Works for |
|---|---|---|
| "Best [X]" | "Best CRM" | Tool/software categories |
| "[X] vs [Y]" | "HubSpot vs Salesforce" | Product comparisons |
| "[X] alternatives" | "Salesforce alternatives" | Competitive switching |
| "[X] for [segment]" | "CRM for startups" | Segment-specific listicles |
| "What is [X]" | "What is revenue intelligence" | Glossary/definitions |
| "How to [X]" | "How to set up lead scoring" | Tutorials |
| "[X] pricing" | "HubSpot pricing" | Pricing pages |
| "[X] in [location]" | "Marketing agencies in San Francisco" | Local/geo pages |
| "[X] template" | "Cold email template" | Template/resource pages |
Step 2: Choose modifiers
Modifiers are the variables that create page variations. Each modifier value becomes a unique page.
| Modifier type | Example values | Typical count |
|---|---|---|
| Industry / vertical | SaaS, healthcare, fintech, e-commerce, manufacturing | 8-15 |
| Company size | Startup, SMB, mid-market, enterprise | 4-5 |
| Role / persona | Sales leader, marketer, founder, RevOps | 4-8 |
| Geography | Cities, states, countries | 20-500 |
| Tool / product name | Competitor names, integration names | 10-50 |
| Use case | Prospecting, nurturing, forecasting, reporting | 5-15 |
| Feature | Email tracking, pipeline management, lead scoring | 5-20 |
Step 3: Validate every combination
Not every matrix cell deserves a page. Validate each combination:
| Validation check | How | Pass criteria |
|---|---|---|
| Search demand exists | Check volume in Ahrefs/Semrush for exact or close match | Any volume (even 10/month) |
| Content can be unique | Can you produce unique content for this specific combination? | Yes — unique data, examples, or analysis |
| Intent is clear | What would someone searching this actually want? | Clear intent that maps to a page type |
| Not cannibalistic | Does this overlap with another page you already have? | No existing page targets this keyword |
Kill combinations that fail any check. A matrix of 200 combinations might reduce to 120 valid pages after validation. That's normal and healthy.
Step 4: Prioritize the build order
| Priority | Criteria | Build when |
|---|---|---|
| P1 | Volume > 500/month + commercial intent | Build first (weeks 1-4) |
| P2 | Volume 100-500/month + any intent | Build second (weeks 4-8) |
| P3 | Volume < 100/month but validated demand | Build third (weeks 8-12) |
| Skip | No volume + no validated demand | Don't build |
Matrix Examples by Business Type
SaaS tool review site
| Head term | Modifiers (categories) | Page count |
|---|---|---|
| "Best [category] tools" | 20 software categories | 20 |
| "[Tool A] vs [Tool B]" | 50 comparison pairs | 50 |
| "[Tool] alternatives" | 30 popular tools | 30 |
| "[Category] pricing comparison" | 20 categories | 20 |
| Total | 120 pages |
B2B SaaS company
| Head term | Modifiers | Page count |
|---|---|---|
| "[Product] vs [competitor]" | 8 competitors | 8 |
| "[Competitor] alternatives" | 8 competitors | 8 |
| "[Product] for [industry]" | 10 industries | 10 |
| "[Product] + [integration]" | 25 integrations | 25 |
| "What is [category term]" | 30 glossary terms | 30 |
| "How to [task] in [product]" | 15 workflows | 15 |
| Total | 96 pages |
Avoiding Matrix Pitfalls
| Pitfall | Example | Fix |
|---|---|---|
| Matrix too sparse | "Best CRM for left-handed accountants in Vermont" — no search demand | Validate every cell. Kill low-demand combinations |
| Matrix too broad | 500 city pages for a product with no local relevance | Only add geographic modifiers if location genuinely affects the answer |
| Identical content across cells | "Best CRM for startups" and "Best CRM for SMBs" with the same list | If the answer is the same, merge. Only keep combinations with genuinely different content |
| Three dimensions creating 2,000 pages | 10 categories × 20 industries × 10 sizes = 2,000 | Start with 2 dimensions. Add the third only for high-demand combinations |
Pre-Build Checklist
- [ ] Head terms defined (5-10 query patterns)
- [ ] Modifier dimensions chosen (1-2 dimensions, possibly 3 for high-volume sets)
- [ ] Modifier values listed (specific values per dimension)
- [ ] Full matrix generated (all possible combinations)
- [ ] Each combination validated for search demand
- [ ] Cannibalization checked against existing content
- [ ] Invalid combinations removed
- [ ] Build priority assigned to every valid page (P1/P2/P3)
- [ ] Data source confirmed for unique content per page
- [ ] URL pattern defined for each head term type
- [ ] Estimated total page count confirmed (realistic for your team/resources)
Anti-Pattern Check
- Building every possible combination without validation → A 500-cell matrix where 200 cells have zero search demand produces 200 thin, useless pages. Validate every combination
- Only one modifier dimension → A single dimension produces limited pages. Consider whether a second dimension (industry × company size, tool × use case) creates valid, high-demand combinations
- Three dimensions creating an unmanageable page count → 10 × 20 × 10 = 2,000 pages you likely can't fill with unique content. Start with 2 dimensions and selectively add a third for proven high-demand intersections
- Same content for similar matrix cells → "Best CRM for Startups" and "Best CRM for Small Business" may have identical answers. Merge these cells or ensure genuinely different content per page
- Building the matrix in a vacuum → The matrix should be informed by keyword research data (search volume, difficulty). Don't invent combinations based on what seems logical — validate with actual search data
- Launching all pages simultaneously → Even a validated 200-page matrix should be published in batches of 25-50 to monitor indexation and quality. Don't launch everything on day 1