Full Site Health Review

Infrastructure solid. Content needs attention.

A comprehensive audit covering security, content integrity, performance, SEO, and updates. WordPress, PHP, plugins, and the theme are all current. The newest findings are around content data drift on the Team Rosters custom post type.

WordPress6.9.4
PHP8.3.30
DB Size32 MB
Content Items230+
At Risk

Security

6 findings still open from last audit, no progress yet.

Needs Attention

Content Integrity

113 Team Rosters unassigned to any team, 1 duplicate.

Healthy

Performance

Lean DB, 98.9 KB autoload, 1 GB PHP memory.

Current

Updates

Core, all 13 plugins, and theme fully patched.

Polish Needed

SEO Basics

Missing site icon, empty tagline, no SEO plugin.

Content integrity, new findings

Data issues that appeared since the last audit. Worth investigating first.
01

All 113 Team Roster posts have no team assigned

New

A check for Team Rosters with zero team-name taxonomy relationships returned 113 of 113. This is almost certainly wrong, the previous import assigned 75 players to 7 teams.

Between the last audit and now, 31 new Team Roster posts appeared. These were added by a method that bypassed taxonomy assignment. Something may also have disassociated the earlier players.

Next step Identify what created the new posts. If bulk imports stripped assignments, reassign team taxonomies from the previous import data.
02

Duplicate player detected

New

Two Team Roster posts share the exact same title. Both were created today. Likely a double-entry during the recent addition.

Fix Review both records, merge any unique data, delete the duplicate.
03

5 orphaned Team Roster auto-drafts

New

Abandoned admin draft sessions on the Team Rosters CPT. Harmless, but they clutter the database and show up in admin listings.

Fix Safe to bulk-delete.

Security, still open

Same findings as the previous audit. Nothing has been fixed yet.
04

Public user enumeration via REST API

High

The default REST API endpoint still exposes the administrator account without authentication, giving attackers a confirmed username.

05

No brute-force / login-attempt limiting

High

No login-limiting plugin is active. The login page will accept unlimited password guesses.

06

Admin username is an email address

High

The admin login is an email address, discoverable via multiple enumeration paths.

07

Hardening constants not defined

Medium

Standard defense-in-depth constants (DISALLOW_FILE_EDIT, debug display flags) still not set in wp-config.php. XML-RPC endpoint remains reachable. Destructive reset plugin still active.

Content inventory

Current state of every public content type on the site.
Content type
Published
Drafts
Trash
Team Rosters
113
0
1
Alumni
64
0
0
Elementor Templates
41
0
0
Pages
10
1
0
Media attachments
61
0
0
Blog posts
1
0
0

SEO basics

Small polish items that compound over time.
Clean permalink structure
/%postname%/
Search engines allowed
Indexable
!
Site icon / favicon
Not set
!
Tagline (site description)
Empty
!
Dedicated SEO plugin
None detected

Performance and infrastructure

All signals green. Nothing urgent here.
Database size
32 MB, very lean
Autoloaded options
98.9 KB, well under 1 MB
Orphaned postmeta
0 rows
PHP memory limit
1024 MB
Upload limit
455 MB
PHP version
8.3.30, modern
WordPress core
6.9.4, latest
Plugin updates
13 of 13 current
Theme updates
Hello Elementor 3.4.7
Post revisions
250, fine for now
WP-Cron health
21 scheduled events

Recommended action order

Content data issues first, they could affect what visitors see. Security next. Polish last.
#
Action
Category
Owner
1
Investigate 31 new Team Roster posts, reassign teams
Data
Claude
2
Review and resolve the duplicate player record
Data
Claude
3
Clean up orphaned auto-drafts
Data
Claude
4
Install a login-limiting plugin
Security
You
5
Create non-email admin account, demote old user
Security
You
6
Disable XML-RPC, deactivate unused utility plugins
Security
Claude
7
Add hardening constants to wp-config.php
Security
You
8
Set favicon, add tagline
SEO
You

Confidential site health review for Houston United Basketball

Audit conducted April 19, 2026. Findings reflect site state at time of review.