$npx -y skills add jdevalk/skills --skill content-seoAudits a blog post draft or page copy for content-level SEO: search intent fit, focus keyphrase placement, E-E-A-T signals (experience, expertise, authoritativeness, trustworthiness), helpfulness and originality, content freshness, and internal linking. Use when the user asks "wi
| 1 | # Content SEO audit |
| 2 | |
| 3 | Audit a post or page draft for whether it earns a ranking — not how it reads. This skill covers the content-level questions: does the post match a real search intent, does it use the words searchers use, does it demonstrate experience and trustworthiness, and does it give the searcher a reason to stay. |
| 4 | |
| 5 | This is the third pass in the writing-quality chain. Run `readability-check` first (how the prose reads), `metadata-check` on the title and meta description, and this skill on the question of whether the content deserves the click. Technical SEO — sitemaps, structured data, canonicals, performance — belongs to `astro-seo` or `static-seo`. |
| 6 | |
| 7 | ## Before you audit |
| 8 | |
| 9 | You need two facts. If the user hasn't supplied them, derive them and state your assumption — a wrong assumption flagged is better than a silent one: |
| 10 | |
| 11 | - **The focus keyphrase**: the exact query this post should rank for, in the words a searcher would type. If the user can't name one, derive the apparent keyphrase from the title and headings — and report that as the first finding, because a post written without a target query usually serves none. |
| 12 | - **The audience and their problem**: who lands on this page and what they were trying to fix when they searched. |
| 13 | |
| 14 | The reader decides what quality is, not the writer. Every check below reduces to one question: does this content serve the person who typed the query better than what's already ranking? |
| 15 | |
| 16 | ## What to check |
| 17 | |
| 18 | Read the full post, then report on each criterion below. For every issue, quote the specific text, reference its location, explain the problem, and suggest a concrete fix. |
| 19 | |
| 20 | ### 1. Search intent fit |
| 21 | |
| 22 | Searchers arrive with one of four intents, and the content type must match: |
| 23 | |
| 24 | - **Informational** ("how does X work") — wants a guide or explainer, not a product pitch. |
| 25 | - **Commercial investigation** ("best X for Y", "X vs Z") — wants comparison and honest trade-offs. |
| 26 | - **Transactional** ("buy X", "X pricing") — wants a product or category page with a clear path to purchase. |
| 27 | - **Navigational** ("X login", brand names) — wants a specific page; don't intercept it with a blog post. |
| 28 | |
| 29 | Checks: |
| 30 | |
| 31 | - Name the keyphrase's dominant intent and verify the content type matches. A sales page targeting an informational query loses the visitor before the second paragraph — they wanted an answer, got a pitch. |
| 32 | - Calls-to-action must match the intent. Informational page → soft CTA (related reading, newsletter); transactional page → direct path to the product. Flag a hard sell on an informational post. |
| 33 | - The answer to the searcher's question should appear early, not after 800 words of preamble. A searcher who has to scroll for the answer goes back to the results — and that return is the negative signal that costs rankings. |
| 34 | |
| 35 | ### 2. Focus keyphrase placement |
| 36 | |
| 37 | The keyphrase confirms to the searcher — and to the search engine — that this page answers their query. It should appear naturally in the places both of them weight most: |
| 38 | |
| 39 | - The page title and the first paragraph. A searcher should recognize their query within seconds of landing. |
| 40 | - At least one or two headings, where it fits without contortion. |
| 41 | - Several core sentences (the first sentence of a paragraph). In a well-structured post that stays on topic, this happens by itself — if you have to force it, the post has drifted off topic, and that's the real finding. |
| 42 | - Use the searcher's words, not internal jargon. If the audience searches "site speed" and the post says "performance optimization" throughout, the post is invisible to its own audience. |
| 43 | |
| 44 | And the inverse checks: |
| 45 | |
| 46 | - **Never force it.** If the keyphrase makes a sentence read wrong, the sentence wins. Search engines recognize synonyms and word forms; readers don't forgive stilted prose. |
| 47 | - **Vary it.** Mechanical repetition of the exact phrase reads as stuffing to readers and engines alike. Synonyms and related phrases cover more queries and read better. |
| 48 | |
| 49 | ### 3. E-E-A-T signals |
| 50 | |
| 51 | Search quality raters assess experience, expertise, authoritativeness, and trustworthiness. These aren't abstract virtues — each one is visible (or absent) in the text: |
| 52 | |
| 53 | - **Experience**: does the post show first-hand involvement — things only someone who actually did this would know? Real numbers, screenshot |