Skip to content

All articles

A royal-blue microscope drawn flat in profile with an empty stage, its eyepiece the one orange part; beneath it YOUR CHECK and, smaller, NOT EDITOR.

Writing for SEO: what our own score records show about keyword lists

· 14 min read

Write for the reader's question first, use the keyword list to find what you missed, stop at the length the topic needs, and when the score and the prose disagree, write the decision down. That is our answer to how to write for SEO, and it comes from our own records, not from a style manual. We scored 31 of our own articles, on different topics, against keyword lists built from the top search results for each one. Of those 31, 13 closed at our bar of 70 or above and 18 closed below it, each on a written decision not to add the missing terms. In the 146 scoring rounds where our scorer reported its keyword-stuffing flag, the flag fired twice.

If you write SEO content to a keyword list, whether a content scorer's or your own, this is a record of what happened when we did the same on our blog, round by round, and what we decided each time the list and the prose pulled apart.

Our interest, before anything else: we build and sell the scoring engine that produced these readings. It compares a draft with the pages that rank in search results for its keyword and returns a score. Our home page says it in one sentence: "We use AI to write your articles." On this blog, we use AI to write our articles, and a person checks each one before it is published, after our own checks: every source opened, every draft scored, every piece edited against our own rules.

Here are the limits of these numbers. They come from one desk, one scorer (ours) and 31 of the 68 finished articles on our own website, scored between 4 August and 3 November 2026. These are our scorer's readings of our own drafts. They are not search rankings, and they are not a grade of writing quality.

What do the pages that rank say about writing for SEO?

The pages that rank for writing for SEO give tips and warn against keyword stuffing. None of them counts what a keyword list did to its own articles. We reviewed the top-ranking pages for "writing for seo" on 4 November 2026 and read six of them in full: AWAI, Google's SEO Starter Guide, Semrush, thesarkytype, OuterBox and Backlinko. Every one of the six is a set of tips, steps or a guide.

Three of the six warn against keyword stuffing in so many words. Google's SEO Starter Guide says: "Excessively repeating the same words over and over (even in variations) is tiring for users, and keyword stuffing is against Google's spam policies." Semrush tells the writer: "Work your researched keywords into your content naturally," and then, "But avoid keyword stuffing at all costs." thesarkytype puts it more bluntly: "However, keyword stuffing is still a very bad idea."

The advice is sound, and some of it goes further than a warning. OuterBox tells the writer: "Do not copy the structure because everyone else uses it. Use the SERP to understand expectations, then write the version that actually helps your reader." Semrush suggests a writer "Run a small experiment to test ideas you're writing about, and then include the findings in your article." Backlinko organises its advice as four Ps: purpose, proof, precision and portability.

What none of the six does is report a count. On these six pages, read on this date, 0 of 6 publishes what writing to a keyword list did to its own articles: how many met a target, how many fell short, and what the writer decided when the list and the prose disagreed. A count of our own score records is what we can add, because we kept the score of every round we worked.

What does a keyword list ask an article to do?

A keyword list asks an article to sound like the pages already ranking for its keyword. Each term gets a range, and the whole piece gets a length band. That is how our scorer works. It reads the top search results for the keyword, builds a list of the terms those pages share, and sets a minimum and a maximum for each. It sets the length band from the same pages. It checks how densely any one word is repeated, which is its stuffing flag. The SEO score says how well the draft covers the list.

Three page cards marked RANKING PAGES, an orange arrow to one card marked THE LIST whose rows each carry a blue range on a grey track, with RANGE PER TERM beneath.
Our scorer draws its keyword list from the pages that rank for a keyword, and each term's range comes from what those pages wrote, not from what the subject needs.

The other half is a short checklist about how the text reads to a search engine and to a person in a hurry: whether sections open with the answer, whether some sentences stand alone and carry a fact, whether the questions searchers ask are answered. Our bar is a score of 70 on both halves. When a piece closes below it, the editor writes the reason down in the article's files before it moves on, and that rule is why the records behind this page exist. The important part is the sentence, not the score.

The keyword list our scorer built for this page shows what a list asks for. It has 110 terms. It asks for "content" and "seo" between 10 and 24 times each, which a page on this subject carries without effort. This page's list also asks for "video" 5 to 11 times and "free" 5 to 9 times, because the pages that rank for this keyword use those words often. This article has nothing to say about either, so we leave those words out on purpose and accept the points they cost.

That is the plainest way to see what a range means. A range drawn from other pages describes what those pages wrote. It doesn't describe what your subject needs, and it isn't a ceiling on the words your subject cannot avoid.

What happened when 31 of our articles were scored against their lists?

