Copy Guide
Write Website Copy at a Grade 9 Reading Level
Most people read a website fast, on a phone, while doing something else. Write so a ninth grader could follow it, measure only the real prose on the page, and fix the long sentences first.
- Year 1Website
- Year 2Map Listings
- Year 3Booking Tool
- Year 4Front Desk
- Year 5Payments
- Year 6Reports
Same six pieces.
Years of lessons, one read.

Free to read. Most of this guide is open. The finishing pieces at the end come to you when you opt in.
The Short Version
- Measure only the prose inside the main element. Menus, footers and code skew the score.
- The Flesch-Kincaid grade comes from sentence length and syllables per word.
- Short sentences move the score more than simple words do.
- Say what happens next, when, and who does it.
- Cut marketing words. They add syllables and say nothing.
Why Grade 9 and Not Lower or Higher
Grade 9 is not about how smart your readers are. It is about how much attention they have to spare. A customer on a phone, in a parking lot, with a check engine light on, reads the way a tired person reads. Short lines. Common words. One idea at a time.
Smart readers do not mind plain copy. They finish it faster. Tired readers cannot use hard copy at all. So plain copy loses no one and hard copy loses the people in a hurry, who are often the ones ready to buy.
Lower than grade 5 or so, copy starts to sound like it talks down. Around grade 6 to 9 is the sweet spot for a service business. That leaves room for a few trade words when you need them.

Measure Only the Prose Inside Main
Most reading tools score the whole page. That gives you a wrong number. A menu is a list of short labels with no periods. The tool reads it as one giant sentence, and your score jumps. A footer full of links and legal text does the same. Code blocks are worse.
So measure only what a person reads as prose. On a well built page, that is the text inside the main element. Leave out the header, the nav, the footer, any code, and any button labels. What is left is the copy you actually wrote.
Make sure list items and headings end cleanly too. A list of five items with no periods reads to the formula as one long sentence. If your lists are full sentences, end each with a period. If they are short labels, that is fine, but know they will push the score up a little.
The Formula and a Small Python Function
The Flesch-Kincaid grade level uses two numbers. The average words per sentence, and the average syllables per word.
grade = 0.39 times words per sentence, plus 11.8 times syllables per word, minus 15.59
Look at the weights. Sentence length is multiplied by 0.39. Syllables per word are multiplied by 11.8, but that average barely moves. So in practice, long sentences drive most of a bad score. Cutting one forty word sentence into four short ones does more than swapping ten long words.
Here is a small function that pulls the text out of main and scores it. It uses only the Python standard library. The syllable count is a simple guess based on vowel groups, which is close enough to compare drafts.
import re
from html.parser import HTMLParser
SKIP = {'nav', 'header', 'footer', 'pre', 'code', 'button', 'script', 'style'}
class MainText(HTMLParser):
def __init__(self):
super().__init__()
self.in_main = 0
self.skip = 0
self.parts = []
def handle_starttag(self, tag, attrs):
if tag == 'main':
self.in_main += 1
elif tag in SKIP:
self.skip += 1
def handle_endtag(self, tag):
if tag == 'main':
self.in_main -= 1
elif tag in SKIP:
self.skip -= 1
def handle_data(self, data):
if self.in_main and not self.skip:
self.parts.append(data)
def syllables(word):
word = word.lower()
count = len(re.findall(r'[aeiouy]+', word))
if word.endswith('e') and count > 1:
count -= 1
return max(1, count)
def grade(html):
parser = MainText()
parser.feed(html)
text = ' '.join(parser.parts)
words = re.findall(r"[A-Za-z']+", text)
if not words:
return 0.0
sentences = max(1, len(re.findall(r'[.!?]+(\s|$)', text)))
syl = sum(syllables(w) for w in words)
return round(0.39 * len(words) / sentences + 11.8 * syl / len(words) - 15.59, 1)
if __name__ == '__main__':
import sys
print(grade(open(sys.argv[1], encoding='utf-8').read()))Run it as python grade.py index.html. It prints one number. Aim for 9 or lower.

