Title: GVT Connector
Author: Cameron Knowlton
Published: <strong>August 23, 2026</strong>
Last modified: August 23, 2026

---

Search plugins

![](https://ps.w.org/gvt-connector/assets/icon.svg?rev=3662142)

# GVT Connector

 By [Cameron Knowlton](https://profiles.wordpress.org/cameron-knowlton/)

[Download](https://downloads.wordpress.org/plugin/gvt-connector.1.4.5.zip)

 * [Details](https://wordpress.org/plugins/gvt-connector/#description)
 * [Reviews](https://wordpress.org/plugins/gvt-connector/#reviews)
 *  [Installation](https://wordpress.org/plugins/gvt-connector/#installation)
 * [Development](https://wordpress.org/plugins/gvt-connector/#developers)

 [Support](https://wordpress.org/support/plugin/gvt-connector/)

## Description

**GVT Connector** brings the [GEO Visibility Tool (GVT)](https://geo.igods.com) 
into your WordPress dashboard, so you can test and monitor how ready your pages 
are for generative AI search engines and large language models — without leaving
the CMS.

GVT evaluates every page across six signal categories:

 * **JavaScript Independence** — can the page’s core content be read without executing
   JavaScript?
 * **Schema** — structured data coverage and correctness.
 * **Semantic HTML** — proper use of semantic elements for machine readability.
 * **Headings** — heading structure and hierarchy.
 * **Social Tags** — Open Graph / Twitter Card metadata completeness.
 * **Accessibility** — accessibility signals that also affect AI/LLM readability.

Each category returns its own score plus an overall score, and results are tracked
over time so you can see whether changes are helping or hurting your AI-search visibility.

**Key features:**

 * Run full GVT test suites on any page directly from the WordPress dashboard — 
   no need to leave the CMS.
 * Overall and per-category (JavaScript Independence, Schema, Semantic HTML, Headings,
   Social Tags, Accessibility) scores shown at a glance, including an on-page radar
   chart.
 * GVT Pages list: view, filter, sort, and bulk re-run tests across all your posts
   and pages.
 * Test Results / Test History: sortable score history, CSV export, bulk re-run 
   and delete, and one-click links from any finding straight to that page’s editor—
   turning diagnosis into remediation in a single click.
 * Sharing controls: mark test results public or private and copy a shareable results
   link.
 * Scheduled re-testing: set up recurring GVT test schedules per page.
 * Account page showing your GVT account details and plan.

GVT Connector is part of the broader GVT ecosystem, which also includes a [Chrome extension](https://chromewebstore.google.com/detail/igods-geo-visibility-tool/kcpgmmfcepabegnogdjaidefbiohfila)
and a **Google Looker Studio / Data Studio** [Data Connector](https://datastudio.google.com/datasources/create?connectorId=AKfycbxZ560reQHr3ieY7x99YK-3jRHa_CpMjzh7_QHDtJvuq2OyfDF3nPy6xtQiaFiaKppd5w)
and [Radar Chart](https://geo.igods.com/integrations/data-studio/radar-chart), alongside
the core [GVT web platform](https://geo.igods.com).

A GVT Pro account and API key are required to run tests. [Sign up at geo.igods.com](https://geo.igods.com)
to get an API key.

### External services

This plugin connects to the **GEO Visibility Tool (GVT)**, a third-party SaaS service
operated by iGods, to run AI-search readiness tests on your pages. A GVT Pro account
and API key are required to use this plugin.

When you run a test, view results, manage sharing, or create a schedule, the plugin
sends the following to the GVT API (`api.geo.igods.com`):

 * the URL(s) of the page(s) being tested
 * the corresponding WordPress post ID(s)
 * your GVT API key, for authentication
 * test identifiers, and for sharing controls, the public/private flag you choose
 * for schedules, the recurrence frequency and action you configure

The plugin also:

 * retrieves your account and subscription details from the GVT account endpoint(`
   api.geo.igods.com/_api/public/v1/wordpress/account`), sending your API key for
   authentication;
 * receives asynchronous batch test results from GVT via an inbound REST webhook
   registered by the plugin (`gvtwp-connector/v1/batch/results`), authenticated 
   with an HMAC signature;
 * on the post/page editor screen, loads the results radar chart using a bundled
   copy of the Chart.js library (no external request for this — see Chart.js note
   below);
 * on the GVT overview widget (WordPress dashboard), loads a script and stylesheet
   from `geo.igods.com/widget/` to render the widget;
 * links out to `geo.igods.com/visibility`, `/billing`, and `/profile` for shareable
   result views and account management — these open in your browser and are not 
   automatic requests made by the plugin.

No test data is sent to GVT until you actively run a test, view a result, or perform
an action that requires it. Account information is fetched when you visit the Account
page or when the plugin validates your license key.

This plugin bundles [Chart.js](https://www.chartjs.org) (MIT license) to render 
score charts. Chart.js itself does not make any network requests or send any data
anywhere — it is a client-side rendering library only.

Service provider: iGods / GEO Visibility Tool — [https://geo.igods.com](https://geo.igods.com)

Terms of Service: [https://geo.igods.com/terms](https://geo.igods.com/terms)
 Privacy
Policy: [https://geo.igods.com/privacy](https://geo.igods.com/privacy)

## Installation

 1. Upload the `gvt-connector` folder to `/wp-content/plugins/`, or install the zip
    directly via **Plugins  Add New  Upload Plugin**.
 2. Activate the plugin via **Plugins  Installed Plugins** in WordPress.
 3. Navigate to **GVT  Settings** and enter your GVT API key (from your [geo.igods.com](https://geo.igods.com)
    account).
 4. Visit **GVT  Pages** to run your first test.

## FAQ

### Do I need a GVT account to use this plugin?

Yes. The plugin connects to the GVT platform to run tests and requires an active
API key from [geo.igods.com](https://geo.igods.com).

### What does GVT actually test?

GVT scores each page across six categories: JavaScript Independence, Schema, Semantic
HTML, Headings, Social Tags, and Accessibility, plus an overall score.

### Where do I see my results?

Results appear in a meta box on each post/page editor screen, on the dedicated GVT
Test Results page (with full history), and on the GVT Pages page (site-wide overview).

### Can I re-test pages automatically?

Yes, the Schedules feature lets you set up recurring re-tests per page.

### Does this plugin work with multisite?

Yes, it is compatible with WordPress multisite.

### Can I share a test result with someone who doesn’t have WordPress access?

Yes. Mark a result as public from the Test Results or Pages page and copy the generated
shareable link.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“GVT Connector” is open source software. The following people have contributed to
this plugin.

Contributors

 *   [ Cameron Knowlton ](https://profiles.wordpress.org/cameron-knowlton/)

[Translate “GVT Connector” into your language.](https://translate.wordpress.org/projects/wp-plugins/gvt-connector)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/gvt-connector/), check
out the [SVN repository](https://plugins.svn.wordpress.org/gvt-connector/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/gvt-connector/) 
by [RSS](https://plugins.trac.wordpress.org/log/gvt-connector/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.4.5

 * Plugin Check: Schedules DISTINCT status query is covered by the same DB phpcs:
   disable as the other table queries.

#### 1.4.4

 * Plugin Check: Schedules view no longer re-enables PrefixAllGlobals via a bare
   phpcs:enable. Empty public CSS/JS is no longer enqueued on the frontend.

#### 1.4.3

 * Plugin Check: shortened the 1.4.0 upgrade notice to the 300-character limit.

#### 1.4.2

 * Plugin Check: view files included from class methods are not globals; suppressed
   PrefixAllGlobals false positives on those templates.

#### 1.4.1

 * Compatibility: Tested up to WordPress 7.1.

#### 1.4.0

 * Changed: WordPress.org prefix — every `gvt`/`GVT` identifier is now `gvtwp`/`
   GVTWP` (4+ characters), including classes, functions, constants, options, AJAX
   actions, REST namespace, admin menu slugs, script handles, CSS classes, and JS
   globals. Plugin slug and text domain remain `gvt-connector`; file names are unchanged.
 * Changed: Existing installs keep their data via in-place `RENAME TABLE` of `{prefix}
   gvt_*` to `{prefix}gvtwp_*` and copy-then-delete of the old option keys.
 * Changed: Debug log gate in wp-config.php is now `define( 'GVTWP_log', true );`.

#### 1.3.9

 * Fixed: Test History sort links now receive the sanitized status filter instead
   of an out-of-scope variable. `per_page` parsing on Test History and Pages no 
   longer warns when the query arg is absent.

#### 1.3.8

 * Fixed: Activation no longer runs SHOW COLUMNS on gvt_schedules before the table
   exists, which printed database errors under WP_DEBUG on a fresh install.

#### 1.3.7

 * Changed: Schedules “View Test” now uses the same token-based viewer handoff as
   Tests and Pages.

#### 1.3.5

 * Fixed: Moved inline `<style>` tag in the Schedules admin page to `wp_add_inline_style()`
   per WordPress.org guidelines.
 * Fixed: The post-editor overview widget no longer loads remote JS/CSS assets when
   no GVT API key has been configured, preventing unnecessary external requests.
 * Fixed: Replaced a raw `echo 'checked'` with WordPress’s `checked()` function 
   in the Test History status filter.
 * Internal: Converted the overview widget’s database query suppression to a `phpcs:
   disable`/`phpcs:enable` block for consistent sniff coverage.

#### 1.3.4

 * Internal: fixed the last Plugin Check warning — `UnfinishedPrepare` on the count
   query in `class-gvt-connector-test-history.php`‘s paginated list view. The query
   is a ternary that uses `$wpdb->prepare()` only when `$params` is non-empty, falling
   back to a plain literal string with no placeholders when it’s empty; the scanner
   misreads the “no valid placeholders” no-params branch as an incomplete prepare.
   Added the missing sniff code to the existing suppression comment, and applied
   the same code defensively to three other call sites sharing the identical ternary
   shape. No functional changes.

#### 1.3.3

 * Internal: fixed a second round of Plugin Check warnings introduced by the 1.3.2
   fix itself — moving suppression comments up to the outer `$wpdb` call fixed the
   direct-query/caching/unescaped-parameter findings but broke coverage for `InterpolatedNotPrepared`,
   which the scanner attributes to the SQL string-literal line inside the call, 
   not the call itself. Replaced every affected single-line `phpcs:ignore` with 
   a `phpcs:disable`/`phpcs:enable` block spanning the whole multi-line call, so
   both the outer call and the inner string literal are covered together. No functional
   changes.

#### 1.3.2

 * Internal: cleared the remaining WordPress.org Plugin Check warnings from the 
   1.3.1 pass — corrected several `phpcs:ignore` comments that were placed one line
   too deep (attached to a nested query-string line instead of the actual flagged`
   $wpdb` call, so the scanner didn’t associate them), added missing sniff codes
   to a few schema-migration and nonce-read suppressions, and moved two read-only
   GET filters into a proper `phpcs:disable`/`phpcs:enable` block. No functional
   changes.

#### 1.3.1

 * Privacy: the optional debug call log (`GVT_calls.log`, gated behind the `GVT_log`
   constant and off by default) now writes to the same protected, randomly-named
   directory under `wp-content/uploads` as the API timing log, instead of the WordPress
   root directory.
 * Internal: resolved all remaining WordPress.org Plugin Check findings (PHPCS WordPress
   Coding Standards) — documented false-positive suppressions for prepared-statement
   and nonce-verification checks that the automated scanner cannot fully resolve,
   plus the logging-path fix above.
 * Internal: removed the unused i18n loader class and `Domain Path` header — this
   plugin has no bundled translation files, and staging/live switching is handled
   by a separate account setting, not by locale.

#### 1.3.0

 * Fixed: settings save could silently discard a newly-entered API key when the “
   Use Staging” checkbox was changed in the same save. Key validation now always
   checks the newly submitted server (Live or Staging), instead of the previously
   saved one, so switching both fields at once no longer reverts to the old key.
 * Internal: code-quality and maintainability pass — the plugin now passes WordPress
   Coding Standards (PHPCS) cleanly across every file, the main plugin file was 
   split into smaller, single-purpose includes, and a pre-commit hook now enforces
   these standards automatically on every commit going forward. No functional changes
   from this pass beyond the fix above.

#### 1.2.1

 * Branding: updated plugin author to iGods, with the “By” credit and “Visit plugin
   site” links now pointing to https://www.igods.com and https://geo.igods.com/integrations/
   wordpress-plugin respectively (previously pointed to a personal GitHub profile
   and the private source repo).
 * Assets: added WordPress.org listing screenshots for the Pages overview, Test 
   History, and post editor meta box.

#### 1.2.0

 * Security: REST batch/results webhook now requires a valid HMAC signature on every
   request — requests missing or failing signature verification are rejected before
   any data is written.
 * Security: fixed a DOM-based XSS sink in the admin sync UI (replaced unsafe HTML
   insertion with safe text insertion).
 * Security: added missing `wp_unslash()` calls before sanitizing superglobal input
   on the Pages and Test History admin screens.
 * Privacy: the API request log is now off by default, gated behind the `GVT_log`
   constant, and — when enabled — is written to a protected, randomly-named directory
   under `wp-content/uploads` instead of the plugin’s web-accessible root.
 * Compliance: bundled Chart.js locally instead of loading it from a CDN, so the
   results radar chart renders with no external request.
 * Compliance: removed PHP 8.0+ union return/param types to restore full PHP 7.4
   compatibility.
 * Docs: added direct Terms of Service and Privacy Policy links to the External 
   services disclosure in this readme.
 * CI: repaired the PHPCS pipeline (composer allow-plugins configuration) so automated
   code-standards checks run and report correctly again.

#### 1.1.0

 * Admin menu icon refined to a crisp, pre-sized 24×24 PNG version of the GVT logo.
 * CI: release workflow now also publishes each tagged release zip for distribution.

#### 1.0.0

 * First stable release: branded admin menu icon, refined bulk-action confirmations
   with selected-row counts, simplified single-build process, role-gated Debug Mode/
   staging settings, and API key validation on save.

#### 0.9.x

 * GVT Pages, Test Results/History, Account, and Schedules admin pages built out.
 * Post-editor meta box with per-page scores and radar chart visualization.
 * Sharing (public/private results with shareable links), CSV export, bulk re-run/
   delete.
 * Batch/webhook support for asynchronous test results.

#### 0.1.0

 * Initial plugin scaffold.

See the full changelog in the == Changelog == section above for complete release
history.

## Meta

 *  Version **1.4.5**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [accessibility](https://wordpress.org/plugins/tags/accessibility/)[ai search](https://wordpress.org/plugins/tags/ai-search/)
   [Generative Engine Optimization](https://wordpress.org/plugins/tags/generative-engine-optimization/)
   [geo](https://wordpress.org/plugins/tags/geo/)[seo](https://wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://wordpress.org/plugins/gvt-connector/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/gvt-connector/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/gvt-connector/reviews/)

## Contributors

 *   [ Cameron Knowlton ](https://profiles.wordpress.org/cameron-knowlton/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/gvt-connector/)