Descrição
OutscoreAgent is an AI content generator that creates SEO-optimized articles and publishes them directly to your WordPress site. It handles the entire content lifecycle — from keyword research and topic clustering through SERP competitor analysis, article generation, and ongoing content refresh to combat SEO decay.
This plugin is the WordPress-side bridge: it creates a secure REST API endpoint that the OutscoreAgent platform uses to push finished articles. Once configured, articles are automatically published to your site with their correct title, content, featured image, and metadata.
What OutscoreAgent brings to your WordPress site:
- AI content generation — topic research, competitor analysis, and publish-ready articles
- SEO optimization — keyword targeting informed by SERP analysis and topic clusters
- Content refresh — detect SEO decay (ranking drops, outdated content) and automatically update articles
- Scheduled publishing — set a daily publish time and articles go live on your schedule
- Featured images with proper photographer attribution (Pexels / Unsplash)
- IndexNow integration — notify search engines the moment an article is published
What the plugin handles:
- Secure bearer token authentication — only OutscoreAgent can publish to your site
- HTTPS enforcement — tokens are never transmitted over plain HTTP
- Per-site configuration — each WordPress site has its own independent token
- Featured image sideloading into the WordPress media library
- Structured error logging — detailed logs available in the admin panel
- Clean uninstall — removing the plugin deletes all its data from your database
How it works:
- Install and activate the plugin
- Generate an API token from the OutscoreAgent settings page
- Enter the token and your site’s REST API URL in the OutscoreAgent platform
- Articles are published automatically when they finish generating
OutscoreAgent offers a free tier with core features included, so you can connect your site and start publishing without a paid subscription. A free trial of premium features is available for new accounts.
Third-party service requirement:
This plugin is the WordPress-side companion of the OutscoreAgent platform and requires an active OutscoreAgent account to be useful. The plugin itself does nothing on its own — it exposes a secure REST endpoint that the OutscoreAgent platform calls to publish generated articles, and it sends post-status updates back to the platform so article state stays in sync. Without an OutscoreAgent account, no data is ever sent anywhere; the plugin simply remains idle.
Data transmitted to OutscoreAgent:
When you configure a callback URL in the plugin settings (provided to you by the OutscoreAgent platform), the plugin will transmit the following information to OutscoreAgent each time a post it originally published changes status (draft publish, publish trash, etc.):
- The post’s WordPress ID
- The post’s public permalink and WP admin edit link
- The new post status (e.g.
publish,draft,trash) - The OutscoreAgent external article ID the post is linked to
- A UTC timestamp
No post content, user personal data, or WordPress credentials are ever sent. See the External services section below for the full disclosure. By using this plugin you agree to the OutscoreAgent Terms of Service and Privacy Policy.
External services
This plugin relies on the OutscoreAgent platform at https://outscoreagent.com/ to function. An OutscoreAgent account is required — without one, the plugin stays idle and no data leaves your site.
Service used: OutscoreAgent (operated by OutscoreAgent, the plugin author).
What the service does: Generates SEO-optimised articles with AI on OutscoreAgent’s servers, then publishes them to your WordPress site via the REST endpoint this plugin exposes. Tracks the post-status lifecycle (draft / published / trashed) for its own content dashboard.
When data is sent to the service: Whenever a WordPress post that was originally published by OutscoreAgent changes status (e.g. the editor moves it from draft to publish, or trashes it). Sending is triggered by WordPress’s transition_post_status hook. No data is sent for posts the plugin did not create. No data is sent before you configure the callback URL in Settings OutscoreAgent Publisher.
What data is sent: A single JSON payload containing:
event— the literal stringpost_status_changedexternal_id— the OutscoreAgent article ID this post is linked towp_post_id— the numeric WordPress post IDwp_post_url— the public permalink of the postwp_post_status— the new WordPress post status (e.g.publish,draft,trash)wp_edit_url— the WordPress admin edit URL for the posttimestamp— ISO-8601 UTC timestamp of the transition
No post content, user personal data, comments, WordPress credentials, or IP addresses are transmitted.
Transport: HTTPS POST to the callback URL the OutscoreAgent platform configures in the plugin settings. The plugin refuses to send callbacks over plain HTTP (localhost is exempt for development only).
Terms and Privacy: The OutscoreAgent service is governed by its Terms of Service and Privacy Policy. By connecting this plugin to your OutscoreAgent account you agree to both.
Instalação
Install the plugin:
- In your WordPress admin panel, go to Plugins Add New and search for “OutscoreAgent”, or download the ZIP from outscoreagent.com/downloads/outscoreagent-publisher.zip and upload it via Plugins Add New Upload Plugin.
- Click Install Now, then Activate Plugin.
Connect to OutscoreAgent:
- Log in to your OutscoreAgent account at outscoreagent.com and open Dashboard Integrations.
- Click Add WordPress Site and follow the setup wizard — enter your site URL and proceed to the token step.
- In your WordPress admin, go to Settings OutscoreAgent Publisher and click Generate Token.
- Copy the token (it is shown only once) and paste it into the OutscoreAgent setup wizard, then click Connect.
That’s it — your site is now connected and you can publish articles directly from the OutscoreAgent content pipeline.
For a detailed walkthrough with screenshots, see the WordPress setup guide.
Manual installation:
- Unzip the plugin archive.
- Upload the
outscoreagentfolder to your/wp-content/plugins/directory. - Activate the plugin from the WordPress admin Plugins screen.
- Follow the “Connect to OutscoreAgent” steps above.
FAQ
-
Do I need an OutscoreAgent account?
-
Yes. This plugin is the WordPress-side component of the OutscoreAgent platform. You need an active OutscoreAgent account and at least one connected site to use this plugin.
-
Is HTTPS required?
-
Yes. All API requests from the OutscoreAgent platform must be made over HTTPS to protect your bearer token in transit. The plugin will reject requests made over plain HTTP in production environments.
-
What data does the plugin store?
-
The plugin stores:
- Your API token (as a SHA-256 hash — the raw token is shown once and never stored)
- Plugin settings (debug mode, platform site ID)
- A publish log for auditing article sync activity
- Per-post metadata for synced articles
-
What data does the plugin send to OutscoreAgent?
-
Only post-status change notifications, and only for posts that OutscoreAgent itself originally published. See the External services section for the exact payload and triggers. No user personal data or post content is transmitted.
-
Where can I find error logs?
-
Error logs are stored in two places:
- The WordPress
wp-content/debug.logfile (requiresWP_DEBUG_LOGto be enabled inwp-config.php) - The OutscoreAgent settings page in the WordPress admin panel, which shows the last 20 error entries
- The WordPress
-
How do I revoke the API token?
-
Go to Settings OutscoreAgent Publisher and click Revoke Token. This immediately invalidates the current token. Generate a new token and update your OutscoreAgent platform settings to resume publishing.
-
Is there a free plan?
-
Yes. OutscoreAgent has a free tier that includes core AI content generation and publishing features, so you can try the full workflow without a credit card. New accounts also receive a free trial of premium features. Visit outscoreagent.com for current plan details.
-
What is content refresh and SEO decay?
-
SEO decay happens when published articles gradually lose rankings due to outdated information, increased competition, or changing search intent. OutscoreAgent monitors your content performance and can automatically refresh declining articles — updating facts, improving structure, and republishing through this plugin — so your rankings stay competitive without manual effort.
-
Does this work with WordPress Multisite?
-
Yes. Each site in a multisite network has its own independent token and settings. There are no network-level settings.
Avaliações
There are no reviews for this plugin.
Contribuidores e desenvolvedores
“OutscoreAgent Publisher” é um software com código aberto. As seguintes pessoas contribuíram para este plugin.
ContribuidoresTraduzir “OutscoreAgent Publisher” para o seu idioma.
Interessado no desenvolvimento?
Navegue pelo código, dê uma olhada no repositório SVN ou assine o registro de desenvolvimento via RSS.
Registro de alterações
1.5.5
- Fixed: token revocation now persists correctly. The
sanitize_settingscallback used truthiness checks to distinguish programmatic writes from form submissions; whenrevoke_token()settoken_hashto an empty string the sanitizer treated it as absent and silently restored the old hash. Switched toarray_key_exists()so an explicitly-set empty value is persisted.
1.5.4
- Added: bundled translations for 19 locales (German, French, Spanish, Italian, Dutch, Swedish, Danish, Norwegian Bokmål, Finnish, Arabic, Indonesian, Russian, Brazilian Portuguese, Japanese, Filipino, Vietnamese, Turkish, Thai, Korean). All 103 user-facing strings are translated.
- Fixed: bundled translations under
languages/are now loaded explicitly viaload_plugin_textdomain()oninit. WordPress’ just-in-time loader only checks the globalwp-content/languages/plugins/directory, so without this call the bundled .mo files were never picked up. - Fixed: PO file
Project-Id-Versionheaders updated from 1.5.3 to 1.5.4; typographic quote escaping corrected in de_DE, da_DK, and nl_NL translations. - Added: Quick Setup guide on the settings page when no token is configured, with numbered steps and a direct link to the Integrations page.
- Added: “Get OutscoreAgent Pro” and “Support” action links on the Plugins page alongside the existing “Settings” link.
- Fixed: IndexNow key route now works on Multisite subdirectory installs by stripping the site’s base path from REQUEST_URI before regex matching.
- Fixed:
autoloadset tofalseon publish log and IndexNow route health options to prevent alloptions cache invalidation storms on sites with persistent object caching (Redis/Memcached). - Fixed: AIOSEO v4 Models API call wrapped in try/catch so a missing table no longer blocks article publishing.
- Added:
X-Forwarded-Protodetection in HTTPS enforcement for Cloudflare Flexible SSL and other reverse-proxy TLS termination setups. - Added: WP-Cron status detection on the Diagnostics tab with a warning when
DISABLE_WP_CRONis true. - Changed:
callback_urlandcallback_tokenfields are now editable after initial setup (previously required DB intervention to change). - Changed: replaced network admin settings page with an informational notice directing super-admins to per-site configuration.
- Improved: readme description, tags, and FAQ optimized for discoverability (AI content generation, SEO decay, content refresh keywords).
1.5.3
- Hardened: the
the_contentfilter callback that prepends the featured-image credit now passes its returned HTML throughwp_kses_post()before concatenation. The credit block was already built from escaped fragments (esc_html/esc_url/esc_attraround the photographer name, URL, and source label), but the wordpress.org review process requires the escape to be visible at the filter callback’s return site, not only inside the helpers that assemble the string.
1.5.2
- Fixed: plugin text domain renamed from
outscoreagent-publishertooutscoreagentto match the WordPress.org plugin slug. All translation strings, the language template (languages/outscoreagent.pot), and the distribution zip’s top-level folder are updated. Internal storage keys (outscoreagent_settings,outscoreagent_publish_log) are unchanged, so existing installs preserve their token and configuration. - Hardened:
register_setting()sanitize callback now runssanitize_text_field()on the programmatically-writtensite_idandtoken_hashvalues before persisting them. - Hardened: the public
GET /statusREST endpoint now returns only{ success, plugin_version }to unauthenticated callers. WordPress/PHP versions, site name, post types, categories, and token state are returned only when the request carries a valid API token. The endpoint remains public so the OutscoreAgent platform can detect the plugin before a token is configured.
1.5.1
- Fixed: removed the
Plugin URI:header from the main plugin file. It pointed to the same URL asAuthor URI:, which the WordPress.org reviewer flagged.Author URI:is retained so users can find the plugin author; a dedicated plugin page can be added back later viaPlugin URI:once one exists.
1.5.0
- Renamed: the plugin text domain and distribution folder are now
outscoreagent-publisherto match the WordPress.org slug. Internal storage keys (settings, publish log) and the brand prefix on functions/classes are unchanged, so existing installs keep their token and configuration after upgrading. - Renamed: the admin settings page slug is now
?page=outscoreagent-publisher(was?page=outscoreagent). The “Settings” link on the Plugins page is updated automatically; refresh any direct bookmarks.
1.4.0
- Added: IndexNow route self-test on the Diagnostics tab. Click “Run probe now” to hit the plugin’s own
/<key>.txtURL from inside WordPress and classify the result (ok,not_found,forbidden,wrong_body,redirected,server_error,loopback_failed). Each status comes with a one-line remediation hint so a customer can tell whether a route failure is local (cache, WAF, hijacked hook) or external (CDN, DNS, reverse proxy). - Added: non-blocking advisories on the Settings tab for active plugins that frequently interfere with the IndexNow route without owning IndexNow themselves — page caches (WP Super Cache, W3 Total Cache, WP Rocket, LiteSpeed, Cache Enabler) and security/WAF plugins (Wordfence, iThemes Security, Sucuri, NinjaFirewall).
- Added: detection of other plugins/themes hooked on
template_redirectat priority <= 1, which could short-circuit the request before the IndexNow handler runs. Surfaced only when the loopback probe is failing, to keep the page calm in the happy path. - Added: route-health signal. If
flush_rewrite_rules()cannot install our rule (.htaccessunwritable, mod_rewrite disabled, nginx misconfigured), a clear notice now appears on the Settings tab instead of failing silently. - Hardened: stored IndexNow key value is validated on read; a corrupted option no longer produces a confusing “another key is being served” symptom in the loopback probe.
1.3.1
- Fixed: the “Text only — no clickable links” and “Disabled” image-credit modes now also rewrite the credit in the stored post content, not only at front-end render time. Previously the linked credit remained visible in the block editor, REST API, and any theme/feed that bypasses the_content filter. Articles whose figure-level marker class survived a Gutenberg edit are transformed at save time on the next publish/update.
- Note: with this change, switching from “Text only” or “Disabled” to “Active links” or “Active links (nofollow)” no longer takes effect retroactively — anchors stripped at save time cannot be restored by the render-time filter. Re-publish the article from the dashboard to restore links under the new mode.
1.3.0
- Authenticated REST endpoints now accept a namespaced
X-OutscoreAgent-Tokenheader in addition toAuthorization: Bearer. The custom header sidesteps third-party JWT auth plugins (e.g. “JWT Authentication for WP-API”) which intercept anyAuthorization: Bearer …value and reject ourosk_tokens withjwt_auth_invalid_token/ “Wrong number of segments” before our route handler can run. The OutscoreAgent platform now sends the new header by default; the Bearer fallback is retained for backwards compatibility.
1.2.1
- Compatibility release tracking server-side fixes. Multi-organization users editing site integrations and IndexNow keys are now correctly authorized via any of their org memberships (previously could see “Site not found or access denied” when their first listed org did not own the site). Plugin behaviour is unchanged — the fix lives entirely on the OutscoreAgent platform — but the version bump is published in lockstep so plugin and platform stay aligned in support diagnostics.
- Bumped Tested up to header to track the latest stable WordPress release.
1.2.0
- Featured images are now downloaded into the WordPress media library by default and set as the post’s native featured image. Themes and the block editor pick them up automatically — no theme changes required.
- Added a “Download featured image to media library” toggle in the settings page. When disabled, the previous behaviour (remote URL stored in
_thumbnail_ext_urlpost meta) is retained. - Repeat syncs of the same article reuse the existing media library attachment instead of re-downloading.
- Sideload failures fall back to the external-URL path so posts never end up without an image reference.
- Added External services disclosure and privacy details to readme (WordPress.org submission compliance).
- Raised minimum PHP version to 8.1.
1.1.0
- Added HTTPS enforcement for outbound callback URLs (defense-in-depth).
- Added per-token rate limiting (30 requests/minute) on all authenticated REST endpoints.
- Added “Settings” link on the Plugins page for quick access.
- Added Plugin URI and Author URI linking to outscoreagent.com.
1.0.0
- Initial release.
- Secure bearer token authentication.
- REST API endpoint for article publishing.
- Structured admin error log.
- Full uninstall cleanup.



