=== QueryCatch ===
Contributors: querycatch
Tags: search console, google analytics, seo, analytics, dashboard
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.5.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

QueryCatch in WordPress: Search Console and Analytics numbers, clicks per post, and AI-suggested SEO titles, descriptions and alt text.

== Description ==

QueryCatch is a search intelligence platform that brings Google Search Console, Google Analytics, site health and content optimisation together. This plugin brings your QueryCatch numbers into WordPress, so you don't have to leave your site to see how it's doing in search.

**What you get**

* A QueryCatch page in your WordPress admin with your Google Search clicks, impressions, click-through rate and average position, compared with the previous period, plus a chart of clicks per day.
* Your top searches and top pages, and your Google Analytics visitors, visits, page views and where visitors came from.
* A dashboard widget with the last 30 days at a glance.
* A "Search clicks" column in your Posts and Pages lists, so you can see which posts bring visitors from Google.
* Titles & descriptions: every post and page with its SEO title and meta description, checked against your QueryCatch rules. Click Suggest for an AI suggestion written to your rules and brand voice, edit it, and Apply.
* A QueryCatch panel in the block editor with the page's search clicks, the searches it's found for, and suggested titles and descriptions.
* Image alt text: your media library's images without alt text, and an AI suggestion for each, from QueryCatch looking at the image. Suggest for one image or a whole page of them, check each, and Apply. Also on each image's own edit screen.
* Site health: QueryCatch's latest check of your site the way a search engine sees it (broken and redirecting pages, internal links, pages nothing links to, robots.txt and sitemaps), what to fix first, and a button to run a new check. Plus your sitemaps' status in Search Console.
* Organisation structured data: switch it on to add your business's name, website and logo to your home page for search engines (when no SEO plugin already does).
* Reports: your organisation's saved reports from QueryCatch, with their headline figures, top searches and pages, and notes.
* Blog: your organisation's saved blog topics from QueryCatch. Write an outline for a new search, then a draft written by QueryCatch's AI in your brand voice, which arrives as an unpublished post, ready to edit and publish, with its SEO title and description set in Yoast SEO, Rank Math or the plugin's own fields.
* Works with Yoast SEO and Rank Math, saving titles and descriptions where they keep them. Without an SEO plugin, QueryCatch keeps them and adds them to your pages itself.

**How connecting works**

Click Connect, sign in to QueryCatch, and choose which of your organisations this site is. The connection is locked to that one organisation. Through it, the plugin can read that organisation's numbers and rules and ask QueryCatch's AI for suggestions and drafts; in QueryCatch it can only save the site health checks and blog topics you ask for. A title or description only changes on your site when an administrator clicks Apply in WordPress. You can disconnect at any time, from the plugin or in QueryCatch under Profile settings, AI assistants.

Only WordPress administrators see the QueryCatch screens. Every administrator of the site can see the numbers, so connect only the organisation they should see.

**Updates**

A copy downloaded from querycatch.com keeps itself up to date: it switches on WordPress's automatic updates for itself when it's installed, and WordPress installs each new version from QueryCatch. To update by hand instead, click Disable auto-updates beside QueryCatch on the Plugins screen. Every earlier version can be downloaded from https://www.querycatch.com/wordpress. A copy installed from WordPress.org updates from WordPress.org, like any other plugin.

**What you need**

* A QueryCatch account on an active plan, with Google Search Console connected (Google Analytics is optional).
* To be an admin of the QueryCatch organisation you connect.
* A site served over HTTPS.

== External services ==

