SitePulse AI
SitePulse AI - WordPress plugin that scores content quality and SEO on-device. No API key or external service required. GPL-2.0-or-later.
by Layered Media LLC · github.com/magnum777/sitepulse-ai · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/magnum777/sitepulse-ai/archive/refs/heads/master.zipReadme
SitePulse AI
Score your WordPress content quality and SEO on-device - no API key, no external service, no data leaving your site. Built for agentic co-founders who want an honest health check on the sites their AI agents run.
Status
v0.2.1 — on-device auditor. Scores every post 0-100 on content quality + SEO signals, served directly from the plugin. No backend, no API key, no third-party calls.
What's Here
sitepulse-ai/
├── sitepulse-ai.php # Main plugin (bootstrap, REST routes, scoring, fix endpoint)
├── admin/
│ ├── dashboard.php # Dashboard: site health, recent content quality, score-a-post
│ └── settings.php # Info page (explains on-device scoring)
├── assets/
│ ├── css/admin.css # Admin styles
│ └── js/admin.js # Admin JS (wp.apiFetch client)
├── includes/ # (reserved) shared classes
└── readme.txt # WP.org readme
REST Endpoints
All under wp-json/sitepulse-ai/v1, require manage_options:
GET /health— plugin status + version.POST /score— score one post ({ post_id }).GET /audit?limit=&post_type=— batch audit: average grade, health flags, weak posts.GET /site-health— aggregate site health report.POST /fix— Pro feature. Backfill meta description + focus keyword for a post. Writesrank_math_*meta server-side (bypasses the REST meta allowlist).
Scoring model (0-100)
Content quality (max 45) + SEO signals (max 55):
- Word count: 1000+ = 18, 600+ = 14, 400+ = 10, 200+ = 5
- Featured image: 8 · Headings (4-12): 12 · Links (1-8): 5 · Em-dashes <=3: 2
- Meta description (110-160 chars): 12 · Title (30-65 chars): 8
- Focus keyword in title: 6 · in H1: 5 · in first 300 chars: 6 · in slug: 5
- Exactly one H1: 4 · All images alt-texted: 4 · >=1 internal link: 4
License
GPL-2.0-or-later