Description
Technical Site Auditor is a powerful WordPress plugin that performs comprehensive technical audits of your website. It identifies issues across multiple categories and provides actionable recommendations to improve your site’s SEO, performance, security, and overall health.
The free version runs over 215 automated checks across 25 categories. The premium version adds WooCommerce auditing (45 store-specific checks), one-click auto-fixes with backups and undo, scheduled scans, and extra modules.
Key Features
Content Analysis
* Thin content detection (Unicode-aware word counting)
* Duplicate title and description checks
* Heading structure validation
* Link density and anchor text analysis
SEO Checks
* Meta title and description optimization
* Open Graph and Twitter Card validation
* Schema.org markup verification
* Robots.txt and XML sitemap analysis
* Canonical URL validation
Performance Optimization
* Image optimization recommendations (WebP/AVIF aware)
* Asset loading analysis (CSS/JS)
* Font loading checks (display parameter, preconnect)
* Database cleanup suggestions
* Server configuration checks (PHP version, compression, HTTP/2)
Security Audits
* SSL/HTTPS verification
* HTTP security header checks (verified via real requests)
* XML-RPC exposure detection
* REST API user enumeration probing
* debug.log exposure detection
* Open registration with elevated default roles
* PHP execution in the uploads directory
* wp-config.php file permissions
Plugin Hygiene
* Detects installed plugins that have been closed or removed from WordPress.org
* Flags plugins abandoned for years or untested with recent WordPress versions
* Reports pending updates and PHP/WordPress requirement conflicts
AI Visibility
* Shows which AI crawlers your robots.txt allows, blocks, or does not mention
* Optional llms.txt generator (see the FAQ for an honest note on this convention)
Email Deliverability
* SPF and DMARC DNS record checks for your domain
Link Analysis
* Broken internal link detection
* External link verification (with retry logic to avoid false positives)
* Redirect chain and loop analysis
* Accessibility checks (labels, alt text, skip links, iframes)
Database Health
* Autoload option monitoring (WordPress 6.6+ aware)
* Post revision cleanup suggestions
* Expired transient detection
* Spam and trash comment detection
Free vs Premium
Free Version
* Unlimited URL scanning
* Over 215 automated checks, including plugin hygiene and AI visibility
* Detailed fix guidance for every issue
* Export issues to CSV
Premium Version
* One-click auto-fix for many issues
* Safe .htaccess auto-fix (security headers, GZIP, caching) with automatic backup, health check and rollback
* One-click undo for file and settings fixes
* Database cleanups with row-level backups: deleted spam, revisions and other rows can be restored for 30 days
* Quick backup and full backup with safe, atomic restore
* Scheduled automated scans
* Email notifications
* WooCommerce auditing (45 store-specific checks, including REST API security)
* Premium modules:
* Redirect Manager
* Meta Title/Description Manager
* Breadcrumbs Generator
Integrations
Technical Site Auditor detects and integrates with popular plugins:
- Yoast SEO
- Rank Math
- All in One SEO
- SEOPress
- WooCommerce
- Elementor
- Divi Builder
- WPBakery Page Builder
External Services
This plugin connects to the following external services:
WordPress.org API
This plugin uses the official WordPress.org API to check for WordPress core updates and verify core file integrity.
What it does:
* Checks if your WordPress installation is up to date
* Verifies that core WordPress files have not been modified (security check)
Data sent:
* Your WordPress version number
* Your site locale (language setting)
When data is sent:
* Only during a site audit scan, when the “WordPress Updates” or “Core File Integrity” checks are enabled
Service provider: WordPress.org (Automattic)
* Terms of Service
* Privacy Policy
WordPress.org Plugin Directory API
When the Plugin Hygiene check is enabled, the plugin queries the official WordPress.org plugin information API (api.wordpress.org/plugins/info/1.2/) for each installed plugin.
What it does:
* Checks whether installed plugins are still listed in the WordPress.org directory or have been closed
* Checks when each plugin was last updated and which WordPress version it was tested with
* Checks each plugin’s declared minimum PHP and WordPress requirements
Data sent:
* The directory slug (folder name) of each installed plugin. No personal data, site URL, or license information is transmitted.
When data is sent:
* Only during a site audit scan when the Plugin Hygiene check is enabled. Responses are cached locally for up to 24 hours, and at most 30 lookups are performed per scan. Plugins that declare their own update source (Update URI header) are never sent to WordPress.org.
Service provider: WordPress.org (Automattic)
* Terms of Service
* Privacy Policy
Public DNS lookups
When the email deliverability check is enabled, the plugin performs DNS TXT lookups for your own site’s domain (and its _dmarc subdomain) to see whether SPF and DMARC records exist. These are standard public DNS queries made by your server; no data about your site is transmitted beyond the domain name being looked up. The check is skipped entirely for local and development domains.
Outbound link checks
During a scan, the plugin makes HTTP requests to your own site’s pages and, when the external link checker is enabled, to external URLs found in your content in order to verify they still work. No personal user data is ever transmitted.
Installation
- Upload the plugin files to
/wp-content/plugins/technical-site-auditor/directory, or install the plugin through the WordPress plugins screen. - Activate the plugin through the ‘Plugins’ screen in WordPress.
- Navigate to Site Auditor in the admin menu to configure settings and run your first scan.
FAQ
-
Is there a limit on how many URLs I can scan?
-
No, both free and premium versions support unlimited URL scanning. Very large sites are scanned in batches; by default up to 5,000 URLs are included per scan (filterable).
-
Do I need a license key for the free version?
-
No, the free version works without a license key. You only need a license key to unlock premium features.
-
Will the plugin slow down my site?
-
Scanning only runs when you start it (or on a schedule, premium). Activated optimizations register lightweight front-end hooks; the audit itself adds no front-end overhead.
-
Can I undo changes made by auto-fix?
-
Yes. File and settings fixes create backups and can be reverted with one click. Database cleanups (spam, trash, revisions, transients, orphaned metadata) now save the deleted rows first, so they can be restored from the Fixes page for 30 days. Very large cleanups that exceed the backup size limit are run without a backup, and the plugin says so clearly in the result.
-
What is llms.txt, and do I need one?
-
llms.txt is a young, community-proposed convention (llmstxt.org): a Markdown file in your site root that gives AI assistants a curated summary of your most important pages. Major search engines have said they do not use it, and not having one is not a problem. If you want to try it, the plugin can generate one from your site title, tagline and key pages — any existing file is backed up first and the change is fully revertible.
-
What does the plugin hygiene check do?
-
It looks up your installed plugins in the WordPress.org directory and reports which ones have been closed or removed, which have not been updated in years, which are untested with recent WordPress versions, and which have pending updates or PHP/WordPress requirement conflicts. Premium or custom plugins that are not in the directory are listed as informational — the check never deactivates or deletes anything.
-
Does it work with page builders?
-
The plugin detects Elementor, Divi and WPBakery, and includes dedicated optimization checks for Elementor and Divi.
-
Is WooCommerce supported?
-
WooCommerce auditing (45 store-specific checks for products, categories, shipping, payments, store configuration and REST API security) is a premium feature.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Technical Site Auditor” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Technical Site Auditor” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
3.2.0
A feature release focused on making cleanups reversible, keeping the plugin off your front end, and adding checks people actually asked for. Tested with WordPress 7.1 and PHP 8.4.
New
- Added: Database cleanups can now be undone. Spam, trash, revisions, transients, orphaned metadata, auto-drafts and removed scheduled events are backed up row by row before deletion and can be restored from the Fixes page for 30 days (very large runs that exceed the backup limit are reported honestly as permanent)
- Added: The plugin no longer loads its admin and scanning code on visitor requests. A normal page view now loads only the handful of files belonging to the fixes you actually switched on, which cut what the plugin contributes to a front-end request by around 97%
- Added: Plugin Hygiene check – finds installed plugins that have been closed or removed from WordPress.org, abandoned for years, untested with recent WordPress versions, overdue for updates, or in conflict with your PHP/WordPress version
- Added: Email alerts when an installed plugin’s status changes – closed, removed or newly abandoned – so you hear about it without watching the report (Premium, and switchable under Settings)
- Added: AI Visibility check – see which AI crawlers your robots.txt allows, blocks or does not mention, plus an optional llms.txt generator
- Added: Security checks for open registration with elevated default roles, PHP execution in the uploads directory and wp-config.php file permissions
- Added: Search engine indexing check – catches the “Discourage search engines” setting left on after launch, with a one-click fix
- Added: Email deliverability check (SPF and DMARC DNS records)
- Added: WooCommerce REST API security – unauthenticated API access, the legacy REST API, unused write-capable API keys and webhooks delivering over plain http
- Added: Schema checks for duplicate markup from two sources, missing product identifiers and broken @id references
- Added: Duplicate sitemap detection when an SEO plugin and the WordPress core sitemap both respond
- Added: Action Scheduler bloat check for large stores
- Added: New one-click fixes – block PHP execution in uploads, enable indexing, disable the duplicate core sitemap, disable attachment pages, limit future post revisions, and a CSP upgrade-insecure-requests header
- Added: Setting for excluding specific script handles from the defer fix
- Added: Deactivating the plugin now tells you plainly what stays behind – applied fixes, .htaccess rules and wp-config changes are not undone by deactivating – and the plugin says so again if you reactivate it
- Added: Translation template (.pot), so the plugin can now be translated
Improved
- Improved: The Optimize page and the Fixes page are now two views of one system rather than two implementations, so a fix behaves, reports and undoes the same way whichever page you use
- Improved: New checks are enabled automatically when updating, without overriding your existing choices
- Improved: Orphan page detection now runs as a proper pass at the end of a scan instead of guessing while the scan is still going, and says plainly when part of the site could not be inspected
- Improved: Fewer false alarms. Accessibility, parked-domain, security-header, image-format and compression checks were each reporting problems that were not there – on Bootstrap markup, on filenames that merely contained a domain name, on cached responses, and on servers whose answers were read too strictly
- Improved: Checks that cannot be certain from a page scan now say so instead of asserting a cause, and report what was actually measured
- Improved: Scan progress shows the number of queued URLs from the start and explains the pause while the site-wide checks (DNS, plugin directory, sitemap, server headers) run, instead of sitting on “Initializing…”
- Improved: A clear notice if the plugin’s database tables are missing, instead of features quietly failing
Fixed
- Fixed: Several optimizations reported themselves as active without taking effect, among them four security ones. They now apply as described
- Fixed: The HSTS and PHP-version header fixes could end up sending their header twice, in one case replacing a stronger policy already set by your host with a weaker one
- Fixed: Undo and deactivate no longer report success when there was nothing to undo them with, and a cleanup that has run no longer hides the issues it cleaned from later scans
- Fixed: A PHP deprecation notice that appeared above some of the plugin’s screens on PHP 8.1 and newer, and those screens now carry a proper browser title
- Fixed: Alignment of the controls on the Issues screen’s filter bar
- Fixed: Deleting the plugin with “delete data” enabled now removes every option it created
Security
- Security: Hardened the database search-and-replace behind the mixed-content fix so that serialized data cannot be corrupted, with the result verified before anything is written
3.1.0
A major reliability and quality release. We went through every check, fix and help text in the plugin and tightened the whole codebase.
- Added: Six additional checkers are now active – 404 page, accessibility, external links, fonts, iframes and pagination
- Improved: Checks now verify your site’s actual state instead of settings, which removes a large number of false positives across the security, performance and page-builder checks
- Improved: Word counting now handles Swedish and other non-English languages correctly
- Improved: Recommendations brought up to current best practice, and checks updated for WordPress 6.6+ and current PHP versions
- Improved: All .htaccess fixes are written safely – Apache 2.4 compatible, verified after every change, with automatic backup and rollback
- Improved: Hardened backup system with protected storage on all server types; database restore is now atomic, so an interrupted restore can no longer harm your database
- Improved: More reliable auto-fixes – one setting per fix everywhere, clear “cannot be undone” warnings before database cleanups (which can now be re-run), and heavy operations run in batches on large sites
- Improved: Safer defaults – HSTS starts conservatively, and the REST API restriction keeps contact forms and WooCommerce guest checkout working
- Improved: Admin UI polish – better error handling during scans, working issue filters, accurate counts and consistent free/premium information
- Fixed: The iframe lazy-loading fix could blank post content on some PHP versions
- Fixed: The mixed content fix now safely updates post content only, with per-post backups
- Fixed: Premium updates from pihlfelt.se did not work due to an incorrect update endpoint
- Removed: A few obsolete toggles that no longer provide value on modern WordPress
- Code: General cleanup – removed unused and legacy code, tightened output escaping and export handling
3.0.2
- Added: Server Environment section in Settings showing PHP max_execution_time, memory_limit, and PHP version
- Added: Recommended batch_size and request_timeout based on server configuration
- Added: One-click “Apply” buttons for recommended scanner settings
- Added: New issue “Page HTML is large/too large” for bloated pages (Divi/Elementor detection)
- Added: New issue “Email link missing mailto:” for malformed email links
- Fixed: Undefined variable $failed_count PHP warning in scan view
- Fixed: rtrim() null parameter deprecation warning (PHP 8.1+ compatibility)
- Fixed: Email addresses without mailto: incorrectly reported as broken internal links
- Fixed: Scanner hanging on problematic pages (now auto-skips after 2 failed attempts)
- Improved: Reduced external link checks from 25 to 10 per page for faster scanning
- Improved: Batched database operations for better performance
- Improved: Faster retry delays when processing slow pages
- Improved: Large pages (>3MB) skip DOM parsing but still report size issues
- Improved: Clearer progress messages during scan
3.0.1
- Fixed: Database tables created with incorrect prefix preventing scans from working
- Fixed: Duplicate issues appearing multiple times for the same URL
- Fixed: Scanner analyzing error pages (429/5xx) instead of actual content
- Fixed: Progress bar not updating during scan (polling improvements)
- Fixed: Polling continuing after server errors, causing rate limiting
- Improved: Sequential polling to prevent overwhelming the server
- Improved: Added delay between URL requests to avoid rate limiting
- Improved: Reduced default batch size from 50 to 10 for better compatibility
- Improved: Immediate stop on 429/500 errors with user-friendly message
3.0.0
- Major: Unified Optimizer system for all optimizations
- Added: Auto-marking of issues as fixed when optimizations are activated
- Added: Automatic reopening of issues when optimizations are deactivated
- Added: Full backup system for database, themes, plugins, and full site backups
- Added: Chunked backup processing to handle large sites without timeouts
- Improved: Fix History now syncs correctly with actual optimization state
- Improved: Categories hide properly when requirements are not met
- Improved: WooCommerce category shows “WooCommerce required” notice
- Fixed: Empty category display for premium-only features
- Fixed: Various CSS styling issues
- Removed: Legacy optimization systems
1.0.7
- Added: Comprehensive issue details for 50+ more issue types
- Added: Fix guidance for accessibility issues (form labels, skip links, tabindex)
- Added: Safe .htaccess auto-fix system (Premium) with automatic backup and rollback
- Improved: Redirect chain display shows hop count and source plugin
- Improved: Security header issues show recommended values
- Improved: Database autoload issues show largest offending options
1.0.6
- Changed: “How to fix” now uses expandable button like “Why does this matter?”
- Fixed: Empty issue detail boxes no longer show
- Improved: Issue details now show WHAT was found, not just counts
- Improved: Database issues more human-readable
1.0.5
- Added: Complete fix guidance for all issue types
- Added: Knowledge base explanations with “Why this matters?”, impact, and how to fix
- Fixed: “Manual” badge now always shows step-by-step guidance
1.0.0 – 1.0.4
- Initial releases: core audit engine, issue knowledge base, robots.txt refinements, duplicate detection improvements
