{"id":371619,"date":"2026-09-23T18:28:48","date_gmt":"2026-09-23T18:28:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/yozigo-geo\/"},"modified":"2026-09-29T11:11:38","modified_gmt":"2026-09-29T11:11:38","slug":"yozigo-geo","status":"publish","type":"plugin","link":"https:\/\/az-tr.wordpress.org\/plugins\/yozigo-geo\/","author":23541196,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.4","stable_tag":"1.1.4","tested":"7.1.2","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Yozigo GEO \u2014 Track AI Bots, Crawlers and LLM Referral Traffic","header_author":"Yozigo","header_description":"Tracks visits and sends them to Yozigo GEO analytics for bot\/AI-crawler and traffic-share reporting.","assets_banners_color":"ffffff","last_updated":"2026-09-29 11:11:38","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.yozigo.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":99,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.4":{"tag":"1.1.4","author":"yozigo","date":"2026-09-29 11:11:38","revision":3718860}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3719187,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3719187,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3711837,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3719212,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3719212,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3710066,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3718860,"resolution":"2","location":"assets","locale":"","width":1280,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3718860,"resolution":"3","location":"assets","locale":"","width":1280,"height":900}},"screenshots":{"1":"Settings \u2192 Yozigo GEO: paste the API Key, Org ID and Brand ID from your Yozigo GEO dashboard. Nothing is sent until the API key is saved.","2":"Plugins \u2192 Installed Plugins: the plugin listed and active alongside the rest of your site's plugins.","3":"Settings \u2192 Privacy \u2192 Policy Guide: the plugin's suggested wording for your site's own privacy policy, added automatically once it is active."}},"plugin_section":[],"plugin_tags":[220145,232,251222,12928],"plugin_category":[36],"plugin_contributors":[282336],"plugin_business_model":[],"class_list":["post-371619","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-search","plugin_tags-analytics","plugin_tags-bot-tracking","plugin_tags-crawlers","plugin_category-analytics","plugin_contributors-yozigo","plugin_committers-yozigo"],"banners":{"banner":"https:\/\/ps.w.org\/yozigo-geo\/assets\/banner-772x250.png?rev=3719212","banner_2x":"https:\/\/ps.w.org\/yozigo-geo\/assets\/banner-1544x500.png?rev=3719212","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/yozigo-geo\/assets\/icon.svg?rev=3711837","icon":"https:\/\/ps.w.org\/yozigo-geo\/assets\/icon.svg?rev=3711837","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/yozigo-geo\/assets\/screenshot-1.png?rev=3710066","caption":"Settings \u2192 Yozigo GEO: paste the API Key, Org ID and Brand ID from your Yozigo GEO dashboard. Nothing is sent until the API key is saved."},{"src":"https:\/\/ps.w.org\/yozigo-geo\/assets\/screenshot-2.png?rev=3718860","caption":"Plugins \u2192 Installed Plugins: the plugin listed and active alongside the rest of your site's plugins."},{"src":"https:\/\/ps.w.org\/yozigo-geo\/assets\/screenshot-3.png?rev=3718860","caption":"Settings \u2192 Privacy \u2192 Policy Guide: the plugin's suggested wording for your site's own privacy policy, added automatically once it is active."}],"raw_content":"<!--section=description-->\n<p>Yozigo GEO is a lightweight plugin that reports front-end page visits on your WordPress site to the Yozigo GEO collector service, which classifies each one (bot vs. human, and which AI crawler) using its own regularly-updated bot registry.<\/p>\n\n<p>This plugin requires a Yozigo GEO account. It sends nothing until you enter your API key on its settings page; without a key it does not run at all.<\/p>\n\n<p>Features include:\n- <strong>Bot &amp; AI Crawler Tracking<\/strong>: Every page visit is reported to the collector, which classifies it against a centrally maintained bot registry (Googlebot, Bingbot, GPTBot, ClaudeBot, and more) \u2014 kept current without a plugin update.\n- <strong>Accurate AI Traffic Share<\/strong>: Because human visits are reported too, the dashboard can compute real AI-traffic-share percentages, not just raw bot counts.\n- <strong>Performance<\/strong>: The tracking call is non-blocking so it never slows down a real visitor's page load.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Yozigo GEO collector, an API operated by Yozigo (https:\/\/www.yozigo.ai), to report your site's front-end page visits so that your Yozigo GEO dashboard can identify AI crawlers, AI-referred visits and your AI traffic share. The plugin cannot do this locally: the crawler registry lives in the service and is updated centrally.<\/p>\n\n<p>What is sent and when: on every front-end page view (never admin, AJAX, cron or REST requests) the plugin sends one HTTPS POST to https:\/\/yozigo-geo-backend-service.fly.dev\/api\/v1\/crawl\/track containing the visitor's IP address, user agent, referer, request path and query parameters, a timestamp, and your API key, organisation ID and brand ID. Human visits are reported as well as bot visits, because the AI-traffic-share figure needs both. Nothing is sent until you enter your API key on the settings page; without a key the plugin does nothing. The request is non-blocking, so it never delays the visitor's page.<\/p>\n\n<p>This service is provided by Yozigo: <a href=\"https:\/\/www.yozigo.ai\/terms\">terms of service<\/a>, <a href=\"https:\/\/www.yozigo.ai\/privacy\">privacy policy<\/a>.<\/p>\n\n<p>Because visitor IP addresses are transmitted, you are responsible for disclosing this plugin's data collection in your own site's privacy policy where your local law requires it.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via Plugins \u2192 Add New.<\/li>\n<li>Activate the plugin from the Plugins page.<\/li>\n<li>Go to \"Yozigo GEO\" under Settings.<\/li>\n<li>Enter the <strong>API Key<\/strong>, <strong>Org ID<\/strong>, and <strong>Brand ID<\/strong> shown on the Plugins page of your Yozigo GEO dashboard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20api%20key%3F\"><h3>Do I need an API key?<\/h3><\/dt>\n<dd><p>Yes, you need a valid API Key, Org ID, and Brand ID from your Yozigo GEO dashboard to send tracking data.<\/p><\/dd>\n<dt id=\"does%20this%20slow%20down%20my%20site%3F\"><h3>Does this slow down my site?<\/h3><\/dt>\n<dd><p>No. The tracking API call is non-blocking (<code>'blocking' =&gt; false<\/code>), so the plugin fires it and moves on without waiting for a response.<\/p><\/dd>\n<dt id=\"which%20bots%20and%20ai%20crawlers%20does%20this%20track%3F\"><h3>Which bots and AI crawlers does this track?<\/h3><\/dt>\n<dd><p>Every front-end visit is reported, and the Yozigo GEO service classifies it against its own bot registry (Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot and more). That registry is updated centrally, so newly-launched crawlers are recognised without a plugin update.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20add%20any%20javascript%20or%20cookies%20to%20my%20site%3F\"><h3>Does this plugin add any JavaScript or cookies to my site?<\/h3><\/dt>\n<dd><p>No. Tracking happens entirely in PHP when WordPress serves the page. No script is added to the front end and no cookie is set.<\/p><\/dd>\n<dt id=\"will%20this%20work%20with%20a%20full-page%20caching%20plugin%3F\"><h3>Will this work with a full-page caching plugin?<\/h3><\/dt>\n<dd><p>The tracker runs on every request WordPress itself handles. If a caching plugin serves a page straight from disk before WordPress loads (a common setup for anonymous visitors), that specific page view will not reach the tracker. Pages served through WordPress's normal request handling are tracked as usual.<\/p><\/dd>\n<dt id=\"does%20it%20track%20my%20own%20visits%20while%20i%27m%20logged%20in%20as%20an%20admin%3F\"><h3>Does it track my own visits while I'm logged in as an admin?<\/h3><\/dt>\n<dd><p>Yes. The plugin does not distinguish logged-in visitors from anonymous ones; every front-end page view is reported the same way. It never tracks wp-admin, AJAX, REST or cron requests.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20api%20key%20if%20i%20deactivate%20or%20delete%20the%20plugin%3F\"><h3>What happens to my API key if I deactivate or delete the plugin?<\/h3><\/dt>\n<dd><p>Deactivating keeps your saved settings, so reactivating does not require re-entering your API key. Deleting the plugin removes the saved API Key, Org ID and Brand ID from the database.<\/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. Activate it on each site in the network and enter that site's own API Key, Org ID and Brand ID under Settings \u2192 Yozigo GEO, the same as a single-site install.<\/p><\/dd>\n<dt id=\"where%20do%20i%20find%20my%20api%20key%2C%20org%20id%20and%20brand%20id%3F\"><h3>Where do I find my API Key, Org ID and Brand ID?<\/h3><\/dt>\n<dd><p>On the Plugins page of your Yozigo GEO dashboard, under your organisation's account.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Plugin review compliance: every $_SERVER read is sanitized, the page path and query string are both read from the request URI via esc_url_raw (which keeps percent-encoded and non-ASCII paths intact), hooks use named functions, and \"Tested up to\" is WordPress 7.1.<\/li>\n<li>Removed the function_exists() guards added in 1.1.3. WordPress already refuses to activate a second copy of a plugin that would redeclare its functions, so the guards protected nothing, and the plugin review guidelines discourage them.<\/li>\n<li>Adds suggested wording to the site's Privacy Policy Guide (Settings \u2192 Privacy) describing what the tracker sends.<\/li>\n<li>Reports each visitor IP together with its provenance (\"client\"), the same way the Vercel and Cloudflare collectors do.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Guarded every plugin function against \"Cannot redeclare\" fatal errors if a stale second copy of the plugin (e.g. left over from an incomplete manual upgrade, installed under a different folder name) ever ends up active alongside this one. Previously this white-screened the entire site; now the duplicate copy just silently no-ops.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fixed the settings page showing a contradicting \"Settings saved\" success message at the same time as an \"API Key is required\" error on a failed save. Now uses WordPress's own settings-errors mechanism, which also removes a harmless but confusing double \"Settings saved\" message on a real successful save.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Added uninstall cleanup \u2014 deleting the plugin now removes its saved settings (including the API key) from the database instead of leaving them behind.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Send every page visit (not just bot-matched ones) and let the backend classify bot vs. human \u2014 the old local user-agent regex was missing many current AI crawlers (ClaudeBot, Google-Extended, and others) and couldn't support AI-traffic-share reporting.<\/li>\n<li>Send visitor IP address for accurate classification and geolocation.<\/li>\n<li>Removed the WP-Cron retry queue (and its \"Enable Retry Queue\" setting) \u2014 matches the no-retry model used by our other integrations; a failed send is now logged via the <code>yozigo_geo_send_failed<\/code> action instead of queued.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 bot\/crawler tracking with an opt-in WP-Cron retry queue.<\/li>\n<\/ul>","raw_excerpt":"Tracks visits and sends them to your Yozigo GEO dashboard for bot\/AI-crawler and traffic-share analytics.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/371619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=371619"}],"author":[{"embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/yozigo"}],"wp:attachment":[{"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=371619"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=371619"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=371619"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=371619"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=371619"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=371619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}