claude-plugin-wordpress-manager 1.4.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 (142) hide show
  1. package/.claude-plugin/plugin.json +19 -0
  2. package/.mcp.json +19 -0
  3. package/CHANGELOG.md +62 -0
  4. package/LICENSE +69 -0
  5. package/README.md +213 -0
  6. package/agents/wp-content-strategist.md +148 -0
  7. package/agents/wp-deployment-engineer.md +93 -0
  8. package/agents/wp-performance-optimizer.md +198 -0
  9. package/agents/wp-security-auditor.md +161 -0
  10. package/agents/wp-site-manager.md +109 -0
  11. package/commands/wp-audit.md +37 -0
  12. package/commands/wp-backup.md +45 -0
  13. package/commands/wp-deploy.md +38 -0
  14. package/commands/wp-setup.md +64 -0
  15. package/commands/wp-status.md +53 -0
  16. package/docs/GUIDE.md +1190 -0
  17. package/hooks/hooks.json +57 -0
  18. package/hooks/scripts/backup-reminder.sh +29 -0
  19. package/hooks/scripts/pre-deploy-check.sh +49 -0
  20. package/package.json +46 -0
  21. package/scripts/health-check.sh +110 -0
  22. package/scripts/validate-wp-operation.sh +115 -0
  23. package/servers/wp-rest-bridge/build/server.d.ts +2 -0
  24. package/servers/wp-rest-bridge/build/server.js +74 -0
  25. package/servers/wp-rest-bridge/build/tools/comments.d.ts +227 -0
  26. package/servers/wp-rest-bridge/build/tools/comments.js +192 -0
  27. package/servers/wp-rest-bridge/build/tools/index.d.ts +919 -0
  28. package/servers/wp-rest-bridge/build/tools/index.js +30 -0
  29. package/servers/wp-rest-bridge/build/tools/media.d.ts +174 -0
  30. package/servers/wp-rest-bridge/build/tools/media.js +247 -0
  31. package/servers/wp-rest-bridge/build/tools/plugin-repository.d.ts +62 -0
  32. package/servers/wp-rest-bridge/build/tools/plugin-repository.js +149 -0
  33. package/servers/wp-rest-bridge/build/tools/plugins.d.ts +153 -0
  34. package/servers/wp-rest-bridge/build/tools/plugins.js +175 -0
  35. package/servers/wp-rest-bridge/build/tools/search.d.ts +44 -0
  36. package/servers/wp-rest-bridge/build/tools/search.js +44 -0
  37. package/servers/wp-rest-bridge/build/tools/unified-content.d.ts +328 -0
  38. package/servers/wp-rest-bridge/build/tools/unified-content.js +628 -0
  39. package/servers/wp-rest-bridge/build/tools/unified-taxonomies.d.ts +244 -0
  40. package/servers/wp-rest-bridge/build/tools/unified-taxonomies.js +492 -0
  41. package/servers/wp-rest-bridge/build/tools/users.d.ts +269 -0
  42. package/servers/wp-rest-bridge/build/tools/users.js +226 -0
  43. package/servers/wp-rest-bridge/build/types.d.ts +151 -0
  44. package/servers/wp-rest-bridge/build/types.js +2 -0
  45. package/servers/wp-rest-bridge/build/wordpress.d.ts +48 -0
  46. package/servers/wp-rest-bridge/build/wordpress.js +305 -0
  47. package/servers/wp-rest-bridge/package.json +27 -0
  48. package/skills/wordpress-router/SKILL.md +78 -0
  49. package/skills/wordpress-router/references/decision-tree.md +88 -0
  50. package/skills/wp-abilities-api/SKILL.md +97 -0
  51. package/skills/wp-abilities-api/references/php-registration.md +67 -0
  52. package/skills/wp-abilities-api/references/rest-api.md +13 -0
  53. package/skills/wp-audit/SKILL.md +114 -0
  54. package/skills/wp-audit/references/performance-checklist.md +113 -0
  55. package/skills/wp-audit/references/security-checklist.md +95 -0
  56. package/skills/wp-audit/references/seo-checklist.md +128 -0
  57. package/skills/wp-backup/SKILL.md +87 -0
  58. package/skills/wp-backup/references/backup-strategies.md +116 -0
  59. package/skills/wp-backup/references/restore-procedures.md +129 -0
  60. package/skills/wp-block-development/SKILL.md +176 -0
  61. package/skills/wp-block-development/references/attributes-and-serialization.md +22 -0
  62. package/skills/wp-block-development/references/block-json.md +49 -0
  63. package/skills/wp-block-development/references/creating-new-blocks.md +46 -0
  64. package/skills/wp-block-development/references/debugging.md +36 -0
  65. package/skills/wp-block-development/references/deprecations.md +24 -0
  66. package/skills/wp-block-development/references/dynamic-rendering.md +23 -0
  67. package/skills/wp-block-development/references/inner-blocks.md +25 -0
  68. package/skills/wp-block-development/references/registration.md +30 -0
  69. package/skills/wp-block-development/references/supports-and-wrappers.md +18 -0
  70. package/skills/wp-block-development/references/tooling-and-testing.md +21 -0
  71. package/skills/wp-block-development/scripts/list_blocks.mjs +121 -0
  72. package/skills/wp-block-themes/SKILL.md +118 -0
  73. package/skills/wp-block-themes/references/creating-new-block-theme.md +37 -0
  74. package/skills/wp-block-themes/references/debugging.md +24 -0
  75. package/skills/wp-block-themes/references/patterns.md +18 -0
  76. package/skills/wp-block-themes/references/style-variations.md +14 -0
  77. package/skills/wp-block-themes/references/templates-and-parts.md +16 -0
  78. package/skills/wp-block-themes/references/theme-json.md +59 -0
  79. package/skills/wp-block-themes/scripts/detect_block_themes.mjs +117 -0
  80. package/skills/wp-content/SKILL.md +103 -0
  81. package/skills/wp-content/references/content-templates.md +230 -0
  82. package/skills/wp-content/references/seo-optimization.md +169 -0
  83. package/skills/wp-deploy/SKILL.md +52 -0
  84. package/skills/wp-deploy/references/hostinger-deploy.md +51 -0
  85. package/skills/wp-deploy/references/ssh-deploy.md +63 -0
  86. package/skills/wp-interactivity-api/SKILL.md +181 -0
  87. package/skills/wp-interactivity-api/references/debugging.md +29 -0
  88. package/skills/wp-interactivity-api/references/directives-quickref.md +30 -0
  89. package/skills/wp-interactivity-api/references/server-side-rendering.md +310 -0
  90. package/skills/wp-migrate/SKILL.md +100 -0
  91. package/skills/wp-migrate/references/cross-platform.md +104 -0
  92. package/skills/wp-migrate/references/hostinger-migration.md +86 -0
  93. package/skills/wp-performance/SKILL.md +148 -0
  94. package/skills/wp-performance/references/autoload-options.md +24 -0
  95. package/skills/wp-performance/references/cron.md +20 -0
  96. package/skills/wp-performance/references/database.md +20 -0
  97. package/skills/wp-performance/references/http-api.md +15 -0
  98. package/skills/wp-performance/references/measurement.md +21 -0
  99. package/skills/wp-performance/references/object-cache.md +24 -0
  100. package/skills/wp-performance/references/query-monitor-headless.md +38 -0
  101. package/skills/wp-performance/references/server-timing.md +22 -0
  102. package/skills/wp-performance/references/wp-cli-doctor.md +24 -0
  103. package/skills/wp-performance/references/wp-cli-profile.md +32 -0
  104. package/skills/wp-performance/scripts/perf_inspect.mjs +128 -0
  105. package/skills/wp-phpstan/SKILL.md +99 -0
  106. package/skills/wp-phpstan/references/configuration.md +52 -0
  107. package/skills/wp-phpstan/references/third-party-classes.md +76 -0
  108. package/skills/wp-phpstan/references/wordpress-annotations.md +124 -0
  109. package/skills/wp-phpstan/scripts/phpstan_inspect.mjs +263 -0
  110. package/skills/wp-playground/SKILL.md +103 -0
  111. package/skills/wp-playground/references/blueprints.md +36 -0
  112. package/skills/wp-playground/references/cli-commands.md +39 -0
  113. package/skills/wp-playground/references/debugging.md +16 -0
  114. package/skills/wp-plugin-development/SKILL.md +114 -0
  115. package/skills/wp-plugin-development/references/data-and-cron.md +19 -0
  116. package/skills/wp-plugin-development/references/debugging.md +19 -0
  117. package/skills/wp-plugin-development/references/lifecycle.md +33 -0
  118. package/skills/wp-plugin-development/references/security.md +29 -0
  119. package/skills/wp-plugin-development/references/settings-api.md +22 -0
  120. package/skills/wp-plugin-development/references/structure.md +16 -0
  121. package/skills/wp-plugin-development/scripts/detect_plugins.mjs +122 -0
  122. package/skills/wp-project-triage/SKILL.md +40 -0
  123. package/skills/wp-project-triage/references/triage.schema.json +143 -0
  124. package/skills/wp-project-triage/scripts/detect_wp_project.mjs +592 -0
  125. package/skills/wp-rest-api/SKILL.md +116 -0
  126. package/skills/wp-rest-api/references/authentication.md +18 -0
  127. package/skills/wp-rest-api/references/custom-content-types.md +20 -0
  128. package/skills/wp-rest-api/references/discovery-and-params.md +20 -0
  129. package/skills/wp-rest-api/references/responses-and-fields.md +30 -0
  130. package/skills/wp-rest-api/references/routes-and-endpoints.md +36 -0
  131. package/skills/wp-rest-api/references/schema.md +22 -0
  132. package/skills/wp-wpcli-and-ops/SKILL.md +125 -0
  133. package/skills/wp-wpcli-and-ops/references/automation.md +30 -0
  134. package/skills/wp-wpcli-and-ops/references/cron-and-cache.md +23 -0
  135. package/skills/wp-wpcli-and-ops/references/debugging.md +17 -0
  136. package/skills/wp-wpcli-and-ops/references/multisite.md +22 -0
  137. package/skills/wp-wpcli-and-ops/references/packages-and-updates.md +22 -0
  138. package/skills/wp-wpcli-and-ops/references/safety.md +30 -0
  139. package/skills/wp-wpcli-and-ops/references/search-replace.md +40 -0
  140. package/skills/wp-wpcli-and-ops/scripts/wpcli_inspect.mjs +90 -0
  141. package/skills/wpds/SKILL.md +60 -0
  142. package/skills/wpds/references/wpds-mcp-setup.md +59 -0
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: wp-audit
3
+ description: This skill should be used when the user asks to "audit my site", "security
4
+ check", "site health check", "performance check", "SEO audit", "check my WordPress",
5
+ "is my site secure", "why is my site slow", or mentions any form of WordPress site
6
+ assessment. Orchestrates security, performance, and SEO audits.
7
+ version: 1.0.0
8
+ ---
9
+
10
+ # WordPress Site Audit Skill
11
+
12
+ ## Overview
13
+
14
+ Orchestrates comprehensive WordPress site audits across three dimensions: security, performance, and SEO. Can run targeted single-dimension audits or full assessments.
15
+
16
+ ## When to Use
17
+
18
+ - User asks to audit, check, or assess their WordPress site
19
+ - User reports security concerns or suspicious activity
20
+ - User complains about slow site performance
21
+ - User wants to improve search engine rankings
22
+ - Before major deployments or migrations (pre-flight audit)
23
+
24
+ ## Audit Scope Decision Tree
25
+
26
+ 1. **What type of audit?**
27
+ - "security" / "is my site hacked?" / "vulnerabilities" → **Security audit only**
28
+ - "slow" / "performance" / "speed" / "PageSpeed" → **Performance audit only**
29
+ - "SEO" / "search ranking" / "Google" / "sitemap" → **SEO audit only**
30
+ - "full" / "audit" / "health check" / unspecified → **Full audit (all three)**
31
+
32
+ 2. **Which site?**
33
+ - Check `get_active_site` for current site
34
+ - If user specifies a site, use `switch_site` first
35
+ - If multiple sites requested, audit sequentially
36
+
37
+ ## Full Audit Workflow
38
+
39
+ ### Step 1: Establish Context
40
+ 1. Verify site connectivity via `discover_content_types`
41
+ 2. Confirm which site is being audited
42
+ 3. Note hosting type (Hostinger / other) for relevant checks
43
+
44
+ ### Step 2: Security Audit
45
+ Delegate to **wp-security-auditor** agent or follow `references/security-checklist.md`:
46
+ - Plugin vulnerability scan
47
+ - User account audit
48
+ - Content integrity check
49
+ - DNS/SSL verification
50
+ - Hosting configuration
51
+
52
+ ### Step 3: Performance Audit
53
+ Delegate to **wp-performance-optimizer** agent or follow `references/performance-checklist.md`:
54
+ - Plugin impact analysis
55
+ - Caching assessment
56
+ - Media optimization check
57
+ - External performance test (PageSpeed)
58
+ - Server configuration
59
+
60
+ ### Step 4: SEO Audit
61
+ Follow `references/seo-checklist.md`:
62
+ - Technical SEO (sitemap, robots.txt, canonical URLs)
63
+ - On-page SEO sampling (meta descriptions, headings, slugs)
64
+ - Content quality indicators
65
+ - Structured data verification
66
+ - Core Web Vitals (from performance phase)
67
+
68
+ ### Step 5: Generate Report
69
+ Combine findings into a unified report with:
70
+ - Overall health score (Critical/Warning/Good)
71
+ - Prioritized action items across all dimensions
72
+ - Quick wins vs long-term improvements
73
+ - Estimated effort for each recommendation
74
+
75
+ ## Report Template
76
+
77
+ ```
78
+ # WordPress Site Audit — [site-name]
79
+ **Date:** [date] | **Scope:** [full/security/performance/seo]
80
+
81
+ ## Overall Health: [CRITICAL/WARNING/GOOD]
82
+
83
+ | Dimension | Score | Critical | High | Medium | Low |
84
+ |-------------|-----------|----------|------|--------|-----|
85
+ | Security | [status] | X | X | X | X |
86
+ | Performance | [status] | X | X | X | X |
87
+ | SEO | [status] | X | X | X | X |
88
+
89
+ ## Priority Actions
90
+ 1. [Most critical finding + fix]
91
+ 2. [Second priority + fix]
92
+ 3. [Third priority + fix]
93
+
94
+ ## Detailed Findings
95
+ ### Security
96
+ [findings...]
97
+
98
+ ### Performance
99
+ [findings...]
100
+
101
+ ### SEO
102
+ [findings...]
103
+
104
+ ## Quick Wins (< 1 hour effort)
105
+ - [action 1]
106
+ - [action 2]
107
+ ```
108
+
109
+ ## Additional Resources
110
+
111
+ ### Reference Files
112
+ - **`references/security-checklist.md`** - WordPress security audit checklist
113
+ - **`references/performance-checklist.md`** - Performance analysis checklist
114
+ - **`references/seo-checklist.md`** - SEO audit checklist
@@ -0,0 +1,113 @@
1
+ # WordPress Performance Audit Checklist
2
+
3
+ ## 1. Plugin Analysis (HIGH IMPACT)
4
+
5
+ ### Checks
6
+ - [ ] Count active plugins (target: < 20)
7
+ - [ ] Identify known heavy plugins (page builders, social sharing, analytics suites)
8
+ - [ ] Check for redundant plugins (multiple caching, multiple SEO, multiple security)
9
+ - [ ] Identify plugins that load assets on every page (even where not needed)
10
+ - [ ] Count inactive plugins (should be deleted, not just deactivated)
11
+
12
+ ### Known Heavy Plugins
13
+ | Plugin | Impact | Alternative |
14
+ |--------|--------|-------------|
15
+ | Elementor Pro | High (CSS/JS on all pages) | Gutenberg / GenerateBlocks |
16
+ | Jetpack (full) | High (many modules) | Individual lightweight alternatives |
17
+ | Revolution Slider | High (heavy JS/CSS) | Lightweight slider or static hero |
18
+ | WooCommerce | Medium-High (DB queries) | Necessary for e-commerce, optimize with caching |
19
+ | WPML | Medium (DB overhead) | Polylang (lighter) |
20
+
21
+ ## 2. Caching Assessment (HIGH IMPACT)
22
+
23
+ ### Page Caching
24
+ - [ ] Caching plugin active? (WP Rocket, LiteSpeed Cache, W3 Total Cache)
25
+ - [ ] Page cache enabled?
26
+ - [ ] Cache preloading enabled?
27
+ - [ ] Cache exclusions properly configured? (cart, checkout, account pages)
28
+
29
+ ### Browser Caching
30
+ - [ ] Expires headers set for static assets?
31
+ - [ ] Cache-Control headers configured?
32
+ - [ ] Target: images 1 year, CSS/JS 1 month
33
+
34
+ ### Object Caching
35
+ - [ ] Redis or Memcached available on hosting?
36
+ - [ ] Object cache drop-in installed?
37
+ - [ ] Persistent object cache active?
38
+
39
+ ### CDN
40
+ - [ ] CDN configured? (Cloudflare, StackPath, BunnyCDN)
41
+ - [ ] Static assets served via CDN?
42
+ - [ ] CDN cache hit rate acceptable? (>90%)
43
+
44
+ ## 3. Media Optimization (MEDIUM IMPACT)
45
+
46
+ ### Image Checks
47
+ - [ ] WebP format used? (40-60% smaller than JPEG)
48
+ - [ ] Images properly sized? (no 4000px images displayed at 800px)
49
+ - [ ] Lazy loading implemented? (native `loading="lazy"` or plugin)
50
+ - [ ] Responsive srcsets generated?
51
+ - [ ] Largest image on homepage < 200KB?
52
+
53
+ ### Optimization Tools
54
+ - ShortPixel, Imagify, or Smush for automatic compression
55
+ - WebP Express for format conversion
56
+ - Native WordPress 5.8+ generates WebP if supported
57
+
58
+ ## 4. Database Health (MEDIUM IMPACT)
59
+
60
+ ### Checks
61
+ - [ ] Post revisions limited? (recommended: 3-5 max)
62
+ - [ ] Spam comments cleaned? (should be 0)
63
+ - [ ] Trashed items emptied?
64
+ - [ ] Orphaned meta data cleaned?
65
+ - [ ] Transients expired properly?
66
+ - [ ] Autoloaded options size < 1MB?
67
+
68
+ ### wp-config.php Settings
69
+ ```php
70
+ define('WP_POST_REVISIONS', 5);
71
+ define('EMPTY_TRASH_DAYS', 7);
72
+ define('AUTOSAVE_INTERVAL', 120);
73
+ ```
74
+
75
+ ## 5. Core Web Vitals (HIGH IMPACT for SEO)
76
+
77
+ ### LCP (Largest Contentful Paint) — Target < 2.5s
78
+ - [ ] Hero image optimized and preloaded?
79
+ - [ ] Critical CSS inlined or preloaded?
80
+ - [ ] Server response time (TTFB) < 600ms?
81
+ - [ ] No render-blocking resources above the fold?
82
+
83
+ ### INP (Interaction to Next Paint) — Target < 200ms
84
+ - [ ] JavaScript execution time minimized?
85
+ - [ ] Event handlers efficient?
86
+ - [ ] Third-party scripts deferred?
87
+ - [ ] No long tasks blocking main thread?
88
+
89
+ ### CLS (Cumulative Layout Shift) — Target < 0.1
90
+ - [ ] Images/videos have explicit width/height?
91
+ - [ ] Fonts preloaded (no FOUT/FOIT)?
92
+ - [ ] No dynamically injected content above the fold?
93
+ - [ ] Ad slots have reserved dimensions?
94
+
95
+ ## 6. Server Configuration (MEDIUM IMPACT)
96
+
97
+ ### Checks
98
+ - [ ] PHP version >= 8.1 (8.2/8.3 preferred)
99
+ - [ ] PHP memory limit >= 256MB
100
+ - [ ] Max upload size appropriate
101
+ - [ ] MySQL/MariaDB latest stable
102
+ - [ ] HTTP/2 or HTTP/3 enabled
103
+ - [ ] Gzip/Brotli compression enabled
104
+ - [ ] Keep-alive connections enabled
105
+
106
+ ## 7. Theme Assessment (LOW-MEDIUM IMPACT)
107
+
108
+ ### Checks
109
+ - [ ] Theme is lightweight? (< 1MB total assets)
110
+ - [ ] Theme loads minimal CSS/JS?
111
+ - [ ] Theme is well-coded? (no inline styles, proper enqueueing)
112
+ - [ ] Child theme used? (no direct parent theme modifications)
113
+ - [ ] Unused theme assets removed?
@@ -0,0 +1,95 @@
1
+ # WordPress Security Audit Checklist
2
+
3
+ ## 1. Plugin Security (CRITICAL)
4
+
5
+ ### Checks
6
+ - [ ] List all active and inactive plugins
7
+ - [ ] Verify each plugin is from a trusted source (WordPress.org, reputable vendor)
8
+ - [ ] Check each plugin version against latest available
9
+ - [ ] Search for known CVEs: `[plugin-name] WordPress vulnerability [year]`
10
+ - [ ] Flag plugins not updated in > 12 months
11
+ - [ ] Flag plugins with < 1,000 active installations
12
+ - [ ] Count inactive plugins (should be 0 — delete unused)
13
+
14
+ ### Common Vulnerable Plugins (check specifically)
15
+ - Contact Form 7: ensure latest version
16
+ - WooCommerce: critical for e-commerce sites
17
+ - Elementor: frequent security patches
18
+ - Yoast SEO: moderate risk
19
+ - WPForms: check version
20
+
21
+ ### Red Flags
22
+ - Plugin from unknown/non-WordPress.org source
23
+ - Plugin with no recent updates
24
+ - Plugin requesting excessive permissions
25
+ - Nulled/pirated premium plugins
26
+
27
+ ## 2. User Account Security (HIGH)
28
+
29
+ ### Checks
30
+ - [ ] List all users with `list_users` (context: edit)
31
+ - [ ] Count administrator accounts (should be 1-2 max)
32
+ - [ ] Check for username "admin" (brute force target)
33
+ - [ ] Check for generic usernames (test, demo, admin1)
34
+ - [ ] Verify email addresses are valid and unique
35
+ - [ ] Review user roles (principle of least privilege)
36
+ - [ ] Identify dormant accounts (no posts, no recent login)
37
+
38
+ ### Role Guidelines
39
+ | Role | Who Should Have It |
40
+ |------|-------------------|
41
+ | Administrator | Site owner only (1-2 max) |
42
+ | Editor | Content managers |
43
+ | Author | Regular content creators |
44
+ | Contributor | Guest writers |
45
+ | Subscriber | Registered users |
46
+
47
+ ## 3. Content Integrity (MEDIUM)
48
+
49
+ ### Checks
50
+ - [ ] Review recently modified pages for injected content
51
+ - [ ] Search for suspicious HTML: `<iframe`, `<script`, `eval(`, `base64_decode`
52
+ - [ ] Check for hidden SEO spam (invisible links, cloaked content)
53
+ - [ ] Review comments for spam injection
54
+ - [ ] Check for unauthorized new user accounts
55
+ - [ ] Verify no unexpected custom post types exist
56
+
57
+ ## 4. DNS and Email Security (MEDIUM)
58
+
59
+ ### Checks
60
+ - [ ] SPF record exists: `v=spf1 ... -all`
61
+ - [ ] DKIM record configured
62
+ - [ ] DMARC policy set: `v=DMARC1; p=quarantine` (minimum)
63
+ - [ ] No unexpected A/CNAME records pointing elsewhere
64
+ - [ ] MX records pointing to expected mail server
65
+ - [ ] SSL certificate valid and not expiring soon
66
+
67
+ ## 5. Server Configuration (LOW-MEDIUM)
68
+
69
+ ### Checks (SSH required)
70
+ - [ ] PHP version >= 8.1
71
+ - [ ] wp-config.php permissions: 440 or 400
72
+ - [ ] WP_DEBUG set to false in production
73
+ - [ ] Database table prefix is NOT `wp_`
74
+ - [ ] File editing disabled: `DISALLOW_FILE_EDIT = true`
75
+ - [ ] Directory listing disabled
76
+ - [ ] .htaccess contains security headers
77
+ - [ ] XML-RPC disabled if not needed
78
+
79
+ ### Recommended wp-config.php Settings
80
+ ```php
81
+ define('DISALLOW_FILE_EDIT', true);
82
+ define('WP_DEBUG', false);
83
+ define('WP_DEBUG_LOG', false);
84
+ define('WP_DEBUG_DISPLAY', false);
85
+ define('FORCE_SSL_ADMIN', true);
86
+ ```
87
+
88
+ ### Recommended .htaccess Security Headers
89
+ ```apache
90
+ Header set X-Content-Type-Options "nosniff"
91
+ Header set X-Frame-Options "SAMEORIGIN"
92
+ Header set X-XSS-Protection "1; mode=block"
93
+ Header set Referrer-Policy "strict-origin-when-cross-origin"
94
+ Header set Content-Security-Policy "upgrade-insecure-requests"
95
+ ```
@@ -0,0 +1,128 @@
1
+ # WordPress SEO Audit Checklist
2
+
3
+ ## 1. Technical SEO (CRITICAL)
4
+
5
+ ### Crawlability
6
+ - [ ] robots.txt exists and is valid (`/robots.txt`)
7
+ - [ ] robots.txt allows search engine crawling of key content
8
+ - [ ] XML sitemap exists and is submitted to Google Search Console
9
+ - [ ] Sitemap includes all important pages and posts
10
+ - [ ] No unintentional `noindex` directives on key pages
11
+ - [ ] No orphaned pages (pages with no internal links)
12
+
13
+ ### Indexability
14
+ - [ ] Site is not set to "Discourage search engines" (Settings > Reading)
15
+ - [ ] Important pages return HTTP 200
16
+ - [ ] No duplicate content issues (www vs non-www, HTTP vs HTTPS)
17
+ - [ ] Canonical URLs properly set on all pages
18
+ - [ ] Pagination handled with rel=next/prev or load-more
19
+
20
+ ### URL Structure
21
+ - [ ] Permalinks set to post name (`/%postname%/`)
22
+ - [ ] URLs are clean (no query parameters for content pages)
23
+ - [ ] Slugs are descriptive and include keywords
24
+ - [ ] No excessively long URLs (target < 75 characters)
25
+ - [ ] 301 redirects in place for changed URLs
26
+
27
+ ## 2. On-Page SEO Sampling (HIGH)
28
+
29
+ ### Meta Data (sample 10 most important pages)
30
+ - [ ] Title tag present and unique (50-60 chars)
31
+ - [ ] Title includes primary keyword
32
+ - [ ] Meta description present and unique (120-160 chars)
33
+ - [ ] Meta description includes keyword and CTA
34
+ - [ ] Open Graph tags present (og:title, og:description, og:image)
35
+ - [ ] Twitter Card tags present
36
+
37
+ ### Content Structure
38
+ - [ ] Single H1 per page
39
+ - [ ] H2/H3 hierarchy logical (no skipped levels)
40
+ - [ ] Primary keyword in H1
41
+ - [ ] Secondary keywords in H2/H3
42
+ - [ ] Alt text on all images
43
+ - [ ] Internal links present (2-3 per page minimum)
44
+ - [ ] External links to authoritative sources
45
+
46
+ ### Content Quality
47
+ - [ ] No thin content pages (< 300 words for blog posts)
48
+ - [ ] No duplicate content across pages
49
+ - [ ] Content freshness (key pages updated within last 6 months)
50
+ - [ ] E-E-A-T signals present (author bios, credentials, sources)
51
+
52
+ ## 3. Structured Data (MEDIUM)
53
+
54
+ ### Checks
55
+ - [ ] Organization schema on homepage
56
+ - [ ] BreadcrumbList schema on inner pages
57
+ - [ ] Article schema on blog posts
58
+ - [ ] Product schema on product pages (if e-commerce)
59
+ - [ ] FAQ schema where applicable
60
+ - [ ] LocalBusiness schema (if local business)
61
+ - [ ] Validate with Google Rich Results Test
62
+
63
+ ### Common WordPress Schema Implementations
64
+ - Yoast SEO: automatic schema generation
65
+ - Rank Math: schema module
66
+ - Schema Pro: dedicated schema plugin
67
+ - Manual: JSON-LD in theme header
68
+
69
+ ## 4. Site Performance (for SEO — see also Performance Checklist)
70
+
71
+ ### Core Web Vitals Impact on SEO
72
+ - [ ] LCP < 2.5s (ranking factor since 2021)
73
+ - [ ] INP < 200ms
74
+ - [ ] CLS < 0.1
75
+ - [ ] Mobile-friendly (responsive design)
76
+ - [ ] HTTPS enabled (ranking signal)
77
+
78
+ ### Mobile SEO
79
+ - [ ] Mobile responsive design (no separate mobile site)
80
+ - [ ] Touch targets >= 48px
81
+ - [ ] Font size >= 16px on mobile
82
+ - [ ] No horizontal scrolling
83
+ - [ ] Mobile page speed acceptable
84
+
85
+ ## 5. Local SEO (if applicable)
86
+
87
+ ### Checks
88
+ - [ ] Google Business Profile claimed and optimized
89
+ - [ ] NAP consistency (Name, Address, Phone) across site
90
+ - [ ] LocalBusiness schema with accurate data
91
+ - [ ] Location pages for each service area
92
+ - [ ] Google Maps embed on contact page
93
+ - [ ] Local keywords in title tags and content
94
+
95
+ ## 6. Content Architecture (MEDIUM)
96
+
97
+ ### Taxonomy Assessment
98
+ - [ ] Categories are logical and not too deep (max 2 levels)
99
+ - [ ] No empty categories
100
+ - [ ] No single-post categories (merge or expand)
101
+ - [ ] Tags are used consistently
102
+ - [ ] Taxonomy pages have custom descriptions (not blank)
103
+ - [ ] Category/tag archive pages are indexable
104
+
105
+ ### Internal Linking
106
+ - [ ] Homepage links to key category/pillar pages
107
+ - [ ] Pillar pages link to related cluster content
108
+ - [ ] New content links to existing related content
109
+ - [ ] No broken internal links (404s)
110
+ - [ ] Anchor text is descriptive (not "click here")
111
+
112
+ ## 7. WordPress-Specific SEO Settings
113
+
114
+ ### SEO Plugin Configuration (Yoast/Rank Math/All in One SEO)
115
+ - [ ] XML sitemap enabled and valid
116
+ - [ ] Social profiles configured
117
+ - [ ] Breadcrumbs enabled
118
+ - [ ] Author archives: enabled or disabled intentionally
119
+ - [ ] Date archives: disabled (usually thin content)
120
+ - [ ] Tag archives: noindex if thin content
121
+ - [ ] Media attachment pages: redirected to parent post
122
+
123
+ ### WordPress Settings
124
+ - [ ] Site title and tagline set properly
125
+ - [ ] Permalinks: post name structure
126
+ - [ ] Reading settings: posts page and homepage set correctly
127
+ - [ ] Discussion: comment moderation enabled
128
+ - [ ] Search engine visibility: "Do not discourage" checked
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: wp-backup
3
+ description: This skill should be used when the user asks to "backup my site", "create
4
+ a backup", "restore my site", "disaster recovery", "snapshot", or mentions any form
5
+ of WordPress backup or restore operation. Provides backup strategies for different
6
+ hosting environments.
7
+ version: 1.0.0
8
+ ---
9
+
10
+ # WordPress Backup & Recovery Skill
11
+
12
+ ## Overview
13
+
14
+ Provides comprehensive backup and disaster recovery workflows for WordPress sites. Supports Hostinger-managed backups, SSH-based backups, and content-only exports via API.
15
+
16
+ ## When to Use
17
+
18
+ - User wants to create a site backup
19
+ - User needs to restore from a backup
20
+ - Before major operations (deploy, migrate, update, plugin changes)
21
+ - User asks about disaster recovery planning
22
+ - Scheduled backup strategy setup
23
+
24
+ ## Backup Method Decision Tree
25
+
26
+ 1. **What hosting type?**
27
+ - Hostinger VPS → VPS snapshot + file/DB backup
28
+ - Hostinger shared → File/DB backup via SSH
29
+ - Other hosting with SSH → SSH-based backup
30
+ - No SSH access → Content-only export via API
31
+
32
+ 2. **What scope?**
33
+ - Full site (files + database) → Recommended for disaster recovery
34
+ - Database only → For content/settings backup
35
+ - Content only (via API) → For content portability
36
+ - wp-content only → For themes/plugins/uploads
37
+
38
+ ## Backup Workflow
39
+
40
+ ### Full Site Backup (SSH)
41
+ 1. Connect via SSH to the server
42
+ 2. Export database: `mysqldump`
43
+ 3. Archive wp-content: `tar -czf`
44
+ 4. Optionally archive full WordPress root
45
+ 5. Download backup files
46
+ 6. Verify backup integrity (check file sizes, test extraction)
47
+ 7. Store in a safe location
48
+
49
+ ### Content-Only Backup (API)
50
+ 1. Use `list_content` to enumerate all content types
51
+ 2. Export posts, pages, custom content as JSON
52
+ 3. Export taxonomies (categories, tags)
53
+ 4. Export media metadata (and optionally download files)
54
+ 5. Store as structured JSON backup
55
+
56
+ ### Pre-Operation Backup
57
+ Before any risky operation (deploy, update, migration):
58
+ 1. Quick database backup via SSH
59
+ 2. Note current plugin versions via `list_plugins`
60
+ 3. Document current site state
61
+ 4. Proceed with operation only after backup confirmed
62
+
63
+ ## Restore Workflow
64
+
65
+ 1. **Confirm with user**: Restore overwrites current state
66
+ 2. **Verify backup**: Check backup files are complete and valid
67
+ 3. **Choose method**:
68
+ - Hostinger: `hosting_importWordpressWebsite` with archive + SQL
69
+ - SSH: Upload files + import database
70
+ - API: Re-create content via `create_content`
71
+ 4. **Execute restore**
72
+ 5. **Verify**: Check site loads, content intact, plugins working
73
+ 6. **Clear caches**: Flush all caching layers
74
+
75
+ ## Safety Rules
76
+
77
+ - ALWAYS confirm with user before restoring (destructive operation)
78
+ - NEVER delete old backups until new backup is verified
79
+ - Keep minimum 3 rolling backups when possible
80
+ - Test restore procedure periodically (don't just create backups)
81
+ - Store backups off-site (not only on the same server)
82
+
83
+ ## Additional Resources
84
+
85
+ ### Reference Files
86
+ - **`references/backup-strategies.md`** - Detailed backup methods and automation
87
+ - **`references/restore-procedures.md`** - Step-by-step restore procedures
@@ -0,0 +1,116 @@
1
+ # WordPress Backup Strategies
2
+
3
+ ## Full Site Backup via SSH
4
+
5
+ ### Database Export
6
+ ```bash
7
+ # Standard mysqldump
8
+ ssh user@host 'mysqldump -u [db_user] -p[db_pass] [db_name] > /tmp/db-backup-$(date +%Y%m%d).sql'
9
+
10
+ # Compressed
11
+ ssh user@host 'mysqldump -u [db_user] -p[db_pass] [db_name] | gzip > /tmp/db-backup-$(date +%Y%m%d).sql.gz'
12
+
13
+ # Using wp-cli (if available)
14
+ ssh user@host 'cd /path/to/wordpress && wp db export /tmp/db-backup-$(date +%Y%m%d).sql'
15
+ ```
16
+
17
+ ### File Backup
18
+ ```bash
19
+ # Full WordPress backup
20
+ ssh user@host 'tar -czf /tmp/wp-full-$(date +%Y%m%d).tar.gz -C /path/to/wordpress .'
21
+
22
+ # wp-content only (faster, smaller)
23
+ ssh user@host 'tar -czf /tmp/wp-content-$(date +%Y%m%d).tar.gz -C /path/to/wordpress/wp-content .'
24
+
25
+ # Uploads only (media files)
26
+ ssh user@host 'tar -czf /tmp/uploads-$(date +%Y%m%d).tar.gz -C /path/to/wordpress/wp-content/uploads .'
27
+ ```
28
+
29
+ ### Download to Local
30
+ ```bash
31
+ # Download backup files
32
+ scp user@host:/tmp/db-backup-*.sql.gz ./backups/
33
+ scp user@host:/tmp/wp-content-*.tar.gz ./backups/
34
+
35
+ # Clean up server-side temp files
36
+ ssh user@host 'rm /tmp/db-backup-*.sql.gz /tmp/wp-content-*.tar.gz'
37
+ ```
38
+
39
+ ## Hostinger-Specific Paths
40
+
41
+ ```bash
42
+ # Database credentials from wp-config.php
43
+ ssh user@host "grep -E 'DB_(NAME|USER|PASSWORD|HOST)' /home/[user]/htdocs/[domain]/wp-config.php"
44
+
45
+ # Typical Hostinger paths
46
+ WP_ROOT="/home/[username]/htdocs/[domain]"
47
+ WP_CONTENT="$WP_ROOT/wp-content"
48
+ ```
49
+
50
+ ## Backup Retention Strategy
51
+
52
+ ### Recommended Schedule
53
+ | Type | Frequency | Retention | Method |
54
+ |------|-----------|-----------|--------|
55
+ | Database | Daily | 7 days | Automated cron + mysqldump |
56
+ | Files | Weekly | 4 weeks | tar + cron |
57
+ | Full site | Monthly | 3 months | Full archive |
58
+ | Pre-deploy | Before each deploy | Until next deploy verified | Manual |
59
+
60
+ ### Storage Locations
61
+ 1. **On-server**: Quick restore, but lost if server fails
62
+ 2. **Off-server**: Download via SCP to local or cloud storage
63
+ 3. **Cloud storage**: S3, Google Cloud Storage, Backblaze B2
64
+ 4. **Multiple locations**: Best practice — keep at least 2 copies in different locations
65
+
66
+ ## Backup Verification
67
+
68
+ After creating a backup, always verify:
69
+
70
+ 1. **File size check**: Backup should be non-zero and reasonable size
71
+ ```bash
72
+ ls -lh /tmp/db-backup-*.sql.gz # DB should be at least a few MB
73
+ ls -lh /tmp/wp-content-*.tar.gz # Content varies, usually 100MB+
74
+ ```
75
+
76
+ 2. **Integrity check**: Test extraction
77
+ ```bash
78
+ # Test tar archive
79
+ tar -tzf backup.tar.gz > /dev/null && echo "Archive OK"
80
+
81
+ # Test SQL file (check first/last lines)
82
+ zcat backup.sql.gz | head -5
83
+ zcat backup.sql.gz | tail -5
84
+ ```
85
+
86
+ 3. **Restore test** (periodic): Restore to a staging environment to verify full recoverability.
87
+
88
+ ## Automated Backup Script
89
+
90
+ ```bash
91
+ #!/bin/bash
92
+ # wp-backup.sh — automated WordPress backup
93
+ # Usage: ./wp-backup.sh user@host /path/to/wordpress
94
+
95
+ SSH_TARGET=$1
96
+ WP_PATH=$2
97
+ DATE=$(date +%Y%m%d_%H%M)
98
+ BACKUP_DIR="./backups/$DATE"
99
+
100
+ mkdir -p "$BACKUP_DIR"
101
+
102
+ # Get DB credentials
103
+ DB_NAME=$(ssh $SSH_TARGET "grep DB_NAME $WP_PATH/wp-config.php | cut -d \"'\" -f4")
104
+ DB_USER=$(ssh $SSH_TARGET "grep DB_USER $WP_PATH/wp-config.php | cut -d \"'\" -f4")
105
+ DB_PASS=$(ssh $SSH_TARGET "grep DB_PASSWORD $WP_PATH/wp-config.php | cut -d \"'\" -f4")
106
+
107
+ # Database backup
108
+ ssh $SSH_TARGET "mysqldump -u $DB_USER -p'$DB_PASS' $DB_NAME | gzip" > "$BACKUP_DIR/database.sql.gz"
109
+
110
+ # Files backup
111
+ ssh $SSH_TARGET "tar -czf - -C $WP_PATH/wp-content ." > "$BACKUP_DIR/wp-content.tar.gz"
112
+
113
+ # Verify
114
+ echo "Backup created in $BACKUP_DIR"
115
+ ls -lh "$BACKUP_DIR/"
116
+ ```