WPGator Search Insights — Documentation
Issue, verify, manage and report on Learndash certfificates. Supports persistent issuance and evidential records.
Opportunity Hunter – Search Insights
Turn read-only Google Search Console data into practical query, landing-page and content-alignment reports inside WordPress—without Google Analytics, visitor cookies or a front-end tracking script.
Overview
Find useful search evidence without recreating the entire Search Console interface.
Compare queries and pages
Import finalized Web Search data for the current 28 days, preceding 28 days and a 90-day context window. Move from queries to their landing pages—or from pages to their queries—with visibility share and primary-page context.
Inspect content alignment
Use global filters and optional query lenses, then run an on-demand exact-phrase check against a local page’s title, headings, body, link text and URLs without storing or scoring the result.
Requirements
| WordPress | 7.0 or later; tested through WordPress 7.1 |
| PHP | 8.1 or later; the DOM extension is required for Search Term Mentions |
| Google account | Access to at least one verified Google Search Console property |
| Google permission | Read-only Search Console access using webmasters.readonly |
| Google Cloud project | Not required; authorization is handled through the WPGator OAuth service |
| Outbound HTTPS | The WordPress server must reach Google APIs and the WPGator OAuth relay |
| Property scope | One selected Domain or URL-prefix property per WordPress installation |
| Search scope | Google Web Search performance data; image, video, news and Discover are not included in Version 1 |
| Multisite | Not supported in Version 1 |
| Licence | Free — no licence key, feature gate or paid tier |
Quick start
- Install and activate — Requires WordPress 7.0+ and PHP 8.1+. No Analytics service, SEO plugin, Google Cloud project or licence key is required.
- Connect Search Console — Open Opportunity Hunter → Connect, select Connect Google Search Console, and sign in with an account that can access the property.
- Select a property — Choose one available Domain or URL-prefix property and save it.
- Synchronize reports — Open Data and select Synchronize datasets. The plugin imports six reporting datasets into the local WordPress database.
- Investigate the evidence — Use Opportunities, Queries and Pages to filter results, inspect query-to-page relationships, check exact search-term mentions and export matching rows to CSV.
User guide
Open the section that matches the task being completed.
Connect Search Console and select a property
Connect a Google account
Open Opportunity Hunter → Connect and select Connect Google Search Console. Sign in with a Google account that can view the property you want to analyse and approve the read-only permission.
The permission cannot edit Search Console, change a property or access Google Analytics, advertising, email or unrelated Google services. The WPGator authorization service completes the OAuth callback and token refresh so a shared Google client secret is not distributed inside the WordPress plugin.
Select a property
Choose a property from the dropdown and save it. One property is active per WordPress installation. Switching properties does not mix datasets because each completed import retains its property identifier.
| Check connection | Tests the saved authorization and refreshes the available property list. |
| Save property | Selects the property used by Opportunities, Queries, Pages and Data. |
| Disconnect | Deletes local OAuth credentials, selected-property state and the cached property list. Imported report datasets remain until plugin deletion. |
manage_options capability.Synchronize Search Console data
Synchronization is administrator-initiated. It retrieves six datasets and builds them separately from the last completed reports:
| Dataset | Window | Purpose |
|---|---|---|
| Site query | Current 28 days | Recent property-level query performance |
| Site query | Previous 28 days | Immediately preceding comparison period |
| Site query | 90-day context | Broader visibility and threshold context |
| Query + page | Current 28 days | Recent query-to-landing-page relationships |
| Query + page | Previous 28 days | Previous query-to-page relationships |
| Query + page | 90-day context | Broader page and query context |
Reporting windows end three complete days before synchronization so Google’s most recent and potentially incomplete reporting days are not treated as finalized.
Large datasets use Search Console API pages of up to 25,000 rows. Visible progress identifies the active dataset. An incomplete run remains isolated, and the previous reports stay available until all six replacement datasets finish successfully.
Metrics, states and opportunity labels
Reported metrics
| Impressions | Search impressions reported by Google for the query or landing page. |
| Clicks | Clicks reported by Google Search Console. |
| CTR | Clicks divided by impressions for the relevant dataset. |
| Position | Google’s average position; a lower number is stronger. |
| Change | Impression difference and, where available, average-position movement between comparison windows. |
Comparison states
| New | Present in the current 28-day window but not the previous one. |
| Persistent | Present in both 28-day windows. |
| Lost | Present previously but without impressions in the current window. |
Opportunity labels
Opportunity Hunter applies transparent signals using the connected property’s own visibility distribution. Each result states the evidence that produced its label. The coloured summary cards are clickable filters.
These are review categories, not instructions. They do not determine business value, conversion intent, cannibalization or the cause of a performance change.
Global filters and query lenses
Global filters apply across Opportunities, Queries, Pages and their relevant drill-downs. They persist through sorting and tab changes until cleared.
| Search queries | Find queries containing the entered text on Opportunities and Queries. |
| Opportunity Type | Show Defend, Recover, Grow or Review results. |
| Minimum impressions | Require the selected impression minimum in either comparison window. |
| Minimum clicks | Require the selected click minimum in either comparison window. |
| Top 10 | Show records with current average position of 10 or better. |
| Positions 11+ | Show records with current visibility outside the top 10. |
| No current visibility | Show records without a current position value. |
| Query lens | Apply a deterministic query-pattern view without changing stored rows or opportunity labels. |
Available lenses
| Question-form | Contains a question mark or begins with a recognized question word. |
| Test / answer-seeking | Contains explicit test, quiz, answer-key or similar answer-seeking language. |
| Local search intent | Contains phrases such as “near me”, “nearby” or “closest”, or an administrator-defined location. |
| Potential commercial intent | Contains explicit terms such as buy, price, cost, discount, delivery, book, hire or quote. |
Add relevant location names and abbreviations under Opportunity Hunter → Connect → Query lens settings, one per line. Up to 100 local entries can be saved.
Lenses are neutral filters, not intent judgments. When a lens is active, Pages remain visible and show their number of matching queries beside View queries. Query rows similarly show matching landing-page counts beside View pages.
Queries, landing pages and page share
Queries
The Queries report retains New, Persistent and Lost rows through a full-outer comparison of the two 28-day periods. Select a sortable column heading to reorder results.
Select View pages to see every associated landing page, current and previous impression share, current and previous primary pages, and whether the primary page changed.
The Multiple landing pages indicator is neutral. It may represent intentional regional coverage, product variants or a possible overlap issue. Opportunity Hunter surfaces the relationship without diagnosing cannibalization.
Pages
The Pages report aggregates the Query + page dataset by landing URL. Select View queries to inspect associated queries while retaining active filters and lenses.
Queries and Pages display the first 200 matching rows. An expanded page displays up to 1,000 matching queries. CSV exports include every matching record beyond those screen limits.
Run Search Term Mentions
Open a query’s landing pages and select Check mentions. The plugin fetches that public page on demand and counts the exact query phrase in:
| Title | The page’s HTML title element |
| H1, H2 and H3 | Headings within the detected page-content area |
| Body | Visible content excluding headings, links, forms, navigation, scripts and interface chrome |
| Link text | Visible link text within the page content |
| href | Normalized link destinations, with common URL separators treated as spaces |
Checks are case-insensitive but retain the exact wording and punctuation. They are not scored, scheduled or persisted. Results stay visible while reviewing the current report and disappear when the admin page reloads.
The target must be a known query-and-page pair on the current WordPress host. It must be public, return HTTP 200 without redirecting, provide inspectable HTML and remain within the response-size limit.
CSV exports and data lifecycle
CSV exports
Opportunities, Queries and Pages each provide an export containing all matching records with the active search, type, impression, click, position, lens and sort settings. Query-to-page and page-to-query drill-downs have their own contextual exports.
Downloads require manage_options and a time-limited WordPress nonce. Copying an export URL to a signed-out or unauthorized browser does not grant access. Values that could be interpreted as spreadsheet formulas are safely prefixed.
Data lifecycle
| Deactivate | Retains connection settings, credentials and imported datasets for reactivation. |
| Disconnect Google | Removes local OAuth credentials, selected-property state and cached property list while retaining imported datasets. |
| Delete plugin | Permanently removes Opportunity Hunter options, OAuth credentials, lens locations, synchronization state and both custom reporting tables. |
Troubleshooting
The Google connection window does not open
Allow popups for the WordPress administration page and try again. Confirm the WordPress server can make outbound HTTPS requests to Google and wpgator.tech.
No Search Console properties are returned
Open Google Search Console with the same Google account and confirm it can view at least one verified property, then return to Opportunity Hunter and use Check connection.
Synchronization fails or reports another active request
Only one synchronization can run at a time. Allow the active run to finish before retrying. If a prior run became stale, starting again safely discards its incomplete temporary data while the last completed reports remain available.
A property shows little or no data
New, low-volume and privacy-protected queries may produce few or no rows. The report also deliberately excludes Google’s most recent three reporting days.
Site query and page totals differ
This is normally caused by Google’s different property and page aggregation methods. Use Site query for query-level totals and Query + page for landing-page relationships and impression share.
Search Term Mentions cannot inspect a page
Confirm the URL belongs to the current WordPress host, is the final canonical URL, returns HTTP 200 without redirecting and is publicly accessible. PHP DOM is required. Protected, external, redirected, oversized and non-HTML responses are rejected.
Only part of a large report appears on screen
The main reports show the first 200 matching rows and expanded page queries show the first 1,000. The record-count message shows the full result size, and CSV export includes every matching row.
Access is denied
Opportunity Hunter is restricted to WordPress administrators with manage_options. Copied report, action and CSV URLs do not bypass capability or nonce checks.
Developer notes
OAuth architecture: Opportunity Hunter requests only https://www.googleapis.com/auth/webmasters.readonly. The WPGator relay owns the shared Google client credentials and handles authorization callback and token refresh. Property and reporting requests are made directly by the WordPress site; report rows are not proxied through WPGator.
Token storage: access and refresh tokens are stored in a non-autoloaded WordPress option using authenticated local encryption derived from WordPress secret material and a plugin-specific context string.
Dataset storage: metadata and report rows remain in the site-prefixed wpgso_datasets and wpgso_rows tables. Dataset metadata isolates property, dimensions, reporting window, synchronization run and completion state.
Reporting model: comparison periods are retrieved separately and full-outer joined locally. Opportunity thresholds are property-relative and retain their supporting evidence.
Search Term Mentions: same-host fetches reject embedded credentials, non-standard ports, redirects, non-200 responses and bodies above 5 MB. Parsing uses DOMDocument with network access disabled.
Administration security: handlers independently require manage_options and a valid nonce. Database writes are bounded and prepared; CSV formula injection is neutralized.
Compatibility identifiers: the public name and WordPress.org slug are Opportunity Hunter – Search Insights and opportunity-hunter-search-insights. Existing WPGSO_ class prefixes, wpgso_ options and tables are retained intentionally for internal compatibility. The established WPGator page URL also remains /wpgator-search-insights/ so existing links continue to work.
Relay override: production uses https://wpgator.tech/wp-json/wpgator-search/v1. Controlled development environments may override it with wpgso_relay_url. Never send production tokens to an untrusted service.
Extension boundary: the relay URL filter is the only documented developer override in Version 1. Internal classes, tables, options, AJAX actions, heuristics and compatibility identifiers are not a stable public API.
Changelog
+ Read-only Google Search Console connection without a user-managed Google Cloud project.
+ Local Site query and Query + page imports for current 28-day, previous 28-day and 90-day context windows.
+ Full-outer comparison retaining New, Persistent and Lost queries and landing-page relationships.
+ Explainable Defend, Recover, Grow and Review opportunity signals with clickable summary filters.
+ Search, opportunity, minimum-impression, minimum-click, position and query-lens filters with sortable reports.
+ Question-form, test / answer-seeking, local-search and potential-commercial query lenses.
+ Bidirectional Query → Pages and Page → Queries drill-downs with impression share and primary-page evidence.
+ On-demand exact Search Term Mentions across Title, H1–H3, body, link text and normalized URLs.
+ Complete filtered CSV exports and large-dataset synchronization with 25,000-row API pagination.
~ Reports remain local to WordPress; WPGator handles authorization and token refresh only.
~ Property-isolated datasets and atomic synchronization prevent mixed or partial replacement reports.
! Capability, nonce, same-site inspection and CSV formula protections applied across administrative actions.
Quick reference
| Current release | 1.0.0 |
| WordPress | 7.0 or later; tested through 7.1 |
| PHP | 8.1 or later; DOM required for Search Term Mentions |
| Administration | Opportunity Hunter; requires manage_options |
| Google access | Account with access to a verified Search Console property |
| Google Cloud project | Not required |
| Permission | webmasters.readonly |
| Search scope | Google Web Search data for one selected property per WordPress installation |
| Windows | Current 28 days, previous 28 days and 90-day context, ending three complete days before synchronization |
| Reports | Opportunities, Queries and Pages with bidirectional drill-downs |
| Filters | Search, opportunity type, minimum impressions, minimum clicks, current position and query lens |
| Mentions | On-demand exact-phrase Title, H1–H3, body, link-text and href checks on public same-site pages |
| Exports | Complete CSV export for filtered reports and contextual drill-downs |
| Storage | Two local report tables plus encrypted, non-autoloaded OAuth credentials |
| Tracking | No front-end script, analytics tag, visitor cookie or Google Analytics connection |
| Licence | Free — no licence key or paid tier |
| Install | Install from WordPress.org |
| Product and connection information | View the WPGator information page |
