{"id":250678,"date":"2026-08-25T02:27:48","date_gmt":"2026-08-25T02:27:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/synthseo-publisher\/"},"modified":"2026-08-25T02:39:38","modified_gmt":"2026-08-25T02:39:38","slug":"synthseo","status":"publish","type":"plugin","link":"https:\/\/pcm.wordpress.org\/plugins\/synthseo\/","author":23360178,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.4","stable_tag":"2.0.4","tested":"6.8.8","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"SynthSEO Publisher","header_author":"SynthSEO Team","header_description":"Securely receives and publishes SEO-optimized content from SynthSEO platform via REST API with comprehensive WordPress integration.","assets_banners_color":"","last_updated":"2026-08-25 02:39:38","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.synthseo.ai\/wordpress-plugin\/","header_author_uri":"https:\/\/www.synthseo.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":129,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.4":{"tag":"2.0.4","author":"lecole","date":"2026-08-25 02:39:38"}},"upgrade_notice":{"2.0.4":"<p>Recommended for all users: fixes featured images and media-library safety, adds the SEO editor panels, and enables translations.<\/p>","2.0.0":"<p>Major update with new React-based admin interface. Backup recommended before upgrading. All jQuery dependencies removed.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.4"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Main settings page with API configuration","2":"Connection status and testing interface","3":"API documentation tab with endpoint details","4":"Debug panel showing complete post data structure"}},"plugin_section":[],"plugin_tags":[1556,569,529,7143,186],"plugin_category":[55],"plugin_contributors":[277333],"plugin_business_model":[],"class_list":["post-250678","plugin","type-plugin","status-publish","hentry","plugin_tags-api","plugin_tags-automation","plugin_tags-content","plugin_tags-publishing","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-lecole","plugin_committers-lecole"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/synthseo.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>SynthSEO Publisher is a WordPress plugin that acts as a secure bridge between your WordPress site and the SynthSEO content generation platform. It provides a REST API interface for automated content publishing with full SEO metadata support.<\/p>\n\n<h4>\u2728 Key Features<\/h4>\n\n<ul>\n<li><strong>\ud83d\udd12 Secure REST API<\/strong> - API key authentication for secure content delivery<\/li>\n<li><strong>\ud83d\udcc8 SEO Metadata Support<\/strong> - Full support for meta descriptions, keywords, Open Graph, and Twitter Cards<\/li>\n<li><strong>\ud83d\uddbc\ufe0f Media Handling<\/strong> - Automatic featured image upload and optimization<\/li>\n<li><strong>\ud83d\udcdd SEO Editor Panels<\/strong> - SynthSEO score, keyword strategy, and search preview right in the post editor<\/li>\n<li><strong>\ud83d\udee1\ufe0f Rate Limiting<\/strong> - Built-in protection against API abuse<\/li>\n<li><strong>\u269b\ufe0f Modern Admin Interface<\/strong> - React-based settings panel with real-time connection testing<\/li>\n<li><strong>\ud83d\udd27 WordPress Integration<\/strong> - Seamless integration with WordPress post types and taxonomies<\/li>\n<li><strong>\ud83c\udfaf Debug Mode<\/strong> - Comprehensive debugging tools for troubleshooting<\/li>\n<\/ul>\n\n<h4>\ud83d\ude80 What's New in Version 2.0.4<\/h4>\n\n<ul>\n<li><strong>SEO panel in the block editor sidebar<\/strong> - your article's SynthSEO score, meta title, description, focus keyword and canonical URL, editable right where you write<\/li>\n<li><strong>SynthSEO Analysis box<\/strong> - a detailed breakdown under the editor: the platform's SEO score with six sub-metrics, the hub-and-spoke keyword strategy the article was written around, a Google-style search preview, suggestions, and schema<\/li>\n<li><strong>Featured images now set automatically<\/strong> on published posts, with alt text on every uploaded image<\/li>\n<li><strong>Media library safety<\/strong> - removed an over-aggressive cleanup routine that could delete images from the media library<\/li>\n<li><strong>New REST endpoints<\/strong> for reading posts, SEO data, settings and stats<\/li>\n<li>Fully translation-ready: text domain aligned with the WordPress.org plugin slug<\/li>\n<\/ul>\n\n<h4>\ud83d\udd0c API Endpoints<\/h4>\n\n<ul>\n<li><code>GET \/wp-json\/synthseo\/v2\/status<\/code> - Check connection and plugin status<\/li>\n<li><code>POST \/wp-json\/synthseo\/v2\/publish<\/code> - Publish single article<\/li>\n<li><code>PUT \/wp-json\/synthseo\/v2\/posts\/{id}<\/code> - Update existing post<\/li>\n<li><code>GET \/wp-json\/synthseo\/v2\/posts<\/code> - List published posts<\/li>\n<li><code>GET \/wp-json\/synthseo\/v2\/posts\/{id}<\/code> - Read a post with its stored content and SEO data<\/li>\n<li><code>POST \/wp-json\/synthseo\/v2\/media<\/code> and <code>POST \/wp-json\/synthseo\/v2\/media\/{id}<\/code> - Upload media and set alt text<\/li>\n<li><code>GET \/wp-json\/synthseo\/v2\/schema<\/code> - Get available fields schema<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>MySQL 5.6 or higher<\/li>\n<li>HTTPS recommended for API security<\/li>\n<\/ul>\n\n<h3>Build from Source<\/h3>\n\n<p>The production files in <code>\/build\/<\/code> are compiled from the source files in <code>\/src\/<\/code>.<\/p>\n\n<h4>Source Code Structure<\/h4>\n\n<ul>\n<li><code>\/src\/admin\/<\/code> - React admin interface source code<\/li>\n<li><code>\/src\/editor\/<\/code> - Post editor enhancements source<\/li>\n<li><code>\/src\/components\/<\/code> - Reusable React components<\/li>\n<li><code>\/src\/hooks\/<\/code> - Custom React hooks<\/li>\n<li><code>\/src\/utils\/<\/code> - Utility functions<\/li>\n<li><code>\/src\/styles\/<\/code> - CSS source files<\/li>\n<\/ul>\n\n<h4>Build Instructions<\/h4>\n\n<ol>\n<li>Install dependencies: <code>npm install<\/code><\/li>\n<li>Development build: <code>npm run dev<\/code><\/li>\n<li>Production build: <code>npm run build<\/code><\/li>\n<\/ol>\n\n<p>The source code is also available on GitHub:\n<a href=\"https:\/\/github.com\/synthseo\/synthseo-publisher\">https:\/\/github.com\/synthseo\/synthseo-publisher<\/a><\/p>\n\n<h3>API Documentation<\/h3>\n\n<h4>Authentication<\/h4>\n\n<p>All API requests must include the <code>X-API-Key<\/code> header:<\/p>\n\n<pre><code>X-API-Key: YOUR_API_KEY_HERE\n<\/code><\/pre>\n\n<h4>Example Request<\/h4>\n\n<pre><code>POST \/wp-json\/synthseo\/v2\/publish\nContent-Type: application\/json\nX-API-Key: YOUR_API_KEY_HERE\n\n{\n  \"title\": \"Article Title\",\n  \"content\": \"Article content with HTML markup...\",\n  \"excerpt\": \"Brief article summary\",\n  \"meta_description\": \"SEO meta description\",\n  \"keywords\": [\"keyword1\", \"keyword2\"],\n  \"author\": \"Author Name\",\n  \"featured_image\": \"https:\/\/example.com\/image.jpg\",\n  \"categories\": [\"Technology\", \"WordPress\"],\n  \"tags\": [\"api\", \"automation\"]\n}\n<\/code><\/pre>\n\n<h4>Response Format<\/h4>\n\n<pre><code>{\n  \"success\": true,\n  \"data\": {\n    \"id\": 123,\n    \"link\": \"https:\/\/yoursite.com\/article-title\/\",\n    \"status\": \"publish\"\n  }\n}\n<\/code><\/pre>\n\n<h3>Development<\/h3>\n\n<h4>Build from Source<\/h4>\n\n<p>The plugin uses modern JavaScript tooling with React 18 and Webpack 5.<\/p>\n\n<p><strong>Requirements:<\/strong>\n* Node.js 18+\n* npm or yarn\n* WordPress 5.0+\n* PHP 7.4+<\/p>\n\n<p><strong>Available Scripts:<\/strong>\n* <code>npm run start<\/code> - Development build with watch\n* <code>npm run build<\/code> - Production build\n* <code>npm run build:dev<\/code> - Development build\n* <code>npm run clean<\/code> - Clean build artifacts\n* <code>npm run release<\/code> - Create release package\n* <code>npm run lint:js<\/code> - Run linting\n* <code>npm run format<\/code> - Format code<\/p>\n\n<h4>Project Structure<\/h4>\n\n<ul>\n<li><code>\/build\/<\/code> - Compiled assets<\/li>\n<li><code>\/includes\/<\/code> - PHP classes<\/li>\n<li><code>\/src\/<\/code> - React source files<\/li>\n<li><code>\/src\/components\/<\/code> - React components<\/li>\n<li><code>\/src\/contexts\/<\/code> - React contexts<\/li>\n<li><code>\/src\/hooks\/<\/code> - Custom hooks<\/li>\n<li><code>\/src\/styles\/<\/code> - CSS\/Tailwind styles<\/li>\n<li><code>\/src\/admin.js<\/code> - Admin interface entry<\/li>\n<li><code>\/src\/editor.js<\/code> - Post editor entry<\/li>\n<\/ul>\n\n<h3>Debug Mode<\/h3>\n\n<p>The plugin includes a comprehensive debug mode for development:<\/p>\n\n<p><strong>To enable the Debug tab:<\/strong><\/p>\n\n<p>Add these constants to your <code>wp-config.php<\/code>:\n    <code>php\ndefine('WP_DEBUG', true);\ndefine('SYNTHSEO_DEVELOPMENT', true);<\/code><\/p>\n\n<p><strong>Note:<\/strong> The Debug tab is only available in development environments and will not appear in production releases.<\/p>\n\n<p>When enabled, the Debug tab shows:\n* Complete post data structure\n* All metadata fields\n* Post status breakdown\n* API configuration\n* WordPress dependencies status<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, feature requests, or bug reports:<\/p>\n\n<ul>\n<li>Documentation: Available in plugin's Documentation tab<\/li>\n<li>GitHub: <a href=\"https:\/\/github.com\/synthseo\/synthseo-publisher\">https:\/\/github.com\/synthseo\/synthseo-publisher<\/a><\/li>\n<li>Support: https:\/\/www.synthseo.ai\/support<\/li>\n<\/ul>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin does not collect any personal data. It only processes content submitted through the API for publishing on your WordPress site.<\/p>\n\n<h4>Third Party Services<\/h4>\n\n<p>This plugin communicates with the SynthSEO platform (https:\/\/www.synthseo.ai) to receive content for publishing. By using this plugin, you agree to SynthSEO's terms of service and privacy policy.<\/p>\n\n<p>Data sent to SynthSEO:\n* Publishing status and confirmation\n* Error messages (for debugging)<\/p>\n\n<p>Data received from SynthSEO:\n* Post content and metadata\n* SEO optimization data\n* Media files for upload<\/p>\n\n<h3>License<\/h3>\n\n<p>This program is free software; you can redistribute it and\/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.<\/p>\n\n<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.<\/p>\n\n<p>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.<\/p>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>SynthSEO Development Team<\/li>\n<li>WordPress Community<\/li>\n<li>React and WordPress Packages Contributors<\/li>\n<\/ul>\n\n\n\n<p>For more information, visit <a href=\"https:\/\/www.synthseo.ai\">SynthSEO.ai<\/a><\/p>\n\n<h3>Development<\/h3>\n\n<h3>Building from Source<\/h3>\n\n<p>The plugin includes all source files for transparency and contribution.<\/p>\n\n<ol>\n<li>Install dependencies: <code>npm install<\/code><\/li>\n<li>Development build: <code>npm run dev<\/code><\/li>\n<li>Production build: <code>npm run build<\/code><\/li>\n<\/ol>\n\n<h3>Contributing<\/h3>\n\n<p>We welcome contributions! Please visit our <a href=\"https:\/\/github.com\/synthseo\/synthseo-publisher\">GitHub repository<\/a> to submit issues or pull requests.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, please visit <a href=\"https:\/\/www.synthseo.ai\">SynthSEO.ai<\/a> or create an issue on GitHub.<\/p>\n\n<!--section=installation-->\n<h4>WordPress Admin Installation<\/h4>\n\n<ol>\n<li>Download the latest release ZIP file<\/li>\n<li>Go to WordPress Admin \u2192 Plugins \u2192 Add New<\/li>\n<li>Click \"Upload Plugin\" and select the ZIP file<\/li>\n<li>Click \"Install Now\" then \"Activate\"<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/synthseo\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Navigate to Settings \u2192 SynthSEO to configure<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<p>After activation:<\/p>\n\n<ol>\n<li>Go to <strong>Settings \u2192 SynthSEO Publisher<\/strong><\/li>\n<li>Copy the <strong>API Base URL<\/strong> (your WordPress site URL)<\/li>\n<li>Copy the <strong>API Key<\/strong> (automatically generated)<\/li>\n<li>Enter these credentials in your SynthSEO platform<\/li>\n<li>Set your preferred <strong>Rate Limit<\/strong> (requests per minute)<\/li>\n<li>Enable <strong>Debug Logging<\/strong> if troubleshooting<\/li>\n<li>Click <strong>Test Connection<\/strong> to verify setup<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20plugin%20secure%3F\"><h3>Is this plugin secure?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses API key authentication, rate limiting, and WordPress nonces for security. All requests are validated and sanitized.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20other%20seo%20plugins%3F\"><h3>Can I use this with other SEO plugins?<\/h3><\/dt>\n<dd><p>Yes. SynthSEO Publisher is designed to work alongside popular SEO plugins like Yoast SEO, RankMath, and All in One SEO.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20content%20if%20i%20deactivate%20the%20plugin%3F\"><h3>What happens to my content if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>Your content remains intact. The plugin only handles the publishing interface - all content is stored as regular WordPress posts.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20which%20post%20types%20to%20use%3F\"><h3>Can I customize which post types to use?<\/h3><\/dt>\n<dd><p>Currently, the plugin publishes to the standard WordPress 'post' type. Custom post type support is planned for future releases.<\/p><\/dd>\n<dt id=\"how%20do%20i%20troubleshoot%20connection%20issues%3F\"><h3>How do I troubleshoot connection issues?<\/h3><\/dt>\n<dd><ol>\n<li>Enable Debug Logging in settings<\/li>\n<li>Check the Status tab for connection test<\/li>\n<li>Navigate to Debug tab to inspect post data<\/li>\n<li>Verify your API key is correctly configured<\/li>\n<li>Ensure your WordPress REST API is accessible<\/li>\n<li>Check your server's error logs<\/li>\n<\/ol><\/dd>\n<dt id=\"what%20post%20statuses%20are%20supported%3F\"><h3>What post statuses are supported?<\/h3><\/dt>\n<dd><p>The plugin supports all WordPress post statuses including draft, publish, pending, private, future (scheduled), and trash.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>Added: SEO panel in the block editor sidebar (SynthSEO score, meta fields, canonical URL)<\/li>\n<li>Added: SynthSEO Analysis meta box - platform score breakdown, hub-and-spoke keyword strategy, search preview, suggestions and schema<\/li>\n<li>Added: REST endpoints for reading posts (<code>GET \/posts\/{id}<\/code>), SEO data (<code>GET\/POST \/seo\/{id}<\/code>), settings and stats<\/li>\n<li>Fixed: featured images are now set on published posts, with alt text on all uploaded media<\/li>\n<li>Fixed: removed a scheduled media cleanup that could delete images from the media library<\/li>\n<li>Fixed: post meta and tag text no longer show escaped characters or HTML entities<\/li>\n<li>Fixed: plugin folder and text domain now match the WordPress.org slug, enabling language packs<\/li>\n<li>Removed: a legacy demo-data path that could display placeholder metrics - the plugin only reports real data<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Fixed: Updated all URLs from synthseo.com to synthseo.ai (active domain)<\/li>\n<li>Fixed: Made GitHub repository public for source code transparency<\/li>\n<li>Fixed: Clarified that example.com in documentation is not an external dependency<\/li>\n<li>Updated: Enhanced source code documentation in README<\/li>\n<li>Updated: Version consistency across all plugin files<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Fixed: WordPress Plugin Review compliance issues<\/li>\n<li>Fixed: Text domain changed to match plugin slug 'synthseo'<\/li>\n<li>Fixed: PHP syntax error in inline styles (escaped quotes)<\/li>\n<li>Fixed: Added proper nonce verification to media uploads<\/li>\n<li>Fixed: Escaped all output including PHP_VERSION<\/li>\n<li>Fixed: Moved inline styles to wp_add_inline_style()<\/li>\n<li>Fixed: Added conditional checks for WordPress core scripts<\/li>\n<li>Added: Source code documentation and build instructions<\/li>\n<li>Updated: Contributors list to match WordPress.org username<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Major update: Complete React 18 migration for admin interface<\/li>\n<li>Removed all jQuery dependencies<\/li>\n<li>Added tabbed interface for better organization<\/li>\n<li>Improved connection testing with real-time feedback<\/li>\n<li>Enhanced API documentation in admin<\/li>\n<li>Added comprehensive debug mode for troubleshooting<\/li>\n<li>Performance improvements with production builds<\/li>\n<li>Better error handling and user feedback<\/li>\n<li>Support for all post statuses (draft, publish, etc.)<\/li>\n<li>Modern UI with TailwindCSS v4.1<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Basic API endpoints for content publishing<\/li>\n<li>jQuery-based admin interface<\/li>\n<li>API key authentication<\/li>\n<li>Rate limiting functionality<\/li>\n<\/ul>","raw_excerpt":"Secure REST API bridge for automated SEO-optimized content publishing from SynthSEO platform to WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/250678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=250678"}],"author":[{"embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lecole"}],"wp:attachment":[{"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=250678"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=250678"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=250678"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=250678"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=250678"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=250678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}