Title: SnippetGrove – AI SEO Metadata
Author: wpshelf
Published: <strong>September 22, 2026</strong>
Last modified: September 22, 2026

---

Search plugins

![](https://ps.w.org/snippetgrove/assets/banner-772x250.png?rev=3707097)

![](https://ps.w.org/snippetgrove/assets/icon.svg?rev=3707097)

# SnippetGrove – AI SEO Metadata

 By [wpshelf](https://profiles.wordpress.org/wpshelf/)

[Download](https://downloads.wordpress.org/plugin/snippetgrove.0.56.0.zip)

 * [Details](https://wordpress.org/plugins/snippetgrove/#description)
 * [Reviews](https://wordpress.org/plugins/snippetgrove/#reviews)
 * [Development](https://wordpress.org/plugins/snippetgrove/#developers)

 [Support](https://wordpress.org/support/plugin/snippetgrove/)

## Description

SnippetGrove finds missing SEO metadata and lets you write it into the SEO plugin
you
 already use. The local audit and manual editor are free and do not require 
an account. Optional AI generation uses the WP Shelf service and a separate SnippetGrove
license. SnippetGrove does not replace your SEO plugin’s sitemaps, redirects or 
schema.

Implemented:

 * Detection of the active SEO plugin (Yoast SEO, Rank Math, All in One SEO, SEOPress)
   with a fallback for sites running none
 * Reading and writing SEO titles and meta descriptions through whichever of those
   is active
 * A coverage audit counting published posts with no meta description or title, 
   per post type, plus images with no alt text
 * The same count for category, tag and product-category archives, on Yoast, Rank
   Math and SEOPress
 * Bulk AI generation of SEO titles and meta descriptions, planned and costed before
   a run is dispatched
 * The same for Open Graph and X card titles and descriptions, on Yoast, Rank Math,
   SEOPress and All in One SEO
 * Bulk AI image alt text, with decorative images detected and left alone
 * Pages you can exclude from generation, with your front page protected by default
 * A review queue with a decision per item, applied into the host SEO plugin’s own
   fields
 * Rollback of a whole run from a write journal, so a batch you dislike is undoable
 * Admin screens for coverage, the gaps behind every number, and a run, plus REST
   routes for the same
 * WP-CLI: `wp snippetgrove audit`, `generate`, `status`, `apply`, `revert`, `export`
   and `import`
 * A portable configuration file — set SnippetGrove up once, apply it to every site
   you run
 * Reviewing a run in a spreadsheet: export to CSV, approve or edit in bulk, import
   the decisions back
 * License activation against the WP Shelf licensing service

Hosted generation requires a WP Shelf license and an enabled generation service.

Hosted generation is enabled for activated licenses. Public licensing enrollment
is not yet open. Local audits and manual editing do not depend on it.

Not included:

 * Per-language metadata via Gloty

Nothing in this plugin claims to influence whether any AI answer engine cites a

site. That is not measurable from inside WordPress and will not be claimed.

#### What the optional report sends

No usage report is sent unless you enable it in Settings. This is independent
 of
licensing and generation requests. Its JSON payload contains the product identifier
and the following data:

 * Which SEO plugin is active, and how many others compete with it
 * The number of counted post types, how many published items exist, and how many
   
   have no SEO title or meta description, as site-wide totals rather than per item
 * How many images exist and how many have no alt text
 * Your WordPress, PHP and SnippetGrove versions, your site’s locale, and whether
   
   WordPress considers the site production, staging or local
 * A one-way hash identifying this installation, salted with a random value
    generated
   on your site and never sent. It lets one site’s weekly reports be counted as 
   one site; it cannot be turned back into an address

Not included in the usage-report payload: your site address, any e-mail address,
any user account, any post,
 title, description or other content, and your license
key. Turning the setting off stops the weekly job immediately; uninstalling deletes
the salt, so a later reinstall is a different installation as far as we can tell.
As with any HTTPS request, the receiving server can see your server’s network address;
the payload does not make the connection anonymous.

Why we ask: which SEO plugins are really out there decides which of them gets
 fixed
first, and the real size of the metadata gap is what the plan sizes have to be priced
against. Both are currently guesses.

Full documentation, including what each coverage number counts and exactly what 
leaves your site: https://wp-shelf.com/snippetgrove/docs

### External services

SnippetGrove cannot generate metadata without an external service, because writing
a
 meta description is not something WordPress can do locally. This section describes
every external request the plugin makes, what it sends, and when.

The coverage audit and manual metadata editor run locally. License requests
 start
when you activate a license; generation requests start when you start a run or separately
enable generate-on-publish. Usage reports require their own opt-in. Installing the
plugin alone starts none of these external requests.

**1. The WP Shelf service**

Generation is performed by the hosted WP Shelf service. The plugin does not
 contact
AI providers directly; it sends a run’s items to the service, which selects and 
calls a provider on your behalf and delivers the results back.

 * Service host: `https://gloty-api.wp-shelf.com` (overridable by defining the `
   SNIPPETGROVE_SERVICE_URL` constant, for example to point at a self-hosted instance).
 * What is sent, for generation: the selected content’s title, excerpt and bounded
   body text, post type, language, taxonomy terms, author-set focus keyphrase and
   relevant product attributes, site name and tagline, page URL, requested fields
   and existing SEO/social values, item and batch identifiers, your site URL and
   license key. Image-alt requests include the image URL, dimensions and the surrounding
   title/caption/context so the provider can inspect and describe the image. Developers
   can customize context with the `snippetgrove_generation_context` filter.
 * What is sent, for licensing: your license key, site URL, product identifier and,
   on activation, plugin version. The service records generated-item usage against
   the license.
 * When: after you start a run or opt into generate-on-publish, while background
   jobs dispatch batches and poll for their results, and when activating, checking
   or deactivating a license. Cached license checks can occur when using the admin
   without starting a run.
 * Who: the WP Shelf service, operated by WP Shelf.

Generation is metered per requested field: generating a title and a description

for one page uses two items. Failed or declined items are not billable; accepting
or rejecting a successful suggestion does not undo the generation cost. * Terms 
of service: https://wp-shelf.com/terms * Privacy policy: https://wp-shelf.com/privacy

The generation implementation passes content to OpenAI. The plugin contacts
 WP 
Shelf, not OpenAI directly; license keys authenticate WP Shelf requests and are 
not part of the provider’s generation prompt. OpenAI’s terms apply:

 * OpenAI — https://openai.com/policies/terms-of-use / https://openai.com/policies/
   privacy-policy

**2. Optional usage reporting**

Off unless you switch it on, and described under “What the optional report sends”

above. Once enabled, a weekly background request goes to https://gloty-api.wp-shelf.
com/v1/telemetry (or your configured service host), operated by WP Shelf under the
terms and privacy policy above. Its payload has no content, site URL or license 
key. Disabling it stops future reports.

**Not an external service:** to check that your SEO plugin really rendered what

SnippetGrove wrote, the plugin fetches one of _your own_ pages from your own site.
This may pass through your site’s CDN or reverse proxy, but no page content is sent
to WP Shelf or an AI provider by that check.

SnippetGrove does not send analytics or usage tracking anywhere else.

#### Keeping your data when you uninstall

Deleting the plugin removes everything it stored, which is the right default — a

plugin you have deleted should not leave rows behind. But it also removes your run
history and the write journal an undo reads from.

If you are deleting the plugin to troubleshoot and intend to reinstall, add this

to `wp-config.php` first:

    ```
    define( 'SNIPPETGROVE_KEEP_DATA', true );
    ```

Uninstalling then leaves your data in place, and a reinstall picks it up where it

left off. Remove the line when you want a genuine clean removal.

### Security

Found a security issue? Please email hello@wp-shelf.com rather than opening a
 public
support thread — a forum post is world-readable the moment you send it, on a plugin
installed on other people’s sites. You will get an acknowledgement within 72 hours,
and credit in the changelog unless you would rather not have it.

### Source code

Readable JavaScript source is included in src/ and shared-js/, including the shared

WP Shelf packages compiled into build/. The ZIP includes package.json and webpack.
config.js. See shared-js/README.md for rebuilding with Node.js and npm; no private
repository or workspace checkout is required. WordPress supplies the React and WordPress
browser libraries used by the compiled admin interface.

## Screenshots

[⌊SEO coverage — how many published pages have no meta description or SEO title,
per post type, counted through whichever SEO plugin the site runs⌉⌊SEO coverage —
how many published pages have no meta description or SEO title, per post type, counted
through whichever SEO plugin the site runs⌉[

SEO coverage — how many published pages have no meta description or SEO title, per
post type, counted through whichever SEO plugin the site runs

[⌊Missing metadata — the pages behind a number, with a box to write the field on
the spot⌉⌊Missing metadata — the pages behind a number, with a box to write the 
field on the spot⌉[

Missing metadata — the pages behind a number, with a box to write the field on the
spot

[⌊Settings — which post types are counted, who may generate, and what is left alone⌉⌊
Settings — which post types are counted, who may generate, and what is left alone⌉[

Settings — which post types are counted, who may generate, and what is left alone

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“SnippetGrove – AI SEO Metadata” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ wpshelf ](https://profiles.wordpress.org/wpshelf/)

[Translate “SnippetGrove – AI SEO Metadata” into your language.](https://translate.wordpress.org/projects/wp-plugins/snippetgrove)

### Interested in development?

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

## Changelog

#### 0.56.0

 * Changed: `wp snippetgrove export` and `wp snippetgrove settings-export` now always
   write to standard output, and the `--file` option is gone. Redirect to save it:`
   wp snippetgrove export 12 > review.csv`. A plugin should not write files to a
   path of its own choosing, and the shell already does this better.

#### 0.55.1

 * Fixed: generation no longer sends the contents of inline scripts, styles and 
   noscript blocks in a post to the model as if they were page text. A tracking 
   snippet or a style block in a post’s content used to reach the service as prose,
   costing tokens and muddying the generated title or description.

#### 0.55.0

 * Renamed the plugin to SnippetGrove across its code, data, commands, website, 
   documentation and WordPress.org listing.
 * Retained the complete metadata audit, manual editor, hosted generation, review
   and undo feature set from the release candidate.

#### 0.54.4

 * Undo every available write in large runs, preserve newer edits, and resume safely
   after an interrupted undo.
 * Stop generation and scheduled or forced writes if the active SEO plugin changes
   after selection.
 * Applied X metadata now overrides Rank Math or AIOSEO social inheritance. Undo
   restores the original setting after both X fields are restored.
 * Undo preserves newer manual edits to metadata and image alt text.
 * Keep partially delivered batches in recovery until missing results arrive or 
   the recovery deadline passes, without resending a smaller batch under a new billing
   key.
 * Recover interrupted dispatch requests and count overlapping result deliveries
   only once.
 * Pause for a service review with saved results and an explicit Try again action
   when generation safety checks require operator attention.
 * Continue recovering older runs with multiple batches in flight without requiring
   an open admin screen.

#### 0.54.3

 * Match the admin accent to the teal SnippetGrove icon and website.
 * Guide new installations to license settings before creating a hosted generation
   run. Local audits and manual editing remain free.
 * Show taxonomy coverage in the interactive dashboard, including hosts where it
   cannot be measured.
 * Stop retrying malformed generation acknowledgements after the normal retry budget,
   preserving the batch for safe replay.
 * Bound polling when completed jobs cannot return results, while retaining late
   results that are available.

#### 0.54.2

 * Fixed hosted generation and result polling on fresh installs with no saved server
   URL.
 * Fixed undo for native metadata and empty fields, plus selection, review and undo
   of social metadata.
 * Refresh coverage after manual metadata saves so the last fixed gap does not show
   a stale-count warning.
 * Improved request-input sanitization and documented temporary CSV stream handling.
 * Included shared JavaScript sources and standalone build instructions in the plugin
   ZIP.
 * Clarified external-service requests and privacy disclosures.
 * Verified clean installation and removal on WordPress 7.1.

#### 0.54.0

 * Added JavaScript search, sorting and pagination for admin data tables.
 * Navigate between plugin subpages asynchronously, with Back/Forward support.

Earlier release notes are included in CHANGELOG.md.

## Meta

 *  Version **0.56.0**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [AI](https://wordpress.org/plugins/tags/ai/)[Alt Text](https://wordpress.org/plugins/tags/alt-text/)
   [bulk editor](https://wordpress.org/plugins/tags/bulk-editor/)[meta description](https://wordpress.org/plugins/tags/meta-description/)
   [seo](https://wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://wordpress.org/plugins/snippetgrove/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/snippetgrove/reviews/)

## Contributors

 *   [ wpshelf ](https://profiles.wordpress.org/wpshelf/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/snippetgrove/)