# Search competitive gap matrix worksheet

- Source: https://simeoncreatives.com/resources/search-competitive-gap-matrix
- Hub: SEO, GEO & Digital Marketing

One query, three to five ranking pages, ten to twenty rows. Mark Covered, Thin, Skipped, or Wrong, then sort every row into a decision.

One sheet per query. Search in a private window, write down the date and your location, and use only pages that match the same intent.
Read each page fully before you mark it. Headings alone hide thin sections.
No row leaves the sheet without a bucket. A matrix with no decision column is a spreadsheet, not a plan.

```mermaid
flowchart LR
    Q["One query"] --> P["3 to 5 pages"]
    P --> R["Rows and marks"]
    R --> B["Bucket"]
    B --> D["Decision"]
```
*A gap is a row with a decision. It is not an automatic new section and never an automatic new URL.*

## Setup

- [ ] Primary query (exact phrase)
- [ ] Intent in one sentence: “This query is hiring a page to ___.”
- [ ] Date searched and location or device used
- [ ] Our target URL (existing page to update, or proposed new slug)
- [ ] Pages compared (3 to 5 URLs from the first page that match the intent)

## Marks (use the same four every time)

| Mark | Meaning | Typical decision |
| --- | --- | --- |
| Covered | Answered clearly and correctly | Table stakes if most pages have it |
| Thin | A line or two, no method, example, or proof | Candidate differentiator |
| Skipped | Not on the page | Check why. If all skip it, it may be our gain |
| Wrong | Outdated or contradicted by a primary source | Correction, with a source link |

## The grid (copy rows as needed)

Rows are things a reader would act on or be annoyed to find missing: topics, formats, evidence, decision help, freshness.

| Row (what the reader needs) | Page A | Page B | Page C | Our page | Bucket |
| --- | --- | --- | --- | --- | --- |
|  |  |  |  |  |  |
|  |  |  |  |  |  |
|  |  |  |  |  |  |
|  |  |  |  |  |  |
|  |  |  |  |  |  |
|  |  |  |  |  |  |

## Buckets and rules

| Bucket | Rule | Where it goes |
| --- | --- | --- |
| Table stakes | Most rivals cover it. Readers would miss it | Short section on the target page |
| Differentiator | Rivals are thin or silent. We can prove something | Center of the page, with a first-party block |
| Correction | A claim conflicts with a primary source | Cited paragraph. Name the source, not the rival |
| Skip on purpose | Off-intent or another URL’s job | Nowhere. Write the reason |
| New URL candidate | Own intent, own next step, no sibling owns it | Only after the sibling test |

## Decisions

- [ ] Each differentiator names its first-party block (screenshot, test, process, failure, client fact)
- [ ] Each correction has a primary-source link
- [ ] Each skipped row has a one-line reason
- [ ] Sibling test done for any new URL candidate (search our own site first)
- [ ] If the page exists: Search Console queries checked for rows with impressions and weak clicks
- [ ] Brief updated with the final list before drafting

## Related guides

- [Search competitive gap matrix: what rivals cover that you skip](https://simeoncreatives.com/blog/search-competitive-gap-matrix)
- [SEO content brief: search intent and information gain](https://simeoncreatives.com/blog/seo-content-brief-search-intent-information-gain)
- [Information gain framework](https://simeoncreatives.com/blog/information-gain-framework-google-seo)
- [SEO content brief template](https://simeoncreatives.com/resources/seo-content-brief-template)
