{"id":224670,"date":"2025-03-11T16:55:33","date_gmt":"2025-03-11T16:55:33","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/smalk-ai-analytics\/"},"modified":"2026-05-24T08:12:35","modified_gmt":"2026-05-24T08:12:35","slug":"smalk-ai-analytics","status":"publish","type":"plugin","link":"https:\/\/hu.wordpress.org\/plugins\/smalk-ai-analytics\/","author":23230397,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"trunk","tested":"6.9.4","requires":"5.0","requires_php":"7.0","requires_plugins":null,"header_name":"Smalk AI Analytics","header_author":"Smalk AI","header_description":"Get real-time analytics on AI agents and human visitors from AI Search, and control your brand visibility on Answer Engines (ChatGPT, Perplexity, etc.).","assets_banners_color":"f2f1e9","last_updated":"2026-05-24 08:12:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.smalk.ai","rating":5,"author_block_rating":0,"active_installs":20,"downloads":2129,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"v.1.1.0":{"tag":"v.1.1.0","author":"smalker001","date":"2026-05-24 08:13:32"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3254281,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3254281,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["v.1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3254281,"resolution":"1","location":"assets","locale":"","width":2164,"height":1247},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3254281,"resolution":"2","location":"assets","locale":"","width":2098,"height":1259},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3254281,"resolution":"3","location":"assets","locale":"","width":2049,"height":1249}},"screenshots":[]},"plugin_section":[],"plugin_tags":[246479,244525,245227],"plugin_category":[55],"plugin_contributors":[250419],"plugin_business_model":[],"class_list":["post-224670","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-crawlers","plugin_tags-answer-engine-optimization","plugin_tags-generative-engine-optimization","plugin_category-seo-and-marketing","plugin_contributors-smalker001","plugin_committers-smalker001"],"banners":{"banner":"https:\/\/ps.w.org\/smalk-ai-analytics\/assets\/banner-772x250.png?rev=3254281","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/smalk-ai-analytics\/assets\/icon-128x128.png?rev=3254281","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/smalk-ai-analytics\/assets\/screenshot-1.png?rev=3254281","caption":""},{"src":"https:\/\/ps.w.org\/smalk-ai-analytics\/assets\/screenshot-2.png?rev=3254281","caption":""},{"src":"https:\/\/ps.w.org\/smalk-ai-analytics\/assets\/screenshot-3.png?rev=3254281","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>See the AI agents and AI Search visitors your site actually receives \u2014 and never lose an event again.<\/strong><\/p>\n\n<p>The web is shifting from search results to answer engines. GPTBot, ClaudeBot, PerplexityBot, Gemini, Google AI Overviews and dozens of other AI crawlers visit your pages every day, and a growing share of your human traffic now arrives from an AI assistant rather than a classic SERP. Most analytics tools were built for the old web and miss all of it.<\/p>\n\n<p>Smalk AI Analytics adds an AI-aware tracking layer to your WordPress site: every public-page visit (AI agent OR human-from-AI-search) is captured, classified, and pushed to your Smalk dashboard where you can see which engines cite you, which pages they prefer, and how that AI exposure converts into real human traffic.<\/p>\n\n<p>Unlike crawler-blocking plugins, Smalk does <strong>not<\/strong> block AI bots. It helps you measure, optimize, and turn AI exposure into growth.<\/p>\n\n<h3>KEY FEATURES<\/h3>\n\n<p><em>Tracking<\/em><\/p>\n\n<ul>\n<li>Real-time capture of AI agent visits (GPTBot, ClaudeBot, PerplexityBot, GeminiBot, GoogleOther, OAI-SearchBot, Mistral, AppleBot-Extended, and 30+ others) plus human visitors arriving from AI search engines.<\/li>\n<li>Two tracking layers: a lightweight server-side hook captures bot traffic (which never executes JavaScript) AND a <code>tracker.js<\/code> snippet captures human session context. Both feed the same Smalk dashboard.<\/li>\n<li>Rich proxy header capture (Cloudflare, geo, X-Forwarded-For, X-Real-IP, X-Smalk-CMS) so bot classification stays accurate even behind CDNs.<\/li>\n<\/ul>\n\n<p><em>Reliability (new in 1.1.0)<\/em><\/p>\n\n<ul>\n<li>Local MySQL queue buffers visits when the Smalk API is briefly unreachable \u2014 no more lost events during transient outages.<\/li>\n<li>Background cron flushes the queue every minute via a batched endpoint (up to 500 visits per request).<\/li>\n<li>Built-in circuit breaker pauses outbound calls after repeated failures and resumes automatically.<\/li>\n<li>Per-row exponential-backoff retry + daily cleanup of stale entries.<\/li>\n<li>\"Direct\" fallback mode for sites that prefer the old fire-and-forget behavior (no queue table).<\/li>\n<\/ul>\n\n<p><em>Privacy &amp; compliance<\/em><\/p>\n\n<ul>\n<li>Per-site <strong>redact list<\/strong> for query parameters (passwords, tokens, credit-card and SSN-style keys are redacted by default before any value leaves your server).<\/li>\n<li><strong>Deny-paths<\/strong> textarea with wildcards on top of a strict built-in exclusion list (<code>\/wp-admin<\/code>, <code>\/wp-login<\/code>, <code>\/wp-json<\/code>, <code>\/xmlrpc.php<\/code>, REST API calls, favicon, etc.).<\/li>\n<li>Per-request-type skip toggles (admin \/ cron \/ AJAX \/ REST) \u2014 admin \/ cron \/ AJAX skipped by default.<\/li>\n<li>No cookies are set on visitors. We only capture sends standard HTTP request metadata.<\/li>\n<\/ul>\n\n<p><em>Admin experience<\/em><\/p>\n\n<ul>\n<li>Modern card-based settings page with a 4-tile <strong>Status &amp; Diagnostics<\/strong> panel: queue size, last successful send, circuit-breaker state, last error \u2014 refreshed live on every action.<\/li>\n<li>One-click <strong>Send test event<\/strong> (probes the Smalk API with a <code>X-Smalk-Probe: 1<\/code> header so the test never appears in your real analytics), <strong>Force-flush queue now<\/strong>, <strong>Resume sending<\/strong> (reset circuit breaker), and <strong>Clear page caches<\/strong> (purges WP Rocket, W3 Total Cache, LiteSpeed Cache, Autoptimize, WP Super Cache, Hummingbird, FlyingPress, SG Optimizer, WP Fastest Cache, Cache Enabler, WP Engine, plus the WordPress object cache and PHP OPcache).<\/li>\n<li>Auto-save when you paste a new API key \u2014 no scrolling to \"Save changes\".<\/li>\n<li><strong>Debug report<\/strong> generator: collects plugin version, queue + sender stats, cron schedules, detected cache plugins, live connectivity probes, and active plugins into a single text blob you can email to support \u2014 never dumps raw <code>error_log<\/code> (no risk of leaking unrelated secrets).<\/li>\n<\/ul>\n\n<p><em>Performance<\/em><\/p>\n\n<ul>\n<li><code>&lt;link rel=\"preconnect\"&gt;<\/code> + <code>&lt;link rel=\"dns-prefetch\"&gt;<\/code> for the tracker origin before the async script tag \u2014 saves ~50\u2013150 ms TLS+DNS handshake on cold connections (mostly mobile \/ first-time visitors).<\/li>\n<li>Tracker JS auto-excluded from 10+ caching\/minify plugins (WP Rocket, Autoptimize, W3TC, LiteSpeed, SG Optimizer, Hummingbird, FlyingPress, Asset CleanUp, \u2026) so caching never strips it.<\/li>\n<li>Zero impact on TTFB: every flavor of outbound call is either non-blocking (direct mode) or deferred to cron (queued mode, the default).<\/li>\n<\/ul>\n\n<h3>WHY CHOOSE SMALK AI<\/h3>\n\n<ul>\n<li><strong>See AI traffic accurately.<\/strong> Most analytics drop AI agents entirely; Smalk catches them server-side and classifies them in real time.<\/li>\n<li><strong>Never lose an event.<\/strong> The queued mode keeps tracking your site even when our API is briefly unreachable.<\/li>\n<li><strong>Privacy-first defaults.<\/strong> Sensitive query parameters are redacted, admin \/ cron \/ AJAX requests are skipped, no cookies on visitors.<\/li>\n<li><strong>No bot blocking.<\/strong> Smalk helps you grow your AI footprint, not shrink it.<\/li>\n<li><strong>Plays nicely with every host and cache.<\/strong> Tested on WP 5.0 \/ PHP 7.0 through WP 6.9 \/ PHP 8.3. Auto-detects and works around the major caching \/ minify plugins.<\/li>\n<\/ul>\n\n<h3>EXTERNAL SERVICES<\/h3>\n\n<p>This plugin connects to Smalk AI's API services for analytics and tracking functionality. The following data transmissions occur:<\/p>\n\n<ol>\n<li><p>Analytics Tracking:<\/p>\n\n<ul>\n<li>The plugin sends website visit data to Smalk AI when AI agents visit your site<\/li>\n<li>Data sent includes: visit information, page URLs, and user agent data<\/li>\n<\/ul><\/li>\n<li><p>Project Configuration:<\/p>\n\n<ul>\n<li>The plugin connects to the Smalk API to retrieve project settings when the API key is saved or updated<\/li>\n<li>Project data is cached locally and reused \u2014 no API calls are made on page loads<\/li>\n<li>Only authenticated API requests are made using your project key<\/li>\n<li>No personal user data is transmitted during these requests<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<p>For more information about our data handling practices, please visit:\n- Terms of Service: https:\/\/smalkapp.notion.site\/Terms-of-service-Smalk-9f047b4200b84b70a4fb38142cfb5799\n- Privacy Policy: https:\/\/smalkapp.notion.site\/Privacy-Policy-Smalk-08a503612b3e481596b0a434e96dd7c1?pvs=74<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the Smalk AI plugin from the WordPress Plugin Directory.<\/li>\n<li>Go to the plugin\u2019s settings page.<\/li>\n<li>Connect your Smalk AI account and copy your API Key<\/li>\n<li>Configure your AI agent tracking preferences and start optimizing your content!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<ul>\n<li><p><strong>Do I need a Smalk account to use this plugin?<\/strong>\nYes. Sign up at app.smalk.ai (30 seconds) to get an API key. The free tier covers most small to mid-size sites.<\/p><\/li>\n<li><p><strong>Is Smalk free?<\/strong>\nFreemium model. Basic AI traffic analytics are free;<\/p><\/li>\n<li><p><strong>What AI agents does the plugin track?<\/strong>\nAll major ones: GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-Web, PerplexityBot, Gemini, GoogleOther, Google AI Overviews, MistralAI-User, AppleBot-Extended, Meta-ExternalAgent, and 30+ others. The list is maintained son a daily basis, so you get new agents the day they show up \u2014 no plugin update needed.<\/p><\/li>\n<li><p><strong>Will it slow my site down?<\/strong>\nNo. By default (queued mode, since 1.1.0) the plugin only writes one row to a local table per visit, then a background cron flushes them in batches every minute. TTFB impact is below a couple of milliseconds. The tracker.js for client-side capture loads async with a preconnect hint.<\/p><\/li>\n<li><p><strong>What happens if the Smalk API goes down?<\/strong>\nVisits keep being buffered locally for up to 7 days (configurable). A built-in circuit breaker pauses outbound calls after repeated failures and resumes automatically once the API recovers. Nothing is lost during transient outages.<\/p><\/li>\n<li><p><strong>Does the plugin set cookies?<\/strong>\nNo cookies are set by Smalk on your visitors.<\/p><\/li>\n<li><p><strong>Does it block AI bots?<\/strong>\nNo. Smalk is the opposite of a bot-blocker. AI-driven discovery is the future of web traffic \u2014 we help you measure it and optimize for it.<\/p><\/li>\n<li><p><strong>Where is my API key stored?<\/strong>\nIn the <code>wp_options<\/code> table by default (same place every WP plugin stores credentials). For enterprise sites that want secrets out of the database, define <code>SMALK_AI_API_KEY<\/code> in <code>wp-config.php<\/code> \u2014 the constant overrides the DB value.<\/p><\/li>\n<li><p><strong>What data is sent to Smalk?<\/strong>\nStandard HTTP request metadata: path, method, user-agent, referer, proxy headers (Cloudflare, X-Forwarded-For, geo headers). Sensitive query parameter values (<code>password<\/code>, <code>token<\/code>, <code>card<\/code>, <code>ssn<\/code>, \u2026) are redacted to <code>[REDACTED]<\/code> before transmission. No page content, no cookies, no personal identifiers beyond what's in the request headers themselves.<\/p><\/li>\n<li><p><strong>Why should I care about AI agents?<\/strong>\nAI search is replacing classic Google for a growing share of queries. If GPTBot, ClaudeBot, or PerplexityBot can't find or read your content, your future audience won't see you. Smalk shows you exactly which engines visit, which pages they prefer, and which of those engines actually convert to human traffic.<\/p><\/li>\n<\/ul>\n\n<!--section=changelog-->\n<p><strong>1.1.0<\/strong><\/p>\n\n<p><em>Reliability<\/em><\/p>\n\n<ul>\n<li>Server-side tracking now buffers visits in a local MySQL queue and flushes them in batches via the new <code>POST \/api\/v1\/tracking\/visit\/batch\/<\/code> endpoint. Survives temporary outages \u2014 no more lost events when <code>api.smalk.ai<\/code> is unreachable.<\/li>\n<li>Circuit breaker pauses outbound calls after 3 consecutive failures (default 30-min cooldown) to avoid hammering a degraded API.<\/li>\n<li>Exponential-backoff retry per row plus daily cleanup of stale \/ poison entries (7-day retention default).<\/li>\n<li>Queue table is auto-created on plugin <strong>update<\/strong> (not just first activation) via <code>ensure_schema()<\/code> on <code>plugins_loaded<\/code> + one-shot self-heal in <code>Smalk_Queue::insert<\/code> if the table goes missing.<\/li>\n<li><code>Smalk_Queue::insert<\/code> failures (DB error, queue full, JSON encode failure) now log via <code>error_log<\/code> AND surface in the Status panel's \"Last error\" tile. No more silent data loss.<\/li>\n<li>New \"Force-flush queue now\" button is throttled to once per 30 s so spam-clicking during an outage doesn't bypass the backoff.<\/li>\n<\/ul>\n\n<p><em>Settings &amp; UI<\/em><\/p>\n\n<ul>\n<li>Setting: pick between <strong>Queued<\/strong> (recommended default) and <strong>Direct<\/strong> (legacy fire-and-forget) tracking modes.<\/li>\n<li>Default <code>batch_size<\/code> raised from 100 to 200 (bounded 50\u2013500). \u224812 000 visits\/hour at the 60 s cron tick. Backend hard-caps at 500 visits \/ request.<\/li>\n<li>Redesigned admin page: card-based layout, design tokens (violet + neutral grays), 4-tile Status &amp; Diagnostics grid. Removed the legacy table-of-steps layout and the full-width pink CTA pill. Renamed \"Tracking\" to \"AI Analytics\" in the Connection card to match the app dashboard sidebar. Shared style guide: <code>docs\/Plugins\/wordpress-admin-style-guide.md<\/code>.<\/li>\n<li>Status panel actions: \"Send test event\", \"Force-flush queue\", \"Resume sending (reset circuit breaker)\", \"Clear page caches\" (purges WP Rocket, W3TC, LiteSpeed, Autoptimize, WP Super Cache, Hummingbird, FlyingPress, SG Optimizer, WP Fastest Cache, Cache Enabler, WP Engine, WP object cache + PHP OPcache).<\/li>\n<li>Auto-save on API key paste\/blur \u2014 no more \"I scrolled past Save changes and forgot\".<\/li>\n<\/ul>\n\n<p><em>Privacy<\/em><\/p>\n\n<ul>\n<li>Per-site <strong>redact list<\/strong> for query parameter names (default covers <code>password<\/code>, <code>token<\/code>, <code>auth<\/code>, <code>card<\/code>, <code>ssn<\/code>, etc.). Matched values are replaced with <code>[REDACTED]<\/code> before the URL is stored or sent.<\/li>\n<li><strong>Deny paths<\/strong> textarea with wildcard patterns (one per line). Layered on top of the built-in exclusion list.<\/li>\n<li>Per-request-type <strong>skip toggles<\/strong> (admin, cron, AJAX, REST). Admin \/ cron \/ AJAX skipped by default.<\/li>\n<\/ul>\n\n<p><em>API key storage<\/em><\/p>\n\n<ul>\n<li>API key stored in <code>wp_options<\/code> (matches the standard practice of every comparable WP plugin: Sentry, NewRelic, Profound, MailChimp, etc.).<\/li>\n<li>Sites that want the key out of the database can set it via <code>define('SMALK_AI_API_KEY', '\u2026')<\/code> in <code>wp-config.php<\/code>. The override takes precedence and is the recommended path for enterprise \/ audited environments.<\/li>\n<\/ul>\n\n<p><em>Debug &amp; support<\/em><\/p>\n\n<ul>\n<li>Debug report rewritten as an AJAX endpoint returning a structured, Smalk-specific text report: plugin version, tracking mode, API base URL + override source, key source (plain \/ constant \/ legacy ciphertext), workspace info, queue + sender stats, cron schedules, privacy rules, <strong>live connectivity probe<\/strong> to <code>\/projects\/<\/code> and <code>\/tracking\/visit\/batch\/<\/code> (with latency), detected cache plugins, active plugins, recent queue entries. <strong>No raw <code>error_log<\/code> dump<\/strong> (could leak unrelated secrets \/ explode on shared hosting); the report only tails Smalk-tagged lines from <code>wp-content\/debug.log<\/code> when <code>WP_DEBUG_LOG<\/code> is on. Modal restyled with the design system.<\/li>\n<li>\"Send test event\" + debug connectivity probe now send <code>X-Smalk-Probe: 1<\/code>. The backend ACKs with 202 but does not dispatch a Celery task, so support diagnostics never pollute production analytics with synthetic ScrapEvent rows.<\/li>\n<\/ul>\n\n<p><em>Path exclusions (built-in, not configurable)<\/em><\/p>\n\n<ul>\n<li>Always skipped: <code>\/wp-admin\/*<\/code>, <code>\/wp-login*<\/code>, <code>\/wp-cron*<\/code>, <code>\/wp-json\/*<\/code>, <code>\/wp-includes\/*<\/code>, <code>\/wp-content\/*<\/code>, <code>\/xmlrpc.php<\/code>, <code>\/favicon.ico<\/code>, <code>\/apple-touch-icon*.png<\/code>, plus any <code>?rest_route=\u2026<\/code> REST API call and any request where <code>REST_REQUEST<\/code> is defined.<\/li>\n<li>Still tracked (useful AI-analytics signals): <code>\/robots.txt<\/code>, <code>\/sitemap*.xml<\/code>, <code>\/ads.txt<\/code>, <code>\/security.txt<\/code>, <code>\/.well-known\/*<\/code>.<\/li>\n<\/ul>\n\n<p><em>Backend companion changes (relevant for self-hosted Smalk deployments)<\/em><\/p>\n\n<ul>\n<li>New endpoint <code>POST \/api\/v1\/tracking\/visit\/batch\/<\/code> (FastAPI + Django mirror, same path-replay routing as <code>\/visit\/<\/code>). Returns <code>{received, queued, probe}<\/code>.<\/li>\n<li>Hard cap 500 visits \u2192 413 Payload Too Large (was 422). Pydantic \/ DRF validation errors stay 400 \/ 422.<\/li>\n<li><code>X-Smalk-Probe: 1<\/code> short-circuit returns 202 without dispatching tasks.<\/li>\n<li>Full OpenAPI annotations on both sides.<\/li>\n<\/ul>\n\n<p><em>Cleanup<\/em><\/p>\n\n<ul>\n<li>Proper <code>uninstall.php<\/code> \u2014 drops the queue table, deletes plugin options + transients, clears scheduled cron jobs. Opt-in \"Preserve data\" checkbox for users who plan to re-install.<\/li>\n<\/ul>\n\n<p><em>Performance (rolled in from the unreleased 1.1.0-dev)<\/em><\/p>\n\n<ul>\n<li>Inject <code>&lt;link rel=\"preconnect\"&gt;<\/code> + <code>&lt;link rel=\"dns-prefetch\"&gt;<\/code> for the Smalk tracker origin before the async script tag \u2014 saves ~50-150 ms TLS+DNS handshake on cold connections (mostly mobile \/ first-time visitors).<\/li>\n<li>Validate <code>parse_url<\/code> returns both scheme and host before building the preconnect href (no malformed <code>https:\/\/<\/code> link emitted if the API base URL is misconfigured).<\/li>\n<\/ul>\n\n<p><strong>1.0.15<\/strong>\n- Fix: removed page-level cache-busting that disabled ALL caching site-wide (DONOTCACHEPAGE, DONOTCACHEOBJECT, DONOTCACHEDB were set on every frontend request \u2014 devastating for sites using Cloudflare, Varnish, WP Rocket, etc.)\n- Perf: skip server-side tracking on admin\/system\/REST paths early to avoid unnecessary DB queries on every admin request\n- Perf: debug logs now gated behind WP_DEBUG \u2014 no more log noise in production\n- Improved: cleaner tracker.js injection, removed dead backup script method\n- Tested up to WordPress 6.9.4<\/p>\n\n<p><strong>1.0.14<\/strong>\n- Fix: replaced define() inside function with local variables to prevent fatal error on re-registration\n- Tested up to WordPress 6.9<\/p>\n\n<p><strong>1.0.13<\/strong>\n- Added X-Smalk-CMS and X-Smalk-Plugin-Version headers on tracking requests for CMS detection<\/p>\n\n<p><strong>1.0.12<\/strong>\n- Fix: use cached project ID instead of calling the API on every page load\n- Fix: add trailing slashes to all API endpoint URLs to avoid 301 redirects\n- Fix: use centralized Smalk_API class for all endpoint URLs instead of hardcoded strings\n- Remove: robots.txt management section (feature removed in 1.0.9)<\/p>\n\n<p><strong>1.0.11<\/strong>\n- Bug fix<\/p>\n\n<p><strong>1.0.10<\/strong>\n- Remove PHPSESSION cookie.<\/p>\n\n<p><strong>1.0.9<\/strong>\n- Remove unnecessary code for robots.txt<\/p>\n\n<p><strong>1.0.8<\/strong>\n- Fix bug with Cache Plugins and robots.txt<\/p>\n\n<p><strong>1.0.7<\/strong>\n- Fix bug with Cache Plugins<\/p>\n\n<p><strong>1.0.6<\/strong>\n- Fix bug with Cache Plugins<\/p>\n\n<p><strong>1.0.5<\/strong>\n- Add Debuging Mode<\/p>\n\n<p><strong>1.0.4<\/strong>\n- Bug fix<\/p>\n\n<p><strong>1.0.3<\/strong>\n- Bug fix<\/p>\n\n<p><strong>1.0.2<\/strong>\n- Bug fix<\/p>\n\n<p><strong>1.0.1<\/strong>\n- Initial release<\/p>","raw_excerpt":"Real-time analytics on AI agents and AI Search visitors \u2014 see who from ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews actually reaches your  &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/224670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=224670"}],"author":[{"embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/smalker001"}],"wp:attachment":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=224670"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=224670"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=224670"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=224670"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=224670"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=224670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}