Skip to content
WP Visibility

Everyday SEO

Run the Site Audit and Read Its Checks

Run wp visibility audit for the site and post-audit for one post. Each check reports pass, warn or fail with a plain reason; the results are a checklist, not a ranking score.

Updated September 27, 2026

Docs

The audit is a set of read-only checks you run from WP-CLI, over REST, or through a connected assistant. wp visibility audit checks five site settings and prints four counts; wp visibility post-audit <id> checks one post. Each finding is pass, warn or fail with a sentence saying why. Nothing is changed by running it.

Run it

wp visibility audit
wp visibility post-audit 123
wp visibility audit --format=json

--format accepts table (the default), csv, json, yaml or count. Over REST, GET /wp-json/wpvis/v1/audit/site needs manage_options and GET /wp-json/wpvis/v1/audit/post/<id> needs permission to edit that post. With the Assistant connection module on, an assistant uses the “Audit the site”, “Audit a post” and “Get site SEO health” abilities, the last of which sums the site checks up as good, fair or needs attention.

There is no audit screen in the settings. The editor’s pre-publish panel and content checks are separate checks run in the browser.

The site checks

Check Fails or warns when What to do
blog_public Fail: Settings → Reading discourages search engines Untick it on a live site. On staging it is correct.
permalink_structure Warn: plain permalinks (?p=123) Choose a named structure in Settings → Permalinks.
site_represents Warn: no organization name, or person mode with no user Set your site identity.
default_social_image Warn: no default social image Set one.
sitemaps_module Warn: the Sitemaps module is off Turn it on, or accept WordPress’s own sitemap.

The counts that follow are published posts, an estimate of posts missing a hand-written description (posts relying on their excerpt count as missing), noindexed posts, and redirect rules.

The post checks

Check Passes when Otherwise
title 30 to 60 characters Warn with the length; fail if there is no title at all
description 70 to 160 characters Warn with the length; fail if none is set and none can be generated
noindex The post is indexable Warn: the post is set to noindex
canonical No canonical, or one on this site’s host Warn: it points to another host
thin_content 150 words or more Warn with the word count
social_image A social, featured or default image resolves Warn: no image resolves
single_h1 At most one H1 in the content Warn with the count

The title and description are measured as stored, before templates are rendered, so a post relying on its template is measured against the raw post title. The noindex check reads the post’s own setting, not a site-wide rule for its post type.

Read the results with care

The thresholds are editing checks. A 62-character title, a 140-word announcement or a deliberately noindexed page can all be right. Google publishes no ideal title length and says there is no minimum word count, so treat a warning as a prompt to look, not an order. Your SEO Plugin Score Is a Checklist explains why.

A canonical on another host is correct on a syndicated post or a headless site where another address is the public one.

Turn missing descriptions into proposals

With the Autopilot module on, WP Visibility → Review queue has a Run audit button, and the empty queue offers Run an audit now. It finds published posts with no hand-written description and queues a proposal for each, drafted from the post’s own text, for you to approve or reject. It can run once a minute. The Weekly audit toggle in the Autopilot section does the same once a week, up to 50 posts per run. Nothing is applied until you approve it, and the other checks never create proposals.

Behavior checked against WP Visibility 2.10.3.