Content Quality Checklist
WordPress plugin that enforces content quality before publishing: minimum word count, headings, heading order, internal links, images, and image alt text. Blocks or warns, with an editor checklist.
★ 0stars
0forks
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/sina-nasiri/wordpresschecklist/archive/refs/heads/claude%2Fwordpress-content-validator-b16xsa.zipReadme
Content Quality Checklist
A simple WordPress plugin that enforces content quality rules before a post can be published.
Checks
| Check | What it does |
|---|---|
| Minimum word count | Counts words in the content (tags and shortcodes stripped). |
| Minimum headings | Counts h1–h6 elements in the content. |
| Heading order | Flags skipped heading levels, e.g. an h2 followed directly by an h4. |
| Minimum internal links | Counts links pointing to your own site (relative URLs or your domain). |
| Broken internal links | Every internal link must resolve — links that 404 (or point to unpublished posts) fail the check. |
| Minimum images | Counts img elements in the content. |
| Featured image width | Requires a featured image at least N pixels wide (default 1200px). Skipped for post types without featured image support. |
| Image alt text | Flags every image with a missing or empty alt attribute. |
Every minimum can be tuned, and any check can be disabled (set a minimum to 0, or untick the alt-text / heading-order boxes).
Installation
- Copy this folder into
wp-content/plugins/wordpresschecklist/(or zip it and upload it via Plugins → Add New → Upload Plugin). - Activate Content Quality Checklist on the Plugins screen.
- Configure it under Settings → Content Checklist.
How it works
- Editor checklist — a "Content Checklist" box in the editor sidebar shows a live pass/fail list for the last saved version of the content.
- Block publishing mode (default) — publishing or scheduling is refused while any check fails:
- In the block editor, publishing fails with a dialog listing every failing check.
- In the classic editor, the post is kept as a draft and an error notice lists the failing checks.
- Posts that are already published are never unpublished — blocking only applies when moving a post into the published/scheduled state.
- Warning only mode — the checklist is still shown in the editor, but publishing is never blocked.
How the broken link check works
- Each internal URL is first resolved through WordPress permalinks (
url_to_postid) — no HTTP request needed for normal post/page links. A link to an unpublished (draft/trashed) post counts as broken. - URLs that don't map to a post (archives, category pages, custom rewrites) are verified with an HTTP
HEADrequest (falling back toGETif the server refusesHEAD). Status404/410counts as broken. - Results are cached for 15 minutes per URL, so repeated saves and editor loads don't re-check.
- Links that cannot be verified (e.g. the host blocks loopback requests) never block publishing — they're reported as unverified instead.
Settings
| Setting | Default |
|---|---|
| Apply to post types | Posts |
| Minimum word count | 300 |
| Minimum headings | 2 |
| Minimum internal links | 1 |
| Broken link check | On |
| Minimum images | 1 |
| Minimum featured image width | 1200px |
| Require image alt text | On |
| Check heading order | On |
| Enforcement | Block publishing |
Uninstalling the plugin removes its settings.