Of our 31 scored articles, 18 closed below a score of 70. Each of the 18 carries a written decision explaining why, and here is how we counted.

We counted on 4 November 2026, from the 500 score files in the folders of the 68 finished articles on our website, using the method below. A round is one scored draft. The final round is the text that closed. Each piece was scored against the keyword list built for its own topic, the list we used as we drafted it, and every round was saved to our dashboard as it ran. The per-article records behind these counts are not yet published, so for now a reader cannot check them from outside.

Two groups are left out, and we name them. For 36 of the 68 articles, the final round carries no SEO number: while a platform fault lasted, our engine returned only the checklist half. One more closed below 70 on 4 August, before we required a written decision for a close below 70, and has none. That leaves 31 articles, scored between 4 August and 3 November 2026.

What we counted across those 31:

  • First drafts: a median score of 57; 6 of 31 scored 70 or above at round 1.
  • Finals: a median of 69; 13 of 31 closed at 70 or above, and 18 of 31 below.
  • Rounds: 147 scored rounds across the 31, a median of 5 per article, between 2 and 10.
  • The stuffing flag: reported on 146 of the 147 rounds, and on for 2 of them.
  • Above the range: 25 of 31 finals carried at least one term above the top of its range, with the stuffing flag off on every one.
  • Below their own best: 5 of 31 finals scored lower than an earlier round of the same piece.

The medians are medians of this set of 31 and of nothing wider. The rise between them is what our editing loop did to our own drafts, using the list each one was given. It is not a figure for anyone else's articles.

Two findings stand out. Revision lifted the median score of our 31 articles from 57 to 69 and still left 18 of the 31 short of 70. Our stuffing flag fired on 2 of 146 rounds, while 25 of the 31 finals carried at least one word above its range. Those two facts are the rest of this page.

Why did most of our articles close below our own bar?

Each of our 18 articles below 70 closed on a written decision not to add the terms still missing, and each decision is in that article's files. We have not coded the reasons in those decisions, so we give no count of reasons and no single cause for all 18. What follows is one of them, quoted in its own words, and then what we think many of them have in common.

WRITTEN DECISION over a column of five plates: SCORE AND BAR, TERMS USED, REPEATED WORDS CUT, TERMS REFUSED on an orange plate, and WHAT WOULD CHANGE.
The parts each of our written decisions carries: the score against the bar, the terms the draft used, the repeated words cut back, the terms refused with a reason for each, and what would change the call.

The clearest case study is our guide to hiring an AI search optimization agency, which closed at a score of 65 and a checklist of 60. Its keyword list asked for so many phrases built on the word "search" that the list could not be met at all. The editor's decision worked it out: "the cheapest possible text meeting every one of its `search`-family minimums needs 24 occurrences of the token `search` against a cap of 20." The draft already carried "search" 44 times. The decision then named what it refused: "`digital`, `b2b`, `driven`, `growth`, `media` — 34 occurrences of agency-marketing vocabulary with no honest home in a buyer's due-diligence piece." The stuffing flag never fired on any of its scored rounds.

That case shows the conflict plainly, and we think the same pull runs through many of the 18, though we have not coded them. Our scorer draws each keyword list from whatever ranks. When the ranking pages are sales pages, the list asks a buyer's guide for a sales page's vocabulary. When they are broad how-to pages, it asks a narrow piece for their broad words. The choice is then between a score of 70 and a page that still reads as itself.

We think the written decision is the part worth copying, more than the number. A 65 with one paragraph saying which terms were refused, and why, can be checked by anyone later: an editor, a client, or the writer three months on. A 65 with no paragraph is only a low score.

In practice, each of our decisions carries the same few parts, and you can copy the shape. It states the score and the bar. It lists the terms that did get a home, and where. It lists the repeated words that were cut back. It names the terms refused, each with its reason in a line: no honest place in this piece, a register the subject cannot wear, or a word the list counts in a way the sentence cannot use. And it says what would change the call. Written that way, a below-target close is the last step of a revision, not a way to skip one.

Does a stuffing flag catch keyword stuffing?

Our stuffing flag fired twice in 146 scored rounds, both times on a first draft that repeated one company's name. A flag that fires that rarely is not proof that the drafts were clean, so we read the rounds where it fired and the finals where it did not.

Two identical pages with the same blue word marks under SAME DENSITY and DIFFERENT PURPOSE; the orange-outlined one marked SUBJECT'S OWN WORD and OWED, the other FOR THE METER and CUT.
Two drafts can repeat a word just as often and read the same to a stuffing flag. Purpose is what separates them: the subject's own word is owed, and a word repeated only for the meter is cut.

