Asky SEO & GEO

Description

Asky SEO & GEO is the WordPress side of Asky, the AI search visibility platform. SEO is how your site shows up in search engines; GEO, generative engine optimization, is how it shows up in the answers of ChatGPT, Perplexity, Gemini and Google’s AI Mode. Asky measures both, finds what to fix, and this plugin applies the fixes you approve: technical SEO fields, structured data and the server logs that show which AI crawlers visit your site. It adds a small REST API under /wp-json/asky/v1 that your Asky account calls with the Application Password you already connected. It does nothing on its own: every change starts with a person approving it in Asky.

What it does:

  • Technical SEO fixes. Writes page titles, meta descriptions and Open Graph text into the fields of your SEO plugin (Yoast SEO, Rank Math or SEOPress) on posts, pages and custom post types, and image alt text where your pages store it (the editor content, Thrive Architect, Elementor, the featured image, the media library, synced patterns). Without an SEO plugin it keeps the values itself and prints the tags. The page cache is cleared after each change (LiteSpeed Cache, WP Rocket, SiteGround Optimizer, W3 Total Cache, WP Super Cache).
  • Structured data. Registers the asky_json_ld post field and prints the JSON-LD block Asky attaches when it publishes a post.
  • Server logs. On hosts that keep daily access log archives beside the WordPress install (SiteGround), lets Asky read them so AI crawler visits show up in your Asky crawler log reports. Reading is off until Asky switches it on for a connected site, and off again when you disconnect.

How connecting works:

There is no key to paste into the plugin. Asky connects with a WordPress Application Password (WordPress 5.6 or later, HTTPS required), created for an administrator or editor in one of two ways:

  • Approve on your site. In Asky, under Connections, WordPress, enter your site address. Asky sends you to your own WordPress admin, which asks you to approve Asky, creates the Application Password itself and returns you to Asky. Nothing is copied by hand.
  • Paste an Application Password. In your WordPress profile, under Application Passwords, create one named for Asky and paste it into the same dialog.

Asky tests the connection before saving it. Either way, the password appears in your WordPress profile and you can revoke it there at any time, which cuts Asky off immediately. The full guide is at https://docs.askylabs.com/connections/wordpress.

How access works:

  • Every route needs a signed-in WordPress user. Reading or writing a post needs edit rights on that exact post. Server logs need an administrator.
  • The plugin sends nothing anywhere. It makes no outbound request of its own: Asky calls your site, your site never calls Asky.
  • Every part of the plugin can be switched off for a site with a constant in wp-config.php: ASKY_DISABLE_SEO_FIELDS (titles, descriptions, Open Graph), ASKY_DISABLE_IMAGE_ALT, ASKY_DISABLE_IMAGE_ALT_PATTERNS, ASKY_DISABLE_JSON_LD, ASKY_DISABLE_LOGS, or with the asky_modules filter. Asky then offers that fix by hand instead.

External services

This plugin is made for use with Asky (https://askylabs.com), a paid service by Asky Labs AB. It only works together with an Asky account that has connected this site with an Application Password. All traffic is inbound: Asky’s servers call the plugin’s REST routes under /wp-json/asky/v1, authenticated by WordPress with that Application Password. What moves, per feature:

  • Connection check (status, resolve). Asky reads the plugin version, which SEO plugin is active, which page caches are present, and the post behind a URL. No content is sent.
  • Technical SEO fixes (posts/<id>/seo, posts/<id>/images/locate, posts/<id>/images/alt). When a person approves a fix in Asky, Asky sends the new title, description, Open Graph text or alt text for that post, and the plugin answers with the values as stored so Asky can confirm the change. Before writing alt text, the plugin reports where in the post each image is stored and what its alt text is now. Nothing is written without an approval in Asky.
  • Structured data (the asky_json_ld post field over the standard WordPress REST API). When Asky publishes a post it sends the JSON-LD block with it; the plugin prints that block on the post’s page. Nothing is sent out.
  • Server logs (logs/manifest, logs/sources/<id>, logs/sources/<id>/page), only when you enable server logs for this site in Asky. Asky then reads your host’s daily access log archives in pages: for each request line, the timestamp, path, query string, method, status, user agent, referrer, client IP address and cache status. Asky uses them to show which AI crawlers visit your site. Nothing is read while the feature is off, and disconnecting the site in Asky switches it off.

By using these features you send the data described above to Asky. Terms: https://askylabs.com/terms-of-service. Privacy policy: https://askylabs.com/privacy-policy.

Installation

  1. Upload the plugin folder to /wp-content/plugins/, or install the zip through Plugins, Add New, Upload Plugin.
  2. Activate it.
  3. In Asky, connect this site under Connections, WordPress: enter the site address and approve Asky in your WordPress admin, or paste an Application Password (guide: https://docs.askylabs.com/connections/wordpress). Asky detects the plugin and shows which fixes apply in one click.

FAQ

Does the plugin change anything by itself?

No. It only answers requests from Asky, and Asky only sends a change a person approved there.

Which SEO plugins are supported?

Yoast SEO, Rank Math and SEOPress for titles, descriptions and Open Graph text. All in One SEO and The SEO Framework are detected but their fields are not written yet; Asky shows those fixes by hand. Without an SEO plugin the plugin keeps the values itself.

Why not use the SEO plugin’s own REST API?

Yoast exposes its fields on posts only, not on pages or custom post types, and Rank Math’s write route is blocked by common firewalls. This plugin writes the same fields server side, after the same capability check WordPress applies in the editor.

Which hosts support server logs?

Hosts that keep daily rotated access log archives beside the WordPress install, which today means SiteGround. Elsewhere the plugin reports that no logs are available and Asky offers its other crawler log options.

Can I turn part of it off?

Yes. Every part is a module with its own constant for wp-config.php (for example define( 'ASKY_DISABLE_LOGS', true ); or define( 'ASKY_DISABLE_SEO_FIELDS', true );), or use the asky_modules filter. Asky sees what is off and offers those fixes by hand.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Asky SEO & GEO” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Asky SEO & GEO” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.0

  • First public release in the WordPress plugin directory. Everything below, verified on Yoast SEO, Rank Math and SEOPress.

0.5.0

  • Server logs: read the host’s daily access log archives for Asky’s crawler log reports.
  • Structured data: register the asky_json_ld field and print the JSON-LD block on singular pages.
  • Modules can be switched off per site.

0.4.0

  • Image alt text in synced patterns, once for every page using them.

0.3.0

  • Image alt text where the page stores the image: editor content, Thrive Architect, Elementor, featured image, media library.

0.2.0

  • Open Graph title and description. Titles and descriptions on sites without an SEO plugin.

0.1.0

  • Titles and meta descriptions in Yoast SEO, Rank Math and SEOPress on every post type.