{"id":296329,"date":"2026-07-28T14:03:48","date_gmt":"2026-07-28T14:03:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/simplicity-seo-audit\/"},"modified":"2026-07-28T14:03:18","modified_gmt":"2026-07-28T14:03:18","slug":"simplicity-seo-audit","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/simplicity-seo-audit\/","author":16018304,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Simplicity SEO Audit","header_author":"Simplicity","header_description":"Quick SEO audit for your WordPress site. Scan 200 pages, get actionable insights, and discover how a full expert audit can help.","assets_banners_color":"7f50a1","last_updated":"2026-07-28 14:03:18","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.simplicity.gr","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"simplicitygr","date":"2026-07-28 14:03:18"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3626088,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3626088,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3626088,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3626088,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3626022,"resolution":"1","location":"assets","locale":"","width":1552,"height":1194},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3626022,"resolution":"2","location":"assets","locale":"","width":1546,"height":1184},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3626022,"resolution":"3","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Dashboard with SEO score and check results","2":"Detailed issues list with URLs","3":"HTML export report"}},"plugin_section":[],"plugin_tags":[8533,186,31034,139315,151481],"plugin_category":[55],"plugin_contributors":[273604],"plugin_business_model":[],"class_list":["post-296329","plugin","type-plugin","status-publish","hentry","plugin_tags-audit","plugin_tags-seo","plugin_tags-seo-audit","plugin_tags-seo-score","plugin_tags-site-health","plugin_category-seo-and-marketing","plugin_contributors-simplicitygr","plugin_committers-simplicitygr"],"banners":{"banner":"https:\/\/ps.w.org\/simplicity-seo-audit\/assets\/banner-772x250.png?rev=3626088","banner_2x":"https:\/\/ps.w.org\/simplicity-seo-audit\/assets\/banner-1544x500.png?rev=3626088","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/simplicity-seo-audit\/assets\/icon-128x128.png?rev=3626088","icon_2x":"https:\/\/ps.w.org\/simplicity-seo-audit\/assets\/icon-256x256.png?rev=3626088","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/simplicity-seo-audit\/assets\/screenshot-1.png?rev=3626022","caption":"Dashboard with SEO score and check results"},{"src":"https:\/\/ps.w.org\/simplicity-seo-audit\/assets\/screenshot-2.png?rev=3626022","caption":"Detailed issues list with URLs"},{"src":"https:\/\/ps.w.org\/simplicity-seo-audit\/assets\/screenshot-3.png?rev=3626022","caption":"HTML export report"}],"raw_content":"<!--section=description-->\n<p>Simplicity SEO Audit scans your WordPress site and gives you a clear SEO health score with specific, actionable recommendations. No technical expertise required \u2014 install, scan, and see exactly what needs fixing.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li>Scans up to 200 pages (posts, pages, products, and taxonomy terms) in a proportional sample<\/li>\n<li>Runs 17 SEO checks across content quality and technical health<\/li>\n<li>Fetches the actual rendered HTML of each page (like Google sees it), not just the database content<\/li>\n<li>Gives you a weighted score from 0 to 100 with a letter grade (A to F)<\/li>\n<li>Shows specific issues with the exact URLs that need attention<\/li>\n<li>Exports a clean HTML report you can print or share with clients<\/li>\n<li>Works with WooCommerce, Yoast SEO, Rank Math, SEOPress, and all major page builders<\/li>\n<\/ul>\n\n<h4>17 SEO Checks<\/h4>\n\n<p><strong>Content Checks (10):<\/strong><\/p>\n\n<ol>\n<li><strong>Title Tag<\/strong> (weight: 8) \u2014 Checks every page has a title between 30-60 characters. Flags empty, too short, and too long titles.<\/li>\n<li><strong>Meta Description<\/strong> (weight: 7) \u2014 Checks for meta descriptions between 70-160 characters. Flags missing, too short, and too long descriptions.<\/li>\n<li><strong>Headings H1<\/strong> (weight: 6) \u2014 Verifies each page has exactly one H1 tag and checks heading hierarchy (no skipping from H1 to H3).<\/li>\n<li><strong>Image Alt Text<\/strong> (weight: 5) \u2014 Counts images missing alt text on each page. Score is the average alt text coverage across all pages.<\/li>\n<li><strong>Internal Links<\/strong> (weight: 5) \u2014 Checks each page has at least one internal link in the content area.<\/li>\n<li><strong>Thin Content<\/strong> (weight: 4) \u2014 Flags pages with fewer than 300 words (posts\/pages) or 30 words (taxonomy terms). Supports Greek and all Unicode languages.<\/li>\n<li><strong>Duplicate Titles<\/strong> (weight: 4) \u2014 Finds pages sharing identical title tags.<\/li>\n<li><strong>Duplicate Descriptions<\/strong> (weight: 4) \u2014 Finds pages sharing identical meta descriptions.<\/li>\n<li><strong>Canonical Tag<\/strong> (weight: 3) \u2014 Checks every page has a canonical URL tag.<\/li>\n<li><strong>OG\/Twitter Tags<\/strong> (weight: 3) \u2014 Checks for Open Graph and Twitter Card meta tags.<\/li>\n<\/ol>\n\n<p><strong>Technical Checks (7):<\/strong><\/p>\n\n<ol>\n<li><strong>SSL\/HTTPS<\/strong> (weight: 4) \u2014 Verifies the site uses HTTPS.<\/li>\n<li><strong>XML Sitemap<\/strong> (weight: 3) \u2014 Checks for an XML sitemap at standard locations.<\/li>\n<li><strong>Robots.txt<\/strong> (weight: 3) \u2014 Checks for a robots.txt file.<\/li>\n<li><strong>SEO Plugin<\/strong> (weight: 2) \u2014 Detects if Yoast, Rank Math, SEOPress, or another SEO plugin is active.<\/li>\n<li><strong>Schema Markup<\/strong> (weight: 2) \u2014 Checks the homepage for structured data (JSON-LD).<\/li>\n<li><strong>PHP\/WP Version<\/strong> (weight: 2) \u2014 Checks for outdated PHP or WordPress versions.<\/li>\n<li><strong>Permalink Structure<\/strong> (weight: 2) \u2014 Verifies pretty permalinks are enabled (not plain ?p=123).<\/li>\n<\/ol>\n\n<h4>How the Score Works<\/h4>\n\n<p>Each check produces a score from 0 to 100. Content checks use ratio-based scoring \u2014 for example, if 80% of your pages have good titles, the Title Tag score is approximately 80. Pages with minor issues (e.g., slightly short title) count as half credit, not zero.<\/p>\n\n<p>The final score is a weighted average of all 17 checks. Checks that matter more for SEO (like Title Tags, weight 8) count more than less critical checks (like Permalink Structure, weight 2).<\/p>\n\n<p><strong>Grading scale:<\/strong>\n* A = 90-100 (Excellent)\n* B = 80-89 (Good)\n* C = 65-79 (Needs improvement)\n* D = 50-64 (Poor)\n* F = 0-49 (Critical issues)<\/p>\n\n<p>A score of 100 means zero issues found. If any issues exist, the maximum score is 99.<\/p>\n\n<h4>Taxonomy-Aware Scoring<\/h4>\n\n<p>Not all pages are equal. The plugin uses a tiered system for taxonomy terms:<\/p>\n\n<ul>\n<li><strong>High priority<\/strong> (full weight): Posts, pages, product categories \u2014 these are your main landing pages<\/li>\n<li><strong>Medium priority<\/strong> (half weight): Tags, product tags, custom taxonomies \u2014 supporting pages<\/li>\n<li><strong>Low priority<\/strong> (info only): Product attributes (e.g., color, size) \u2014 filtering pages that typically shouldn't rank<\/li>\n<\/ul>\n\n<p>Low-priority terms are flagged for information but don't affect your score. This prevents product attributes from unfairly dragging down your SEO score.<\/p>\n\n<p>Developers can customize tiers with the <code>msa_taxonomy_tier<\/code> filter.<\/p>\n\n<h4>Rendered HTML Analysis<\/h4>\n\n<p>Unlike most lightweight SEO plugins that only read database content, Simplicity SEO Audit fetches the actual rendered HTML of each page \u2014 exactly what Google sees. This means:<\/p>\n\n<ul>\n<li>H1 tags added by your theme are detected<\/li>\n<li>Page builder content (Elementor, Divi, WPBakery) is analyzed<\/li>\n<li>Shortcode output is included in word counts<\/li>\n<li>Navigation and footer elements are stripped \u2014 only the main content area is analyzed<\/li>\n<\/ul>\n\n<p>If a page cannot be fetched (e.g., password-protected), the plugin falls back to the database content.<\/p>\n\n<h4>REST API<\/h4>\n\n<p>The plugin provides a REST API endpoint for external integrations:<\/p>\n\n<pre><code>GET \/wp-json\/seo-audit\/v1\/stats?token=YOUR_TOKEN\n<\/code><\/pre>\n\n<p>The token is auto-generated on activation and stored in the database. The endpoint returns site URL, page counts, audit summary, per-check scores, and pricing tier information. It is read-only and uses timing-safe token comparison.<\/p>\n\n<h4>Privacy<\/h4>\n\n<ul>\n<li>All scanning happens on your own server \u2014 no data is sent automatically<\/li>\n<li>The REST API is token-protected and read-only<\/li>\n<li>Scan results are stored in your WordPress database only<\/li>\n<li>All data is deleted when you uninstall (delete) the plugin<\/li>\n<li>See \"Third-Party Services\" below for details on the optional connection to seo.simplicity.gr<\/li>\n<\/ul>\n\n<h4>Third-Party Services<\/h4>\n\n<p>This plugin connects to <a href=\"https:\/\/seo.simplicity.gr\">seo.simplicity.gr<\/a> in the following ways:<\/p>\n\n<ol>\n<li><p><strong>CTA Links<\/strong>: The plugin dashboard includes a \"Get the Full Report\" link that directs you to seo.simplicity.gr. The link includes your site URL and a locally-generated API token as URL parameters.<\/p><\/li>\n<li><p><strong>REST API Endpoint<\/strong>: The plugin registers a REST API endpoint (<code>\/wp-json\/seo-audit\/v1\/stats<\/code>) that allows seo.simplicity.gr to retrieve your scan summary (score, grade, number of checks, number of issues, and total page count). Access requires a valid API token. No page content, URLs, or personal data is transmitted.<\/p><\/li>\n<\/ol>\n\n<ul>\n<li>Service: <a href=\"https:\/\/seo.simplicity.gr\">seo.simplicity.gr<\/a><\/li>\n<li>Provider: <a href=\"https:\/\/www.simplicity.gr\">Simplicity<\/a><\/li>\n<li>Terms of Service: <a href=\"https:\/\/seo.simplicity.gr\/terms.html\">https:\/\/seo.simplicity.gr\/terms.html<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/seo.simplicity.gr\/privacy-policy.html\">https:\/\/seo.simplicity.gr\/privacy-policy.html<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>simplicity-seo-audit<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to the \"Simplicity SEO Audit\" menu item in your admin sidebar<\/li>\n<li>Click \"Scan\" and wait for the results (typically 1-3 minutes depending on site size)<\/li>\n<\/ol>\n\n<p>Or install via ZIP:<\/p>\n\n<ol>\n<li>Go to Plugins &gt; Add New &gt; Upload Plugin<\/li>\n<li>Choose the <code>simplicity-seo-audit.zip<\/code> file<\/li>\n<li>Click \"Install Now\" then \"Activate\"<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20many%20pages%20does%20it%20scan%3F\"><h3>How many pages does it scan?<\/h3><\/dt>\n<dd><p>Up to 200 pages, proportionally sampled across your content types. If your site has 600 products, 30 pages, and 20 posts, the sample will reflect those proportions.<\/p><\/dd>\n<dt id=\"why%20does%20the%20scan%20take%20a%20few%20minutes%3F\"><h3>Why does the scan take a few minutes?<\/h3><\/dt>\n<dd><p>The plugin fetches the rendered HTML of each page (up to 200 HTTP requests to your own site). This is what makes the results accurate \u2014 we see what Google sees. Typical scan time is 1-3 minutes.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Products, product categories, product tags, and product attributes are all supported with appropriate scoring tiers.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%3F\"><h3>Does it work with page builders?<\/h3><\/dt>\n<dd><p>Yes. Because we fetch the rendered HTML, content from Elementor, Divi, WPBakery, Oxygen, Bricks, and other page builders is fully analyzed.<\/p><\/dd>\n<dt id=\"why%20is%20my%20thin%20content%20score%20different%20from%20other%20seo%20plugins%3F\"><h3>Why is my thin content score different from other SEO plugins?<\/h3><\/dt>\n<dd><p>Simplicity SEO Audit counts words in the rendered HTML content area, not just the database post_content. This includes product descriptions, related product sections, and other template-generated content. The word count threshold is 300 for posts\/pages and 30 for taxonomy terms.<\/p><\/dd>\n<dt id=\"will%20uninstalling%20the%20plugin%20leave%20data%20behind%3F\"><h3>Will uninstalling the plugin leave data behind?<\/h3><\/dt>\n<dd><p>No. When you delete (not just deactivate) the plugin, all scan results, tokens, and transients are removed from the database.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20which%20taxonomies%20are%20high%2Fmedium%2Flow%20priority%3F\"><h3>Can I customize which taxonomies are high\/medium\/low priority?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>msa_taxonomy_tier<\/code> filter:<\/p>\n\n<pre><code>add_filter( 'msa_taxonomy_tier', function( $tier, $taxonomy, $post ) {\n    if ( $taxonomy === 'brand' ) return 'high';\n    return $tier;\n}, 10, 3 );\n<\/code><\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Plugin Check \/ review: removed set_time_limit() calls from the scanner<\/li>\n<li>Plugin Check \/ review: HTML export loads CSS via wp_enqueue_style() \/ wp_print_styles(), not echoed style or link tags<\/li>\n<li>Updated Tested up to: 7.0<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Full internationalization \u2014 English default with Greek translation included<\/li>\n<li>All UI strings are now translatable via standard WordPress i18n<\/li>\n<li>Added languages\/ directory with .pot template and Greek .po\/.mo files<\/li>\n<li>Fixed CORS headers for REST API (moved to rest_pre_serve_request filter)<\/li>\n<li>Performance: cached site counter results to eliminate duplicate DB queries<\/li>\n<li>Performance: cached SEO plugin detection per request<\/li>\n<li>Performance: replaced ORDER BY RAND() with PHP shuffle for faster URL sampling<\/li>\n<li>Added scan duration notice (\"This may take 1\u20133 minutes...\")<\/li>\n<li>Fixed singular\/plural for \"pages need improvement\"<\/li>\n<li>Improved CTA copy and label consistency across dashboard and export<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added rendered HTML analysis \u2014 pages are fetched like a search engine, detecting theme H1s, page builder content, and shortcode output<\/li>\n<li>Added taxonomy-aware tiered scoring \u2014 product attributes get zero penalty, tags half penalty, categories full weight<\/li>\n<li>Fixed scoring to use ratio-based calculation instead of cumulative penalties \u2014 scores now reflect actual percentage of pages with issues<\/li>\n<li>Fixed Unicode word counting \u2014 Greek and other non-Latin languages are now counted correctly<\/li>\n<li>Added HTML report export button in the dashboard<\/li>\n<li>Added \"X pages need improvement\" messages on each check<\/li>\n<li>Added score cap at 99 when issues exist \u2014 100 means truly perfect<\/li>\n<li>Fixed admin notices from other plugins overlapping the dashboard<\/li>\n<li>Added uninstall.php to zip for clean data removal<\/li>\n<li>Improved content area extraction with semantic HTML selectors (main, article, role=\"main\")<\/li>\n<li>Heading and internal links checks now skip taxonomy terms (theme-generated, not editorial)<\/li>\n<li>Duplicate detection skips low-priority taxonomy terms<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>17 SEO checks (10 content + 7 technical)<\/li>\n<li>4-batch scanning process for up to 200 pages<\/li>\n<li>Weighted scoring with letter grades<\/li>\n<li>WooCommerce and taxonomy term support<\/li>\n<li>REST API with token authentication<\/li>\n<li>Yoast SEO, Rank Math, and SEOPress integration<\/li>\n<li>Proportional sampling across content types<\/li>\n<li>Noindex page filtering<\/li>\n<\/ul>","raw_excerpt":"Quick SEO audit for your WordPress site. Scan up to 200 pages, get actionable insights, and discover how a full expert audit can help.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296329"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/simplicitygr"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296329"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296329"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296329"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296329"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296329"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}