WP Manifestindependent plugin directory
manifest / content / wordpresschecklist

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.

by Sina Nasiri · github.com/sina-nasiri/wordpresschecklist

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.zip

Readme

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 h1h6 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

  1. Copy this folder into wp-content/plugins/wordpresschecklist/ (or zip it and upload it via Plugins → Add New → Upload Plugin).
  2. Activate Content Quality Checklist on the Plugins screen.
  3. 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

  1. 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.
  2. URLs that don't map to a post (archives, category pages, custom rewrites) are verified with an HTTP HEAD request (falling back to GET if the server refuses HEAD). Status 404/410 counts as broken.
  3. Results are cached for 15 minutes per URL, so repeated saves and editor loads don't re-check.
  4. 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.

Read the full README on GitHub →