This plugin connects to QueryCatch (https://www.querycatch.com), a service run by QueryCatch, to show your search and analytics numbers. Nothing is sent until an administrator clicks Connect.

* **When you click Connect**, the plugin registers this site with QueryCatch, sending the site's sign-in return address (an address in this site's admin area) and the plugin's name. Your browser then goes to QueryCatch, where you sign in and choose an organisation.
* **When an administrator opens a QueryCatch screen, the dashboard, a Posts list or the editor**, the plugin asks QueryCatch for that organisation's Google Search Console and Google Analytics numbers, its rules for titles and descriptions, its submitted sitemaps, its saved site health results and reports, and its saved blog topics. Each request carries this site's connection token, the date range shown and, for one page's searches, that page's address. Answers are cached on this site for an hour.
* **When an administrator clicks Suggest**, the plugin sends that page's title, address, type, its current SEO title or description, the search it's most found for and the first 3,000 characters of its text to QueryCatch, whose AI (Google's Gemini) writes the suggestion. Suggestions count towards a daily limit for the organisation.
* **When an administrator clicks Suggest on an image**, the plugin sends a small copy of it (at most 150 KB, without the photo's camera or location details, never its address), its title and the title of the page it belongs to to QueryCatch, whose AI (Google's Gemini) writes the alt text. These have their own daily limit for the organisation.
* **When an administrator clicks Run a new check**, QueryCatch checks the organisation's website from the internet, as a search engine would, and saves the result. When an administrator switches on organisation structured data, the plugin asks QueryCatch to build it, using the site icon's address as the logo.
* **When an administrator clicks Write an outline**, the plugin sends the search and, if given, the title to QueryCatch, whose AI (Google's Gemini) writes the outline; it is saved with the organisation's blog topics in QueryCatch. **When an administrator clicks Write a draft**, the plugin sends the topic's title, search, meta description and outline, one section at a time, and makes the post in WordPress from what comes back. Outlines and drafts count towards daily limits for the organisation.
* **When WordPress checks for updates** (about twice a day), a copy downloaded from querycatch.com asks QueryCatch for the list of the plugin's versions. When there is a newer version, WordPress downloads it from QueryCatch. Both requests send only WordPress's and the plugin's version numbers, not your site's address. A copy installed from WordPress.org asks WordPress.org instead.
* **When you disconnect or delete the plugin**, it tells QueryCatch to end the connection. (If your site's secret keys have changed, the plugin can no longer read the connection to end it: end it in QueryCatch under Profile settings, AI assistants, Your connections.)

The plugin sends no information about your visitors or users to QueryCatch, and only sends a post's content or an image when you ask for a suggestion for it.

QueryCatch's terms of service: https://www.querycatch.com/terms
QueryCatch's privacy policy: https://www.querycatch.com/privacy

== Installation ==

1. Install the plugin from Plugins, Add New, or download the zip from https://www.querycatch.com/wordpress and upload it under Plugins, Add New, Upload Plugin, then activate it.
2. Open QueryCatch in the admin menu and click Connect to QueryCatch.
3. Sign in to QueryCatch, choose the organisation this site belongs to, and click Allow.

== Frequently Asked Questions ==

= Do I need a QueryCatch account? =

Yes. The numbers come from your QueryCatch organisation, which needs Google Search Console connected and an active plan.

= Can the plugin change my site? =

Only when an administrator clicks Apply on a suggested title, description or alt text (or, on an image's edit screen, Update after a suggestion fills the field), switches on organisation structured data for the home page, or clicks Write a draft, which makes an unpublished post for you to edit and publish. A title or description is saved where your SEO plugin keeps it (Yoast SEO or Rank Math), or, with no SEO plugin, in the plugin's own field, which it then adds to the page. Alt text is saved in the image's own Alternative Text field in WordPress. Organisation structured data is added to the home page by the plugin, unless an SEO plugin already adds it. Nothing else on your site changes, and nothing changes through QueryCatch.

= Which SEO plugins does it work with? =

Yoast SEO and Rank Math. With All in One SEO, SEOPress, The SEO Framework, Slim SEO, SmartCrawl, Squirrly, WP Meta SEO or Jetpack's SEO tools, you can get suggestions and copy them into that plugin, but the plugin doesn't save them for you. With none of these, QueryCatch saves them and adds the page title and meta description itself. If your theme or another tool already adds them, return 'other' from the `querycatch_seo_provider` filter so they aren't added twice.

= What does a suggestion cost? =

Nothing extra: suggestions are part of your QueryCatch plan, up to a daily limit per organisation.

= Who can see the numbers? =

WordPress administrators only. Editors, authors and other roles don't see the QueryCatch screens, the dashboard widget, the Search clicks column or the editor panel.

= Why does a post show a dash in the Search clicks column? =

The column covers your 250 most clicked pages over the last 30 days. A post outside those, or not published, shows a dash.

= How are the connection details stored? =

Encrypted, with a key made from your site's secret keys in wp-config.php, so a copy of your database alone can't use them. If your wp-config.php has no secret keys of its own, WordPress keeps them in the database instead, and then it can; add keys to wp-config.php to close that. If you change the keys, connect again.

= Who can see who connected the site? =

The QueryCatch page shows every administrator which organisation the site is connected to and the email address of the QueryCatch account that connected it.

= How does the plugin stay up to date? =

A copy downloaded from querycatch.com switches on WordPress's automatic updates for itself when it's installed, and WordPress installs each new version from QueryCatch, usually within a day of its release. You can also click Update now on the Plugins screen when a new version shows there. To update by hand only, click Disable auto-updates beside QueryCatch on the Plugins screen; the plugin keeps that choice. On a multisite network, it switches automatic updates on only when it's network-activated. A copy installed from WordPress.org updates from WordPress.org.

= Can I go back to an earlier version? =

Yes. Download it from https://www.querycatch.com/wordpress, click Disable auto-updates beside QueryCatch on the Plugins screen (or WordPress will soon update it again), then upload the zip under Plugins, Add New, Upload Plugin and choose Replace current with uploaded. Your connection and settings are kept.

= My site isn't on HTTPS. Can I connect? =

No. QueryCatch only sends sign-ins back to secure addresses.

== Screenshots ==

1. Your Google Search and Google Analytics numbers inside WordPress.
2. Choosing which organisation the site is, on QueryCatch's consent screen.
3. Search clicks beside every post.
4. The dashboard widget.
5. Titles & descriptions, with a suggestion ready to apply.
6. The QueryCatch panel in the block editor.
7. Image alt text, with suggestions to check and apply.
8. Site health, with what to fix first.
9. A saved report.
10. Blog topics, with a draft being written.

== Changelog ==

= 1.5.0 - 2026-10-14 =
* Updates: copies downloaded from querycatch.com now keep themselves up to date, with WordPress's automatic updates switched on for the plugin. Switch them off on the Plugins screen to update by hand.
* View details on the Plugins screen shows what changed in each version, with a link to download earlier versions.

= 1.4.0 - 2026-10-14 =
* Blog: your saved QueryCatch blog topics in WordPress; write an outline for a new search, and an AI draft that arrives as an unpublished post, ready to edit.

= 1.3.0 - 2026-10-14 =
* Site health: QueryCatch's checks of your site, what to fix first, and running a new check; sitemaps from Search Console.
* Organisation structured data for your home page, when you switch it on.
* Reports: your saved QueryCatch reports in WordPress.

= 1.2.0 - 2026-10-14 =
* Image alt text: AI-suggested alt text for your media library's images, one at a time or a page at once, and on each image's edit screen.

= 1.1.0 - 2026-10-14 =
* Titles & descriptions: AI-suggested SEO titles and meta descriptions, written to your QueryCatch rules and brand voice, saved in Yoast SEO, Rank Math or by QueryCatch itself.
* A QueryCatch panel in the block editor with the page's search clicks and top searches.

= 1.0.0 - 2026-10-13 =
* First release: connect to one QueryCatch organisation; the QueryCatch page, the dashboard widget and the Search clicks column.

== Upgrade Notice ==

= 1.5.0 =
Copies downloaded from querycatch.com update themselves from now on, with automatic updates switched on. No need to connect again.

= 1.4.0 =
Adds Blog. To use it, disconnect and connect again after updating, so QueryCatch can allow it.

= 1.3.0 =
Adds Site health and Reports. To use them, disconnect and connect again after updating, so QueryCatch can allow them.

= 1.2.0 =
Adds suggested image alt text. To use it, disconnect and connect again after updating, so QueryCatch can allow it.

= 1.1.0 =
Adds suggested titles and descriptions. To use them, disconnect and connect again after updating, so QueryCatch can allow suggestions.

= 1.0.0 =
First release.
