We're live in beta — earn up to 12,000 credits by signing up today. Get started
Marketing

SEO content brief

Read this before researching a keyword, deciding what page to write, or producing a content brief for a writer, and before promising that a page can rank.

  • 0 installs
  • v1
  • Updated Sep 10, 2026

Written and maintained by FloConnector. Install it as kept updated and your copy follows our revisions; install it as your own and it never changes unless you change it.

SKILL.md 5.4 KB

SEO content brief

A content brief turns a keyword into a page somebody can actually write. Done properly it decides three things before a word is written: whether this page can rank at all, what it has to contain to deserve to, and what it is for once it does.

Most briefs skip the first question, which is why most content does not rank.

Can this page rank at all

Ask before anything else. The answer is often no, and finding that out costs one query instead of a week of writing.

Look at who is already ranking. If page one is entirely major publishers, marketplaces or Wikipedia, a small business site is not displacing them with a better article. Find a longer, more specific query where the competition is other businesses like this one.

Check what type of page ranks. If the top ten are all product pages, a blog post will not rank there no matter how good it is. Google has decided what this query wants and it is not an article.

Check the intent matches the business. A keyword with 20,000 searches a month, all of them people looking for a free template, will not produce customers for a business selling a service. Volume is not value.

This is the honest conversation to have up front. Telling a customer a term is not winnable is worth more than a brief they will spend money acting on.

Research

The connector exposes DataForSEO directly, so this is real data, not estimates.

Volume and cost for the seed terms:

dataforseo_get_kw_google_ads_kw_for_kw_live
  keywords: ["seed term", "variant", ...]     up to 20
  location_code: 2840                          United States
  language_code: "en"
  sort_by: "search_volume"

Returns volume, twelve months of history, CPC and competition, plus a large set of related suggestions. The history is the part people ignore and it matters: a term at 40,000 a month that peaked at 90,000 six months ago is a declining trend, and a term climbing from nothing is worth more than its current volume suggests.

CPC is the best available proxy for commercial value. A term with 300 searches at a $25 CPC is worth more than one with 8,000 at $0.40.

Difficulty, in bulk:

dataforseo_post_dataforseo_labs_bulk_keyword_difficulty_live

What the results page actually looks like:

dataforseo_create_serp_google_organic_task_post
dataforseo_list_serp_google_organic_tasks_ready
dataforseo_get_serp_google_organic_task_advanced_by_id

The SERP is a task based flow: post it, poll for ready, fetch the result. Worth the round trip, because it tells you what type of page ranks, what features occupy the page (featured snippet, People Also Ask, local pack, shopping) and how much organic room is actually left.

What people also type:

dataforseo_create_serp_google_autocomplete_task_advanced

Autocomplete is the cheapest source of real question phrasing, and question phrasing is what the page has to answer.

What the site already ranks for:

Where Search Console is connected, use it. Existing impressions on a term you have not targeted are the cheapest wins available: the page already exists and is already close.

When a result comes back as a table rather than inline, query it and aggregate rather than reading rows one at a time.

Choosing the target

One primary keyword per page. Not three.

Then five to fifteen secondary terms: variants, questions and long tail phrases that belong on the same page because they share the same intent. Terms with different intent are different pages, even when they contain the same words.

The test for “same page”: would one page satisfy someone searching either term. If the honest answer is no, split it.

Writing the brief

Structure in assets/brief-template.md. What matters in it:

  • The intent, in a sentence. What the searcher wants and what state they are in
  • The angle. Why this page rather than the ten already there. If there is no answer, do not commission the page
  • The outline, as H2s, driven by what the ranking pages cover and what they miss
  • The questions to answer, from People Also Ask and autocomplete
  • The evidence needed. Numbers, examples, screenshots, quotes. This is what separates a page that ranks from one that reads like every other page
  • Word count as a range, from what is ranking. Not a target for its own sake
  • Internal links, in and out
  • The call to action, and what happens after the click

Rules

  • Match the intent, do not fight it. If the results are all comparison pages, write a comparison page
  • Cover the topic, do not repeat the keyword. Modern ranking is about whether the page comprehensively answers the question. Keyword density is not a thing and has not been for years
  • Write the title tag as the click decision. Under 60 characters, keyword near the front, a reason to click
  • One page per intent. Two pages targeting the same intent compete with each other, and the weaker one drags the stronger down
  • Say what is not winnable. The most valuable output of this process is sometimes “do not write this”