Short Sentences Do Most of the Work
Start every edit by finding the longest sentence on the page. Split it. Then find the next longest. Repeat until nothing runs past about twenty words.
Here is a typical sentence from a service page.
Our team of experienced technicians is committed to providing comprehensive diagnostic services utilizing the latest equipment to ensure your vehicle receives the highest quality care possible.
Here it is split and plain.
We find the cause before we fix anything. A tech hooks your car to a scan tool and tests the part that failed. You get a call with what we found and the price before any work starts.
The second one is longer in total. It scores far lower, and it says far more. It tells the reader what happens, who does it, and what they get.
Plain Words, and No Marketing Words
Swap long words for short ones when the short word means the same thing. Use instead of utilize. Help instead of assist. Start instead of commence. Buy instead of purchase.
Then cut the marketing words entirely. Best in class, world class, next level, solutions, one stop shop, and the like. They add syllables, they make the page sound like every other page, and readers skip them. Ask what the word claims, and write the fact instead. Not state of the art equipment. Write the name of the tool and what it checks.
Keep trade words that customers use. If people search for brake pads, say brake pads, not friction components. Plain means the words your customer uses, not baby talk.
Say What Happens Next and Who Does It
The best copy on a service site answers three questions for the reader. What happens next? When? Who does it?
- Not: Submit your request today.
- Instead: Send the form and someone from the shop will call you within two hours to confirm the time and the price.
Never promise a time the day cannot keep. Within two hours is a broken promise at nine at night. Tie the promise to your hours, or say next business morning.
Write in second person, to one reader. You and your car, not customers and their vehicles. It reads faster, and it sounds like a person talking.
Write for a Phone Screen
Most visitors to a local service site are on a phone. A paragraph that looks short on a laptop becomes a wall on a phone. Keep paragraphs to two to four sentences. Put the one thing a reader must know in the first sentence of each paragraph, so a reader who skims the first lines still gets the page.
Put the next step near the top, not only at the bottom. A reader who already knows they want to call should not have to scroll past five sections to find the number.
Use lists when the reader has to compare or follow steps. Use prose when you are explaining why. A page that is all lists reads like a form. A page that is all prose hides the steps.
Bold a few words, not whole sentences. Bold is a signpost. When everything is bold, nothing is.
Test It on One Real Reader
The score tells you if the page is hard. It does not tell you if the page is clear. For that, you need a person.
Hand your phone to someone who does not know your business. Give them one task, like find out what a brake check costs and how to book one. Say nothing else. Watch where they scroll, where they pause, and what they tap. Do not help.
Then ask them to tell you, in their own words, what happens after they book. If their answer matches your process, the page works. If they guess, or say they would call to ask, the page left out a step.
One person, ten minutes, no script. It finds problems a score never will, like a price that is on the page but hidden in the fourth paragraph.
What the Finishing Pieces Contain
You can measure and fix a page with what is above. The finishing pieces give you a build check that scores every page in a site folder and fails the build when one goes over grade 9. They include our full word swap table and the traps that throw the score off, like brand names, numbers and lists. They end with the edit order we follow on every page. Next, put plain copy to work on city pages that rank.
The finishing pieces
Get the Rest of This Guide
You have the method. The finishing pieces are the parts you copy straight into your own work:
- A Build Check That Fails Over Grade 9
- The Word Swap Table
- Traps That Throw the Score Off
- The Edit Order We Follow
Questions People Ask
What reading level should a small business website be?
Aim for grade 9 or lower on the main prose. Grade 6 to 9 reads easily on a phone and still leaves room for the trade words your customers use.
Why does my reading score change so much between tools?
Most tools score the whole page, including menus and footers. Those have no periods, so they read as huge sentences. Score only the text inside main.
Will simple copy make my business look less expert?
No. Experts explain things plainly. Specific facts, like the tool you use and what it checks, show skill better than long words do.
What is the fastest way to lower a reading score?
Split your longest sentences. Sentence length drives most of the Flesch-Kincaid score, so it moves faster than swapping words.
We sell time
Get Years of Building Switched On in Hours
A thirty minute call. A written price. Nothing built until you say yes.


