{"id":323977,"date":"2026-06-21T20:33:18","date_gmt":"2026-06-21T20:33:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-site-doctor\/"},"modified":"2026-06-21T20:53:54","modified_gmt":"2026-06-21T20:53:54","slug":"ulasaslan-site-scanner","status":"publish","type":"plugin","link":"https:\/\/ko.wordpress.org\/plugins\/ulasaslan-site-scanner\/","author":23506654,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.4","requires_php":"8.2","requires_plugins":null,"header_name":"Ulasaslan Site Scanner","header_author":"Ulas Aslan","header_description":"AI-powered health monitoring that audits performance, SEO, images, security, and WooCommerce \u2014 then explains every issue and tracks your site's health score over time.","assets_banners_color":"111e4e","last_updated":"2026-06-21 20:53:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":38,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"ulasaslan","date":"2026-06-21 20:53:54"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3580962,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3580962,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3580962,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3580962,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard \u2014 health score cards and top issues","2":"Issues list \u2014 category tabs with severity badges","3":"Auto-Optimize \u2014 toggle optimizations without code changes","4":"Score History \u2014 trend table across 90 days","5":"AI Analysis \u2014 plain-language recommendations","6":"Settings \u2014 provider configuration and scan thresholds"}},"plugin_section":[],"plugin_tags":[8533,247,600,186,286],"plugin_category":[45,54,55],"plugin_contributors":[266101],"plugin_business_model":[],"class_list":["post-323977","plugin","type-plugin","status-publish","hentry","plugin_tags-audit","plugin_tags-performance","plugin_tags-security","plugin_tags-seo","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-security-and-spam-protection","plugin_category-seo-and-marketing","plugin_contributors-ulasaslan","plugin_committers-ulasaslan"],"banners":{"banner":"https:\/\/ps.w.org\/ulasaslan-site-scanner\/assets\/banner-772x250.png?rev=3580962","banner_2x":"https:\/\/ps.w.org\/ulasaslan-site-scanner\/assets\/banner-1544x500.png?rev=3580962","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ulasaslan-site-scanner\/assets\/icon-128x128.png?rev=3580962","icon_2x":"https:\/\/ps.w.org\/ulasaslan-site-scanner\/assets\/icon-256x256.png?rev=3580962","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Ulasaslan Site Scanner<\/strong> is an AI-powered technical auditor for WordPress. Run a full scan in seconds and receive a structured health report covering six areas: performance, SEO, images, cache, security, and WooCommerce. Every issue includes a plain-language explanation and a fix recommendation. An optional AI analysis groups and prioritises the findings \u2014 explained in terms that make sense to both business owners and developers.<\/p>\n\n<p><strong>Health Score<\/strong><\/p>\n\n<p>Every scan produces a score from 0\u2013100 for each category and an overall weighted score. Scores are tracked over time so you can see whether changes you make are actually improving site health.<\/p>\n\n<p><strong>What it checks:<\/strong><\/p>\n\n<h4>Performance<\/h4>\n\n<ul>\n<li>TTFB (Time To First Byte) \u2014 measured live by making a request to your homepage<\/li>\n<li>PHP version and memory limit<\/li>\n<li>Object cache (Redis\/Memcached) detection<\/li>\n<li>Autoloaded options table size<\/li>\n<li>Active plugin count<\/li>\n<li>Overdue WP-Cron jobs<\/li>\n<\/ul>\n\n<h4>SEO<\/h4>\n\n<ul>\n<li>Pages without SEO meta titles or descriptions (Yoast, Rank Math, AIOSEO aware)<\/li>\n<li>Images missing alt text<\/li>\n<li>Thin content pages (configurable word threshold)<\/li>\n<li>Duplicate page titles<\/li>\n<li>Homepage title check (flags \"Just Another WordPress Site\")<\/li>\n<li>robots.txt and XML sitemap detection<\/li>\n<li>Published pages set to noindex<\/li>\n<\/ul>\n\n<h4>Images<\/h4>\n\n<ul>\n<li>Oversized images above your threshold (default 500KB)<\/li>\n<li>Very large images above 2MB<\/li>\n<li>WebP format adoption<\/li>\n<li>Native lazy loading status<\/li>\n<li>Uploads directory size<\/li>\n<li>Attachments with missing thumbnail metadata<\/li>\n<\/ul>\n\n<h4>Cache<\/h4>\n\n<ul>\n<li>Page caching plugin detection (WP Rocket, W3 Total Cache, LiteSpeed, etc.)<\/li>\n<li>HTTP GZIP\/Brotli compression header check<\/li>\n<li>Cache-Control header validation<\/li>\n<li>Expired transients accumulation<\/li>\n<\/ul>\n\n<h4>Security<\/h4>\n\n<ul>\n<li>WP_DEBUG, WP_DEBUG_DISPLAY, SCRIPT_DEBUG enabled in production<\/li>\n<li>File editing enabled (DISALLOW_FILE_EDIT)<\/li>\n<li>Username \"admin\" exists<\/li>\n<li>SSL\/HTTPS check<\/li>\n<li>XML-RPC accessibility<\/li>\n<li>readme.html public exposure<\/li>\n<li>Pending plugin, theme, and WordPress core updates<\/li>\n<li>Administrator account count<\/li>\n<\/ul>\n\n<h4>WooCommerce<\/h4>\n\n<ul>\n<li>Products without featured images<\/li>\n<li>Products with thin descriptions<\/li>\n<li>Uncategorised products<\/li>\n<li>Products with 100+ variations<\/li>\n<li>Cart fragments AJAX awareness<\/li>\n<li>WooCommerce log file size<\/li>\n<li>Pending\/failed orders accumulation<\/li>\n<li>Payment gateway count<\/li>\n<\/ul>\n\n<p><strong>AI Recommendations<\/strong><\/p>\n\n<p>After any scan, click <em>Run AI Analysis<\/em> to send the structured telemetry to your chosen AI provider. The AI returns a grouped, prioritised plain-language report with a 5-point action plan \u2014 no raw data, no jargon without explanation.<\/p>\n\n<p><strong>Auto-Optimize<\/strong><\/p>\n\n<p>Safe, reversible optimizations applied via WordPress hooks (no file modifications):\n- Reduce WordPress heartbeat frequency\n- Disable XML-RPC\n- Remove emoji detection scripts\n- Defer oEmbed discovery links<\/p>\n\n<p><strong>Scheduled Scans<\/strong><\/p>\n\n<p>Configure daily, weekly, or monthly automatic scans via WP-Cron. Receive email alerts when critical issues are detected.<\/p>\n\n<p><strong>Report Export<\/strong><\/p>\n\n<p>Export any scan as an HTML report (formatted for client delivery) or JSON (for integration with other tools or dashboards).<\/p>\n\n<h3>Third-Party Services<\/h3>\n\n<p>This plugin optionally connects to AI APIs when the admin clicks \"Run AI Analysis\":<\/p>\n\n<ul>\n<li><strong>OpenAI API<\/strong> \u2014 https:\/\/openai.com \u2014 <a href=\"https:\/\/openai.com\/policies\/terms-of-use\">Terms<\/a> | <a href=\"https:\/\/openai.com\/policies\/privacy-policy\">Privacy<\/a><\/li>\n<li><strong>Anthropic Claude API<\/strong> \u2014 https:\/\/anthropic.com \u2014 <a href=\"https:\/\/www.anthropic.com\/legal\/consumer-terms\">Terms<\/a> | <a href=\"https:\/\/www.anthropic.com\/legal\/privacy\">Privacy<\/a><\/li>\n<li><strong>Google Gemini API<\/strong> \u2014 https:\/\/ai.google.dev \u2014 <a href=\"https:\/\/ai.google.dev\/gemini-api\/terms\">Terms<\/a> | <a href=\"https:\/\/policies.google.com\/privacy\">Privacy<\/a><\/li>\n<\/ul>\n\n<p>The plugin also makes HTTP requests to your own site (homepage, robots.txt, sitemap.xml, xmlrpc.php, readme.html) as part of the scan. These requests do not leave your server environment.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>ulasaslan-site-scanner<\/code> to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate through the <strong>Plugins<\/strong> menu<\/li>\n<li>Go to <strong>Site Scanner \u2192 Settings<\/strong> and enter an API key for at least one AI provider (optional \u2014 scans work without AI)<\/li>\n<li>Go to <strong>Site Scanner \u2192 Dashboard<\/strong> and click <strong>Run Full Scan<\/strong><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. The scanner runs only when you click \"Run Full Scan\" or on a schedule you configure. Nothing runs on every frontend page load.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20ai%20provider%20key%3F\"><h3>Do I need an AI provider key?<\/h3><\/dt>\n<dd><p>No. All scanning and scoring works without any AI key. The AI key is only required for the natural-language explanation feature.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%3F\"><h3>What happens to my data?<\/h3><\/dt>\n<dd><p>All scan results are stored in your site's own database. No scan data is sent to any external service. AI providers only receive structured issue summaries (titles, types, counts) \u2014 never database contents, user data, or file contents.<\/p><\/dd>\n<dt id=\"is%20woocommerce%20required%3F\"><h3>Is WooCommerce required?<\/h3><\/dt>\n<dd><p>No. WooCommerce diagnostics are skipped automatically if WooCommerce is not active.<\/p><\/dd>\n<dt id=\"which%20ai%20providers%20are%20supported%3F\"><h3>Which AI providers are supported?<\/h3><\/dt>\n<dd><p>OpenAI (GPT-4o, GPT-4o-mini), Anthropic Claude (Haiku, Sonnet, Opus), Google Gemini (Flash, Pro). API keys are encrypted at rest with AES-256-CBC.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Performance scanner: TTFB, PHP version, memory, object cache, autoload size, plugin count, cron jobs<\/li>\n<li>SEO scanner: meta titles, descriptions, alt text, thin content, duplicate titles, robots.txt, sitemap, noindex<\/li>\n<li>Image analyzer: oversized files, WebP adoption, lazy loading, broken attachments<\/li>\n<li>Cache analyzer: caching plugin detection, GZIP\/Brotli, Cache-Control, stale transients<\/li>\n<li>Security scanner: debug flags, admin username, SSL, XML-RPC, updates, file editing<\/li>\n<li>WooCommerce scanner: product images, descriptions, variations, cart fragments, pending orders<\/li>\n<li>Weighted health score with 90-day history tracking<\/li>\n<li>AI recommendations \u2014 OpenAI, Claude, Gemini<\/li>\n<li>Auto-Optimize: heartbeat, XML-RPC, emoji, oEmbed (hook-based, reversible)<\/li>\n<li>Scheduled scans with email alerts<\/li>\n<li>HTML and JSON report export<\/li>\n<li>AES-256-CBC API key encryption<\/li>\n<\/ul>","raw_excerpt":"AI-powered health auditor. Scans performance, SEO, images, security, and WooCommerce \u2014 explains every issue and tracks your score over time.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=323977"}],"author":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ulasaslan"}],"wp:attachment":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323977"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323977"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323977"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323977"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323977"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}