The first case study is our article on blocking Google-Extended. Its round 1 scored 71 and a checklist of 74, both above our bar, with the stuffing flag on: "google" counted 94 against a maximum of 22, because the subject is a robots.txt token whose name begins with the company's. The editor's instruction for the next round read: "A stuffing flag fails a draft at any score, so the bar is NOT met this round although both numbers clear it. Cut first." The fix was plain wording. After one mention in a section, the draft said "the token" or "it", and "the page says" replaced repeated attributions to the company. The Google-Extended draft's second round scored 74 with the flag off and "google" at 39.

The first round of the Google-Extended article cleared both numbers and still did not ship. Its score rose once the repetition came out.

The second is our article on how Google chooses AI Overview sources. Its round 1 scored 65 and a checklist of 67 with the flag on, "google" at 55 against a maximum of 13. Round 2 brought it down to 28, turned the flag off and lifted the score to 70, while the checklist fell from 67 to 62. Cutting repetition is not free, and the record shows the cost.

The finals show the other side. Of our 31 finals, 25 closed with at least one term above its range and the stuffing flag off. Among the largest overruns, the term was, by our reading, the subject's own word: "markdown" 50 times against a maximum of 17 on our page about Markdown for AI agents, "google" 44 against 22 on the Google-Extended page, "chatgpt" 34 against 9 on our page about ChatGPT for SEO. We think those are not stuffing, because a page about Markdown has to say Markdown and its range came from pages that covered something broader.

The rule we use is simple. The subject's own word is owed: it goes where the sentence needs it, however often that is. A term repeated only to move the meter is cut, whatever the score says. The flag helps with the second case. It cannot decide the first, because it reads density, not purpose.

Is a page that scores below 70 a worse page?

A score below 70 does not show that a page is worse, or better. We have not measured how these pages read to people or how they rank, and what the records show is narrower. 13 of our 31 scored articles met our bar with the stuffing flag off, so a high score and an honest page are not opposites. Where the list and the subject agree, the score comes without effort.

Of the 31 finals, 5 scored lower than an earlier round of the same piece. We think the usual reason is an edit made for accuracy or clarity after the best round, such as a correction or a cut, that happened to remove counted words. The text that closed is the text the editor approved, not the round with the highest number.

We hold no search ranking or traffic reading for these pages in this count. A below-bar page may rank better or worse than one that met the bar, and nothing here says which. Whether a content score tracks quality at all is another question, with another measurement: we tested it once against blind quality reviews, and that result is on what our content score missed in blind reviews of the drafts. It is not repeated here.

How should you use a keyword list when you write for SEO?

Use a keyword list to check a draft you have already written for your audience. It is not a set of words to place. Here is how we work in practice, and how you can apply it to a blog post on your own website with any content score.

Start with the reader's question; it is the first step. Decide what the piece must say to your audience before you look at the list. A blog post built from the list reads like the list, and your audience can tell.

Run the list as a check for omissions once the draft is done. When the list names a word your field uses and your draft never does, look at why: it can mean a missing section, a missing definition or a question you skipped. If it fits a sentence the reader needs, write that sentence. If it doesn't, leave it out. Using the list this way keeps your keyword strategy where it belongs, in the choice of topic and question, not in the count of each word.

Take the length from the topic, not from a target number. The length band tells you how long the ranking pages are, which is a fair guide to how much a topic needs, whether it runs on your own blog or a client's. We wrote up how we checked the length of the pages that rank separately. Stop when the piece is done.

Let the subject's own word run over its range, and cut any sentence that exists only for its keyword. We think those two rules settle most arguments with a meter.

When you stop below the target, write one sentence saying what you refused and why. In practice that sentence costs a minute. It turns a low number into a decision someone else can check, long after the draft is done, and it keeps you honest when the next draft tempts you to feed the list.

If you are asking whether ChatGPT can write SEO content, that is a separate question, and we answered it from different records in what ChatGPT flagged when it read our drafts.

The meter is your check, not your editor. Where its target and your blog post disagree, the call is yours to make, in writing.

What these counts do not show

These counts are one scorer's readings of one desk's drafts: 31 articles, scored between 4 August and 3 November 2026. They do not show how any of these articles ranks in a search engine, how much traffic it earns, or how a human reader judges its quality. They say nothing about anyone else's writing.

They are also incomplete in named ways. The score files we counted keep only the first 12 under-range terms of each round, so we cannot count how many terms we left out. And we have not coded the reasons in the 18 decisions, so we report them by example, not by count. This is a small and early set. We keep scoring every article we write, and we will update the count as it grows.

Sources

See where you stand today.