claude-plugin-wordpress-manager 2.4.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/.claude-plugin/plugin.json +10 -3
  2. package/CHANGELOG.md +103 -0
  3. package/agents/wp-content-strategist.md +104 -0
  4. package/agents/wp-monitoring-agent.md +44 -0
  5. package/agents/wp-site-manager.md +19 -0
  6. package/docs/GUIDE.md +183 -23
  7. package/docs/plans/2026-03-01-tier4-5-implementation.md +1783 -0
  8. package/docs/plans/2026-03-01-tier4-5-observability-automation-design.md +426 -0
  9. package/docs/plans/2026-03-01-wcop-reassessment-v2.6.0.md +403 -0
  10. package/hooks/hooks.json +9 -0
  11. package/package.json +19 -3
  12. package/servers/wp-rest-bridge/build/tools/comments.d.ts +6 -6
  13. package/servers/wp-rest-bridge/build/tools/cwv.d.ts +3 -0
  14. package/servers/wp-rest-bridge/build/tools/cwv.js +196 -0
  15. package/servers/wp-rest-bridge/build/tools/ga4.d.ts +3 -0
  16. package/servers/wp-rest-bridge/build/tools/ga4.js +323 -0
  17. package/servers/wp-rest-bridge/build/tools/gsc.d.ts +3 -0
  18. package/servers/wp-rest-bridge/build/tools/gsc.js +354 -0
  19. package/servers/wp-rest-bridge/build/tools/index.d.ts +38 -38
  20. package/servers/wp-rest-bridge/build/tools/index.js +18 -0
  21. package/servers/wp-rest-bridge/build/tools/media.d.ts +2 -2
  22. package/servers/wp-rest-bridge/build/tools/multisite-sites.d.ts +2 -2
  23. package/servers/wp-rest-bridge/build/tools/plausible.d.ts +3 -0
  24. package/servers/wp-rest-bridge/build/tools/plausible.js +207 -0
  25. package/servers/wp-rest-bridge/build/tools/plugin-repository.d.ts +1 -1
  26. package/servers/wp-rest-bridge/build/tools/search.d.ts +2 -2
  27. package/servers/wp-rest-bridge/build/tools/slack.d.ts +3 -0
  28. package/servers/wp-rest-bridge/build/tools/slack.js +129 -0
  29. package/servers/wp-rest-bridge/build/tools/unified-content.d.ts +8 -8
  30. package/servers/wp-rest-bridge/build/tools/unified-taxonomies.d.ts +4 -4
  31. package/servers/wp-rest-bridge/build/tools/users.d.ts +6 -6
  32. package/servers/wp-rest-bridge/build/tools/wc-coupons.d.ts +1 -1
  33. package/servers/wp-rest-bridge/build/tools/wc-customers.d.ts +3 -3
  34. package/servers/wp-rest-bridge/build/tools/wc-orders.d.ts +4 -4
  35. package/servers/wp-rest-bridge/build/tools/wc-products.d.ts +8 -8
  36. package/servers/wp-rest-bridge/build/tools/wc-webhooks.d.ts +4 -4
  37. package/servers/wp-rest-bridge/build/tools/wc-workflows.d.ts +3 -0
  38. package/servers/wp-rest-bridge/build/tools/wc-workflows.js +222 -0
  39. package/servers/wp-rest-bridge/build/wordpress.d.ts +23 -0
  40. package/servers/wp-rest-bridge/build/wordpress.js +178 -0
  41. package/servers/wp-rest-bridge/package.json +1 -0
  42. package/skills/wordpress-router/SKILL.md +1 -1
  43. package/skills/wordpress-router/references/decision-tree.md +12 -2
  44. package/skills/wp-alerting/SKILL.md +142 -0
  45. package/skills/wp-alerting/references/alert-thresholds.md +79 -0
  46. package/skills/wp-alerting/references/escalation-paths.md +92 -0
  47. package/skills/wp-alerting/references/report-scheduling.md +142 -0
  48. package/skills/wp-alerting/references/slack-integration.md +109 -0
  49. package/skills/wp-alerting/scripts/alerting_inspect.mjs +150 -0
  50. package/skills/wp-analytics/SKILL.md +158 -0
  51. package/skills/wp-analytics/references/analytics-dashboards.md +83 -0
  52. package/skills/wp-analytics/references/cwv-monitoring.md +101 -0
  53. package/skills/wp-analytics/references/ga4-integration.md +76 -0
  54. package/skills/wp-analytics/references/plausible-setup.md +92 -0
  55. package/skills/wp-analytics/references/traffic-attribution.md +92 -0
  56. package/skills/wp-analytics/scripts/analytics_inspect.mjs +153 -0
  57. package/skills/wp-content/SKILL.md +1 -0
  58. package/skills/wp-content-attribution/SKILL.md +3 -0
  59. package/skills/wp-content-optimization/SKILL.md +173 -0
  60. package/skills/wp-content-optimization/references/content-freshness.md +234 -0
  61. package/skills/wp-content-optimization/references/headline-optimization.md +171 -0
  62. package/skills/wp-content-optimization/references/meta-optimization.md +243 -0
  63. package/skills/wp-content-optimization/references/readability-analysis.md +201 -0
  64. package/skills/wp-content-optimization/references/seo-content-scoring.md +245 -0
  65. package/skills/wp-content-optimization/scripts/content_optimization_inspect.mjs +237 -0
  66. package/skills/wp-content-workflows/SKILL.md +142 -0
  67. package/skills/wp-content-workflows/references/content-lifecycle-hooks.md +131 -0
  68. package/skills/wp-content-workflows/references/multi-channel-actions.md +151 -0
  69. package/skills/wp-content-workflows/references/schedule-triggers.md +118 -0
  70. package/skills/wp-content-workflows/references/trigger-management.md +159 -0
  71. package/skills/wp-content-workflows/references/wp-action-hooks.md +114 -0
  72. package/skills/wp-content-workflows/scripts/workflow_inspect.mjs +202 -0
  73. package/skills/wp-monitoring/SKILL.md +3 -0
  74. package/skills/wp-programmatic-seo/SKILL.md +2 -0
  75. package/skills/wp-search-console/SKILL.md +122 -0
  76. package/skills/wp-search-console/references/competitor-gap-analysis.md +226 -0
  77. package/skills/wp-search-console/references/content-seo-feedback.md +181 -0
  78. package/skills/wp-search-console/references/gsc-setup.md +110 -0
  79. package/skills/wp-search-console/references/indexing-management.md +182 -0
  80. package/skills/wp-search-console/references/keyword-tracking.md +181 -0
  81. package/skills/wp-search-console/scripts/search_console_inspect.mjs +178 -0
  82. package/skills/wp-social-email/SKILL.md +1 -0
  83. package/skills/wp-webhooks/SKILL.md +1 -0
