{"id":244606,"date":"2025-08-11T21:08:29","date_gmt":"2025-08-11T21:08:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/kaldia-aeo-manager\/"},"modified":"2026-02-14T22:40:05","modified_gmt":"2026-02-14T22:40:05","slug":"kaldia-aeo-manager","status":"publish","type":"plugin","link":"https:\/\/ewe.wordpress.org\/plugins\/kaldia-aeo-manager\/","author":18440388,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.5","stable_tag":"1.0.5","tested":"6.8.5","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Kaldia AEO Manager","header_author":"Kaldia Team","header_description":"AI-powered AEO schema generator: Create & inject FAQ, HowTo, Event & Product JSON-LD for better SEO.","assets_banners_color":"b7ceea","last_updated":"2026-02-14 22:40:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":10,"downloads":563,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"huma11","date":"2025-08-11 21:36:32"},"1.0.1":{"tag":"1.0.1","author":"huma11","date":"2025-10-18 09:04:00"},"1.0.2":{"tag":"1.0.2","author":"huma11","date":"2026-02-14 18:44:58"},"1.0.4":{"tag":"1.0.4","author":"huma11","date":"2026-02-14 22:23:56"},"1.0.5":{"tag":"1.0.5","author":"huma11","date":"2026-02-14 22:40:05"}},"upgrade_notice":{"1.0.5":"<p>Pages list now pre-loads all post meta in one query instead of 2 per page.<\/p>","1.0.4":"<p>Lightweight performance update: API key decryption is cached per request, reducing database queries and crypto overhead.<\/p>","1.0.2":"<p>Minor optimization update improving generation performance and reducing unnecessary option writes.<\/p>","1.0.1":"<p>Important stability update - fixes JSON parsing errors and improves content generation reliability.<\/p>","1.0.0":"<p>First release \u2014 configure your OpenAI key and model, then start generating schemas.<\/p>\n\n<hr \/>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3343732,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3343159,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3343159,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.4","1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3343159,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3343159,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3343159,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3343159,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"<strong>Kaldia Interface<\/strong> \u2013 pages table, schema status, \u201cGenerate \/ Edit\u201d actions.","2":"<strong>OpenAI Settings Popup<\/strong> \u2013 API key, model selector, temperature &amp; tokens.","3":"<strong>JSON-LD Edit Popup<\/strong> \u2013 generated FAQ\/HowTo JSON-LD, editable &amp; validated.","4":"<strong>Injected JSON-LD Example<\/strong> \u2013 <code>&lt;script type=\"application\/ld+json\"&gt;<\/code> visible in the page head (via browser dev tools)."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[244526,244525,246210,2516,6354],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-244606","plugin","type-plugin","status-publish","hentry","plugin_tags-aeo","plugin_tags-answer-engine-optimization","plugin_tags-automatic-schema","plugin_tags-json-ld","plugin_tags-seo-tool","plugin_committers-huma11"],"banners":{"banner":"https:\/\/ps.w.org\/kaldia-aeo-manager\/assets\/banner-772x250.png?rev=3343159","banner_2x":"https:\/\/ps.w.org\/kaldia-aeo-manager\/assets\/banner-1544x500.png?rev=3343159","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kaldia-aeo-manager\/assets\/icon-256x256.png?rev=3343732","icon_2x":"https:\/\/ps.w.org\/kaldia-aeo-manager\/assets\/icon-256x256.png?rev=3343732","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kaldia-aeo-manager\/assets\/screenshot-1.png?rev=3343159","caption":"<strong>Kaldia Interface<\/strong> \u2013 pages table, schema status, \u201cGenerate \/ Edit\u201d actions."},{"src":"https:\/\/ps.w.org\/kaldia-aeo-manager\/assets\/screenshot-2.png?rev=3343159","caption":"<strong>OpenAI Settings Popup<\/strong> \u2013 API key, model selector, temperature &amp; tokens."},{"src":"https:\/\/ps.w.org\/kaldia-aeo-manager\/assets\/screenshot-3.png?rev=3343159","caption":"<strong>JSON-LD Edit Popup<\/strong> \u2013 generated FAQ\/HowTo JSON-LD, editable &amp; validated."},{"src":"https:\/\/ps.w.org\/kaldia-aeo-manager\/assets\/screenshot-4.png?rev=3343159","caption":"<strong>Injected JSON-LD Example<\/strong> \u2013 <code>&lt;script type=\"application\/ld+json\"&gt;<\/code> visible in the page head (via browser dev tools)."}],"raw_content":"<!--section=description-->\n<p><strong>Answer Engine Optimization (AEO)<\/strong> helps search engines and AI assistants deliver precise answers.<br \/>\n<strong>Kaldia AEO Manager<\/strong> automates the creation and injection of <strong>FAQ<\/strong>, <strong>HowTo<\/strong>, <strong>Event<\/strong>, and <strong>Product<\/strong> schemas (schema.org) in <strong>JSON-LD<\/strong>, directly into your page <code>&lt;head&gt;<\/code> \u2014 one click, zero coding.<\/p>\n\n<h3>Why AEO matters<\/h3>\n\n<p>Search engines (Google, Bing) and assistants (ChatGPT, Copilot, Siri\u2026) look for <strong>structured answers<\/strong>. Adding JSON-LD schemas (FAQ, HowTo\u2026) boosts your chances of:\n* Getting <strong>rich results<\/strong> (expandable FAQ, step-by-step HowTo)\n* Being cited as a <strong>direct answer<\/strong> by AI systems\n* Improving overall visibility<\/p>\n\n<h3>What Kaldia makes simple<\/h3>\n\n<ul>\n<li><strong>AI generation (OpenAI only)<\/strong>: pick a schema type, let the AI craft relevant Q\/As (FAQ) or steps (HowTo).  <\/li>\n<li><strong>Advanced controls<\/strong>: choose among 4 common OpenAI LLM models, set temperature and max tokens.  <\/li>\n<li><strong>Edit &amp; validate<\/strong>: tweak the JSON-LD in a modal and validate before publishing.  <\/li>\n<li><strong>Automatic injection<\/strong>: the JSON-LD script is inserted into the page <code>&lt;head&gt;<\/code> (disable any time).  <\/li>\n<li><strong>Friendly interface<\/strong>: clean, easy-to-use UI that follows WordPress UX standards.<\/li>\n<\/ul>\n\n<h3>Key features<\/h3>\n\n<ul>\n<li>Generate &amp; inject <strong>FAQ<\/strong>, <strong>HowTo<\/strong>, <strong>Event<\/strong>, <strong>Product<\/strong> schemas (JSON-LD)  <\/li>\n<li>Single provider: <strong>OpenAI<\/strong>, with 4 selectable LLM models (e.g. gpt-4o, gpt-4, gpt-4o-mini, gpt-3.5-turbo)  <\/li>\n<li>Adjust <strong>temperature<\/strong> and <strong>max tokens<\/strong> per generation  <\/li>\n<li>Pick schema type per page + regenerate on demand  <\/li>\n<li>Built-in JSON-LD editor (validate &amp; save)  <\/li>\n<li>Clean injection in each page <code>&lt;head&gt;<\/code>  <\/li>\n<li>Compliant with WordPress coding standards (REST API, permissions, i18n)<\/li>\n<\/ul>\n\n<blockquote>\n  <p><strong>KALDIA = Knowledge &amp; Language-Driven Intent Answers<\/strong><br \/>\n  Our mission: make AEO simple and accessible.<\/p>\n<\/blockquote>\n\n\n\n<h3>External services<\/h3>\n\n<p>This plugin uses the OpenAI API (api.openai.com) to validate the API key and to generate JSON-LD when an administrator requests it. For key validation, the API key is sent in the Authorization header to fetch available models. For generation, a prompt with minimal context from the selected post (title, headings, short excerpts) and the chosen parameters (model, max_tokens, temperature) is sent. No data is sent from the frontend, and nothing is transmitted unless an admin initiates it. The API key can be removed at any time in the settings.<\/p>\n\n<p>OpenAI Terms of Use: https:\/\/openai.com\/policies\/terms-of-use<br \/>\nOpenAI Privacy Policy: https:\/\/openai.com\/policies\/privacy-policy<\/p>\n\n\n\n<h3>Privacy<\/h3>\n\n<p>Kaldia does not send any user data to third parties, except for the explicit calls you make to the OpenAI API. Those requests may include page content excerpts to generate JSON-LD.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it via \u201cPlugins \u2192 Add New\u201d.  <\/li>\n<li>Activate <strong>Kaldia AEO Manager<\/strong>.  <\/li>\n<li>Open the <strong>Kaldia AEO<\/strong> menu in your WordPress admin.  <\/li>\n<li>Click <strong>Settings<\/strong> to:<br \/>\n\n<ul>\n<li>enter your OpenAI API key,  <\/li>\n<li>choose one of the 4 supported LLM models,  <\/li>\n<li>set temperature and max tokens.  <\/li>\n<\/ul><\/li>\n<li>In the pages list, pick a <strong>schema type<\/strong> (FAQ, HowTo, Event, Product), then click <strong>Generate<\/strong>.  <\/li>\n<li>Edit\/validate the JSON-LD, click <strong>Save<\/strong> \u2014 the script is injected into the <code>&lt;head&gt;<\/code>.  <\/li>\n<li>You can disable or delete a schema at any time.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20answer%20engine%20optimization%20%28aeo%29%3F\"><h3>What is Answer Engine Optimization (AEO)?<\/h3><\/dt>\n<dd><p>AEO is the practice of structuring content so search engines and AI assistants can return precise answers. JSON-LD schemas (FAQ, HowTo\u2026) are a major lever.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20insert%20the%20code%20automatically%3F\"><h3>Does the plugin insert the code automatically?<\/h3><\/dt>\n<dd><p>Yes. After you save the JSON-LD, Kaldia injects it into the <code>&lt;head&gt;<\/code> of your page. You can remove it with one click.<\/p><\/dd>\n<dt id=\"why%20only%20openai%3F\"><h3>Why only OpenAI?<\/h3><\/dt>\n<dd><p>To keep things simple and reliable. Kaldia focuses on one provider with full control over model, temperature, and tokens. More providers may come later.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20generated%20faq%20or%20howto%3F\"><h3>Can I edit the generated FAQ or HowTo?<\/h3><\/dt>\n<dd><p>Absolutely. You review and edit the JSON-LD in a modal before publishing.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20my%20page%20builder%20%28elementor%2C%20divi%2C%20gutenberg%E2%80%A6%29%3F\"><h3>Is it compatible with my page builder (Elementor, Divi, Gutenberg\u2026)?<\/h3><\/dt>\n<dd><p>Yes. Kaldia works at the <code>&lt;head&gt;<\/code> level and doesn\u2019t interfere with builders.<\/p><\/dd>\n<dt id=\"where%20are%20api%20keys%20stored%3F\"><h3>Where are API keys stored?<\/h3><\/dt>\n<dd><p>In WordPress options. Only administrators can access them. You can change or remove them anytime.<\/p><\/dd>\n<dt id=\"how%20do%20i%20remove%20a%20schema%20from%20a%20page%3F\"><h3>How do I remove a schema from a page?<\/h3><\/dt>\n<dd><p>Open the Kaldia editor for that page and click \u201cDelete\u201d. The script is removed from the <code>&lt;head&gt;<\/code>.<\/p>\n\n<\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Performance: pre-load post meta in a single query on the pages list endpoint, eliminating N+1 database queries.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Performance: decrypted API key is now cached in memory for the duration of the request, avoiding redundant database reads and OpenSSL decryption on repeated calls.<\/li>\n<li>Added cache invalidation on key update and deletion for consistency.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Performance optimization: prompt templates are now cached in-memory per request during generation.<\/li>\n<li>Reduced unnecessary database writes by avoiding model option updates during each generation call.<\/li>\n<li>Minor internal cleanup of OpenAI response handling to avoid redundant body parsing.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed API responses to always return valid JSON<\/li>\n<li>Improved error handling in frontend API helper<\/li>\n<li>Prevented HTML leaks during content generation<\/li>\n<li>Added content length validation before AI processing<\/li>\n<li>Enhanced robustness against shortcode interference<\/li>\n<li>Better user feedback for generation failures<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.  <\/li>\n<li>AI generation (OpenAI) &amp; injection of FAQ \/ HowTo \/ Event \/ Product JSON-LD.  <\/li>\n<li>Temperature &amp; max tokens controls.  <\/li>\n<li>Friendly UI, JSON-LD editor, per-page delete &amp; regenerate.<\/li>\n<\/ul>","raw_excerpt":"AI-powered AEO plugin. Generate &amp; inject FAQ \/ HowTo (plus Event &amp; Product) JSON-LD schema. Rich results for Google &amp; AI \u2014 no code.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/244606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=244606"}],"author":[{"embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/huma11"}],"wp:attachment":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=244606"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=244606"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=244606"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=244606"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=244606"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=244606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}