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.
flowchart LR
Q["One query"] --> P["3 to 5 pages"]
P --> R["Rows and marks"]
R --> B["Bucket"]
B --> D["Decision"]
| 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 |
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 |
|---|---|---|---|---|---|
| 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 |