@@ -0,0 +1,171 @@
1
+ # Headline Optimization
2
+
3
+ ## Overview
4
+
5
+ Headlines are the single most impactful element for both search CTR and on-page engagement. Claude performs headline analysis by evaluating keyword placement, emotional impact, clarity, length, and formula adherence — then generates scored alternatives. No external headline analyzer APIs are needed.
6
+
7
+ ## Headline Scoring Criteria (1-10 Scale)
8
+
9
+ | Score | Criteria | Weight |
10
+ |-------|----------|--------|
11
+ | 0-2 | Keyword presence (primary keyword in title) | 20% |
12
+ | 0-2 | Power word usage (emotional/urgency/curiosity) | 20% |
13
+ | 0-2 | Length optimization (50-60 chars for SEO, 6-12 words) | 20% |
14
+ | 0-2 | Clarity and specificity (reader knows what to expect) | 20% |
15
+ | 0-2 | Formula adherence (matches proven headline pattern) | 20% |
16
+
17
+ ### Score Interpretation
18
+
19
+ | Score | Rating | Action |
20
+ |-------|--------|--------|
21
+ | 9-10 | Excellent | No changes needed |
22
+ | 7-8 | Good | Minor tweaks for improvement |
23
+ | 5-6 | Average | Rewrite recommended |
24
+ | 3-4 | Below Average | Rewrite required |
25
+ | 1-2 | Poor | Complete headline overhaul |
26
+
27
+ ## Power Word Categories
28
+
29
+ ### Emotional Words
30
+ - Trust: proven, guaranteed, authentic, certified, trusted
31
+ - Fear: warning, dangerous, mistake, avoid, never
32
+ - Joy: amazing, incredible, brilliant, stunning, remarkable
33
+ - Surprise: secret, shocking, unexpected, little-known, hidden
34
+
35
+ ### Urgency Words
36
+ - Time: now, today, immediately, hurry, limited, deadline
37
+ - Scarcity: exclusive, rare, only, last chance, while supplies last
38
+ - Action: act, rush, grab, claim, don't miss
39
+
40
+ ### Curiosity Words
41
+ - Mystery: secret, hidden, little-known, underground, insider
42
+ - Question: why, how, what if, did you know, ever wonder
43
+ - Incomplete: the real reason, what nobody tells you, the truth about
44
+
45
+ ### Value Words
46
+ - Benefit: free, save, boost, increase, maximize, transform
47
+ - Ease: simple, easy, quick, effortless, step-by-step, beginner
48
+ - Authority: ultimate, complete, definitive, comprehensive, expert
49
+
50
+ ## Headline Formulas
51
+
52
+ ### How-To Formula
53
+ ```
54
+ How to [Achieve Desired Result] [Without Undesired Outcome]
55
+ ```
56
+ Examples:
57
+ - "How to Optimize WordPress Speed Without Plugins"
58
+ - "How to Write SEO Headlines That Actually Get Clicks"
59
+
60
+ ### List Formula
61
+ ```
62
+ [Number] [Adjective] [Keyword] [Promise/Benefit]
63
+ ```
64
+ Examples:
65
+ - "7 Proven Ways to Improve Your WordPress Page Speed"
66
+ - "15 Essential WordPress Plugins for Small Business"
67
+
68
+ ### Question Formula
69
+ ```
70
+ [Question Word] [Keyword] [Intriguing Element]?
71
+ ```
72
+ Examples:
73
+ - "Why Is Your WordPress Site So Slow? (And How to Fix It)"
74
+ - "What Makes the Best WordPress Themes Actually Convert?"
75
+
76
+ ### Comparison Formula
77
+ ```
78
+ [Option A] vs [Option B]: [Decisive Factor]
79
+ ```
80
+ Examples:
81
+ - "Yoast vs Rank Math: Which SEO Plugin Actually Performs Better?"
82
+ - "WooCommerce vs Shopify: The Complete 2026 Comparison"
83
+
84
+ ### Result Formula
85
+ ```
86
+ [Action] That [Specific Result] in [Timeframe]
87
+ ```
88
+ Examples:
89
+ - "WordPress Caching Setup That Cuts Load Time by 60% in 10 Minutes"
90
+ - "SEO Fixes That Doubled Our Organic Traffic in 30 Days"
91
+
92
+ ## Keyword Placement Rules
93
+
94
+ 1. **Front-load the keyword** — primary keyword in the first 3-4 words
95
+ 2. **Natural phrasing** — keyword must read naturally, not forced
96
+ 3. **Exact match first** — try exact keyword match; partial match as fallback
97
+ 4. **Avoid keyword stuffing** — keyword appears once in the headline
98
+ 5. **Brand at the end** — if including brand name, use pipe separator at end
99
+
100
+ ### Examples
101
+ ```
102
+ Good: "WordPress Speed Optimization: 10 Proven Techniques"
103
+ ^ keyword at front
104
+
105
+ Bad: "10 Proven Techniques for Making Your WordPress Website Speed Faster"
106
+ ^ keyword buried, awkward phrasing
107
+ ```
108
+
109
+ ## A/B Title Generation Workflow
110
+
111
+ ### Step 1: Fetch Current Title
112
+ ```
113
+ Use list_content to get the current post title and slug.
114
+ ```
115
+
116
+ ### Step 2: Analyze Current Title
117
+ Claude evaluates the title against the scoring criteria above and assigns a score.
118
+
119
+ ### Step 3: Generate 3 Alternatives
120
+ Claude generates three headline variants using different formulas:
121
+ - Variant A: Same formula, optimized (improve power words, keyword placement)
122
+ - Variant B: Different formula (e.g., if original is How-To, try List)
123
+ - Variant C: Curiosity-driven variant (question or result formula)
124
+
125
+ ### Step 4: Score All Variants
126
+ Each variant receives a 1-10 score with per-criteria breakdown.
127
+
128
+ ### Step 5: Apply Best Option
129
+ ```
130
+ Use update_content to set the winning title.
131
+ Track the change for future CTR comparison via GSC data.
132
+ ```
133
+
134
+ ## Example Workflow
135
+
136
+ ### Input
137
+ ```
138
+ Current title: "Tips for WordPress"
139
+ Target keyword: "WordPress performance optimization"
140
+ ```
141
+
142
+ ### Analysis
143
+ ```
144
+ Score: 2/10
145
+ - Keyword presence: 0/2 (target keyword missing)
146
+ - Power words: 0/2 (none)
147
+ - Length: 0/2 (too short — 3 words)
148
+ - Clarity: 1/2 (vague, no specificity)
149
+ - Formula: 1/2 (implied list, but no number)
150
+ ```
151
+
152
+ ### Generated Alternatives
153
+ ```
154
+ Variant A (List): "9 WordPress Performance Optimization Tips That Actually Work" → 8/10
155
+ Variant B (How-To): "How to Master WordPress Performance Optimization in 2026" → 7/10
156
+ Variant C (Result): "WordPress Performance Optimization: Cut Load Time by 50%" → 9/10
157
+ ```
158
+
159
+ ### Recommendation
160
+ Apply Variant C — highest score, strong keyword placement, specific result promise, power word ("cut"), appropriate length (56 chars).
161
+
162
+ ## Best Practices
163
+
164
+ - Always preserve the primary keyword when rewriting headlines
165
+ - Test one title change at a time to measure impact via GSC CTR data
166
+ - Wait 2-4 weeks after title change before evaluating CTR impact
167
+ - Keep headline under 60 characters for full display in search results
168
+ - Use numbers when possible (odd numbers perform slightly better)
169
+ - Front-load the most important information
170
+ - Avoid clickbait — headline must accurately represent content
171
+ - Consider the search intent behind the target keyword when choosing formula
@@ -0,0 +1,243 @@
1
+ # Meta Description and Title Tag Optimization
2
+
3
+ ## Overview
4
+
5
+ Title tags and meta descriptions are the first impression users see in search results. Optimizing these elements directly impacts click-through rate (CTR). Claude generates optimized meta elements by combining best practices with GSC CTR data, then produces A/B variants for testing. This process uses existing WP REST Bridge and GSC tools — no additional APIs needed.
6
+
7
+ ## Title Tag Best Practices
8
+
9
+ ### Rules
10
+
11
+ | Rule | Standard |
12
+ |------|----------|
13
+ | Maximum length | 60 characters (Google truncates at ~60) |
14
+ | Keyword placement | Primary keyword in the first 3-4 words |
15
+ | Uniqueness | Every page must have a unique title |
16
+ | Brand inclusion | Optional, at end with pipe separator |
17
+ | Keyword repetition | Keyword appears once only |
18
+ | Readability | Must make sense as a standalone phrase |
19
+
20
+ ### Title Tag Formula
21
+ ```
22
+ [Primary Keyword] — [Benefit or Differentiator] | [Brand]
23
+ ```
24
+
25
+ ### Character Count Optimization
26
+ ```
27
+ Ideal: 50-60 characters (full display in all search results)
28
+ OK: 40-50 characters (may look short but fully visible)
29
+ Warning: 60-65 characters (partial truncation on some devices)
30
+ Error: 65+ characters (truncated, meaning lost)
31
+ Too Short: <30 characters (underutilizing title space)
32
+ ```
33
+
34
+ ### Examples
35
+ ```
36
+ Good (55 chars): "WordPress Speed Optimization — 10 Proven Techniques | Brand"
37
+ Good (48 chars): "How to Speed Up WordPress in 2026 | Brand"
38
+ Bad (72 chars): "The Complete and Ultimate Guide to WordPress Speed Optimization Tips 2026"
39
+ Bad (18 chars): "Speed Tips"
40
+ ```
41
+
42
+ ## Meta Description Guidelines
43
+
44
+ ### Rules
45
+
46
+ | Rule | Standard |
47
+ |------|----------|
48
+ | Maximum length | 155-160 characters |
49
+ | Minimum length | 120 characters (shorter looks incomplete) |
50
+ | Keyword inclusion | Primary keyword once, naturally |
51
+ | Call to action | Include an action verb (learn, discover, get, try) |
52
+ | Uniqueness | Every page must have a unique description |
53
+ | Emotional trigger | Include benefit or pain point |
54
+ | Specificity | Use numbers, data, or specific outcomes |
55
+
56
+ ### Meta Description Formula
57
+ ```
58
+ [Action verb] [what the reader gets/learns]. [Specific detail or data point]. [CTA].
59
+ ```
60
+
61
+ ### Examples
62
+ ```
63
+ Good (152 chars):
64
+ "Learn 10 proven WordPress speed optimization techniques that cut load time
65
+ by 50%. Step-by-step guide with benchmarks. Start optimizing today."
66
+
67
+ Bad (89 chars):
68
+ "This article is about WordPress speed optimization. Read more on our website."
69
+
70
+ Bad (185 chars):
71
+ "In this comprehensive and detailed guide we will cover everything you need to
72
+ know about optimizing your WordPress website for speed including caching and
73
+ image optimization techniques."
74
+ ```
75
+
76
+ ## Using GSC CTR Data for Optimization
77
+
78
+ ### Identifying Low-CTR Pages
79
+
80
+ #### Step 1: Pull Page Performance Data
81
+ ```
82
+ Use gsc_page_performance to get CTR data for all pages.
83
+ Sort by impressions (descending) to focus on high-visibility pages first.
84
+ ```
85
+
86
+ #### Step 2: CTR Benchmarks by Position
87
+
88
+ | Average Position | Expected CTR | Below Average |
89
+ |-----------------|-------------|---------------|
90
+ | 1 | 25-35% | <20% |
91
+ | 2 | 12-18% | <10% |
92
+ | 3 | 8-12% | <6% |
93
+ | 4-5 | 5-8% | <4% |
94
+ | 6-10 | 2-5% | <2% |
95
+
96
+ #### Step 3: Flag Optimization Candidates
97
+ Pages with high impressions but below-average CTR are prime candidates:
98
+ ```
99
+ Example:
100
+ Page: /wordpress-speed-guide
101
+ Position: 3
102
+ Impressions: 5,000/month
103
+ CTR: 4.2% (expected 8-12% for position 3)
104
+ → META OPTIMIZATION NEEDED — potential to double clicks
105
+ ```
106
+
107
+ #### Step 4: Analyze Current Meta
108
+ ```
109
+ Use get_content to fetch the current title tag and meta description.
110
+ Evaluate against the rules above.
111
+ Identify specific issues (too long, missing keyword, no CTA, etc.).
112
+ ```
113
+
114
+ ### CTR Impact Estimation
115
+ ```
116
+ Current: Position 3, 5000 impressions, 4.2% CTR = 210 clicks/month
117
+ After optimization to 8% CTR: 5000 × 0.08 = 400 clicks/month
118
+ Potential gain: +190 clicks/month (+90% improvement)
119
+ ```
120
+
121
+ ## A/B Variant Generation
122
+
123
+ ### Process
124
+
125
+ #### Step 1: Generate Two Variants
126
+ Claude generates two meta description variants using different approaches:
127
+
128
+ **Variant A: Benefit-focused**
129
+ ```
130
+ "Cut your WordPress load time by 50% with these 10 proven optimization
131
+ techniques. Includes caching, image compression, and CDN setup. Free guide."
132
+ ```
133
+
134
+ **Variant B: Problem-focused**
135
+ ```
136
+ "Slow WordPress site losing visitors? Fix it with 10 tested speed
137
+ techniques. Average improvement: 50% faster. Step-by-step instructions."
138
+ ```
139
+
140
+ #### Step 2: Score Both Variants
141
+
142
+ | Criteria | Variant A | Variant B |
143
+ |----------|-----------|-----------|
144
+ | Keyword presence | Yes (1st sentence) | Yes (1st sentence) |
145
+ | Length | 148 chars ✓ | 142 chars ✓ |
146
+ | CTA | "Free guide" | "Step-by-step" |
147
+ | Emotional trigger | Benefit (cut load time) | Pain (losing visitors) |
148
+ | Specificity | 50%, 10 techniques | 50% faster |
149
+ | Readability | Clear | Clear |
150
+
151
+ #### Step 3: Apply and Monitor
152
+ ```
153
+ Apply the highest-scoring variant via update_content.
154
+ Set a review date 2-4 weeks out.
155
+ Compare CTR data in GSC after the review period.
156
+ ```
157
+
158
+ ### Title Tag A/B Variants
159
+ Same process for title tags:
160
+ ```
161
+ Original: "WordPress Speed Guide"
162
+ Variant A: "WordPress Speed Optimization — 10 Techniques That Work"
163
+ Variant B: "How to Speed Up WordPress by 50% (2026 Guide)"
164
+ ```
165
+
166
+ ## Rich Snippet Optimization
167
+
168
+ ### Content-Type Specific Guidance
169
+
170
+ | Content Type | Rich Snippet Opportunity | Meta Optimization |
171
+ |-------------|------------------------|-------------------|
172
+ | How-to articles | HowTo schema | Include "how to" in title, steps count in meta |
173
+ | FAQ pages | FAQPage schema | Include question in title, "answers" in meta |
174
+ | Product pages | Product schema (rating, price) | Include price/rating in meta |
175
+ | Review posts | Review schema (star rating) | Include rating in title/meta |
176
+ | List posts | ItemList schema | Include count in title ("10 Best...") |
177
+
178
+ ### Meta for Featured Snippets
179
+ To optimize for position zero:
180
+ - Structure content to answer specific questions
181
+ - Use the question as an H2 heading
182
+ - Provide a concise answer in the first paragraph (40-60 words)
183
+ - Follow with detailed explanation
184
+ - Include a summary table or list
185
+
186
+ ## Step-by-Step Workflow
187
+
188
+ ### Step 1: Identify Optimization Targets
189
+ ```
190
+ Use gsc_page_performance to find pages with:
191
+ - High impressions (>500/month)
192
+ - Below-average CTR for their position
193
+ - Sort by potential impact (impressions × CTR gap)
194
+ ```
195
+
196
+ ### Step 2: Fetch Current Meta Elements
197
+ ```
198
+ Use get_content for each target page.
199
+ Extract: title tag, meta description, H1, URL slug.
200
+ ```
201
+
202
+ ### Step 3: Analyze and Score Current Meta
203
+ Claude evaluates each element against rules above:
204
+ - Title: length, keyword position, clarity, brand
205
+ - Description: length, keyword, CTA, emotional trigger, specificity
206
+
207
+ ### Step 4: Generate Optimized Variants
208
+ For each page, Claude produces:
209
+ - 2 title tag variants
210
+ - 2 meta description variants
211
+ - Score comparison with current version
212
+ - Estimated CTR impact
213
+
214
+ ### Step 5: Apply Changes
215
+ ```
216
+ Use update_content to apply the winning variants.
217
+ Document changes for tracking:
218
+ - Page URL
219
+ - Previous title/meta
220
+ - New title/meta
221
+ - Date changed
222
+ - Baseline CTR from GSC
223
+ ```
224
+
225
+ ### Step 6: Monitor Results
226
+ After 2-4 weeks:
227
+ ```
228
+ Use gsc_page_performance to pull updated CTR data.
229
+ Compare against baseline.
230
+ Iterate if CTR did not improve.
231
+ ```
232
+
233
+ ## Best Practices
234
+
235
+ - Prioritize high-impression pages first (biggest impact from small CTR gains)
236
+ - Never duplicate meta descriptions across pages
237
+ - Avoid meta descriptions that do not match page content (causes bounce)
238
+ - Include the year in title tags for time-sensitive content (guides, reviews)
239
+ - Use active voice and power verbs in meta descriptions
240
+ - Test one change at a time to isolate impact
241
+ - Review and refresh meta descriptions quarterly
242
+ - Consider search intent when crafting meta — informational vs transactional queries need different approaches
243
+ - Do not force keywords into meta descriptions unnaturally — readability trumps keyword presence
@@ -0,0 +1,201 @@
1
+ # Readability Analysis
2
+
3
+ ## Overview
4
+
5
+ Readability analysis measures how easy content is to read and understand. Claude performs Flesch-Kincaid scoring, sentence length analysis, passive voice detection, paragraph assessment, and jargon identification directly on WordPress content — no external readability tools required. The goal is web-optimized content that matches the target audience's reading level.
6
+
7
+ ## Flesch-Kincaid Scoring
8
+
9
+ ### Formula
10
+ ```
11
+ Flesch Reading Ease = 206.835 - (1.015 × ASL) - (84.6 × ASW)
12
+
13
+ Where:
14
+ ASL = Average Sentence Length (words per sentence)
15
+ ASW = Average Syllables per Word
16
+ ```
17
+
18
+ ### Score Interpretation
19
+
20
+ | Score | Grade Level | Audience | Action |
21
+ |-------|-------------|----------|--------|
22
+ | 90-100 | 5th grade | Very easy, children | Too simple for most web content |
23
+ | 80-89 | 6th grade | Easy, conversational | Good for broad consumer content |
24
+ | 70-79 | 7th grade | Fairly easy | Good for general web content |
25
+ | 60-69 | 8th-9th grade | Standard | **Target for most WordPress content** |
26
+ | 50-59 | 10th-12th grade | Fairly difficult | Acceptable for professional audience |
27
+ | 30-49 | College | Difficult | Only for specialized/technical content |
28
+ | 0-29 | Graduate | Very difficult | Rewrite for web consumption |
29
+
30
+ ### Target Scores by Content Type
31
+
32
+ | Content Type | Target Score | Rationale |
33
+ |--------------|-------------|-----------|
34
+ | Blog posts | 60-70 | General audience, scannable |
35
+ | Product descriptions | 65-75 | Clear, benefit-focused |
36
+ | Technical documentation | 45-60 | Professional audience |
37
+ | Landing pages | 70-80 | Must be instantly clear |
38
+ | Email newsletters | 65-75 | Quick reading format |
39
+
40
+ ## Sentence Length Analysis
41
+
42
+ ### Guidelines
43
+
44
+ | Metric | Target | Flag Threshold |
45
+ |--------|--------|----------------|
46
+ | Average sentence length | 15-20 words | >20 words average |
47
+ | Maximum sentence length | 35 words | >40 words |
48
+ | Short sentence ratio | 20-30% under 10 words | <10% short sentences |
49
+ | Variety | Mix of short, medium, long | All same length |
50
+
51
+ ### Sentence Length Distribution
52
+ Ideal content alternates between sentence lengths for rhythm:
53
+ ```
54
+ Short sentence (5-10 words). ← Punchy, creates emphasis
55
+ Medium sentence (11-20 words). ← Core information delivery
56
+ Long sentence (21-30 words). ← Complex ideas, supporting detail
57
+ Short sentence (5-10 words). ← Reset reader attention
58
+ ```
59
+
60
+ ### Fixing Long Sentences
61
+ Strategies for breaking up long sentences:
62
+ 1. **Split at conjunctions** — break at "and", "but", "while", "although"
63
+ 2. **Remove relative clauses** — move "which" and "that" clauses to new sentences
64
+ 3. **Use bullet lists** — convert compound sentences into scannable lists
65
+ 4. **Front-load the point** — put the main idea first, details after
66
+
67
+ ### Example
68
+ ```
69
+ Before (38 words):
70
+ "WordPress is a content management system that allows users to create websites
71
+ and blogs with themes and plugins, which can be customized to match any brand
72
+ identity and extended with additional functionality."
73
+
74
+ After (two sentences, 15 + 16 words):
75
+ "WordPress is a content management system for creating websites and blogs.
76
+ Themes and plugins let you customize the design and extend functionality."
77
+ ```
78
+
79
+ ## Passive Voice Detection
80
+
81
+ ### What to Flag
82
+ Passive voice constructions where the subject receives the action:
83
+ ```
84
+ Passive: "The plugin was installed by the user."
85
+ Active: "The user installed the plugin."
86
+ ```
87
+
88
+ ### Target
89
+ - Maximum 10% of sentences in passive voice
90
+ - 5% or less is ideal for web content
91
+
92
+ ### Common Passive Patterns
93
+ | Passive Pattern | Active Rewrite |
94
+ |----------------|----------------|
95
+ | "was created by" | "[subject] created" |
96
+ | "is recommended" | "we recommend" |
97
+ | "can be configured" | "you can configure" |
98
+ | "has been updated" | "we updated" / "[subject] updated" |
99
+ | "should be installed" | "install" (imperative) |
100
+
101
+ ### When Passive Is Acceptable
102
+ - Scientific or technical writing where the actor is irrelevant
103
+ - When the object is more important than the subject
104
+ - Policy or legal statements
105
+
106
+ ## Paragraph Length Guidelines
107
+
108
+ | Metric | Target | Flag |
109
+ |--------|--------|------|
110
+ | Sentences per paragraph | 2-4 | >5 sentences |
111
+ | Words per paragraph | 40-80 | >100 words |
112
+ | One-sentence paragraphs | Occasional for emphasis | >3 consecutive |
113
+ | Wall of text | Never | Any paragraph >150 words |
114
+
115
+ ### Web-Specific Rules
116
+ - Break up paragraphs more aggressively than print
117
+ - Use subheadings every 200-300 words
118
+ - Include visual breaks (images, lists, blockquotes) every 300-400 words
119
+ - One idea per paragraph
120
+
121
+ ## Jargon and Complexity Detection
122
+
123
+ ### Flag These Patterns
124
+ 1. **Industry jargon** — terms unknown to general audience (e.g., "canonical URL", "transclusion")
125
+ 2. **Acronyms without definition** — first use must define the acronym
126
+ 3. **Multi-syllable alternatives** — when simpler words exist
127
+ 4. **Nominalization** — turning verbs into nouns ("optimization" instead of "optimize")
128
+ 5. **Double negatives** — "not uncommon" instead of "common"
129
+
130
+ ### Simplification Table
131
+
132
+ | Complex | Simple |
133
+ |---------|--------|
134
+ | utilize | use |
135
+ | implement | add / set up |
136
+ | functionality | feature |
137
+ | methodology | method |
138
+ | in order to | to |
139
+ | at this point in time | now |
140
+ | a large number of | many |
141
+ | in the event that | if |
142
+ | prior to | before |
143
+ | subsequent to | after |
144
+
145
+ ## Step-by-Step Workflow
146
+
147
+ ### Step 1: Fetch Content
148
+ ```
149
+ Use get_content with the post ID to retrieve full body content.
150
+ Strip HTML tags for text-only analysis.
151
+ ```
152
+
153
+ ### Step 2: Compute Metrics
154
+ Claude analyzes the plain text and computes:
155
+ - Total word count
156
+ - Total sentence count
157
+ - Average sentence length (words/sentences)
158
+ - Estimated Flesch-Kincaid score
159
+ - Passive voice percentage
160
+ - Average paragraph length
161
+ - Jargon terms identified
162
+
163
+ ### Step 3: Generate Report
164
+ ```
165
+ Readability Report for: "Post Title"
166
+ ═══════════════════════════════════
167
+ Flesch-Kincaid Score: 58 (target: 60-70) ⚠ Below target
168
+ Average Sentence Length: 22 words (target: <20) ⚠ Too long
169
+ Passive Voice: 15% (target: <10%) ⚠ Too high
170
+ Avg Paragraph Length: 95 words (target: <80) ⚠ Long paragraphs
171
+ Jargon Terms Found: 3 (canonical, transclusion, REST endpoint)
172
+
173
+ Top Issues:
174
+ 1. 5 sentences over 35 words — break into shorter sentences
175
+ 2. 3 paragraphs over 100 words — split with subheadings
176
+ 3. "canonical URL" used without definition — add brief explanation
177
+ ```
178
+
179
+ ### Step 4: Suggest Improvements
180
+ Claude generates specific rewrite suggestions:
181
+ - Rewrites for the 3 longest sentences
182
+ - Paragraph split points with suggested subheadings
183
+ - Passive-to-active voice conversions
184
+ - Jargon simplifications or definitions to add
185
+
186
+ ### Step 5: Apply Changes (Optional)
187
+ ```
188
+ Use update_content to apply approved changes.
189
+ Preserve all HTML structure, links, and media.
190
+ Only modify text content for readability improvements.
191
+ ```
192
+
193
+ ## Best Practices
194
+
195
+ - Always analyze the full post body, not just excerpts
196
+ - Consider the target audience when evaluating scores (technical docs have lower target)
197
+ - Preserve the author's voice — readability improvements should not flatten style
198
+ - Do not oversimplify to the point of losing nuance or accuracy
199
+ - Run readability analysis after SEO optimization to ensure keyword insertion did not harm readability
200
+ - Check readability on both desktop and mobile (shorter paragraphs matter more on mobile)
201
+ - Use transition words (however, therefore, for example) to maintain flow after sentence splitting