Description
GVT Connector brings the GEO Visibility Tool (GVT) 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 and a Google Looker Studio / Data Studio Data Connector and Radar Chart, alongside the core GVT web platform.
A GVT Pro account and API key are required to run tests. Sign up at 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/profilefor 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 (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
Terms of Service: https://geo.igods.com/terms
Privacy Policy: https://geo.igods.com/privacy
Installation
- Upload the
gvt-connectorfolder to/wp-content/plugins/, or install the zip directly via Plugins Add New Upload Plugin. - Activate the plugin via Plugins Installed Plugins in WordPress.
- Navigate to GVT Settings and enter your GVT API key (from your geo.igods.com account).
- 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.
-
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.
-
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.
ContributorsTranslate “GVT Connector” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by 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/GVTidentifier is nowgvtwp/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 remaingvt-connector; file names are unchanged. - Changed: Existing installs keep their data via in-place
RENAME TABLEof{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_pageparsing 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 towp_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’schecked()function in the Test History status filter. - Internal: Converted the overview widget’s database query suppression to a
phpcs:disable/phpcs:enableblock for consistent sniff coverage.
1.3.4
- Internal: fixed the last Plugin Check warning —
UnfinishedPrepareon the count query inclass-gvt-connector-test-history.php‘s paginated list view. The query is a ternary that uses$wpdb->prepare()only when$paramsis 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
$wpdbcall fixed the direct-query/caching/unescaped-parameter findings but broke coverage forInterpolatedNotPrepared, which the scanner attributes to the SQL string-literal line inside the call, not the call itself. Replaced every affected single-linephpcs:ignorewith aphpcs:disable/phpcs:enableblock 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:ignorecomments that were placed one line too deep (attached to a nested query-string line instead of the actual flagged$wpdbcall, 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 properphpcs:disable/phpcs:enableblock. No functional changes.
1.3.1
- Privacy: the optional debug call log (
GVT_calls.log, gated behind theGVT_logconstant and off by default) now writes to the same protected, randomly-named directory underwp-content/uploadsas 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 Pathheader — 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_logconstant, and — when enabled — is written to a protected, randomly-named directory underwp-content/uploadsinstead 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.