Publish Prep
A good draft still loses if the title is too long, an image sits right after a table, a stat is unsourced, or the opening matches three other articles on the site. This is the checklist that catches all of it before publish, not after. Read every check, verify it passes, fix the failures.
Run last, after draft-writer, with the site brief and banks to hand.
The checks
SEO
- Meta title 60 characters or fewer, focus keyword near the front. Count them.
- Meta description 120-160 characters, focus keyword present. Count them.
- First heading is
##. No # anywhere in the body.
- Primary keyword in the first 1000 characters; density around one per 200 words, at least twice.
- Every secondary keyword appears at least once. Check each.
- Word count meets or beats the top-three competitor average from the gap analysis.
Images
- One per 350-500 words, minimum two, at least one in the first 500 words.
- No image directly after a table, and never two images back-to-back without prose between.
- Focus keyword in at least one alt tag; every alt is descriptive, never "screenshot" or "image".
- No image reused from another article. Real screenshots or charts with real numbers over generic AI images.
Links
- Max two internal links per section, none in the conclusion, at least one crossing content clusters.
- A citation link at the first mention of every named tool, platform, or source.
- No duplicate external links to the same URL; roughly 0-3 external citations per 500-700 words. No self-links.
Humanisation
- Contractions throughout. No em dashes. None of the blocklisted filler or transition phrases.
- Sentence length varies. The opening differs from the site's other articles. No self-intro copy-pasted across articles.
- No templated link sentences.
E-E-A-T and differentiation
- At least two first-person experience statements, woven in. The E-E-A-T story is unique to this article; the client is described by industry, not named.
- At least one stat source no other article uses; no source appears in more than two articles total.
- Internal-link anchor text differs from what other articles use for the same target.
Fact check
- Every statistic, price, and claim verified against its named source. Every quote verified. Nothing from model memory; all from the research phase. Pricing and cost data current, not reused old numbers.
Then build the package
- Meta title, meta description, and a unique slug (guarantee uniqueness against the site).
- Four to six key takeaways, max ~20 words each.
- The FAQ from the real PAA questions that have answers, kept out of the body if your front-end renders it separately. JSON-LD: Article always, FAQPage from those answered PAA, HowTo only if there are three or more numbered steps.
Output
Produce a publish-package.md: the checklist with each item marked pass or fail (fix fails first), then the meta, slug, takeaways, FAQ, and schema. Flag anything a human must verify before it goes live.
Then stop. The article and everything around it are ready to publish.
1---2name: publish-prep3description: Run the finished draft through the full pre-publish check before it goes live. Verifies the SEO basics, the image and link rules, the humanisation and anti-repetition rules, the E-E-A-T and differentiation rules, and fact-checks every number against its named source. Builds the meta, slug, key takeaways, and FAQ-from-real-PAA. Run last in the content pipeline. Produces a publish package and a pass/fail checklist, then stops.4license: MIT5---67# Publish Prep89A good draft still loses if the title is too long, an image sits right after a table, a stat is unsourced, or the opening matches three other articles on the site. This is the checklist that catches all of it before publish, not after. Read every check, verify it passes, fix the failures.1011Run last, after `draft-writer`, with the site brief and banks to hand.1213## The checks1415**SEO**16- Meta title 60 characters or fewer, focus keyword near the front. Count them.17- Meta description 120-160 characters, focus keyword present. Count them.18- First heading is `##`. No `#` anywhere in the body.19- Primary keyword in the first 1000 characters; density around one per 200 words, at least twice.20- Every secondary keyword appears at least once. Check each.21- Word count meets or beats the top-three competitor average from the gap analysis.2223**Images**24- One per 350-500 words, minimum two, at least one in the first 500 words.25- No image directly after a table, and never two images back-to-back without prose between.26- Focus keyword in at least one alt tag; every alt is descriptive, never "screenshot" or "image".27- No image reused from another article. Real screenshots or charts with real numbers over generic AI images.2829**Links**30- Max two internal links per section, none in the conclusion, at least one crossing content clusters.31- A citation link at the first mention of every named tool, platform, or source.32- No duplicate external links to the same URL; roughly 0-3 external citations per 500-700 words. No self-links.3334**Humanisation**35- Contractions throughout. No em dashes. None of the blocklisted filler or transition phrases.36- Sentence length varies. The opening differs from the site's other articles. No self-intro copy-pasted across articles.37- No templated link sentences.3839**E-E-A-T and differentiation**40- At least two first-person experience statements, woven in. The E-E-A-T story is unique to this article; the client is described by industry, not named.41- At least one stat source no other article uses; no source appears in more than two articles total.42- Internal-link anchor text differs from what other articles use for the same target.4344**Fact check**45- Every statistic, price, and claim verified against its named source. Every quote verified. Nothing from model memory; all from the research phase. Pricing and cost data current, not reused old numbers.4647## Then build the package4849- Meta title, meta description, and a unique slug (guarantee uniqueness against the site).50- Four to six key takeaways, max ~20 words each.51- The FAQ from the real PAA questions that have answers, kept out of the body if your front-end renders it separately. JSON-LD: Article always, FAQPage from those answered PAA, HowTo only if there are three or more numbered steps.5253## Output5455Produce a `publish-package.md`: the checklist with each item marked pass or fail (fix fails first), then the meta, slug, takeaways, FAQ, and schema. Flag anything a human must verify before it goes live.5657Then stop. The article and everything around it are ready to publish.