{"id":324178,"date":"2026-06-17T08:34:44","date_gmt":"2026-06-17T08:34:44","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/coretex-seo\/"},"modified":"2026-08-23T06:24:54","modified_gmt":"2026-08-23T06:24:54","slug":"coretex-seo","status":"publish","type":"plugin","link":"https:\/\/am.wordpress.org\/plugins\/coretex-seo\/","author":23513894,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"5.0.0","stable_tag":"trunk","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Coretex SEO","header_author":"Coretex SEO","header_description":"The SEO operating system for WordPress with AI providers, human approval, title scan, meta scan, spell check, and admin settings.","assets_banners_color":"f6f5fc","last_updated":"2026-08-23 06:24:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/coretex-seo.co.uk\/","header_author_uri":"https:\/\/coretex-seo.co.uk\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":492,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"5.0.0":"<p>No licence key is needed any more. If you were using rank tracking, competitor analysis, client reports or advanced GEO generation, those features now live in the separate Coretex SEO Agency add-on \u2014 install it to keep them. Your existing data is preserved either way.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3661455,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3661455,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3661455,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3661455,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2353,5777,1117,186,1557],"plugin_category":[55],"plugin_contributors":[277048],"plugin_business_model":[],"class_list":["post-324178","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-meta-description","plugin_tags-schema","plugin_tags-seo","plugin_tags-sitemap","plugin_category-seo-and-marketing","plugin_contributors-jamiekay","plugin_committers-jamiekay"],"banners":{"banner":"https:\/\/ps.w.org\/coretex-seo\/assets\/banner-772x250.png?rev=3661455","banner_2x":"https:\/\/ps.w.org\/coretex-seo\/assets\/banner-1544x500.png?rev=3661455","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/coretex-seo\/assets\/icon-128x128.png?rev=3661455","icon_2x":"https:\/\/ps.w.org\/coretex-seo\/assets\/icon-256x256.png?rev=3661455","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Coretex SEO scans your posts and pages, asks an AI model you configure for concrete improvements, and puts every suggestion in an approval queue. Nothing on your site changes until you approve it.<\/p>\n\n<p>You bring your own AI provider and your own API key. There is no account to create, no key to activate, and the plugin never contacts our servers.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li><strong>SEO titles and meta descriptions<\/strong> \u2014 rewritten for length, clarity and click-through<\/li>\n<li><strong>Heading structure<\/strong> \u2014 audits H2\/H3 hierarchy and proposes a better outline<\/li>\n<li><strong>Internal linking<\/strong> \u2014 suggests anchor phrases for connecting related content<\/li>\n<li><strong>Image SEO<\/strong> \u2014 descriptive titles and screen-reader-ready alt text for your media library<\/li>\n<li><strong>Spelling check<\/strong> \u2014 AI proofreading across your published content<\/li>\n<li><strong>SEO audit<\/strong> \u2014 broken links across every published page, duplicate SEO titles and meta descriptions, and canonical or noindex tags that are hiding pages from search engines<\/li>\n<li><strong>GEO health checklist<\/strong> \u2014 static checks for how ready your content is to be cited by AI answer engines<\/li>\n<li><strong>Keyword research<\/strong> \u2014 keyword ideas with intent and difficulty estimates<\/li>\n<li><strong>AI article writer<\/strong> \u2014 article ideas from your site's topics, and full drafts on request<\/li>\n<li><strong>Content scoring<\/strong> \u2014 a readability and optimisation score for every post and page<\/li>\n<li><strong>robots.txt editor<\/strong> \u2014 with a guard that refuses to save a file that would deindex your whole site<\/li>\n<li><strong>IndexNow<\/strong> \u2014 instant submission to Bing and Yandex<\/li>\n<li><strong>AI crawler allowlist<\/strong> \u2014 checks whether known AI crawlers are being blocked by accident<\/li>\n<li><strong>Scheduled audits<\/strong> \u2014 run every audit section on a schedule, with an email when something regresses<\/li>\n<li><strong>Bulk approve and reject<\/strong> \u2014 clear a whole queue in one action<\/li>\n<li><strong>Local AI agent<\/strong> \u2014 runs entirely on your own server when you point it at Ollama<\/li>\n<\/ul>\n\n<h4>Bring your own AI<\/h4>\n\n<p>Choose from OpenAI, Anthropic, Google Gemini, Mistral, Groq, DeepSeek, xAI, Perplexity, OpenRouter, or Ollama running locally. You enter your own API key, and requests go directly from your site to the provider you picked. Provider choice is never restricted.<\/p>\n\n<p>With Ollama, nothing leaves your server at all.<\/p>\n\n<h4>Every change is yours to approve<\/h4>\n\n<p>The AI proposes. You decide. Suggestions sit in a queue where you can read, edit, approve or reject each one. Approving is what writes to your site.<\/p>\n\n<h4>Built to be extended<\/h4>\n\n<p>Coretex SEO publishes a documented set of action and filter hooks. Other plugins can register their own admin screens, scan types, feature flags and settings panels without touching a line of this plugin. The full hook reference is in <code>HOOKS.txt<\/code> inside the plugin folder.<\/p>\n\n<p>There is an optional commercial add-on, Coretex SEO Agency, for people who run SEO for clients. This plugin is complete without it, and every feature listed above works whether or not you ever install it.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not contact Coretex servers. It contacts third-party services only when you configure them and only when you trigger an action that needs them.<\/p>\n\n<p><strong>AI providers (required for AI features, you choose which)<\/strong><\/p>\n\n<p>To generate suggestions, the plugin sends the title, excerpt and, where relevant, the content of the post being scanned, plus your Site Profile text if you filled one in, to the AI provider you selected, authenticated with the API key you entered. No request is made until you click a scan button or enable a scheduled audit.<\/p>\n\n<ul>\n<li>OpenAI \u2014 https:\/\/api.openai.com \u2014 <a href=\"https:\/\/openai.com\/policies\/terms-of-use\">Terms<\/a> \u2014 <a href=\"https:\/\/openai.com\/policies\/privacy-policy\">Privacy<\/a><\/li>\n<li>Anthropic \u2014 https:\/\/api.anthropic.com \u2014 <a href=\"https:\/\/www.anthropic.com\/legal\/consumer-terms\">Terms<\/a> \u2014 <a href=\"https:\/\/www.anthropic.com\/legal\/privacy\">Privacy<\/a><\/li>\n<li>Google Gemini \u2014 https:\/\/generativelanguage.googleapis.com \u2014 <a href=\"https:\/\/policies.google.com\/terms\">Terms<\/a> \u2014 <a href=\"https:\/\/policies.google.com\/privacy\">Privacy<\/a><\/li>\n<li>Mistral \u2014 https:\/\/api.mistral.ai \u2014 <a href=\"https:\/\/mistral.ai\/terms\">Terms<\/a> \u2014 <a href=\"https:\/\/mistral.ai\/terms#privacy-policy\">Privacy<\/a><\/li>\n<li>Groq \u2014 https:\/\/api.groq.com \u2014 <a href=\"https:\/\/groq.com\/terms-of-use\/\">Terms<\/a> \u2014 <a href=\"https:\/\/groq.com\/privacy-policy\/\">Privacy<\/a><\/li>\n<li>DeepSeek \u2014 https:\/\/api.deepseek.com \u2014 <a href=\"https:\/\/platform.deepseek.com\/downloads\/DeepSeek%20Terms%20of%20Use.html\">Terms<\/a> \u2014 <a href=\"https:\/\/platform.deepseek.com\/downloads\/DeepSeek%20Privacy%20Policy.html\">Privacy<\/a><\/li>\n<li>xAI \u2014 https:\/\/api.x.ai \u2014 <a href=\"https:\/\/x.ai\/legal\/terms-of-service\">Terms<\/a> \u2014 <a href=\"https:\/\/x.ai\/legal\/privacy-policy\">Privacy<\/a><\/li>\n<li>Perplexity \u2014 https:\/\/api.perplexity.ai \u2014 <a href=\"https:\/\/www.perplexity.ai\/hub\/legal\/terms-of-service\">Terms<\/a> \u2014 <a href=\"https:\/\/www.perplexity.ai\/hub\/legal\/privacy-policy\">Privacy<\/a><\/li>\n<li>OpenRouter \u2014 https:\/\/openrouter.ai \u2014 <a href=\"https:\/\/openrouter.ai\/terms\">Terms<\/a> \u2014 <a href=\"https:\/\/openrouter.ai\/privacy\">Privacy<\/a><\/li>\n<li>Ollama \u2014 a URL you specify, by default http:\/\/localhost:11434 \u2014 runs on your own hardware, so nothing leaves your server<\/li>\n<\/ul>\n\n<p><strong>IndexNow (optional)<\/strong><\/p>\n\n<p>When you click \"Submit Recent Content to IndexNow\", the URLs of your recently changed posts and pages, plus a site-specific key the plugin generates, are sent to https:\/\/api.indexnow.org so Bing and Yandex learn about the change immediately. Nothing is sent unless you click the button. <a href=\"https:\/\/www.indexnow.org\/documentation\">Terms and documentation<\/a>.<\/p>\n\n<p><strong>DataForSEO (optional)<\/strong><\/p>\n\n<p>If, and only if, you enter DataForSEO credentials, keyword research sends the keyword strings it is researching and a country code to https:\/\/api.dataforseo.com to fetch real monthly search volumes. Without credentials the plugin uses AI estimates instead and makes no request. <a href=\"https:\/\/dataforseo.com\/terms-and-conditions\">Terms<\/a> \u2014 <a href=\"https:\/\/dataforseo.com\/privacy-policy\">Privacy<\/a>.<\/p>\n\n<p><strong>Your own site<\/strong><\/p>\n\n<p>The SEO audit fetches pages of your own site over HTTP to check links, canonical tags and indexability. These requests go to your domain, not to any third party.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <strong>Coretex SEO \u2192 Settings<\/strong> and pick an AI provider.<\/li>\n<li>Paste that provider's API key and click <strong>Save Settings<\/strong>, then <strong>Test Connection<\/strong>.<\/li>\n<li>Optionally fill in <strong>Site Profile<\/strong> so suggestions match your niche and tone.<\/li>\n<li>Go to <strong>Site Scans<\/strong> and run a scan.<\/li>\n<li>Review what it proposes in the <strong>Queue<\/strong> and approve what you want.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20account%20or%20a%20licence%20key%3F\"><h3>Do I need an account or a licence key?<\/h3><\/dt>\n<dd><p>No. The plugin is fully functional on activation. There is no key to enter, no registration, and no call to our servers.<\/p><\/dd>\n<dt id=\"does%20it%20change%20my%20site%20automatically%3F\"><h3>Does it change my site automatically?<\/h3><\/dt>\n<dd><p>No. Every suggestion waits in the approval queue. Your site changes only when you approve an item.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20pay%20for%20an%20ai%20provider%3F\"><h3>Do I need to pay for an AI provider?<\/h3><\/dt>\n<dd><p>You need an API key from one of the supported providers, and those charge for usage. The exception is Ollama, which runs models on your own hardware at no cost.<\/p><\/dd>\n<dt id=\"is%20my%20content%20sent%20anywhere%3F\"><h3>Is my content sent anywhere?<\/h3><\/dt>\n<dd><p>Only to the AI provider you chose, and only when you run a scan. See the External services section above for exactly what is sent. With Ollama, nothing leaves your server.<\/p><\/dd>\n<dt id=\"will%20it%20conflict%20with%20yoast%2C%20rank%20math%20or%20all%20in%20one%20seo%3F\"><h3>Will it conflict with Yoast, Rank Math or All in One SEO?<\/h3><\/dt>\n<dd><p>Coretex SEO writes to its own post meta and only outputs title and description tags when you switch that on in Settings. Leave that off and it works alongside your existing SEO plugin as a suggestion engine.<\/p><\/dd>\n<dt id=\"what%20is%20geo%3F\"><h3>What is GEO?<\/h3><\/dt>\n<dd><p>Generative Engine Optimisation \u2014 structuring content so AI answer engines can quote it. The free plugin includes a health checklist that tells you where you stand.<\/p><\/dd>\n<dt id=\"can%20other%20plugins%20extend%20it%3F\"><h3>Can other plugins extend it?<\/h3><\/dt>\n<dd><p>Yes. See <code>HOOKS.txt<\/code> in the plugin folder for the full list of actions and filters, with examples.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>5.0.0<\/h4>\n\n<ul>\n<li>Full line-by-line audit: fixed a REST endpoint that returned undefined variables, restored translation loading (the language setting had stopped working), corrected six wrong option names in the uninstaller and made it clean up every site on a multisite network, and fixed the IndexNow key file 404ing after activation.<\/li>\n<li>A scan whose every AI call failed now reports the error instead of \"0 new recommendations\".<\/li>\n<li>The spelling check's results now count toward the Run All Scans total, and its progress bar no longer reports 100% while it is still working.<\/li>\n<li>Fixed the admin stylesheet failing to load, caused by a dependency on a style handle that had been removed.<\/li>\n<li>Passes Plugin Check clean: prepared every database query, added translator comments throughout, sanitised all form input, and escaped all output.<\/li>\n<li>Removed the Google Fonts request from wp-admin \u2014 the plugin now loads nothing from a third party to render its own interface.<\/li>\n<li>Queue reads are cached in the object cache and invalidated on write, so the dashboard no longer re-counts on every page load.<\/li>\n<li>set_time_limit() is now guarded rather than error-suppressed, so hosts that disable it no longer produce warnings.<\/li>\n<li>Rewritten as a standalone plugin. No licence key, no registration, no calls to Coretex servers.<\/li>\n<li>New feature registry with filter-based extension points, so other plugins can add features cleanly.<\/li>\n<li>New tab registry \u2014 admin screens are registered rather than hard-coded, and add-ons can contribute their own.<\/li>\n<li>Scheduled audits and bulk approve\/reject are now part of the plugin for everyone.<\/li>\n<li>Audit sections are now a filtered registry, so an add-on can contribute a section complete with its card, runner and results block.<\/li>\n<li>The scan batch size is now an editable performance setting rather than a fixed number, with a <code>cortex_seo_batch_cap<\/code> filter.<\/li>\n<li>Added <code>HOOKS.txt<\/code>, documenting every action and filter.<\/li>\n<li>Removed the licence checker, its daily cron job and its admin notices.<\/li>\n<li>Fixed a REST route whose permission callback returned true before running its own capability check.<\/li>\n<li>Advanced GEO generation, rank tracking, competitor analysis, SERP, backlinks, client reports, white labelling, the full-site engine, and the Technical Site Audit, Local SEO and Full Site Analysis audit sections moved to the optional Coretex SEO Agency add-on.<\/li>\n<\/ul>\n\n<h4>4.1.0<\/h4>\n\n<ul>\n<li>Site Profile, React admin dashboard, REST backend, AI Visibility view.<\/li>\n<\/ul>","raw_excerpt":"AI-assisted SEO that proposes specific improvements to your content and waits for your approval before changing anything.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/324178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=324178"}],"author":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jamiekay"}],"wp:attachment":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=324178"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=324178"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=324178"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=324178"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=324178"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=324178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}