{"id":318913,"date":"2026-05-31T10:43:14","date_gmt":"2026-05-31T10:43:14","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/the-seo-assistant\/"},"modified":"2026-05-31T10:21:58","modified_gmt":"2026-05-31T10:21:58","slug":"ariham-seoagent","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ariham-seoagent\/","author":13893458,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"trunk","tested":"7.0","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Ariham SEOAgent","header_author":"Aditya Shah","header_description":"Autonomous SEO growth engine \u2014 continuously analyzes Search Console and GA4 signals, then proposes prioritized SEO recommendations with full audit trail, optional autopilot, and AI-powered content intelligence.","assets_banners_color":"1c1c3a","last_updated":"2026-05-31 10:21:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/adityashah.blog\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":24,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"0.1.0":"<p>Security and code quality improvements. Recommended update for all users.<\/p>","0.0.1":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3555351,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3555351,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3555351,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3555351,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard \u2014 activity feed, score distribution, traffic trends, and key metrics at a glance.","2":"Opportunities \u2014 prioritised list of SEO recommendations with confidence scores and before\/after previews.","3":"Pending Approvals \u2014 review and apply AI-generated meta improvements one at a time or in bulk.","4":"Connect Google \u2014 step-by-step OAuth flow for Search Console and GA4.","5":"Settings \u2014 configure AI provider, autopilot mode, confidence threshold, and daily change cap.","6":"Rollback Center \u2014 full audit trail with one-click restore for every applied change.","7":"Cron Status \u2014 real-time view of all background jobs and manual trigger controls."}},"plugin_section":[],"plugin_tags":[2353,232,569,46987,186],"plugin_category":[36,55],"plugin_contributors":[265162],"plugin_business_model":[],"class_list":["post-318913","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-analytics","plugin_tags-automation","plugin_tags-google-search-console","plugin_tags-seo","plugin_category-analytics","plugin_category-seo-and-marketing","plugin_contributors-ethicaladitya","plugin_committers-ethicaladitya"],"banners":{"banner":"https:\/\/ps.w.org\/ariham-seoagent\/assets\/banner-772x250.png?rev=3555351","banner_2x":"https:\/\/ps.w.org\/ariham-seoagent\/assets\/banner-1544x500.png?rev=3555351","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ariham-seoagent\/assets\/icon-128x128.png?rev=3555351","icon_2x":"https:\/\/ps.w.org\/ariham-seoagent\/assets\/icon-256x256.png?rev=3555351","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Ariham SEOAgent is a hands-free SEO growth engine for WordPress.<\/strong> It connects to Google Search Console and Google Analytics 4 to read real traffic and ranking data for every post on your site, then uses that data \u2014 optionally combined with Gemini or OpenAI \u2014 to detect problems, generate prioritised recommendations, and apply safe fixes automatically.<\/p>\n\n<p>Unlike traditional SEO plugins that show you a checklist to fill in, Ariham SEOAgent acts like a background analyst that never sleeps: it scores every page on a 0\u2013100 SEO scale, surfaces the highest-impact opportunities first, and can apply safe metadata updates for you on a schedule \u2014 with full rollback if anything looks wrong.<\/p>\n\n<p><strong>Connect your existing tools \u2014 Ariham SEOAgent enhances what you already have:<\/strong><\/p>\n\n<p>Ariham SEOAgent reads and writes to the SEO plugins you already use. It does not replace them.<\/p>\n\n<ul>\n<li><strong>Google Search Console<\/strong> \u2014 pulls real queries, impressions, clicks, average position, and CTR per post so recommendations are based on actual search performance, not guesses.<\/li>\n<li><strong>Google Analytics 4<\/strong> \u2014 pulls sessions, engagement rate, and average time-on-page to identify pages losing traffic or readers leaving quickly.<\/li>\n<li><strong>Google Site Kit<\/strong> \u2014 if Site Kit is already installed and authorised, Ariham SEOAgent uses its connection bridge to access Search Console data without requiring a separate OAuth setup.<\/li>\n<li><strong>Yoast SEO<\/strong> \u2014 reads and writes meta titles, descriptions, and focus keywords to Yoast's fields.<\/li>\n<li><strong>Rank Math<\/strong> \u2014 reads and writes meta and focus keywords to Rank Math's meta keys.<\/li>\n<li><strong>SmartCrawl<\/strong> \u2014 integrates with SmartCrawl's redirect manager and meta fields.<\/li>\n<li><strong>The SEO Framework<\/strong> \u2014 reads and writes to TSF's post meta.<\/li>\n<li><strong>AIOSEO &amp; SEOPress<\/strong> \u2014 meta write support included.<\/li>\n<li><strong>Redirection plugin<\/strong> \u2014 can create and manage 301 redirects through Redirection's database when it is active.<\/li>\n<\/ul>\n\n<p><strong>What it does on a daily basis:<\/strong><\/p>\n\n<ol>\n<li>Fetches fresh Search Console and GA4 data for all published posts.<\/li>\n<li>Scores each post across seven SEO dimensions: metadata completeness, title\/description optimisation opportunity, content depth, content freshness, search-intent alignment, internal linking, and image alt text.<\/li>\n<li>Detects six signals per post: missing meta, optimisation opportunity, thin content, content refresh needed, intent mismatch, and declining performance.<\/li>\n<li>Builds a prioritised queue of recommendations \u2014 each with a confidence score, a \"safe vs risky\" classification, and a before\/after preview.<\/li>\n<li>In manual mode: presents the queue in the Pending Approvals admin screen for you to approve or dismiss one by one.<\/li>\n<li>In Autopilot mode: automatically applies recommendations classified as \"safe\" above a confidence threshold you configure, capped at a daily limit.<\/li>\n<li>Every applied change is logged with full before\/after values and is one-click reversible from the Rollback Center.<\/li>\n<\/ol>\n\n<p><strong>Core features:<\/strong><\/p>\n\n<ul>\n<li><strong>Real-data scoring<\/strong> \u2014 every decision is backed by actual Search Console and GA4 numbers, not keyword-density calculations.<\/li>\n<li><strong>AI-powered suggestions<\/strong> \u2014 optional Gemini (Google AI) and OpenAI\/OpenAI-compatible integrations generate keyword-rich meta titles, meta descriptions, and focus-keyword suggestions tuned to your existing ranking data.<\/li>\n<li><strong>Autopilot with guardrails<\/strong> \u2014 safe-only auto-apply mode, configurable confidence floor, daily change limit, and instant rollback. You stay in control.<\/li>\n<li><strong>Full audit trail<\/strong> \u2014 every recommendation, every applied fix, and every rollback is recorded in the Activity Log with timestamps, before\/after values, confidence scores, and what triggered the change.<\/li>\n<li><strong>Internal link engine<\/strong> \u2014 detects orphan pages and inserts contextual internal links to help distribute PageRank and reduce crawl depth.<\/li>\n<li><strong>Schema injection<\/strong> \u2014 auto-injects Article, BlogPosting, FAQPage, HowTo, and BreadcrumbList JSON-LD structured data via <code>wp_head<\/code>.<\/li>\n<li><strong>404 monitoring and redirect management<\/strong> \u2014 logs 404s and creates 301 redirects through whichever redirect plugin you already have active.<\/li>\n<li><strong>WP-CLI suite<\/strong> \u2014 10 CLI subcommands for power users: <code>analyze<\/code>, <code>optimize<\/code>, <code>report<\/code>, <code>rollback<\/code>, <code>fetch-gsc<\/code>, <code>fetch-ga4<\/code>, <code>score<\/code>, <code>opportunities<\/code>, <code>status<\/code>, <code>logs<\/code>.<\/li>\n<li><strong>Clean uninstall<\/strong> \u2014 removes every custom table, option, post meta key, transient, and scheduled event when uninstalled.<\/li>\n<\/ul>\n\n<p><strong>Privacy and data handling:<\/strong><\/p>\n\n<p>No data leaves your server until you explicitly connect a Google account. No remote call is made on activation. OAuth tokens and API keys are stored encrypted (AES-256-CBC) in your WordPress database.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin communicates with the following third-party services <strong>only after you provide credentials and authorise the connection<\/strong>. No external call is made on plugin activation or on the front-end.<\/p>\n\n<p><strong>Google APIs (required for core functionality)<\/strong><\/p>\n\n<p>After you complete the Google OAuth flow, the plugin communicates with:<\/p>\n\n<ul>\n<li><code>accounts.google.com<\/code> \u2014 OAuth 2.0 authorisation and token exchange<\/li>\n<li><code>oauth2.googleapis.com<\/code> \u2014 Access-token refresh<\/li>\n<li><code>searchconsole.googleapis.com<\/code> \u2014 Search Console query data (impressions, clicks, position, CTR) for your verified property<\/li>\n<li><code>analyticsdata.googleapis.com<\/code> \u2014 GA4 sessions, engagement rate, and time-on-page<\/li>\n<li><code>analyticsadmin.googleapis.com<\/code> \u2014 Listing your GA4 properties<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a> | <a href=\"https:\/\/policies.google.com\/terms\">Google Terms of Service<\/a><\/p>\n\n<p><strong>Google PageSpeed Insights (optional, opt-in)<\/strong><\/p>\n\n<p>Disabled by default. When you turn on \"Fetch Core Web Vitals\" under Ariham SEOAgent \u2192 Settings, a weekly background job sends your published post URLs to <code>www.googleapis.com\/pagespeedonline<\/code> to retrieve Core Web Vitals and Lighthouse scores. No PageSpeed request is ever made unless you explicitly enable this option.<\/p>\n\n<p><a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a> | <a href=\"https:\/\/developers.google.com\/speed\/docs\/insights\/v5\/about\">PageSpeed Insights API Terms<\/a><\/p>\n\n<p><strong>Google Gemini AI (optional)<\/strong><\/p>\n\n<p>When you save a Gemini API key, AI-generated meta suggestions are fetched from <code>generativelanguage.googleapis.com<\/code>.<\/p>\n\n<p><a href=\"https:\/\/ai.google.dev\/gemini-api\/terms\">Gemini API Terms<\/a><\/p>\n\n<p><strong>OpenAI \/ OpenAI-compatible endpoint (optional)<\/strong><\/p>\n\n<p>When you configure an OpenAI API key, meta suggestions are fetched from <code>api.openai.com<\/code> (or a custom base URL you specify). This can point to any OpenAI-compatible provider.<\/p>\n\n<p><a href=\"https:\/\/openai.com\/policies\/privacy-policy\">OpenAI Privacy Policy<\/a> | <a href=\"https:\/\/openai.com\/policies\/terms-of-use\">OpenAI Terms of Use<\/a><\/p>\n\n<p>No user data is sent to any third-party service until you explicitly configure and activate that integration.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>ariham-seoagent<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via the WordPress Plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Ariham SEOAgent \u2192 Settings<\/strong> and enter your Google OAuth Client ID and Client Secret.\n\n<ul>\n<li>Create a project at <a href=\"https:\/\/console.cloud.google.com\/\">Google Cloud Console<\/a>, enable the Search Console API and Google Analytics Data API, and add your wp-admin Connect Google page URL as an authorised redirect URI.<\/li>\n<\/ul><\/li>\n<li>Go to <strong>Ariham SEOAgent \u2192 Connect Google<\/strong> and complete the OAuth flow.<\/li>\n<li>In Settings, select your verified Search Console property and your GA4 property.<\/li>\n<li>Optionally paste a Gemini or OpenAI API key to enable AI-powered meta generation.<\/li>\n<li>Click <strong>Run Full Scan<\/strong> once to seed data. Daily WP-Cron keeps everything fresh from then on.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20automatically%20change%20my%20live%20posts%20without%20me%20knowing%3F\"><h3>Does it automatically change my live posts without me knowing?<\/h3><\/dt>\n<dd><p>No \u2014 not by default. In the default manual mode you must click \"Apply\" on each recommendation in the Pending Approvals screen. Autopilot mode is an explicit opt-in setting and only applies changes classified as \"safe\" above the confidence threshold you set, capped at a daily limit you choose.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20have%20a%20specific%20seo%20plugin%20installed%3F\"><h3>Do I need to have a specific SEO plugin installed?<\/h3><\/dt>\n<dd><p>No. Ariham SEOAgent works standalone and writes meta to its own post-meta keys. If you have Yoast SEO, Rank Math, SmartCrawl, The SEO Framework, AIOSEO, or SEOPress installed and active, the plugin will also write to those plugins' meta fields automatically, so your existing SEO plugin always shows the correct values.<\/p><\/dd>\n<dt id=\"does%20it%20send%20any%20data%20to%20external%20servers%20before%20i%20configure%20it%3F\"><h3>Does it send any data to external servers before I configure it?<\/h3><\/dt>\n<dd><p>No. The plugin makes zero remote calls until you provide OAuth credentials and complete the Google connection. The Gemini and OpenAI integrations are only invoked after you save an API key. No telemetry, no phone-home.<\/p><\/dd>\n<dt id=\"where%20are%20my%20api%20keys%20and%20oauth%20tokens%20stored%3F\"><h3>Where are my API keys and OAuth tokens stored?<\/h3><\/dt>\n<dd><p>In your WordPress database, encrypted at rest with AES-256-CBC using a key derived from your site's <code>wp_salt('secure_auth')<\/code>. They never leave your server except when making authorised API requests.<\/p><\/dd>\n<dt id=\"which%20seo%20plugins%20does%20it%20read%20from%20and%20write%20to%3F\"><h3>Which SEO plugins does it read from and write to?<\/h3><\/dt>\n<dd><p>Yoast SEO, Rank Math, SmartCrawl, The SEO Framework, AIOSEO, and SEOPress \u2014 whichever are active. It detects them automatically and writes to all of them at once, so you never have a mismatch between plugins.<\/p><\/dd>\n<dt id=\"how%20do%20i%20undo%20a%20change%3F\"><h3>How do I undo a change?<\/h3><\/dt>\n<dd><p>Open <strong>Ariham SEOAgent \u2192 Rollback Center<\/strong>, find the entry, and click Rollback. The previous meta value is restored across every SEO plugin that was written to.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>No. All analysis and API calls happen inside WP-Cron jobs that run in the background. Nothing runs on the front-end. Admin pages load data from local database tables, not live API calls.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20google%20site%20kit%3F\"><h3>Does it work with Google Site Kit?<\/h3><\/dt>\n<dd><p>Yes. If Google Site Kit is installed and already authorised with your Google account, Ariham SEOAgent detects it automatically and uses its connection bridge to pull Search Console data \u2014 no separate OAuth credentials required. You can still set up the dedicated OAuth flow if you prefer, or if you need GA4 data that Site Kit does not expose.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Version bump: code quality, security hardening, and WordPress Coding Standards compliance pass.<\/li>\n<li>Fixed: WP_Filesystem used for all file operations in the logger.<\/li>\n<li>Fixed: Eliminated ob_start() pattern in meta-box; JS data injected via wp_json_encode().<\/li>\n<li>Fixed: Added JSON_HEX_TAG to JSON-LD output to prevent  injection.<\/li>\n<li>Fixed: Renamed JavaScript global to arihamSeoagentAdmin (fully plugin-prefixed).<\/li>\n<li>Fixed: Text domain corrected to ariham-seoagent across all files.<\/li>\n<\/ul>\n\n<h4>0.0.1<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Autonomous SEO agent: connects GSC, GA4, and your SEO plugins to continuously analyse, score, and fix your content on autopilot.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/318913","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=318913"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ethicaladitya"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=318913"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=318913"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=318913"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=318913"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=318913"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=318913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}