[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fvA5-NXMbMbksdl35Eckb4pn6jtjrd7cScFhjdipv97k":3,"$fOsZep06z4s_zP1AgPD9DC4LkhmrgMDjSr6G5S9m7fa0":436,"$fKI6Ml5jMUnBdLWXsf5hnDMwf0yoiORexFoPa0b_6jHU":440},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28,"discovery_status":29,"vulnerabilities":30,"developer":31,"crawl_stats":27,"alternatives":36,"analysis":126,"fingerprints":412},"seotune-search-insights","Seotune Search Insights","1.0.1","SeoTune","https:\u002F\u002Fprofiles.wordpress.org\u002Fseotune\u002F","\u003Cp>Seotune Search Insights connects to Google Search Console, stores search analytics in your WordPress database, and provides an admin dashboard with KPIs, reports, and actionable SEO insights.\u003C\u002Fp>\n\u003Cp>For setup help, see the \u003Ca href=\"https:\u002F\u002Fseotune.app\u002Fdocumentation\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Without external accounts:\u003C\u002Fstrong> The plugin installs and activates like any other plugin, but \u003Cstrong>reports and sync require\u003C\u002Fstrong> a Google Cloud OAuth client and a Google account with access to a Search Console property for your site. Until you complete connection in \u003Cstrong>Seotune Search Insights \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings\u003C\u002Fstrong>, no Search Console data is fetched and dashboards stay empty.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Connection\u003C\u002Fstrong>: OAuth connection to GSC; automatic detection of the property matching your site domain (no manual property picker).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dashboard\u003C\u002Fstrong>: Overview with clicks, impressions, CTR, position; charts; top queries and pages; recent alerts.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Keywords\u003C\u002Fstrong>: Filterable, sortable report with export to CSV.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pages\u003C\u002Fstrong>: Same for page URLs with export to CSV.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Opportunities\u003C\u002Fstrong>: Two reports — high impressions \u002F low CTR, and keywords in positions 8–20 (quick wins); CSV export.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cannibalization\u003C\u002Fstrong>: Queries with multiple pages competing; per-query URL list. Normalized by URL (fragment stripped).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Decay\u003C\u002Fstrong>: Pages with declining organic performance vs the previous period; filters, probable-cause hints, CSV export.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content Refresh\u003C\u002Fstrong>: Pages prioritized for refresh (urgency levels) with reasons and metrics; CSV export.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Internal Links\u003C\u002Fstrong>: Internal linking opportunities from WordPress content and GSC signals; filters; CSV export.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Question Queries\u003C\u002Fstrong>: Question-style search queries with difficulty signals and metrics (from GSC data).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Alerts\u003C\u002Fstrong>: Automatic detection of position drop, CTR drop, traffic drop, impressions spike (runs after daily sync); list on the Dashboard and CSV export.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Export\u003C\u002Fstrong>: CSV export for queries, pages, opportunities, alerts, decay, content refresh, and internal linking (with filters where applicable; UTF-8 BOM for Excel).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Settings\u003C\u002Fstrong>: Google OAuth credentials, connect\u002Fdisconnect, Sync & Import (auto-import last 28 days on first connection, sync now 3\u002F7 days, import range in background), advanced import tuning, and import diagnostics.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Data is synced for the last 3 days on manual run or via a daily cron. After the \u003Cstrong>first successful connection\u003C\u002Fstrong> to Google Search Console, Seotune Search Insights automatically imports the last \u003Cstrong>28 days\u003C\u002Fstrong> so that the Dashboard and reports are not empty; you can then use Sync & Import to extend or restart the import for a larger range. After the first import, data is updated automatically every day via cron. Historical data can be imported in background batches (by default 7 days per batch and 1000 rows per DB write) that stay within sensible Google Search Console usage and are tuned for performance; you can adjust these values from Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Sync & Import if needed. The Sync & Import card also includes an \u003Cstrong>Import diagnostics\u003C\u002Fstrong> panel that shows recent import activity, cron status, and common issues (e.g. cron not running, API quota, PHP\u002FDB limits) without exposing sensitive query data. Custom database tables use a \u003Cstrong>plugin-specific\u003C\u002Fstrong> prefix (in addition to your WordPress table prefix).\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>This plugin \u003Cstrong>does not\u003C\u002Fstrong> send your site’s front-end visitor traffic to Seotune Search Insights or to a proprietary Seotune API. It \u003Cstrong>does not\u003C\u002Fstrong> add visitor tracking, advertising pixels, or marketing analytics to the public site.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Declared service data (administrators)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Google OAuth 2.0 & Search Console API\u003C\u002Fstrong> (required for core features): After you add OAuth credentials and connect, the server communicates with Google to authorize and to read Search Console data you are allowed to access. Tokens and imported metrics are stored \u003Cstrong>in your WordPress database\u003C\u002Fstrong>. Google’s terms and privacy policies apply to Google accounts and APIs: \u003Ca href=\"https:\u002F\u002Fpolicies.google.com\u002Fprivacy\" rel=\"nofollow ugc\">Google Privacy Policy\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fterms\" rel=\"nofollow ugc\">Google APIs Terms of Service\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin UI typography\u003C\u002Fstrong>: The dashboard uses the operating system’s UI fonts (system font stack in local CSS) in the \u003Cstrong>WordPress admin only\u003C\u002Fstrong>; it does not load third-party font stylesheets for Seotune Search Insights screens.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Responsibility\u003C\u002Fstrong>: Site owners should inform end users where required by law (e.g. privacy policy, cookie\u002Fconsent flows) that Search Console-related data is processed when administrators connect Google services.\u003C\u002Fp>\n\u003Cp>Technical map (endpoints, when requests run): \u003Ccode>documentation\u002Fnetwork-and-privacy.txt\u003C\u002Fcode>. Narrative guide: \u003Ccode>documentation\u002Findex.html\u003C\u002Fcode> (Privacy & third-party services).\u003C\u002Fp>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Ch3>Import diagnostics panel\u003C\u002Fh3>\n\u003Cp>In \u003Cstrong>Seotune Search Insights \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Sync & Import\u003C\u002Fstrong> you will find an \u003Cstrong>Import diagnostics\u003C\u002Fstrong> box:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A status badge (OK \u002F WARNING \u002F ERROR) with a short message and a hint.\u003C\u002Fli>\n\u003Cli>A table of the latest import jobs (manual sync, historical batches, internal links index), showing time, range, rows, duration, and result.\u003C\u002Fli>\n\u003Cli>A \u003Cstrong>Copy log for support\u003C\u002Fstrong> button that copies a plain-text summary (timestamps, job types, technical messages) which you can paste into a support ticket. No search queries, URLs, or user-identifiable data are included.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The panel is read-only and is meant to help you and support quickly understand what is happening on your server.\u003C\u002Fp>\n\u003Ch3>Common messages and what to do\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>“Cron may not be running regularly” \u002F “No plugin cron jobs have run in the last few hours”\u003C\u002Fstrong>\u003Cbr \u002F>\nThis usually means WordPress cron is disabled or not being triggered. Check \u003Ccode>wp-config.php\u003C\u002Fcode> for \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode>. If it is set to \u003Ccode>true\u003C\u002Fcode>, configure a real server cron job that calls \u003Ccode>wp-cron.php\u003C\u002Fcode> every few minutes, or ask your hosting provider to set this up.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>“Historical import is marked as running, but no backfill batches have completed yet”\u003C\u002Fstrong>\u003Cbr \u002F>\nThe backfill state is “running” but no historical batches are logged. This is typically another sign that cron is not firing. Verify the cron configuration as above, then wait a few minutes and refresh the page.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>“Historical import seems stuck (no progress for a while)”\u003C\u002Fstrong>\u003Cbr \u002F>\nIf the progress bar stays at 0% or does not move for a long time, use \u003Cstrong>Stop \u002F Reset import\u003C\u002Fstrong> in the Sync & Import card, then start a new import with smaller batches (lower “Days per batch”). Also make sure cron is running.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Search Console quota \u002F rate limit errors in the log\u003C\u002Fstrong>\u003Cbr \u002F>\nIf recent log entries mention quota or rate-limit errors from the Google Search Console API, try lowering \u003Cstrong>Days per batch\u003C\u002Fstrong> for the historical import, and consider running imports at quieter times of day. If the issue persists, you may need to wait for quotas to reset or use a dedicated Google Cloud project.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>PHP execution time, memory, or database errors in the log\u003C\u002Fstrong>\u003Cbr \u002F>\nMessages mentioning maximum execution time, memory limits, or database connection issues indicate that the server limits are too strict for large imports. Try reducing \u003Cstrong>Days per batch\u003C\u002Fstrong> and, if needed, ask your hosting provider to increase PHP \u003Ccode>memory_limit\u003C\u002Fcode> and \u003Ccode>max_execution_time\u003C\u002Fcode>, or to relax database limits for background jobs.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Hosting requirements (for smooth import)\u003C\u002Fh3>\n\u003Cp>Seotune Search Insights’ \u003Cstrong>historical import\u003C\u002Fstrong> runs in the background via WordPress cron: each cron run processes one batch (a few days of data), then schedules the next. For the import to complete without blocking or stalling, the hosting environment must meet the following.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Default settings\u003C\u002Fstrong> (7 days per batch, 60 seconds delay between batches, 1000 rows per DB batch) are chosen to work on most hosting. On servers with more resources you can increase \u003Cstrong>Days per batch\u003C\u002Fstrong> and reduce \u003Cstrong>Delay between batches\u003C\u002Fstrong> in Seotune Search Insights \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Sync & Import for a faster import.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Minimum (plugin runs, import may be slow or need tuning)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>PHP\u003C\u002Fstrong>: 8.0 or higher (required by the plugin).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PHP memory_limit\u003C\u002Fstrong>: at least \u003Cstrong>128 MB\u003C\u002Fstrong>. Lower values can cause out-of-memory errors during import.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PHP max_execution_time\u003C\u002Fstrong>: at least \u003Cstrong>60 seconds\u003C\u002Fstrong> for each cron run (single batch). Many shared hosts use 30s; that can be enough for small batches but may cause timeouts on heavier batches.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WordPress cron\u003C\u002Fstrong>: Must run regularly (at least every 5–10 minutes). If \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode> is set to \u003Ccode>true\u003C\u002Fcode> in \u003Ccode>wp-config.php\u003C\u002Fcode>, a \u003Cstrong>system cron job\u003C\u002Fstrong> must call \u003Ccode>wp-cron.php\u003C\u002Fcode> (or trigger WordPress cron) every few minutes; otherwise the import never advances.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>MySQL\u003C\u002Fstrong>: Standard WordPress requirements; no extra extensions needed. The plugin writes data in batches (configurable: 100–2000 rows per batch).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Recommended (smooth, reliable import)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>PHP memory_limit\u003C\u002Fstrong>: \u003Cstrong>256 MB\u003C\u002Fstrong> or more.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PHP max_execution_time\u003C\u002Fstrong>: \u003Cstrong>120–300 seconds\u003C\u002Fstrong> for cron\u002FCLI so each batch has enough time to fetch data from Google and write to the database.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cron\u003C\u002Fstrong>: Triggered every \u003Cstrong>1–2 minutes\u003C\u002Fstrong> (e.g. system cron every 2 minutes) so batches run frequently and the import completes in a reasonable time.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Network\u003C\u002Fstrong>: Outbound HTTPS to Google APIs (Search Console) without long timeouts or blocks.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Restrictive shared hosting (e.g. some Aruba, or low-resource plans)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>On hosting with strict limits (low memory, 30s execution time, or cron that rarely runs), the import can block, time out, or appear stuck. To improve reliability:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Cron\u003C\u002Fstrong>: Ensure WordPress cron actually runs. If the host uses \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode>, set up a real cron job (e.g. \u003Ccode>*\u002F5 * * * *\u003C\u002Fcode> to hit \u003Ccode>https:\u002F\u002Fyoursite.com\u002Fwp-cron.php?doing_wp_cron\u003C\u002Fcode> or run \u003Ccode>wp cron event run --due-now\u003C\u002Fcode> via WP-CLI every few minutes). Ask the host (e.g. Aruba) how to add a cron job and what the URL\u002Fcommand should be.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Days per batch\u003C\u002Fstrong>: In \u003Cstrong>Seotune Search Insights \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Sync & Import\u003C\u002Fstrong>, set \u003Cstrong>Days per batch\u003C\u002Fstrong> to \u003Cstrong>3–5\u003C\u002Fstrong> (or even 1 for very slow hosts). Smaller batches reduce memory and execution time per run.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Rows per DB batch\u003C\u002Fstrong>: In the same section, set \u003Cstrong>Rows per DB batch\u003C\u002Fstrong> to \u003Cstrong>500\u003C\u002Fstrong> (or 100 if you still see timeouts or DB errors). Lower values reduce load per request.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PHP limits\u003C\u002Fstrong>: Ask the hosting provider to raise \u003Cstrong>memory_limit\u003C\u002Fstrong> to at least 256 MB and \u003Cstrong>max_execution_time\u003C\u002Fstrong> to at least 120 seconds for PHP (or for the cron\u002FCLI context, if they differentiate).\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>If the import still fails or gets stuck, use \u003Cstrong>Import diagnostics\u003C\u002Fstrong> in Settings (and \u003Cstrong>Copy log for support\u003C\u002Fstrong>) to see whether the cause is cron not running, timeouts, memory, or API quota; then adjust the above or contact the host with the requested limits.\u003C\u002Fp>\n\u003Ch3>Development\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Backend (Composer)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>From the plugin root: \u003Ccode>composer install\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Keep the \u003Ccode>vendor\u002F\u003C\u002Fcode> directory when deploying (plugin requires it for the Google API client).\u003C\u002Fli>\n\u003Cli>Autoload: \u003Ccode>composer.json\u003C\u002Fcode> uses a \u003Cstrong>classmap\u003C\u002Fstrong> for \u003Ccode>includes\u002F\u003C\u002Fcode> (no PSR-4 path mismatch warnings).\u003C\u002Fli>\n\u003Cli>\u003Ccode>monolog\u002Fmonolog\u003C\u002Fcode> is required by \u003Ccode>google\u002Fapiclient\u003C\u002Fcode>; it stays in \u003Ccode>composer.json\u003C\u002Fcode> as \u003Ccode>^2.9\u003C\u002Fcode> to pin Monolog 2.x and remain compatible with PHP 8.0 (Monolog 3 needs PHP 8.1+).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Frontend (React)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>From \u003Ccode>admin\u002Freact-app\u003C\u002Fcode>: \u003Ccode>npm install\u003C\u002Fcode> then \u003Ccode>npm run build\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Build outputs a \u003Cstrong>single\u003C\u002Fstrong> \u003Ccode>admin\u002Fassets\u002Fjs\u002Fadmin-app.js\u003C\u002Fcode> (IIFE bundle for classic \u003Ccode>wp_enqueue_script\u003C\u002Fcode>, no \u003Ccode>import.meta\u003C\u002Fcode>) plus \u003Ccode>admin\u002Fassets\u002Fjs\u002Fadmin-app.css\u003C\u002Fcode> (extracted CSS). Deploy both files; without the built JS, a placeholder script is loaded.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WordPress.org \u002F source access:\u003C\u002Fstrong> The default release zip \u003Cstrong>includes\u003C\u002Fstrong> \u003Ccode>admin\u002Freact-app\u002F\u003C\u002Fcode> (Vite\u002FReact sources, \u003Ccode>package-lock.json\u003C\u002Fcode>; \u003Ccode>node_modules\u003C\u002Fcode> excluded — run \u003Ccode>npm ci\u003C\u002Fcode> inside \u003Ccode>admin\u002Freact-app\u003C\u002Fcode> to rebuild). Compiled \u003Ccode>admin-app.js\u003C\u002Fcode> + \u003Ccode>admin-app.css\u003C\u002Fcode> are also present. Optional: add a \u003Cstrong>public git mirror\u003C\u002Fstrong> URL below for convenience. Details: \u003Ccode>documentation\u002Fsource-and-build.txt\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Public source code repository:\u003C\u002Fstrong> \u003Cem>(Optional — add GitHub\u002FGitLab URL if you publish a mirror; not required for review because sources ship in the plugin package.)\u003C\u002Fem>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Release zip(s) (from plugin root, after \u003Ccode>composer\u003C\u002Fcode> \u002F \u003Ccode>npm\u003C\u002Fcode> as needed)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Version bump & SVN:\u003C\u002Fstrong> see \u003Ccode>scripts\u002FREADME-release.txt\u003C\u002Fcode> (Stable tag, version constant in \u003Ccode>seotune-search-insights.php\u003C\u002Fcode> aligned with the plugin header, changelog, Subversion tag folder).\u003C\u002Fli>\n\u003Cli>\u003Ccode>npm run release\u003C\u002Fcode> — creates a zip in \u003Ccode>dist\u002F\u003C\u002Fcode> (includes \u003Ccode>admin\u002Freact-app\u003C\u002Fcode> sources; excludes \u003Ccode>node_modules\u003C\u002Fcode> and \u003Ccode>documentation\u002F\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Ccode>npm run release:src\u003C\u002Fcode> — creates only the \u003Ccode>*-with-sources.zip\u003C\u002Fcode> variant with the \u003Cstrong>same contents\u003C\u002Fstrong> (alias for workflows that expect the filename).\u003C\u002Fli>\n\u003Cli>\u003Ccode>npm run release:all\u003C\u002Fcode> — writes both filenames; the archives are identical (duplicate name for compatibility).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Translations (i18n)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Text domain: \u003Ccode>seotune-search-insights\u003C\u002Fcode>. PHP uses \u003Ccode>load_plugin_textdomain\u003C\u002Fcode> with \u003Ccode>languages\u002F\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Admin UI strings use \u003Ccode>@wordpress\u002Fi18n\u003C\u002Fcode> (\u003Ccode>__()\u003C\u002Fcode>, \u003Ccode>sprintf\u003C\u002Fcode>, \u003Ccode>_n\u003C\u002Fcode>) in JSX; \u003Ccode>wp_set_script_translations()\u003C\u002Fcode> loads Jed JSON for the built script.\u003C\u002Fli>\n\u003Cli>Regenerate templates (from plugin root, WP-CLI):\u003Cbr \u002F>\n  wp i18n make-pot . languages\u002Fseotune-search-insights.pot –slug=seotune-search-insights –domain=seotune-search-insights –exclude=vendor,admin\u002Freact-app\u002Fnode_modules,dist,admin\u002Fassets,documentation,scripts\u003Cbr \u002F>\nUpdate \u003Ccode>languages\u002Fseotune-search-insights-en_US.po\u003C\u002Fcode> with \u003Ccode>wp i18n update-po languages\u002Fseotune-search-insights.pot languages\u002Fseotune-search-insights-en_US.po\u003C\u002Fcode>.\u003Cbr \u002F>\nBuild JS JSON (maps all React sources to the single bundle):\u003Cbr \u002F>\n  wp i18n make-json languages\u002Fseotune-search-insights-en_US.po –use-map=languages\u002Fwp-i18n-map.json –domain=seotune-search-insights –extensions=jsx,js\u003Cbr \u002F>\nCommit \u003Ccode>languages\u002Fseotune-search-insights.pot\u003C\u002Fcode>, \u003Ccode>languages\u002Fseotune-search-insights-en_US.po\u003C\u002Fcode>, \u003Ccode>languages\u002Fwp-i18n-map.json\u003C\u002Fcode>, and \u003Ccode>languages\u002Fseotune-search-insights-*-*.json\u003C\u002Fcode> with the plugin.\u003C\u002Fli>\n\u003C\u002Ful>\n","Search Console analytics and SEO insights in your WordPress admin. Connect with OAuth; data stored in your DB. Not affiliated with Google.",0,90,100,1,"2026-04-15T07:53:00.000Z","6.9.4","6.2","8.0",[20,21,22,23,24],"analytics","google-search-console","keywords","queries","seo","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fseotune-search-insights\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fseotune-search-insights.1.0.1.zip",null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":13,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"seotune",30,94,"2026-05-19T23:30:26.559Z",[37,53,73,93,113],{"slug":38,"name":39,"version":6,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":11,"downloaded":44,"rating":13,"num_ratings":45,"last_updated":46,"tested_up_to":16,"requires_at_least":47,"requires_php":48,"tags":49,"homepage":51,"download_link":52,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"mirolabs-ai-seo","Mirolabs AI SEO","MiroLabs Seo","https:\u002F\u002Fprofiles.wordpress.org\u002Fmiroseo\u002F","\u003Cp>Mirolabs AI SEO is a comprehensive WordPress SEO plugin that combines AI-powered content optimization with Google Search Console analytics to help you improve your search rankings and organic traffic.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Google Search Console Integration\u003C\u002Fstrong> – Connect your GSC account to track keywords, clicks, impressions, and positions\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AI-Powered Content Tools\u003C\u002Fstrong> – Rewrite titles, meta descriptions, and generate SEO-friendly content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Keyword Lab\u003C\u002Fstrong> – Discover and group keywords with AI assistance\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Trend Finder\u003C\u002Fstrong> – Discover trending topics and content opportunities\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Internal Links Manager\u003C\u002Fstrong> – Smart suggestions for internal linking\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ALT Text Fixer\u003C\u002Fstrong> – Bulk fix missing image ALT attributes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fix Center\u003C\u002Fstrong> – CTR optimization for underperforming pages\u003C\u002Fli>\n\u003Cli>\u003Cstrong>404 Monitor\u003C\u002Fstrong> – Track and manage 404 errors\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Index Monitor\u003C\u002Fstrong> – Monitor your content’s indexing status\u003C\u002Fli>\n\u003Cli>\u003Cstrong>BYOK (Bring Your Own Key)\u003C\u002Fstrong> – Use your own OpenAI\u002FGemini API keys for AI features\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.0 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.4 or higher\u003C\u002Fli>\n\u003Cli>Google Search Console account (optional, for analytics features)\u003C\u002Fli>\n\u003Cli>OpenAI or Google Gemini API key (optional, for AI features)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Installation\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Upload the plugin files to \u003Ccode>\u002Fwp-content\u002Fplugins\u002Fmirolabs-ai-seo-suite\u003C\u002Fcode> directory\u003C\u002Fli>\n\u003Cli>Activate the plugin through the ‘Plugins’ menu in WordPress\u003C\u002Fli>\n\u003Cli>Navigate to ‘Mirolabs AI SEO’ in the WordPress admin menu\u003C\u002Fli>\n\u003Cli>Configure your API keys and connect Google Search Console (optional)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Frequently Asked Questions\u003C\u002Fh4>\n\u003Ch4>Does this plugin require external services?\u003C\u002Fh4>\n\u003Cp>Core functionality works offline. Google Search Console integration and AI features require API keys (BYOK – Bring Your Own Key).\u003C\u002Fp>\n\u003Ch4>Can I use this without API keys?\u003C\u002Fh4>\n\u003Cp>Yes, most features work without API keys. AI features (content generation, rewriting) require OpenAI or Gemini API keys.\u003C\u002Fp>\n\u003Ch4>Is Google Search Console required?\u003C\u002Fh4>\n\u003Cp>No, it’s optional. Connect it to access analytics, keyword tracking, and performance insights.\u003C\u002Fp>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cp>For support and documentation, visit https:\u002F\u002Fmiroseo.com\u003C\u002Fp>\n\u003Ch4>External Services\u003C\u002Fh4>\n\u003Cp>This plugin may connect to the following external services when you enable and use specific features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>OpenAI API\u003C\u002Fstrong> (api.openai.com)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purpose: AI-powered content generation, title\u002Fmeta rewriting, and content optimization\u003C\u002Fli>\n\u003Cli>When: Only when you add your own API key in settings and use AI features\u003C\u002Fli>\n\u003Cli>Data sent: Prompts you provide; responses are returned to your site\u003C\u002Fli>\n\u003Cli>Terms: https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fterms-of-use\u003C\u002Fli>\n\u003Cli>Privacy: https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fprivacy-policy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Google Gemini API\u003C\u002Fstrong> (generativelanguage.googleapis.com)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purpose: Alternative AI service for content generation and optimization\u003C\u002Fli>\n\u003Cli>When: Only when you add your own API key and use AI features\u003C\u002Fli>\n\u003Cli>Data sent: Prompts you provide; responses are returned to your site\u003C\u002Fli>\n\u003Cli>Terms: https:\u002F\u002Fai.google.dev\u002Fterms\u003C\u002Fli>\n\u003Cli>Privacy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Google OAuth & Search Console API\u003C\u002Fstrong> (oauth2.googleapis.com, searchconsole.googleapis.com)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purpose: Connect your Google Search Console account for analytics, keywords, clicks, and impressions\u003C\u002Fli>\n\u003Cli>When: Only when you connect GSC via OAuth in the plugin settings\u003C\u002Fli>\n\u003Cli>Data sent: OAuth tokens, property URL; search performance data is fetched and stored locally\u003C\u002Fli>\n\u003Cli>Terms: https:\u002F\u002Fdevelopers.google.com\u002Fterms\u003C\u002Fli>\n\u003Cli>Privacy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>IndexNow API\u003C\u002Fstrong> (api.indexnow.org)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purpose: Notify search engines when content is published or updated for faster indexing\u003C\u002Fli>\n\u003Cli>When: When you enable IndexNow and publish\u002Fupdate posts\u003C\u002Fli>\n\u003Cli>Data sent: URL(s) of published or updated content\u003C\u002Fli>\n\u003Cli>Terms: https:\u002F\u002Fwww.indexnow.org\u002Fdocumentation\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>flagcdn.com\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purpose: Country flag images displayed in analytics (e.g., traffic by country)\u003C\u002Fli>\n\u003Cli>When: When viewing analytics with geographic data\u003C\u002Fli>\n\u003Cli>Data sent: HTTP requests for flag image URLs (no user data)\u003C\u002Fli>\n\u003Cli>Note: Flags are loaded from flagcdn.com CDN. Refer to flagcdn.com for their terms and policies.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Data & Privacy\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Local Storage:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Options: Plugin settings, API keys (OpenAI\u002FGemini), GSC connection data\u003Cbr \u002F>\n* Transients: Temporary cache data for GSC queries and API responses\u003Cbr \u002F>\n* Post Meta: Focus keywords, index status, index details per post\u002Fpage\u003Cbr \u002F>\n* Custom Tables: 404 log (mirolabs_404_log), rank tracker data (mirolabs_rt_keywords, mirolabs_rt_snapshots, mirolabs_rt_competitors), internal links index (mirolabs_ilx_index, mirolabs_ilx_edges)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>External Calls:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Google Search Console API: For analytics, keyword data, and performance metrics (only when connected)\u003Cbr \u002F>\n* OpenAI API: For AI-powered content generation and optimization (only when API key provided)\u003Cbr \u002F>\n* Google Gemini API: Alternative AI service for content generation (only when API key provided)\u003Cbr \u002F>\n* IndexNow API: To notify search engines of new or updated content (only when IndexNow is enabled)\u003Cbr \u002F>\n* flagcdn.com: For country flag images in analytics geographic views\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Data Deletion:\u003C\u002Fstrong>\u003Cbr \u002F>\nThe plugin’s uninstall process removes all plugin data including options, transients, post meta, and custom tables. To uninstall, deactivate the plugin through WordPress admin, then click “Delete” to permanently remove all data.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>This plugin uses the following third-party libraries:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Chart.js (https:\u002F\u002Fwww.chartjs.org\u002F)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>License: MIT License\u003C\u002Fli>\n\u003Cli>Copyright (c) 2014-2024 Chart.js Contributors\u003C\u002Fli>\n\u003Cli>Used for: Analytics charts and data visualization in GSC Analytics module\u003C\u002Fli>\n\u003Cli>License URL: https:\u002F\u002Fgithub.com\u002Fchartjs\u002FChart.js\u002Fblob\u002Fmaster\u002FLICENSE.md\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Flag Images\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Source: flagcdn.com\u003C\u002Fli>\n\u003Cli>Used for: Country flag display in analytics\u003C\u002Fli>\n\u003Cli>Note: Flags are loaded dynamically from flagcdn.com CDN. Please refer to flagcdn.com for their terms of service and usage policies.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Powerful AI-first SEO suite with Google Search Console integration, keyword research, content optimization, and more.",399,2,"2026-03-06T14:49:00.000Z","5.0","7.4",[50,20,21,22,24],"ai","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmirolabs-ai-seo.1.0.1.zip",{"slug":54,"name":55,"version":56,"author":57,"author_profile":58,"description":59,"short_description":60,"active_installs":61,"downloaded":62,"rating":11,"num_ratings":11,"last_updated":63,"tested_up_to":16,"requires_at_least":64,"requires_php":48,"tags":65,"homepage":69,"download_link":70,"security_score":71,"vuln_count":14,"unpatched_count":11,"last_vuln_date":72,"fetched_at":28},"rankology-seo-and-analytics-tool","Rankology SEO and Analytics Tool","3.4","Rankology","https:\u002F\u002Fprofiles.wordpress.org\u002Frankology\u002F","\u003Cp>Rankology SEO and Analytics Tool is a comprehensive WordPress SEO plugin that helps sites rank higher in search engines. Features include:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>AI Content Generator:\u003C\u002Fstrong>\u003Cbr \u002F>\nAI Content Genie is a powerful WordPress AI dashboard that lets you generate content using your own OpenAI or Gemini API keys.\u003Cbr \u002F>\nIt includes model selection, real-time streaming output, usage logs with token tracking, cost monitoring, and error logging.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Core SEO Features:\u003C\u002Fstrong>\u003Cbr \u002F>\nMeta titles & descriptions, focus keywords, canonical URLs, keyword density analysis, alt text optimization, internal linking detection, nofollow link management, last modified dates, and social media integration.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Advanced SEO:\u003C\u002Fstrong>\u003Cbr \u002F>\nContent analysis with overall SEO scoring, Google autocomplete keyword suggestions, schema markup (Article, FAQ, Review, Organization, Local Business), robots.txt & .htaccess management, XML sitemap generation, and image SEO automation.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Rankology LinkFlow:\u003C\u002Fstrong>\u003Cbr \u002F>\nSmart internal linking with suggestions from content, meta fields, and keywords. Includes analytics dashboards, broken\u002Forphan link detection, engagement tracking, content keyword search, recommendations tables, interlinking graphs, and sitemap visualization.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Google Integration:\u003C\u002Fstrong>\u003Cbr \u002F>\nConnect Google Analytics (GA4) and Search Console to unlock GA & Search Console Insights inside your Rankology dashboard. Configure your GA4 property + Search Console site, securely save your Service Account JSON (encrypted), and view at-a-glance performance metrics (sessions, engagement, clicks, impressions, CTR, position) with filters and reports.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Speed Optimization:\u003C\u002Fstrong>\u003Cbr \u002F>\nHTML\u002FCSS\u002FJS minification, full-page caching, image compression & WebP conversion, server cache headers, GZIP\u002FBrotli compression, and performance stats dashboard.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Web Performance & Core Web Vitals:\u003C\u002Fstrong>\u003Cbr \u002F>\nModern PageSpeed Insights dashboard with Lighthouse-style analysis. Measure LCP, FCP, CLS, INP, TBT, TTI, and TTFB. Includes report caching, history tracking, comparison tools, shareable public reports, email sharing, automatic mobile analysis, domain restriction security, and side-by-side report comparison.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Settings & Customization:\u003C\u002Fstrong>\u003Cbr \u002F>\nGlobal meta settings per content type, social sharing buttons, breadcrumb navigation, header\u002Ffooter code injection, import\u002Fexport functionality, and Cloudflare CDN integration.\u003C\u002Fp>\n\u003Ch3>Additional Feature Highlights\u003C\u002Fh3>\n\u003Ch3>Complete SEO Analysis\u003C\u002Fh3>\n\u003Cp>• Analyze every post and page for keyword use, title structure, meta descriptions, and content scoring so you can continuously tune optimization efforts with precise feedback.\u003C\u002Fp>\n\u003Ch3>Schema Markup\u003C\u002Fh3>\n\u003Cp>• Automatically generate schema for articles, FAQs, reviews, organizations, or local businesses and switch to manual configuration when you need full control over the structured data output.\u003C\u002Fp>\n\u003Ch3>Performance Optimization\u003C\u002Fh3>\n\u003Cp>• Minify HTML, CSS, and JavaScript with real-time cache rebuilding plus loader controls (defer\u002Fdelay) so scripts don’t block rendering while your best content stays compliant with Core Web Vitals.\u003C\u002Fp>\n\u003Ch3>Full-Page Cache & Control\u003C\u002Fh3>\n\u003Cp>• Built-in full-page cache plus cache exclusions, Heartbeat throttling, and a cache status indicator give you complete visibility into what’s stored and how quickly visitors see the page.\u003C\u002Fp>\n\u003Ch3>Image Optimization\u003C\u002Fh3>\n\u003Cp>• Compress uploads, convert to WebP, and clean filenames automatically while preserving alt text hygiene so every media asset contributes to faster loads and better image SEO.\u003C\u002Fp>\n\u003Ch3>Internal Linking\u003C\u002Fh3>\n\u003Cp>• Smart linking suggestions, LinkFlow analytics, and engagement tables guide you to add relevant anchors, track orphan pages, and grow the internal link network without leaving the editor.\u003C\u002Fp>\n\u003Ch3>Google Integration\u003C\u002Fh3>\n\u003Cp>• Directly surface Google Analytics (GA4) and Search Console metrics per URL, submit pages for indexing, and monitor clicks, impressions, and engagement inside WordPress for faster data-driven decisions.\u003C\u002Fp>\n\u003Ch3>Social Media Optimization\u003C\u002Fh3>\n\u003Cp>• Manage Open Graph metadata, share buttons, and default sharing images to ensure every post displays perfectly on Facebook, X, LinkedIn, Reddit, and Pinterest.\u003C\u002Fp>\n\u003Ch3>Technical SEO\u003C\u002Fh3>\n\u003Cp>• Edit robots.txt, .htaccess, redirects, canonical tags, noindex\u002Fnofollow rules, and crawling options to maintain a clean, secure technical foundation for search engines.\u003C\u002Fp>\n\u003Ch3>Breadcrumb Navigation\u003C\u002Fh3>\n\u003Cp>• Enable customizable breadcrumbs per content type and embed them via a \u003Ccode>[rankology_breadcrumb]\u003C\u002Fcode> shortcode so visitors and search engines enjoy clear site structure.\u003C\u002Fp>\n\u003Ch3>Header\u002FFooter Code\u003C\u002Fh3>\n\u003Cp>• Inject custom HTML, CSS, or JavaScript before or after key page segments, restrict it to devices or templates, and toggle the feature without editing theme files.\u003C\u002Fp>\n\u003Ch3>Cloudflare Integration\u003C\u002Fh3>\n\u003Cp>• Connect your Cloudflare account to purge cache, adjust security\u002Fperformance rules, and view zone-level confirmation directly from the Rankology dashboard.\u003C\u002Fp>\n\u003Cp>Server Settings:\u003Cbr \u002F>\n • Add custom rules to the \u003Ccode>.htaccess\u003C\u002Fcode> file (for Apache servers only, not Nginx) via a manual input field.\u003C\u002Fp>\n\u003Cp>Robots.txt Settings:\u003Cbr \u002F>\n • Admins can manually add custom entries.\u003Cbr \u002F>\n • Automatically append entries from the robots options table.\u003C\u002Fp>\n\u003Cp>Sitemap Settings:\u003Cbr \u002F>\n • Auto-generate XML sitemap.\u003Cbr \u002F>\n • Exclude specific pages & posts from sitemap.\u003Cbr \u002F>\n • Automatic sitemap updates on new content.\u003Cbr \u002F>\n • Direct submission to Google & Bing.\u003C\u002Fp>\n\u003Cp>Image SEO Settings:\u003Cbr \u002F>\n • Automatically use the image filename as alt text on upload.\u003Cbr \u002F>\n • Use the uploaded file’s name as the image title by default.\u003Cbr \u002F>\n • Option to set the post title using the uploaded file’s alt text and title.\u003Cbr \u002F>\n • Automatically clean uploaded media filenames for SEO and compatibility.\u003C\u002Fp>\n\u003Cp>Crawling Options:\u003Cbr \u002F>\n • Control site visibility in search results.\u003Cbr \u002F>\n • Disable link crawling site-wide.\u003Cbr \u002F>\n • Disable image indexing for the site.\u003Cbr \u002F>\n • Disable descriptions for all pages in Google.\u003Cbr \u002F>\n • Exclude paginated archive pages from indexing.\u003Cbr \u002F>\n • Exclude attachment pages from indexing.\u003C\u002Fp>\n\u003Cp>Enable\u002FDisable Alert & Warnings:\u003Cbr \u002F>\n • Enable Notice on Discourage search engines from indexing this site.\u003Cbr \u002F>\n • Enable Robots Notice.\u003Cbr \u002F>\n • Enable Robots Sitemap.\u003C\u002Fp>\n\u003Ch4>Rankology Speed Booster\u003C\u002Fh4>\n\u003Cp>Boost your site’s loading speed using advanced optimization tools designed to enhance performance and Core Web Vitals. Organized in 5 intuitive tabs for complete control.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Feature Control Tab:\u003C\u002Fstrong>\u003Cbr \u002F>\n • Master toggle to enable\u002Fdisable all caching features at once.\u003Cbr \u002F>\n • Individual switches for HTML, CSS, and JavaScript minification.\u003Cbr \u002F>\n • Quick overview of active optimization features with status indicators.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cache Generation Tab:\u003C\u002Fstrong>\u003Cbr \u002F>\n • HTML Minification: Automatically compress HTML output by removing whitespace and comments.\u003Cbr \u002F>\n • CSS Minification: Generate optimized lightweight CSS files without affecting originals.\u003Cbr \u002F>\n • JavaScript Minification: Minify and optimize JS files with automatic AJAX-based cache rebuilding.\u003Cbr \u002F>\n • One-click cache clearing for all minified assets without page reload.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Image Optimization Tab:\u003C\u002Fstrong>\u003Cbr \u002F>\n • Advanced image compression using multiple methods (Spatie, Imagick, GD, binary tools).\u003Cbr \u002F>\n • Automatic WebP conversion for all uploaded images with smart browser detection.\u003Cbr \u002F>\n • Lazy loading implementation to load images only when visible in viewport.\u003Cbr \u002F>\n • Bulk optimization with chunk-based processing for entire media library.\u003Cbr \u002F>\n • Real-time performance stats showing total images, optimized count, space saved, and WebP files created.\u003Cbr \u002F>\n • Separate sub-tabs for settings and results\u002Fbulk actions.\u003Cbr \u002F>\n • Support for all WordPress image sizes and thumbnails.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Server Configuration Tab:\u003C\u002Fstrong>\u003Cbr \u002F>\n • Server Cache Headers: Add Cache-Control, Expires, and Pragma headers for improved browser caching.\u003Cbr \u002F>\n • GZIP\u002FBrotli Compression: Auto-configure compression rules for Apache\u002FLiteSpeed servers (.htaccess).\u003Cbr \u002F>\n • Htaccess Header Cache: Enable .htaccess-based caching for static files.\u003Cbr \u002F>\n • Object Cache: Enable object cache headers for faster server processing and database query optimization.\u003Cbr \u002F>\n • Real-time compression detection showing GZIP\u002FBrotli status on your server.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Performance Stats Tab:\u003C\u002Fstrong>\u003Cbr \u002F>\n • Visual dashboard displaying cache performance metrics.\u003Cbr \u002F>\n • Hit rate statistics for optimized vs. non-optimized requests.\u003Cbr \u002F>\n • Overall site performance score and optimization recommendations.\u003Cbr \u002F>\n • Real-time insights into your speed optimization effectiveness.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Web Performance & Core Web Vitals Tab:\u003C\u002Fstrong>\u003Cbr \u002F>\n • Modern PageSpeed Insights dashboard with Lighthouse-style analysis.\u003Cbr \u002F>\n • Core Web Vitals Analysis: Measure and visualize LCP (Largest Contentful Paint), FCP (First Contentful Paint), CLS (Cumulative Layout Shift), INP (Interaction to Next Paint), TBT (Total Blocking Time), TTI (Time to Interactive), and TTFB (Time to First Byte).\u003Cbr \u002F>\n • Performance Score: Get detailed performance metrics with overall performance score (0-100) and grade ratings (A-F).\u003Cbr \u002F>\n • Optimization Recommendations: View actionable optimization opportunities with potential savings, resource details, and improvement suggestions.\u003Cbr \u002F>\n • Report Caching: Configurable cache duration (default 7 days) to reduce API calls and improve response times. Cached reports are stored in database with automatic expiration.\u003Cbr \u002F>\n • Report History: View and manage all previous PageSpeed analyses with pagination, filtering, and quick access to historical reports.\u003Cbr \u002F>\n • Report Comparison: Compare two PageSpeed reports side-by-side to track performance improvements over time, with detailed metric comparisons and opportunity analysis.\u003Cbr \u002F>\n • Shareable Reports: Generate secure, token-based public URLs for sharing performance reports with stakeholders, clients, or team members without requiring WordPress admin access.\u003Cbr \u002F>\n • Email Sharing: Send performance reports via email with custom HTML templates and public share links.\u003Cbr \u002F>\n • Automatic Mobile Analysis: After successful desktop analysis, automatically trigger mobile analysis in the background for comprehensive performance insights.\u003Cbr \u002F>\n • Force Refresh Option: Bypass cache and fetch latest data from API when needed for real-time analysis.\u003Cbr \u002F>\n • Device Strategy Selection: Analyze performance for both desktop and mobile devices with separate reports and metrics.\u003Cbr \u002F>\n • Public Report Access: Public reports render the full dashboard UI with all metrics, charts, and optimization recommendations accessible via clean URLs (no admin authentication required).\u003Cbr \u002F>\n • Integration with Rankology API: Seamlessly connects to Rankology Laravel API for PageSpeed Insights data, eliminating the need for Google API keys.\u003C\u002Fp>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to the following external services:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Rankology API Services\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Purpose: Fetch Google Analytics and Search Console data, submit URLs for indexing, provide SEO insights, and analyze PageSpeed performance\u003C\u002Fli>\n\u003Cli>Data Sent: Website URL, API key (encrypted), requested metrics, and PageSpeed analysis requests\u003C\u002Fli>\n\u003Cli>When: When loading analytics dashboards, submitting URLs for indexing, or analyzing page performance\u003C\u002Fli>\n\u003Cli>Endpoints:\n\u003Cul>\n\u003Cli>https:\u002F\u002Fapp.rankology.io\u002Fapi\u002Frankology\u002Furl-inspection\u002Fsingle\u003C\u002Fli>\n\u003Cli>https:\u002F\u002Fapp.rankology.io\u002Fapi\u002Frankology\u002Fsubmit-urls\u003C\u002Fli>\n\u003Cli>https:\u002F\u002Fapp.rankology.io\u002Fapi\u002Frankology\u002Fgoogle-analytics\u002Fgoogle-insights\u003C\u002Fli>\n\u003Cli>https:\u002F\u002Fapp.rankology.io\u002Fapi\u002Frankology\u002Fgoogle-search-console\u002Fgoogle-insights\u003C\u002Fli>\n\u003Cli>https:\u002F\u002Fapp.rankology.io\u002Fapi\u002Frankology\u002Fconnect-app\u003C\u002Fli>\n\u003Cli>https:\u002F\u002Fapp.rankology.io\u002Fapi\u002Frankology-pagespeed\u002Fwordpress\u002Fget-site-speedinsight (PageSpeed Insights analysis)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Frankology.io\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">Rankology Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Frankology.io\u002Fterms-of-service\u002F\" rel=\"nofollow ugc\">Rankology Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>1a. \u003Cstrong>Rankology Webhook System (Plugin Lifecycle)\u003C\u002Fstrong>\u003Cbr \u002F>\n   * Purpose: Secure communication with Rankology servers for plugin activation and deactivation events\u003Cbr \u002F>\n   * Data Sent:\u003Cbr \u002F>\n     – On Activation: Site URL, site name, WordPress version, PHP version, plugin version, timestamp, nonce, and HMAC-SHA256 signature (if webhook secret exists)\u003Cbr \u002F>\n     – On Deactivation: All activation data plus stored API key (if available)\u003Cbr \u002F>\n   * When:\u003Cbr \u002F>\n     – Plugin Activation: Sends blocking request to receive webhook secret and API key from server\u003Cbr \u002F>\n     – Plugin Deactivation: Sends non-blocking request to notify server of deactivation\u003Cbr \u002F>\n   * Security Features:\u003Cbr \u002F>\n     – HMAC-SHA256 signature verification for request authenticity\u003Cbr \u002F>\n     – Nonce generation for request validation\u003Cbr \u002F>\n     – Rate limiting (5-second cooldown between requests)\u003Cbr \u002F>\n     – SSL certificate verification\u003Cbr \u002F>\n     – Secure storage of webhook secret and API key in WordPress options\u003Cbr \u002F>\n   * Endpoints:\u003Cbr \u002F>\n     – https:\u002F\u002Fapp.rankology.io\u002Fapi\u002Frankology-pagespeed\u002Fwordpress\u002Fplugin-install (activation)\u003Cbr \u002F>\n     – https:\u002F\u002Fapp.rankology.io\u002Fapi\u002Frankology-pagespeed\u002Fwordpress\u002Fplugin-uninstall (deactivation)\u003Cbr \u002F>\n   * Data Storage: Webhook secret and API key are stored securely in WordPress options table and only sent to Rankology API endpoints\u003Cbr \u002F>\n   * Note: The webhook system ensures seamless integration with Rankology services and automatic API key provisioning upon plugin activation\u003Cbr \u002F>\n   * \u003Ca href=\"https:\u002F\u002Frankology.io\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">Rankology Privacy Policy\u003C\u002Fa>\u003Cbr \u002F>\n   * \u003Ca href=\"https:\u002F\u002Frankology.io\u002Fterms-of-service\u002F\" rel=\"nofollow ugc\">Rankology Terms of Service\u003C\u002Fa>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Cloudflare API\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purpose: Manage CDN cache, security settings, performance rules, and analytics data\u003C\u002Fli>\n\u003Cli>Data Sent:\n\u003Cul>\n\u003Cli>API credentials (API key\u002Ftoken and optionally email address for Global API Key authentication)\u003C\u002Fli>\n\u003Cli>Zone ID (identifier for your Cloudflare zone\u002Fdomain)\u003C\u002Fli>\n\u003Cli>Cache management commands (purge all cache, purge specific URLs)\u003C\u002Fli>\n\u003Cli>Security settings (WAF status, security level, bot fight mode, browser integrity check)\u003C\u002Fli>\n\u003Cli>Performance settings (cache level, browser cache TTL, auto minify settings, rocket loader, polish, WebP)\u003C\u002Fli>\n\u003Cli>Page rule configurations (URL patterns, cache rules, security rules)\u003C\u002Fli>\n\u003Cli>Analytics queries (time range parameters for performance and security analytics)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>When:\n\u003Cul>\n\u003Cli>When testing Cloudflare connection (sends zone ID to verify credentials)\u003C\u002Fli>\n\u003Cli>When purging cache (manually or automatically after content updates)\u003C\u002Fli>\n\u003Cli>When updating security settings (WAF, security level, bot protection)\u003C\u002Fli>\n\u003Cli>When updating performance settings (cache level, minification, optimization)\u003C\u002Fli>\n\u003Cli>When creating or deleting page rules\u003C\u002Fli>\n\u003Cli>When fetching analytics data (performance metrics, security events, top statistics)\u003C\u002Fli>\n\u003Cli>When toggling development mode\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Endpoints:\n\u003Cul>\n\u003Cli>https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002F (REST API for cache, security, and settings management)\u003C\u002Fli>\n\u003Cli>https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Fgraphql (GraphQL API for analytics and advanced queries)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Note: All API credentials are stored securely in WordPress options and only sent to Cloudflare API endpoints. No user data or website content is sent to Cloudflare.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fprivacypolicy\u002F\" rel=\"nofollow ugc\">Cloudflare Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fwebsite-terms\u002F\" rel=\"nofollow ugc\">Cloudflare Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Google Autocomplete API\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purpose: Fetch real-time keyword suggestions for SEO optimization\u003C\u002Fli>\n\u003Cli>Data Sent: Search queries (keywords), locale, and country data\u003C\u002Fli>\n\u003Cli>When: When using the “Get Suggestions” button in SEO fields\u003C\u002Fli>\n\u003Cli>Endpoint: https:\u002F\u002Fwww.google.com\u002Fcomplete\u002Fsearch\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fpolicies.google.com\u002Fprivacy\" rel=\"nofollow ugc\">Google Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Google Analytics Data API (GA4) & Google Search Console API\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purpose: Fetch Google Analytics (GA4) reporting metrics and Google Search Console performance data (and URL Inspection, if enabled) inside the Rankology dashboard\u003C\u002Fli>\n\u003Cli>Data Sent:\n\u003Cul>\n\u003Cli>Your configured GA4 Property ID and\u002For Search Console Property URL\u003C\u002Fli>\n\u003Cli>Requested date range, filters (e.g., country\u002Fdevice), dimensions\u002Fmetrics, and URL(s) used for reporting\u003C\u002Fli>\n\u003Cli>Authentication data required to obtain an access token (service-account based OAuth2 flow)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>When: When you enable Google Analytics \u002F Search Console integration and load GA\u002FSC dashboards, reports, or URL inspection features\u003C\u002Fli>\n\u003Cli>Endpoints:\n\u003Cul>\n\u003Cli>https:\u002F\u002Foauth2.googleapis.com\u002Ftoken (token exchange)\u003C\u002Fli>\n\u003Cli>https:\u002F\u002Fanalyticsdata.googleapis.com\u002Fv1beta\u002F (GA4 Data API)\u003C\u002Fli>\n\u003Cli>https:\u002F\u002Fsearchconsole.googleapis.com\u002Fwebmasters\u002Fv3\u002F (Search Console Search Analytics)\u003C\u002Fli>\n\u003Cli>https:\u002F\u002Fsearchconsole.googleapis.com\u002Fv1\u002FurlInspection\u002Findex:inspect (Search Console URL Inspection)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Note: Rankology uses the bundled Google API Client Library for PHP (\u003Ccode>google\u002Fapiclient\u003C\u002Fcode>) to handle authentication and requests.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fpolicies.google.com\u002Fprivacy\" rel=\"nofollow ugc\">Google Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Source Code\u003C\u002Fh3>\n\u003Cp>This plugin includes minified JavaScript and CSS files for performance. The source code and build process are available at:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Plugin Source Code\u003C\u002Fstrong>: https:\u002F\u002Fgithub.com\u002Frankology\u002Frankology-seo-wordpress-plugin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Third-party Libraries\u003C\u002Fstrong>:\n\u003Cul>\n\u003Cli>DataTables: https:\u002F\u002Fgithub.com\u002FDataTables\u002FDataTablesSrc\u003C\u002Fli>\n\u003Cli>Chart.js: https:\u002F\u002Fgithub.com\u002Fchartjs\u002FChart.js\u003C\u002Fli>\n\u003Cli>vis-network: https:\u002F\u002Fgithub.com\u002Fvisjs\u002Fvis-network\u003C\u002Fli>\n\u003Cli>cytoscape.js: https:\u002F\u002Fgithub.com\u002Fcytoscape\u002Fcytoscape.js\u003C\u002Fli>\n\u003Cli>Select2: https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\u003C\u002Fli>\n\u003Cli>Tagify: https:\u002F\u002Fgithub.com\u002Fyaircohen\u002Ftagify\u003C\u002Fli>\n\u003Cli>html2pdf.js: https:\u002F\u002Fgithub.com\u002FeKoopmans\u002Fhtml2pdf.js\u003C\u002Fli>\n\u003Cli>Google API Client Library for PHP (google\u002Fapiclient): https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fgoogle-api-php-client\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: Some JavaScript files (vis-network.min.js, cytoscape.min.js) are minified for performance. The source code is available at the GitHub links above. The plugin uses build tools (npm\u002Fcomposer) to generate production files. To build from source, clone the repository and run the build commands as documented in the repository.\u003C\u002Fp>\n","Rankology SEO and Analytics Tool is a powerful, fast, and easy-to-use SEO plugin that helps WordPress sites rank higher in search engines.",300,2373,"2026-04-14T16:25:00.000Z","6.0",[20,21,66,67,68],"schema-markup","speed-optimization","wordpress-seo","https:\u002F\u002Frankology.io","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frankology-seo-and-analytics-tool.3.4.zip",99,"2026-01-06 19:26:19",{"slug":74,"name":75,"version":76,"author":77,"author_profile":78,"description":79,"short_description":80,"active_installs":81,"downloaded":82,"rating":83,"num_ratings":84,"last_updated":85,"tested_up_to":86,"requires_at_least":86,"requires_php":51,"tags":87,"homepage":90,"download_link":91,"security_score":92,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"word-stats","Word Stats","4.5.1","Fran Ontanaya","https:\u002F\u002Fprofiles.wordpress.org\u002Ffran-ontanaya\u002F","\u003Cp>Word Stats adds a suite of linguistic diagnostics to help you keep track of your content and improve its quality.\u003C\u002Fp>\n\u003Cp>The reports page lets you select an author and period to analyze, and displays:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The total word count.\u003C\u002Fli>\n\u003Cli>The number and percentage of posts of each post type.\u003C\u002Fli>\n\u003Cli>The top 20 keywords.\u003C\u002Fli>\n\u003Cli>The percentage of posts of basic, intermediate and advanced readability level.\u003C\u002Fli>\n\u003Cli>A graph with monthly word counts for each post type.\u003C\u002Fli>\n\u003Cli>Diagnostics tables, with links to edit the posts that may be too short, too long, too difficult, too simple, lack relevant keywords or abuse certain keywords.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can display the total word counts for each post type in your dashboard, widget areas and inside your posts with the [wordcounts] shortcode.\u003C\u002Fp>\n\u003Cp>Word Stats also extends the info area of the post edit form with these live stats:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Relevant keywords. Common words can be blacklisted with regular expressions in the settings page.\u003C\u002Fli>\n\u003Cli>A more accurate word count.\u003C\u002Fli>\n\u003Cli>Color coded readability tests: Automated Readability Index, Coleman-Liau Index and LIX.\u003C\u002Fli>\n\u003Cli>Total characters, alphanumeric characters, words and sentences.\u003C\u002Fli>\n\u003Cli>Characters per word, characters per sentence, words per sentence.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Additionally, an extra column with the readability level of each post can be displayed in the manage posts list.\u003C\u002Fp>\n\u003Cp>Word Stats includes basic support for Unicode scripts, including cyrillic, greek, arabic, hindi and japanese (mileage may vary).\u003C\u002Fp>\n\u003Cp>Spanish and Catalan translations are bundled with the plugin.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Contact\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Feel free to send feedback, requests or suggestions at email@franontanaya.com.\u003C\u002Fp>\n\u003Cp>Or follow me on Twitter: \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002FFranOntanaya\" rel=\"nofollow ugc\">https:\u002F\u002Ftwitter.com\u002FFranOntanaya\u003C\u002Fa>\u003C\u002Fp>\n","A suite of word counters, keyword counters and readability analysis for your blog.",200,33707,88,10,"2014-12-21T16:23:00.000Z","4.1.0",[20,22,24,88,89],"statistics","words","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fword-stats\u002Fstats\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fword-stats.4.5.1.zip",85,{"slug":94,"name":95,"version":96,"author":97,"author_profile":98,"description":99,"short_description":100,"active_installs":84,"downloaded":101,"rating":11,"num_ratings":11,"last_updated":102,"tested_up_to":103,"requires_at_least":104,"requires_php":105,"tags":106,"homepage":110,"download_link":111,"security_score":92,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":112},"bruce-clay-seo","Bruce Clay SEO WP","0.8.0","Aaron Landerkin","https:\u002F\u002Fprofiles.wordpress.org\u002Falanderkin\u002F","\u003Cp>Bruce Clay SEO WP™ puts powerful needed features right into the hands of the writers creating content in WordPress. It is fully compatible with the Yoast SEO plugin, as well.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What makes this plugin unique:\u003C\u002Fstrong> It enriches your publishing workspace with SEO insights based on real-time search results and analytics data. In other words, you can see real-world insights while you work in WordPress. Integrations with SEOToolSet®, Google Search Console and Google Analytics make this possible.\u003C\u002Fp>\n\u003Cp>The Bruce Clay SEO plugin works like software as a service (SaaS). Rather than a hard-coded checklist approach to optimizing a post or page, this plugin has a live connection with the SEOToolSet software. It analyzes your keywords and competition in real time.\u003C\u002Fp>\n\u003Cp>You see on-page recommendations that are \u003Cem>customized per keyword\u003C\u002Fem>. So your page can better compete for visibility in the search engines.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>In the WordPress editor, you can:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Enter more than one focus keyword per page.\u003C\u002Fli>\n\u003Cli>Analyze the top-ranked competitors without leaving WordPress.\u003C\u002Fli>\n\u003Cli>See customized recommendations for keyword usage and content length.\u003C\u002Fli>\n\u003Cli>Highlight keywords to easily see how well they are distributed through the content.\u003C\u002Fli>\n\u003Cli>Check the readability level of a page and compare it to keyword competitors.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>In the Bruce Clay SEO dashboard, you can:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>See which are the top-performing pages and authors on the site.\u003C\u002Fli>\n\u003Cli>View analytics data such as number of search impressions and click-throughs.\u003C\u002Fli>\n\u003Cli>Identify problems with mobile performance.\u003C\u002Fli>\n\u003Cli>Be alerted to duplicate content on the site.\u003C\u002Fli>\n\u003Cli>Know how much content the site has for each keyword.\u003C\u002Fli>\n\u003Cli>See how each page is performing, using integrated Google Analytics data.\u003C\u002Fli>\n\u003Cli>View top-performing posts per author, measured by visitors.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Compatibility with Yoast:\u003C\u002Fstrong> Bruce Clay SEO is fully compatible with the Yoast SEO plugins. If Yoast is active on the site, then the plugin uses the title tags, meta descriptions, and canonical and meta-robots directives from Yoast and disables those features within Bruce Clay SEO in order to avoid any conflict.\u003C\u002Fp>\n\u003Cp>If Yoast is not being used, additional tabs let you enter meta tags and search directives for the page right in the WordPress editor.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Subscription Cost:\u003C\u002Fstrong> Monthly subscription is $24.95\u002Fmonth per domain and includes all the plugin features plus use of the SEOToolSet for additional tools and reports. Try the plugin free for the first 7 days. You can cancel anytime.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>To view a demo video, visit our \u003Ca href=\"http:\u002F\u002Fbit.ly\u002F2G8rb6Y\" rel=\"nofollow ugc\">Bruce Clay SEO for WordPress\u003C\u002Fa> page\u003C\u002Fstrong>\u003C\u002Fp>\n","Next-level SEO plugin! Get on-page guidance per keyword based on analysis of top competitors. See analytics in the WP dashboard.",5058,"2020-09-09T21:02:00.000Z","5.5.18","4.5","5.6",[107,108,21,109,24],"content-analysis","google-analytics","readability","https:\u002F\u002Fwww.bruceclay.com\u002Fseo\u002Ftools\u002Fbruceclayseo\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbruce-clay-seo.v0.8.0.zip","2026-04-06T09:54:40.288Z",{"slug":114,"name":115,"version":116,"author":114,"author_profile":117,"description":118,"short_description":119,"active_installs":11,"downloaded":120,"rating":11,"num_ratings":11,"last_updated":121,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":122,"homepage":124,"download_link":125,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"repivot","Repivot","1.0.0","https:\u002F\u002Fprofiles.wordpress.org\u002Frepivot\u002F","\u003Cp>\u003Cstrong>Know exactly where to start, and focus on the few updates that make the biggest difference.\u003C\u002Fstrong> Repivot helps you choose what to fix next.\u003C\u002Fp>\n\u003Cp>From tone to AI visibility, see where your content can improve and act on it — right inside the WordPress editor.\u003C\u002Fp>\n\u003Ch4>AI-Powered Content Gap Analysis\u003C\u002Fh4>\n\u003Cp>Repivot runs six AI graders on your content and surfaces actionable insights directly in the Gutenberg editor:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Brand Voice\u003C\u002Fstrong> — Detect tone shifts and keep every post consistent, building a style that strengthens reader trust and brand recognition.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content Gap\u003C\u002Fstrong> — Fix missing info, confusing steps, or repeats so your content is complete, clear, and easy for readers to follow and engage with.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Competitive Check\u003C\u002Fstrong> — See how your content compares to others in your niche and uncover ideas to refine, stand out, and stay ahead of the competition.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Internal Links\u003C\u002Fstrong> — Find linking gaps that connect your content, improve navigation, and keep readers exploring more for longer.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AI Reach\u003C\u002Fstrong> — Optimize content for AI search answers to reach more people exactly where they look for information and solutions.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Alt Check\u003C\u002Fstrong> — Scan content images for missing alt text and get suggestions for screen readers and SEO.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Track Your Work\u003C\u002Fh4>\n\u003Cp>Stay organized as you optimize your content:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Labels\u003C\u002Fstrong> — Tag posts with custom labels (e.g. “Needs Update”, “Popular”, “Seasonal”) to filter and prioritize your content library.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Notes\u003C\u002Fstrong> — Add dated notes to any post to track what you changed, why, and what to revisit — giving you a history alongside your analytics.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mark as Done\u003C\u002Fstrong> — Check off insights as you address them so you can track your progress through each content audit.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Analytics Dashboard\u003C\u002Fh4>\n\u003Cp>Connect Google Analytics and Search Console to see your site at a glance:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Track peaks and dips in traffic aligned with seasonal shifts and search changes.\u003C\u002Fli>\n\u003Cli>See which pages attract the most readers and keep them coming back.\u003C\u002Fli>\n\u003Cli>Identify pages with high views but low CTR to improve headlines and calls to action.\u003C\u002Fli>\n\u003Cli>Monitor clicks, impressions, CTR, and ranking position in search results.\u003C\u002Fli>\n\u003Cli>View traffic by device, source, and country to focus your time where it matters.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\u003Cstrong>Connect Your Website\u003C\u002Fstrong> — Link your WordPress site and Google accounts. We’ll automatically sync your content and analytics.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Get AI Insights\u003C\u002Fstrong> — Our AI analyzes your content and identifies opportunities to improve rankings and traffic.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Watch Traffic Grow\u003C\u002Fstrong> — Implement our recommendations and watch your rankings improve and traffic increase.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Integrations\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress (this plugin)\u003C\u002Fli>\n\u003Cli>Google Analytics (GA4)\u003C\u002Fli>\n\u003Cli>Google Search Console\u003C\u002Fli>\n\u003Cli>Instagram\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to the \u003Cstrong>Repivot\u003C\u002Fstrong> platform at \u003Ccode>https:\u002F\u002Fwww.repivot.ai\u003C\u002Fcode> to provide its functionality.\u003C\u002Fp>\n\u003Ch4>What data is transmitted\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Content gap analysis:\u003C\u002Fstrong> When triggered by the user, the post’s HTML content, title, and URL are sent to the Repivot API for AI-powered analysis.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Analytics:\u003C\u002Fstrong> The site URL and post identifiers are sent to retrieve aggregated analytics data from your connected Google Analytics and Search Console accounts.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Connection verification:\u003C\u002Fstrong> The site URL and a unique installation ID are sent to verify the API token and account status.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>When data is transmitted\u003C\u002Fh4>\n\u003Cp>Data is only transmitted when the user explicitly triggers an action (running content gap analysis, viewing analytics, or connecting\u002Fdisconnecting the plugin). No data is transmitted in the background without user action.\u003C\u002Fp>\n\u003Ch4>Why it is needed\u003C\u002Fh4>\n\u003Cp>The AI content analysis and analytics aggregation are performed on Repivot’s servers. This external connection is required for the plugin to function.\u003C\u002Fp>\n\u003Ch4>Service links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.repivot.ai\" rel=\"nofollow ugc\">Repivot website\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.repivot.ai\u002Fprivacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.repivot.ai\u002Fterms\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Source Code & Build Instructions\u003C\u002Fh3>\n\u003Cp>The \u003Ccode>build\u002F\u003C\u002Fcode> directory contains compiled JavaScript generated from the human-readable source files in the \u003Ccode>src\u002F\u003C\u002Fcode> directory, which is included in this plugin.\u003C\u002Fp>\n\u003Cp>To build from source:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Install \u003Ca href=\"https:\u002F\u002Fnodejs.org\u002F\" rel=\"nofollow ugc\">Node.js\u003C\u002Fa> (LTS recommended).\u003C\u002Fli>\n\u003Cli>Run \u003Ccode>npm install\u003C\u002Fcode> in the plugin’s root directory to install dependencies.\u003C\u002Fli>\n\u003Cli>Run \u003Ccode>npm run build\u003C\u002Fcode> to compile the source files into \u003Ccode>build\u002F\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>The build configuration is defined in \u003Ccode>webpack.config.js\u003C\u002Fcode> and uses \u003Ccode>@wordpress\u002Fscripts\u003C\u002Fcode>.\u003C\u002Fp>\n","Win back lost rankings. AI-powered content analysis to find gaps in quality, brand voice, and AI reach — right inside WordPress.",79,"2026-03-25T16:46:00.000Z",[50,20,123,21,24],"content-optimization","https:\u002F\u002Fwww.repivot.ai\u002Fwordpress","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frepivot.1.0.0.zip",{"attackSurface":127,"codeSignals":351,"taintFlows":368,"riskAssessment":405,"analyzedAt":411},{"hooks":128,"ajaxHandlers":166,"restRoutes":167,"shortcodes":335,"cronEvents":336,"entryPointCount":328,"unprotectedCount":14},[129,135,139,144,148,152,155,158,162],{"type":130,"name":131,"callback":132,"file":133,"line":134},"action","admin_menu","register_menu","includes\u002Fadmin\u002Fclass-admin.php",28,{"type":130,"name":136,"callback":137,"file":133,"line":138},"admin_enqueue_scripts","enqueue_assets",29,{"type":130,"name":140,"callback":141,"file":142,"line":143},"rest_api_init","register_routes","includes\u002Fapi\u002Fclass-rest.php",43,{"type":130,"name":145,"callback":146,"file":147,"line":134},"init","load_textdomain","includes\u002Fcore\u002Fclass-plugin.php",{"type":130,"name":149,"callback":150,"priority":151,"file":147,"line":138},"plugins_loaded","maybe_upgrade",5,{"type":130,"name":145,"callback":153,"file":154,"line":138},"register_event","includes\u002Fcron\u002Fclass-scheduler.php",{"type":130,"name":156,"callback":157,"file":154,"line":33},"serpiq_daily_sync","run_daily_sync",{"type":130,"name":159,"callback":160,"file":154,"line":161},"serpiq_backfill_step","run_backfill_step",31,{"type":130,"name":163,"callback":164,"file":154,"line":165},"serpiq_internal_links_daily","run_internal_links_index",32,[],[168,177,181,186,191,197,202,207,211,217,222,227,232,237,242,247,251,255,259,263,267,271,275,279,284,289,293,298,303,308,313,318,324,329],{"namespace":169,"route":170,"methods":171,"callback":173,"permissionCallback":174,"file":175,"line":176},"serpiq\u002Fv1","\u002Falerts",[172],"GET","list","admin_rest_request","includes\u002Fapi\u002Fcontrollers\u002Fclass-alerts-controller.php",20,{"namespace":169,"route":178,"methods":179,"callback":173,"permissionCallback":174,"file":180,"line":176},"\u002Fcannibalization",[172],"includes\u002Fapi\u002Fcontrollers\u002Fclass-cannibalization-controller.php",{"namespace":169,"route":182,"methods":183,"callback":184,"permissionCallback":174,"file":185,"line":138},"\u002Fcontent-refresh",[172],"list_items","includes\u002Fapi\u002Fcontrollers\u002Fclass-content-refresh-controller.php",{"namespace":169,"route":187,"methods":188,"callback":189,"permissionCallback":174,"file":185,"line":190},"\u002Fcontent-refresh\u002Fdetail",[172],"detail",51,{"namespace":169,"route":192,"methods":193,"callback":194,"permissionCallback":174,"file":195,"line":196},"\u002Fdashboard\u002Foverview",[172],"overview","includes\u002Fapi\u002Fcontrollers\u002Fclass-dashboard-controller.php",23,{"namespace":169,"route":198,"methods":199,"callback":200,"permissionCallback":174,"file":201,"line":143},"\u002Fdecay",[172],"get_decay","includes\u002Fapi\u002Fcontrollers\u002Fclass-decay-controller.php",{"namespace":169,"route":203,"methods":204,"callback":184,"permissionCallback":174,"file":205,"line":206},"\u002Finternal-linking",[172],"includes\u002Fapi\u002Fcontrollers\u002Fclass-internal-linking-controller.php",27,{"namespace":169,"route":208,"methods":209,"callback":189,"permissionCallback":174,"file":205,"line":210},"\u002Finternal-linking\u002Fdetail",[172],48,{"namespace":169,"route":212,"methods":213,"callback":215,"permissionCallback":174,"file":216,"line":206},"\u002Foauth\u002Fconnect-url",[214],"POST","connect_url","includes\u002Fapi\u002Fcontrollers\u002Fclass-oauth-controller.php",{"namespace":169,"route":218,"methods":219,"callback":220,"permissionCallback":174,"file":216,"line":221},"\u002Foauth\u002Fdisconnect",[214],"disconnect",37,{"namespace":169,"route":223,"methods":224,"callback":225,"permissionCallback":174,"file":226,"line":176},"\u002Fopportunities\u002Flist",[172],"list_opportunities","includes\u002Fapi\u002Fcontrollers\u002Fclass-opportunities-controller.php",{"namespace":169,"route":228,"methods":229,"callback":230,"permissionCallback":174,"file":226,"line":231},"\u002Fopportunities\u002Fhigh-impressions-low-ctr",[172],"high_impressions_low_ctr",44,{"namespace":169,"route":233,"methods":234,"callback":235,"permissionCallback":174,"file":226,"line":236},"\u002Fopportunities\u002Fposition-8-20",[172],"position_8_20",64,{"namespace":169,"route":238,"methods":239,"callback":240,"permissionCallback":174,"file":226,"line":241},"\u002Fopportunities\u002Fquery-pages",[214],"query_pages",83,{"namespace":169,"route":243,"methods":244,"callback":245,"permissionCallback":174,"file":246,"line":196},"\u002Fpage-edit-links",[214],"resolve_edit_links","includes\u002Fapi\u002Fcontrollers\u002Fclass-page-links-controller.php",{"namespace":169,"route":248,"methods":249,"callback":173,"permissionCallback":174,"file":250,"line":176},"\u002Fpages",[172],"includes\u002Fapi\u002Fcontrollers\u002Fclass-pages-controller.php",{"namespace":169,"route":252,"methods":253,"callback":254,"permissionCallback":174,"file":250,"line":161},"\u002Fpage-keywords",[172],"keywords_for_page",{"namespace":169,"route":256,"methods":257,"callback":258,"permissionCallback":174,"file":250,"line":190},"\u002Fpages-with-change",[172],"list_with_change",{"namespace":169,"route":260,"methods":261,"callback":173,"permissionCallback":174,"file":262,"line":176},"\u002Fqueries",[172],"includes\u002Fapi\u002Fcontrollers\u002Fclass-queries-controller.php",{"namespace":169,"route":264,"methods":265,"callback":266,"permissionCallback":174,"file":262,"line":161},"\u002Fqueries-with-pages",[172],"list_with_pages",{"namespace":169,"route":268,"methods":269,"callback":258,"permissionCallback":174,"file":262,"line":270},"\u002Fqueries-with-change",[172],42,{"namespace":169,"route":272,"methods":273,"callback":184,"permissionCallback":174,"file":274,"line":165},"\u002Fquestion-queries",[172],"includes\u002Fapi\u002Fcontrollers\u002Fclass-question-queries-controller.php",{"namespace":169,"route":276,"methods":277,"callback":278,"permissionCallback":27,"file":274,"line":190},"\u002Fquestion-queries\u002Fterms",[172],"anonymous",{"namespace":169,"route":280,"methods":281,"callback":282,"permissionCallback":174,"file":283,"line":138},"\u002Freports\u002Fqueries-csv",[172],"queries_csv","includes\u002Fapi\u002Fcontrollers\u002Fclass-reports-controller.php",{"namespace":169,"route":285,"methods":286,"callback":287,"permissionCallback":174,"file":283,"line":288},"\u002Freports\u002Fpages-csv",[172],"pages_csv",40,{"namespace":169,"route":290,"methods":291,"callback":292,"permissionCallback":174,"file":283,"line":190},"\u002Freports\u002Fopportunities-high-imp-csv",[172],"opportunities_high_imp_csv",{"namespace":169,"route":294,"methods":295,"callback":296,"permissionCallback":174,"file":283,"line":297},"\u002Freports\u002Fopportunities-position-csv",[172],"opportunities_position_csv",62,{"namespace":169,"route":299,"methods":300,"callback":301,"permissionCallback":174,"file":283,"line":302},"\u002Freports\u002Falerts-csv",[172],"alerts_csv",73,{"namespace":169,"route":304,"methods":305,"callback":306,"permissionCallback":174,"file":283,"line":307},"\u002Freports\u002Fdecay-csv",[172],"decay_csv",84,{"namespace":169,"route":309,"methods":310,"callback":311,"permissionCallback":174,"file":283,"line":312},"\u002Freports\u002Fcontent-refresh-csv",[172],"content_refresh_csv",95,{"namespace":169,"route":314,"methods":315,"callback":316,"permissionCallback":174,"file":283,"line":317},"\u002Freports\u002Finternal-linking-csv",[172],"internal_linking_csv",106,{"namespace":169,"route":319,"methods":320,"callback":321,"permissionCallback":174,"file":322,"line":323},"\u002Fstatus",[172],"get_status","includes\u002Fapi\u002Fcontrollers\u002Fclass-status-controller.php",24,{"namespace":169,"route":325,"methods":326,"callback":327,"permissionCallback":174,"file":322,"line":328},"\u002Fhealth-check",[172],"get_health_check",34,{"namespace":169,"route":330,"methods":331,"callback":332,"permissionCallback":174,"file":333,"line":334},"\u002Fsync\u002Frun",[214],"run","includes\u002Fapi\u002Fcontrollers\u002Fclass-sync-controller.php",22,[],[337,338,340,343,345,347,349],{"hook":156,"callback":156,"file":154,"line":221},{"hook":163,"callback":163,"file":154,"line":339},41,{"hook":159,"callback":159,"file":341,"line":342},"includes\u002Fgsc\u002Fclass-backfill.php",137,{"hook":159,"callback":159,"file":341,"line":344},233,{"hook":159,"callback":159,"file":341,"line":346},369,{"hook":159,"callback":159,"file":341,"line":348},594,{"hook":159,"callback":159,"file":341,"line":350},894,{"dangerousFunctions":352,"sqlUsage":353,"outputEscaping":356,"fileOperations":11,"externalRequests":14,"nonceChecks":362,"capabilityChecks":363,"bundledLibraries":364},[],{"prepared":354,"raw":11,"locations":355},166,[],{"escaped":357,"rawEcho":14,"locations":358},377,[359],{"file":133,"line":360,"context":361},926,"raw output",13,9,[365],{"name":366,"version":27,"knownCves":367},"Guzzle",[],[369,388],{"entryPoint":370,"graph":371,"unsanitizedCount":11,"severity":387},"maybe_handle_admin_actions (includes\u002Fadmin\u002Fclass-admin.php:145)",{"nodes":372,"edges":384},[373,378],{"id":374,"type":375,"label":376,"file":133,"line":377},"n0","source","$_POST (x6)",163,{"id":379,"type":380,"label":381,"file":133,"line":382,"wp_function":383},"n1","sink","update_option() [Settings Manipulation]",167,"update_option",[385],{"from":374,"to":379,"sanitized":386},true,"low",{"entryPoint":389,"graph":390,"unsanitizedCount":11,"severity":387},"\u003Cclass-admin> (includes\u002Fadmin\u002Fclass-admin.php:0)",{"nodes":391,"edges":402},[392,393,394,397],{"id":374,"type":375,"label":376,"file":133,"line":377},{"id":379,"type":380,"label":381,"file":133,"line":382,"wp_function":383},{"id":395,"type":375,"label":396,"file":133,"line":377},"n2","$_POST (x3)",{"id":398,"type":380,"label":399,"file":133,"line":400,"wp_function":401},"n3","echo() [XSS]",746,"echo",[403,404],{"from":374,"to":379,"sanitized":386},{"from":395,"to":398,"sanitized":386},{"summary":406,"deductions":407},"The seotune-search-insights plugin v1.0.1 exhibits a generally strong security posture, with several excellent practices in place. Notably, 100% of SQL queries use prepared statements, all output is properly escaped, and there are no recorded vulnerabilities or critical taint flows. The absence of dangerous functions, file operations, and unsanitized paths further contributes to its robust security. The plugin also demonstrates good use of nonces and capability checks, indicating an awareness of common WordPress security pitfalls.\n\nHowever, the plugin does present a notable concern regarding its REST API. Out of 34 REST API routes, one is identified as lacking permission callbacks. This means that this specific endpoint could potentially be accessed and manipulated by unauthenticated users, creating an attack vector. While the static analysis did not reveal any specific critical taint flows or dangerous functions stemming from this unprotected endpoint, it represents a direct and unprotected entry point into the plugin's functionality that could be exploited in conjunction with other weaknesses or by a determined attacker.\n\nOverall, seotune-search-insights is a well-coded plugin from a security perspective, excelling in core security practices. The single unprotected REST API route is the primary area of concern and requires immediate attention to implement proper authentication and authorization checks. If this is addressed, the plugin's security profile would be significantly enhanced.",[408],{"reason":409,"points":410},"REST API route without permission callback",15,"2026-04-16T13:40:20.291Z",{"wat":413,"direct":424},{"assetPaths":414,"generatorPatterns":418,"scriptPaths":419,"versionParams":420},[415,416,417],"\u002Fwp-content\u002Fplugins\u002Fseotune-search-insights\u002Fincludes\u002Fassets\u002Fcss\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Fseotune-search-insights\u002Fincludes\u002Fassets\u002Fjs\u002Fadmin.js","\u002Fwp-content\u002Fplugins\u002Fseotune-search-insights\u002Fincludes\u002Fassets\u002Fjs\u002Fvendor.js",[],[416,417],[421,422,423],"seotune-search-insights\u002Fincludes\u002Fassets\u002Fcss\u002Fadmin.css?ver=","seotune-search-insights\u002Fincludes\u002Fassets\u002Fjs\u002Fadmin.js?ver=","seotune-search-insights\u002Fincludes\u002Fassets\u002Fjs\u002Fvendor.js?ver=",{"cssClasses":425,"htmlComments":428,"htmlAttributes":429,"restEndpoints":431,"jsGlobals":433,"shortcodeOutput":435},[426,427],"serpiq-app-root","serpiq-menu-icon",[],[430],"data-serpiq-nonce",[432],"\u002Fwp-json\u002Fserpiq\u002Fv1\u002Fsettings",[434],"serpiq_admin_params",[],{"error":386,"url":437,"statusCode":438,"statusMessage":439,"message":439},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fseotune-search-insights\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":45,"versions":441},[442,448],{"version":6,"download_url":26,"svn_tag_url":443,"released_at":27,"has_diff":444,"diff_files_changed":445,"diff_lines":27,"trac_diff_url":446,"vulnerabilities":447,"is_current":386},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fseotune-search-insights\u002Ftags\u002F1.0.1\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fseotune-search-insights%2Ftags%2F1.0.0&new_path=%2Fseotune-search-insights%2Ftags%2F1.0.1",[],{"version":116,"download_url":449,"svn_tag_url":450,"released_at":27,"has_diff":444,"diff_files_changed":451,"diff_lines":27,"trac_diff_url":27,"vulnerabilities":452,"is_current":444},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fseotune-search-insights.1.0.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fseotune-search-insights\u002Ftags\u002F1.0.0\u002F",[],[]]