{"id":344965,"date":"2026-08-03T18:00:13","date_gmt":"2026-08-03T18:00:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-seo-filler\/"},"modified":"2026-08-03T20:19:48","modified_gmt":"2026-08-03T20:19:48","slug":"maurometa-seo-writer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/maurometa-seo-writer\/","author":20918904,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Maurometa SEO Writer","header_author":"Mauro Molina Maz\u00f3n","header_description":"Generates SEO titles, meta, focus keywords, slugs, content, and images with AI, and writes them to Rank Math or Yoast SEO. Not affiliated with Rank Math or Yoast.","assets_banners_color":"","last_updated":"2026-08-03 20:19:48","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/github.com\/Mauro-Molina\/AI-SEO-Filler","header_plugin_uri":"https:\/\/github.com\/Mauro-Molina\/AI-SEO-Filler","header_author_uri":"https:\/\/github.com\/Mauro-Molina","rating":0,"author_block_rating":0,"active_installs":0,"downloads":62,"num_ratings":0,"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":"mauro0307","date":"2026-08-03 20:01:34"},"1.0.1":{"tag":"1.0.1","author":"mauro0307","date":"2026-08-03 20:19:48"}},"upgrade_notice":{"1.0.1":"<p>WordPress.org review fixes: new distinctive name\/slug and security\/compliance updates.<\/p>","0.3.2":"<p>Coding standards and Plugin Check compliance improvements.<\/p>","0.3.1":"<p>Recommended update for Rank Math URL keyword sync and privacy\/uninstall improvements.<\/p>"},"ratings":[],"assets_icons":{"icon-512x512.png":{"filename":"icon-512x512.png","revision":3633433,"resolution":"512x512","location":"assets","locale":"","width":512,"height":512}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings \u2014 AI providers, API keys, and status strip.","2":"Post metabox \u2014 generate, preview diff, and undo.","3":"Bulk processing \u2014 filters, progress, pause\/resume."}},"plugin_section":[],"plugin_tags":[569,224606,194533,186,286],"plugin_category":[45,55],"plugin_contributors":[274366],"plugin_business_model":[],"class_list":["post-344965","plugin","type-plugin","status-publish","hentry","plugin_tags-automation","plugin_tags-gemini","plugin_tags-openai","plugin_tags-seo","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-mauro0307","plugin_committers-mauro0307"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/maurometa-seo-writer.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Maurometa SEO Writer helps you fill SEO fields for posts, pages, custom post types, and WooCommerce products using your own API keys. It writes meta into <strong>Rank Math<\/strong> or <strong>Yoast SEO<\/strong> (not affiliated with those products).<\/p>\n\n<p><strong>What it generates<\/strong><\/p>\n\n<ul>\n<li>SEO title, meta description, and focus keyword<\/li>\n<li>Open Graph fields<\/li>\n<li>URL slug suggestions<\/li>\n<li>Optimized body content (configurable minimum word count)<\/li>\n<li>WooCommerce short descriptions<\/li>\n<li>Image alt texts<\/li>\n<li>Optional AI featured\/gallery images<\/li>\n<\/ul>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Rank Math and Yoast SEO integration with editor sync<\/li>\n<li>Preview mode with diff and SEO checklist<\/li>\n<li>Configurable fields (meta only, content, slug, alts, etc.)<\/li>\n<li>Revision backup before overwrite and per-post history with undo<\/li>\n<li>Bulk processing with pause\/resume and filters<\/li>\n<li>Provider fallback (Gemini \u2192 Groq \u2192 OpenAI)<\/li>\n<li>WP-CLI: <code>wp ai-seo generate --post-id=42<\/code><\/li>\n<\/ul>\n\n<p>This plugin is not an official Rank Math, Yoast, Google, Groq, OpenAI, or Pollinations product.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Maurometa SEO Writer is a <strong>serviceware<\/strong> plugin: when you generate SEO text or images, it sends content from your site to third-party AI APIs that you configure. No requests are made until an administrator saves an API key (where required) and starts a generation, preview, bulk job, image generation, or connection test.<\/p>\n\n<p><strong>Data typically sent:<\/strong> post title, content\/excerpt (or product data), language\/tone settings, focus keyword context, and prompts built by the plugin. <strong>API keys<\/strong> you enter are stored encrypted in the WordPress database and sent only to the matching provider as a Bearer\/query credential. The plugin does <strong>not<\/strong> send WordPress passwords, cookies, or other plugins\u2019 secrets.<\/p>\n\n<h3>Google Gemini (Generative Language API)<\/h3>\n\n<ul>\n<li><strong>Used for:<\/strong> SEO text generation and optional image generation.<\/li>\n<li><strong>When:<\/strong> Generate \/ preview \/ apply \/ bulk \/ test API \/ image jobs when Gemini is selected.<\/li>\n<li><strong>Endpoint family:<\/strong> <code>https:\/\/generativelanguage.googleapis.com\/<\/code><\/li>\n<li><strong>Service:<\/strong> https:\/\/ai.google.dev\/<\/li>\n<li><strong>Terms:<\/strong> https:\/\/ai.google.dev\/gemini-api\/terms<\/li>\n<li><strong>Privacy:<\/strong> https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<h3>Groq<\/h3>\n\n<ul>\n<li><strong>Used for:<\/strong> SEO text generation (chat completions).<\/li>\n<li><strong>When:<\/strong> Generate \/ preview \/ apply \/ bulk \/ test API when Groq is the active (or fallback) provider.<\/li>\n<li><strong>Endpoint:<\/strong> <code>https:\/\/api.groq.com\/openai\/v1\/chat\/completions<\/code><\/li>\n<li><strong>Service:<\/strong> https:\/\/groq.com\/<\/li>\n<li><strong>Terms:<\/strong> https:\/\/groq.com\/terms-of-use\/<\/li>\n<li><strong>Privacy:<\/strong> https:\/\/groq.com\/privacy-policy\/<\/li>\n<\/ul>\n\n<h3>OpenAI<\/h3>\n\n<ul>\n<li><strong>Used for:<\/strong> SEO text generation and optional DALL\u00b7E \/ GPT Image generation.<\/li>\n<li><strong>When:<\/strong> Generate \/ preview \/ apply \/ bulk \/ test API \/ image jobs when OpenAI is selected.<\/li>\n<li><strong>Endpoint family:<\/strong> <code>https:\/\/api.openai.com\/<\/code><\/li>\n<li><strong>Service:<\/strong> https:\/\/openai.com\/<\/li>\n<li><strong>Terms:<\/strong> https:\/\/openai.com\/policies\/terms-of-use\/<\/li>\n<li><strong>Privacy:<\/strong> https:\/\/openai.com\/policies\/privacy-policy\/<\/li>\n<\/ul>\n\n<h3>Pollinations (Flux images)<\/h3>\n\n<ul>\n<li><strong>Used for:<\/strong> Free-tier image generation (featured \/ gallery) without an OpenAI\/Gemini image key.<\/li>\n<li><strong>When:<\/strong> Image generation when Flux \/ Pollinations is selected (or auto-fallback).<\/li>\n<li><strong>Endpoint family:<\/strong> <code>https:\/\/image.pollinations.ai\/<\/code><\/li>\n<li><strong>Service:<\/strong> https:\/\/pollinations.ai\/<\/li>\n<li><strong>Terms:<\/strong> https:\/\/pollinations.ai\/terms<\/li>\n<li><strong>Privacy:<\/strong> https:\/\/pollinations.ai\/privacy<\/li>\n<\/ul>\n\n<p>You are responsible for complying with each provider\u2019s terms and with applicable privacy laws for content you send from your site.<\/p>\n\n<p>Note: This plugin currently integrates with AI providers via their HTTP APIs to support multi-provider fallback and image generation. Migration to the WordPress core AI Client is planned for a future release once provider connectors cover the same workflows.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/maurometa-seo-writer\/<\/code> or install from the Plugins screen.<\/li>\n<li>Activate <strong>Maurometa SEO Writer<\/strong>.<\/li>\n<li>Install and activate <strong>Rank Math<\/strong> or <strong>Yoast SEO<\/strong>.<\/li>\n<li>Go to <strong>Maurometa SEO Writer \u2192 Settings<\/strong>, choose a provider, and add your API key.<\/li>\n<li>Open a post, page, or product and use <strong>Generate all SEO<\/strong> (or meta only \/ images).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20ai%20providers%20are%20supported%3F\"><h3>Which AI providers are supported?<\/h3><\/dt>\n<dd><p>Google Gemini, Groq, and OpenAI for text. Images can use Pollinations (Flux), Gemini, or OpenAI.<\/p><\/dd>\n<dt id=\"do%20i%20need%20rank%20math%20or%20yoast%3F\"><h3>Do I need Rank Math or Yoast?<\/h3><\/dt>\n<dd><p>Yes. The plugin writes SEO fields into one of those plugins. It does not replace them.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20without%20my%20consent%3F\"><h3>Does the plugin send data without my consent?<\/h3><\/dt>\n<dd><p>Generation only runs when you (or a user with the right capabilities) trigger it, or when an admin-started bulk job is processing. Configure keys under Settings first. See <strong>External services<\/strong> above.<\/p><\/dd>\n<dt id=\"where%20is%20source%20code%20%2F%20support%3F\"><h3>Where is source code \/ support?<\/h3><\/dt>\n<dd><p>https:\/\/github.com\/Mauro-Molina\/AI-SEO-Filler<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Distinctive plugin name and text domain for WordPress.org.<\/li>\n<li>Enqueue page data via wp_localize_script; mask API keys in settings HTML.<\/li>\n<li>CSV formula injection hardening; remove bundled translation binaries and load_plugin_textdomain().<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Plugin Check fixes: text domains, CSV export without direct filesystem calls, remove discouraged files from shipping path.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Sync Rank Math permalink analyzer when applying slug (keyword-in-URL test).<\/li>\n<li>WordPress.org readiness: external services disclosure, privacy policy text, uninstall cleanup, directory assets.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Stricter Rank Math keyword rules (slug, content start, occurrences).<\/li>\n<li>Thin-content warnings for meta-only mode.<\/li>\n<li>History undo improvements.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Preview mode with diff and SEO checklist<\/li>\n<li>OpenAI provider and provider fallback<\/li>\n<li>Configurable generation fields and Rank Math rules<\/li>\n<li>WooCommerce rich product data<\/li>\n<li>Bulk: filters, pause\/resume, Action Scheduler, CSV export<\/li>\n<li>Gutenberg sidebar panel<\/li>\n<li>WP-CLI commands<\/li>\n<li>PHPUnit tests<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Generate SEO titles, meta, focus keywords, slugs, content, and images with AI for Rank Math or Yoast.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/344965","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=344965"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mauro0307"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=344965"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=344965"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=344965"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=344965"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=344965"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=344965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}