{"id":324699,"date":"2026-07-31T16:50:19","date_gmt":"2026-07-31T16:50:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/botspot\/"},"modified":"2026-07-31T16:49:46","modified_gmt":"2026-07-31T16:49:46","slug":"botspot","status":"publish","type":"plugin","link":"https:\/\/ru.wordpress.org\/plugins\/botspot\/","author":23504793,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.5.14","stable_tag":"3.5.14","tested":"7.0.2","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"BotSpot","header_author":"bot.spot Team","header_description":"Push-based content sync and AI appendix injection. Syncs content to locus-core and renders JSON-LD + appendix.","assets_banners_color":"212032","last_updated":"2026-07-31 16:49:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/bot.spot","rating":0,"author_block_rating":0,"active_installs":0,"downloads":44,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.5.14":{"tag":"3.5.14","author":"haavardmk","date":"2026-07-31 16:49:46"}},"upgrade_notice":{"3.5.13":"<p>Fixes broken admin notice links and header compliance issues found during WordPress.org review. Recommended for all users.<\/p>","3.5.2":"<p>Version bump for WordPress.org plugin review submission. No code changes from 3.5.1.<\/p>","3.5.1":"<p>Bug fixes for Developer tab badges (Sync, Runtime status) and Settings form fields.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3630256,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3630256,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3630256,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3630256,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"bspt\/appendix":{"name":"bspt\/appendix","title":"Bspt Appendix"},"botspot-wp\/appendix":{"name":"botspot-wp\/appendix","title":"Botspot Wp Appendix"}},"tagged_versions":["3.5.14"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3630256,"resolution":"1","location":"assets","locale":"","width":1247,"height":670},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3630256,"resolution":"2","location":"assets","locale":"","width":1230,"height":844},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3630256,"resolution":"3","location":"assets","locale":"","width":1391,"height":753}},"screenshots":{"1":"Connect tab for entering a BotSpot access key.","2":"Settings tab for content sync and display placement.","3":"Developer tab with connection, sync, cache, and diagnostic tools."}},"plugin_section":[],"plugin_tags":[2353,529,1117,186,1121],"plugin_category":[55],"plugin_contributors":[274068],"plugin_business_model":[],"class_list":["post-324699","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-content","plugin_tags-schema","plugin_tags-seo","plugin_tags-structured-data","plugin_category-seo-and-marketing","plugin_contributors-haavardmk","plugin_committers-haavardmk"],"banners":{"banner":"https:\/\/ps.w.org\/botspot\/assets\/banner-772x250.png?rev=3630256","banner_2x":"https:\/\/ps.w.org\/botspot\/assets\/banner-1544x500.png?rev=3630256","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/botspot\/assets\/icon-128x128.png?rev=3630256","icon_2x":"https:\/\/ps.w.org\/botspot\/assets\/icon-256x256.png?rev=3630256","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/botspot\/assets\/screenshot-1.png?rev=3630256","caption":"Connect tab for entering a BotSpot access key."},{"src":"https:\/\/ps.w.org\/botspot\/assets\/screenshot-2.png?rev=3630256","caption":"Settings tab for content sync and display placement."},{"src":"https:\/\/ps.w.org\/botspot\/assets\/screenshot-3.png?rev=3630256","caption":"Developer tab with connection, sync, cache, and diagnostic tools."}],"raw_content":"<!--section=description-->\n<p>BotSpot connects your WordPress site to the BotSpot platform. It syncs selected published content to BotSpot and renders the resulting appendix HTML and JSON-LD structured data on your public pages.<\/p>\n\n<p>The plugin is designed for sites that use BotSpot as a software-as-a-service platform for content enrichment and structured data generation. A BotSpot account and access key are required before content can be synced or rendered.<\/p>\n\n<p>Features include:<\/p>\n\n<ul>\n<li>Sync selected post types, including posts and pages.<\/li>\n<li>Fetch and render appendix HTML from BotSpot.<\/li>\n<li>Emit JSON-LD structured data in the page head.<\/li>\n<li>Choose automatic placement, footer-aware placement, or manual placement with a shortcode.<\/li>\n<li>Add appendix placement with the <code>[botspot_appendix]<\/code> shortcode or the BotSpot Appendix block.<\/li>\n<li>Cache rendered content with WordPress transients.<\/li>\n<li>Retry failed syncs with WP-Cron.<\/li>\n<li>View connection, sync, runtime, and diagnostic information in the WordPress admin.<\/li>\n<\/ul>\n\n<p>This plugin does not include premium-only WordPress plugin code. Any paid plan or account requirement applies to the external BotSpot service, not to locked code inside the plugin.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to BotSpot services in order to provide its core functionality. The plugin will not sync site content until a site administrator enters a BotSpot access key and connects the site.<\/p>\n\n<p>Service provider: BotSpot<\/p>\n\n<p>Service URLs used by production builds:<\/p>\n\n<ul>\n<li><code>https:\/\/platform.bot.spot<\/code> - BotSpot dashboard used to create and manage access keys.<\/li>\n<li><code>https:\/\/locus-api.bot.spot<\/code> - BotSpot API used for site registration, content sync, appendix rendering, JSON-LD rendering, and enrichment webhooks.<\/li>\n<\/ul>\n\n<p>Terms of service: https:\/\/bot.spot\/terms<\/p>\n\n<p>Privacy policy: https:\/\/bot.spot\/privacy<\/p>\n\n<p>Data sent to BotSpot may include:<\/p>\n\n<ul>\n<li>Site URL, site name, and webhook URL during connection.<\/li>\n<li>Selected published content, including title, content, excerpt, permalink, post type, status, author display name, language, publish\/update dates, categories, tags, featured image URL, and existing source JSON-LD during sync.<\/li>\n<li>The current page path, site origin, and API authentication headers when fetching rendered appendix content or JSON-LD.<\/li>\n<\/ul>\n\n<p>BotSpot may send webhook requests back to the WordPress site to update enrichment status, clear local caches, and push configuration changes. These requests are authenticated with an HMAC signature.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Content sync and rendering require an administrator to connect the site with a BotSpot access key. After connection, the plugin can automatically send selected published content to BotSpot when that content is published or updated.<\/p>\n\n<p>After connection, the BotSpot platform may push configuration changes to the plugin via webhook, altering which post types sync or display enriched content. Administrators can review current settings in the Settings tab. These settings are managed in the BotSpot dashboard.<\/p>\n\n<p>Site administrators can view which post types are synced and which post types receive injected output from the plugin settings screen. Disconnecting or removing the access key stops new authenticated API calls from succeeding.<\/p>\n\n<p>The plugin stores BotSpot access credentials and sync metadata in the WordPress database. On uninstall, plugin options and plugin-owned post metadata are removed.<\/p>\n\n<p>The plugin does not add BotSpot attribution links or credits to public pages by default. Service-rendered appendix output may include BotSpot-managed branding or attribution only if that behavior is configured in BotSpot.<\/p>\n\n<h3>Source and Build<\/h3>\n\n<p>The plugin source is distributed as human-readable PHP, JavaScript, and CSS. Runtime PHP dependencies are installed with Composer and prefixed during release builds with Strauss to avoid dependency conflicts in WordPress environments.<\/p>\n\n<p>Production release archives are generated with <code>.\/build.sh<\/code> or <code>TARGET=production .\/build.sh<\/code>. The generated ZIP includes the WordPress.org <code>readme.txt<\/code>, the plugin license, third-party license notices, and the Strauss-prefixed runtime dependency files needed by the plugin.<\/p>\n\n<h3>Third-Party Licenses<\/h3>\n\n<p>This plugin bundles or generates runtime code from the following GPL-compatible packages:<\/p>\n\n<ul>\n<li><code>jaybizzle\/crawler-detect<\/code> - MIT License.<\/li>\n<li><code>monperrus\/crawler-user-agents<\/code> - MIT License.<\/li>\n<li>Composer autoload\/runtime metadata and Strauss-prefixed generated dependency files - see <code>THIRD-PARTY-LICENSES.txt<\/code> in the plugin package.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>botspot<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin from the WordPress Plugin Directory.<\/li>\n<li>Activate the plugin through the Plugins screen in WordPress.<\/li>\n<li>Open the BotSpot menu in the WordPress admin.<\/li>\n<li>Sign in to BotSpot and create an access key.<\/li>\n<li>Paste the access key into the Connect tab and click Connect.<\/li>\n<li>Review the Settings tab to choose which post types should sync and where output should be rendered.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20botspot%20account%3F\"><h3>Do I need a BotSpot account?<\/h3><\/dt>\n<dd><p>Yes. BotSpot is an interface to the BotSpot software-as-a-service platform. An access key is required before content can be synced or rendered.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20to%20an%20external%20service%3F\"><h3>Does the plugin send data to an external service?<\/h3><\/dt>\n<dd><p>Yes. After an administrator connects the plugin, selected published content and related metadata are sent to BotSpot so the service can process and render appendix content and structured data. See the External Services section for details.<\/p><\/dd>\n<dt id=\"can%20i%20choose%20what%20content%20is%20synced%3F\"><h3>Can I choose what content is synced?<\/h3><\/dt>\n<dd><p>Yes. Content sync settings are managed in the BotSpot dashboard and sync automatically to the plugin. The Settings tab displays the current configuration. By default, posts and pages are selected.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20automatic%20output%3F\"><h3>Can I disable automatic output?<\/h3><\/dt>\n<dd><p>Yes. Output settings including appendix HTML, JSON-LD, placement, and post types are managed in the BotSpot dashboard. Changes made there sync automatically to this plugin.<\/p><\/dd>\n<dt id=\"how%20do%20i%20place%20the%20appendix%20manually%3F\"><h3>How do I place the appendix manually?<\/h3><\/dt>\n<dd><p>Set placement to Manual placement and add the <code>[botspot_appendix]<\/code> shortcode where the appendix should appear. You can also use the BotSpot Appendix block in the block editor.<\/p><\/dd>\n<dt id=\"does%20this%20replace%20my%20seo%20plugin%3F\"><h3>Does this replace my SEO plugin?<\/h3><\/dt>\n<dd><p>No. The plugin emits BotSpot JSON-LD as a separate structured data script and is designed to work alongside common SEO plugins.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20botspot%20is%20temporarily%20unavailable%3F\"><h3>What happens if BotSpot is temporarily unavailable?<\/h3><\/dt>\n<dd><p>Previously fetched content can be served from WordPress transients while cache entries are still available. Failed sync attempts are logged, and some sync failures are retried with WP-Cron.<\/p><\/dd>\n<dt id=\"does%20this%20work%20on%20wordpress%20multisite%3F\"><h3>Does this work on WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes. Each subsite connects to BotSpot independently with its own access key. Network administrators cannot configure BotSpot network-wide; each subsite administrator manages their own connection and settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.5.14<\/h4>\n\n<ul>\n<li>Escaped all output at the point of output, including the appendix HTML, JSON-LD, diagnostic comments, and admin notices.<\/li>\n<li>Appendix HTML is now filtered before it is escaped, so output added by the <code>bspt_appendix_html<\/code> filter is escaped too.<\/li>\n<li>Replaced the legacy <code>[botdot_appendix]<\/code> shortcode registration with an automatic rewrite to <code>[bspt_appendix]<\/code>, so existing pages keep working without the plugin claiming a shortcode name that lacks its prefix.<\/li>\n<li>Fixed page cache purging for WP Rocket, which was never being triggered, and routed W3 Total Cache purges through its public API so all of its cache modules are cleared.<\/li>\n<li>Fixed a bug where a page using the <code>[bspt_appendix]<\/code> shortcode or BotSpot Appendix block could receive a second, automatically injected appendix.<\/li>\n<\/ul>\n\n<h4>3.5.13<\/h4>\n\n<ul>\n<li>Fixed two admin notice links that still pointed at the old settings page slug and produced a permissions error.<\/li>\n<li>Synced version metadata across the plugin header, version constant, and readme.<\/li>\n<\/ul>\n\n<h4>3.5.12<\/h4>\n\n<ul>\n<li>Removed the Plugin URI header so the plugin and author URIs are no longer identical.<\/li>\n<\/ul>\n\n<h4>3.5.11<\/h4>\n\n<ul>\n<li>Fixed a fatal error on activation caused by a call to a removed webhook secret method.<\/li>\n<li>Guarded the settings tab against a null post type list.<\/li>\n<\/ul>\n\n<h4>3.5.9<\/h4>\n\n<ul>\n<li>Settings now lock only when the BotSpot dashboard explicitly pushes configuration, not on initial connect.<\/li>\n<\/ul>\n\n<h4>3.5.7<\/h4>\n\n<ul>\n<li>Fixed hidden settings controls caused by a stale checkbox override.<\/li>\n<li>Webhooks are now always re-registered instead of trusting a cached webhook id.<\/li>\n<\/ul>\n\n<h4>3.5.6<\/h4>\n\n<ul>\n<li>Fixed the settings page hook and admin CSS selectors after the plugin slug was renamed to \"botspot\".<\/li>\n<\/ul>\n\n<h4>3.5.5<\/h4>\n\n<ul>\n<li>Prefixed all global template variables (bspt_) to satisfy WordPress.org global-namespace guidelines.<\/li>\n<\/ul>\n\n<h4>3.5.4<\/h4>\n\n<ul>\n<li>Corrected the plugin text domain to match the plugin slug (\"botspot\") across all strings.<\/li>\n<li>Renamed the plugin to \"BotSpot\" and removed the invalid \"Network\" header for WordPress.org compliance.<\/li>\n<li>Removed the manual load_plugin_textdomain() call (handled automatically for hosted plugins) and updated the \"Tested up to\" version.<\/li>\n<\/ul>\n\n<h4>3.5.3<\/h4>\n\n<ul>\n<li>Hardened for WordPress.org review: output escaping, translation text domain, input sanitization, and strict comparisons across admin and public code.<\/li>\n<li>Documented plugin-owned direct database queries and removed stale analytics references from the readme.<\/li>\n<li>Uninstall now removes all plugin options and transients, including platform settings and migration flags.<\/li>\n<\/ul>\n\n<h4>3.5.2<\/h4>\n\n<ul>\n<li>Version bump for WordPress.org plugin review submission.<\/li>\n<\/ul>\n\n<h4>3.5.1<\/h4>\n\n<ul>\n<li>Fixed Developer tab badge status checks (Sync timezone, Runtime transient prefix).<\/li>\n<li>Fixed Settings form field selector prefixes.<\/li>\n<li>Removed incomplete server-side analytics feature.<\/li>\n<li>Updated WordPress tested-up-to version to 6.8.<\/li>\n<\/ul>\n\n<h4>3.4.8<\/h4>\n\n<ul>\n<li>Synced version metadata across plugin header and readme.<\/li>\n<li>Upgraded test harness dependencies to resolve security advisories.<\/li>\n<\/ul>\n\n<h4>3.4.7<\/h4>\n\n<ul>\n<li>Continued WordPress.org Plugin Directory compliance refinements.<\/li>\n<li>Rebranded user-visible strings from \"BotSpot\" to \"bot.spot\".<\/li>\n<li>Auto-detect WooCommerce and include product post type in sync options.<\/li>\n<li>Relocated analytics section to Developer tab.<\/li>\n<li>Simplified UX by hiding sensitivity setting and defaulting to high.<\/li>\n<li>Settings now only lock when dashboard pushes config, not on initial connect.<\/li>\n<\/ul>\n\n<h4>3.1.1<\/h4>\n\n<ul>\n<li>Hardened release packaging, metadata, third-party license notices, analytics rendering, JSON-LD output encoding, sync authorization, SSL verification, lifecycle behavior, and uninstall cleanup for WordPress.org submission readiness.<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Renamed internal code from botdot-wp to botspot-wp to match BotSpot branding.<\/li>\n<li>File names, class names, constants, hooks, and options now use botspot prefix.<\/li>\n<li>Migration code automatically preserves settings from v2.x installations.<\/li>\n<li>Legacy hook names (botdot_wp_*) remain as aliases for backwards compatibility.<\/li>\n<li>Legacy shortcode [botdot_appendix] remains as alias for [botspot_appendix].<\/li>\n<\/ul>\n\n<h4>2.9.2<\/h4>\n\n<ul>\n<li>Current stable release.<\/li>\n<li>Improves push-based content sync and appendix rendering.<\/li>\n<li>Supports JSON-LD output, appendix HTML output, manual placement, block editor placement, caching, diagnostics, and enrichment status updates.<\/li>\n<\/ul>\n\n<h4>2.6.4<\/h4>\n\n<ul>\n<li>Fixed cache clearing so plugin-owned appendix and JSON-LD transients are removed correctly.<\/li>\n<li>Added external page-cache purge hooks when enrichment updates are received.<\/li>\n<li>Added cache helper actions for site-specific integrations.<\/li>\n<\/ul>\n\n<h4>2.6.3<\/h4>\n\n<ul>\n<li>Improved force resync behavior for large sites.<\/li>\n<\/ul>\n\n<h4>2.6.2<\/h4>\n\n<ul>\n<li>Improved Connect flow so access keys can be saved inline.<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>Changed JSON-LD output to emit BotSpot structured data as a separate peer script.<\/li>\n<li>Improved multilingual language detection for Polylang and WPML.<\/li>\n<li>Improved source JSON-LD cleanup before sync.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Added admin analytics cards for sync health, enrichment lifecycle, and aggregate impressions.<\/li>\n<li>Added local bot classification and scheduled analytics flushing.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Improved sanitization for external HTML.<\/li>\n<li>Re-encoded JSON-LD output before rendering.<\/li>\n<li>Improved error logging and cache handling.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial push-based sync and appendix injection release.<\/li>\n<\/ul>","raw_excerpt":"Sync WordPress content to BotSpot and render BotSpot appendix content and JSON-LD structured data on your site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/324699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=324699"}],"author":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/haavardmk"}],"wp:attachment":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=324699"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=324699"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=324699"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=324699"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=324699"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=324699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}