What not to promise

  • Do not promise a position. Nobody controls the ranking
  • Do not promise a timeframe. New content commonly takes months
  • Do not present search volume as traffic. A first position gets a fraction of the volume, and features on the page can take most of the clicks before any organic result
  • Do not treat volume as demand. Check the CPC and the intent before deciding a term is worth having

Reference files

Everything the skill tells your AI to read, exactly as it ships in the zip.

assets/brief-template.md 3.0 KB
# Content brief: [Working title]

| | |
|---|---|
| **Primary keyword** | |
| **Search volume** | [X] per month, [location] |
| **CPC** | $[X] |
| **Competition** | [Low / Medium / High] |
| **Trend** | [Rising / Flat / Declining, over 12 months] |
| **Page type** | [Blog post / Landing page / Comparison / Guide / Product] |
| **Target length** | [X] to [X] words |
| **Author** | |
| **Due** | |

---

## Why this page

**Search intent:** [What the searcher wants and what state they are in. One or two sentences.]

**Our angle:** [Why this page rather than the ten already ranking. What we have that they do not: real data, a real example, actual experience, a tool.]

**What it is for:** [What we want the reader to do. If the answer is nothing, reconsider the page.]

---

## What is already ranking

| Position | Page | Type | Words | What it does well | What it misses |
|---|---|---|---|---|---|
| 1 | | | | | |
| 2 | | | | | |
| 3 | | | | | |

**SERP features present:** [Featured snippet / People Also Ask / Local pack / Shopping / Video / None]

**Room for us:** [Honest assessment. If the answer is none, say so and stop here.]

---

## Keywords

**Primary:** [term]

**Secondary:**

| Term | Volume | Where it goes |
|---|---|---|
| | | [H2 / intro / naturally in body] |
| | | |
| | | |

**Questions to answer** (from People Also Ask and autocomplete):

- [Question]
- [Question]
- [Question]

---

## Outline

**Title tag:** [Under 60 characters. Keyword near the front. A reason to click.]

**Meta description:** [Under 155 characters. Not a summary, a pitch.]

**H1:** [May differ from the title tag]

**Intro** [What it must establish in the first 100 words. Readers and search engines both decide here.]

**H2: [Section]**
- [What this covers]
- [Evidence needed]

**H2: [Section]**
- [What this covers]
- [Evidence needed]

**H2: [Section]**
- [What this covers]

**Conclusion and call to action**
- [The action, and what happens after the click]

---

## Evidence needed

The part that makes the page worth reading rather than another summary of the same information.

- [ ] [Specific numbers, and where from]
- [ ] [A real example or case]
- [ ] [Screenshots or images]
- [ ] [A quote, or firsthand experience]
- [ ] [Original data, if we have any]

---

## Internal links

**Link out to:**
- [Page], anchor: [text]
- [Page], anchor: [text]

**Link in from:**
- [Existing page that should link here]

---

## Tone and constraints

- [Voice notes, or a link to the brand guidelines]
- [Anything that must not be said: claims we cannot support, competitor mentions, regulated language]
- [Reading level, if it matters]

---

## Before publishing

- [ ] Title tag under 60 characters, keyword near the front
- [ ] Meta description under 155 characters
- [ ] One H1
- [ ] Every H2 answers something a reader actually asked
- [ ] Primary keyword appears naturally, not stuffed
- [ ] All evidence gathered and verified
- [ ] Internal links in place, both directions
- [ ] Images have alt text
- [ ] Call to action is specific
- [ ] Someone who is not us read it and understood it

Questions, answered

What does the SEO content brief skill do?

Read this before researching a keyword, deciding what page to write, or producing a content brief for a writer, and before promising that a page can rank. It is a document in the Agent Skills format: the steps, the rules and the reference files your AI reads when the job comes up. It is written for Google Search Console, DataForSEO, and installs into any workspace whether or not those are connected.

How do I install it?

Add to FloConnector opens it inside your workspace, where Install puts it into one of your collections. Every profile carrying that collection has it on its next call. Download zip gives you the same skill as a bundle for any client that installs skills from disk.

Will it change after I install it?

Only if you ask it to. Keep updated follows FloConnector's revisions (this is v1) and records each one in the skill's history. Make my own is a copy that never changes unless you change it, and a kept-updated skill can be made editable later in one click.

Can I edit it or reuse it elsewhere?

Yes. You can copy, change, rename and redistribute it, commercially or not, with no attribution. Every skill in the library is published under CC0 1.0, and the zip carries the licence text.