Docs / Generated tools

SEO Tool Pages

Generated tool rendering contract

SEOGrove tools are generated as customer-domain pages. AI customizes copy, labels, metadata, and CTA text; executable behavior comes from a reviewed deterministic runtime.

Current runtime v3 Native first Iframe fallback available

Publishing model

Best

Native renderer

Render content.tool.native_html as trusted first-party HTML from the signed payload.

Advanced

Manifest component

Render content.tool.manifest in your own component or CMS block.

Fallback

Iframe

Use iframe_fallback only when the destination cannot run native assets.

Tool catalog

SEOGrove offers two kinds of tools. Ready-made tools are deterministic utilities for SEO, content and CSV work (content brief, blog outline, LSI keyword, meta description, CTA, readability, snippet/schema, title, keyword density, robots.txt, slug and CSV converters). Custom tools are designed for the specific business: a gravel calculator for a stone yard, a membership savings calculator for a car wash, a trail finder for a ski resort. Calculator, estimator, planner, finder and converter keywords get custom tools by default. See Custom tools.

Tool payload fields

Tool payloads are delivered inside the normal webhook envelope as content.tool.

manifestPortable JSON contract for title, fields, copy, CTA, theme, tracking URLs, and JSON-LD.
native_htmlA complete native tool section with scoped CSS, manifest JSON, and deterministic runtime.
iframe_fallbackCompatibility embed for locked-down systems.
typeReady-made tool key (for example seo_title_checker), or generated for custom tools.
renderer_versionSame as manifest.version: 3 for ready-made tools, 4 for custom tools.
json_ldA single JSON-LD object. Usually a WebApplication schema; when the tool page has an FAQ section it is an @graph containing WebApplication and FAQPage.

Webhook receiver recommendation

Because webhook payloads are signed, a receiver can trust the native tool artifact after HMAC verification. Store the native artifact separately from the surrounding article copy so fallback blocks do not double-render. Runtime v3 renders text outputs in a larger scrollable panel with a built-in copy button for visitors.

Receiver rules
1. Verify X-SEOGrove-Signature against the raw request body.
2. Store content.tool.native_html from tool.published events.
3. Remove .seogrove-native-tool, .seogrove-tool-embed, style, and script nodes from copied body HTML.
4. Render the sanitized body copy.
5. Render native_html as trusted first-party HTML on the tool page.
6. Use iframe_fallback only when native assets are not allowed.

Fallback policy

Iframes are compatibility tools, not the default product experience. Use them for restrictive CMSs, temporary migration windows, or customer sites that cannot safely render signed native assets. For normal customer sites, publish a native page under the customer domain.

Per-site XML sitemap for tool pages

SEOGrove generates a Sitemap Protocol XML file for all published tools on your site. Reference it from your main sitemap or submit it directly to Google Search Console so crawlers discover new tool pages immediately.

Sitemap endpoint

GET /sites/your-site.com/tools/sitemap

Available from your site's Tools builder panel as "Sitemap XML". Requires authentication. Reference the absolute URL from your main sitemap as a <sitemap> entry.

Example XML

sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://your-site.com/tools/roi-calculator</loc>
    <lastmod>2026-05-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://cdn.example.com/featured.webp</image:loc>
      <image:title>ROI Calculator — Your Brand</image:title>
    </image:image>
  </url>
</urlset>

Each <url> entry uses your site's canonical path for the tool, the tool's last-published date as <lastmod>, and includes an image:image extension block when a featured image is attached.

Webhook delivery

The tools_index.updated webhook event also includes the full sitemap XML as sitemap.xml, alongside the tool catalog. This lets you update both the index page and your sitemap entry in a single webhook handler, without polling the sitemap endpoint.

tools_index.updated — sitemap fields
sitemap.xml Full Sitemap Protocol XML string for all published tools. Write to a file or register with Google.
sitemap.tool_count Number of <url> entries in the sitemap.
sitemap.generated_at ISO 8601 timestamp when the sitemap was generated.

Tools index event

After every tool publish or deletion, SEOGrove sends a separate tools_index.updated event to the same webhook URL. This lets your CMS keep a /tools index page in sync without extra polling.

Event payload

FieldDescription
event"tools_index.updated"
timestampISO 8601 delivery time
site.hostThe site's domain
index.toolsArray of all currently published tools with slug, title, archetype, canonical_path, intro, cta, and meta fields
index.countTotal number of published tools
index.htmlComplete standalone HTML page for a /tools index — self-contained, no JS dependencies

Recommended integration

  1. Listen for tools_index.updated alongside tool.published.
  2. On receipt, upsert your /tools index page using index.html or build from index.tools.
  3. On tool.deleted, SEOGrove automatically re-fires tools_index.updated with the updated catalog — no manual pruning needed.

You can also preview the current index page at any time from your site's Tools builder panel, without waiting for a publish event.

The builder offers saved keywords from the selected site's keyword clusters and content plans, excluding off-topic clusters. If no keywords are saved yet, enter one yourself. The optional tool description is tailored to the selected site; leave it blank to design a tool from the keyword and site profile.

Custom tools (manifest v4)

A custom tool is built in stages: SEOGrove writes a specification with inputs, outputs, formulas and worked examples; a second, independent calculation re-checks the worked examples; then the tool's code is written and run in a headless browser, which must reproduce every worked example before the tool reaches your review queue. If any check fails after automatic retries, the generation fails and does not count against your quota. With Build tools automatically turned on, SEOGrove builds one custom tool a week for your best tool-intent keyword, within your plan's monthly tool allowance; each one still waits for your review.

Additional manifest fields

engineAlways "v2" for custom tools.
programJavaScript source defining function compute(inputs, data, helpers). It returns an object keyed by output name.
dataThe values the tool reads (prices, rates, lists). You can edit these on the review page; edits are re-checked in a browser before saving.
outputsArray of { name, label, format, unit }. Formats: number, number:N, currency, percent, text, list, table, date.
currency, localeUsed to format money, numbers and dates.
ai_actions, ai_urlNames of the tool's AI steps, if any, and the SEOGrove endpoint that runs them. Prompt templates stay on SEOGrove's servers.

How the code runs

native_html runs program inside a hidden, sandboxed srcdoc iframe (sandbox="allow-scripts" with a default-src 'none' Content-Security-Policy). The tool's code cannot read your page, cookies or storage and cannot make network requests. The page and the sandbox exchange postMessage events; only declared AI steps are forwarded, by the page, to ai_url. If you render the manifest with your own component, run program with the same isolation.

AI steps

Most custom tools are pure calculations. Tools that write open-ended text (a personalised checklist, for example) call POST {ai_url}/{action} with { "inputs": { ... } } and receive { "result": { ... } } or { "error": "..." }. Requests are accepted from your site's domain, limited to 10 per minute per visitor, and capped per site each month by plan (Starter 300, Growth 1000, Pro 2000). When the cap is reached the tool shows a "try again later" message instead of failing silently.

Content-Security-Policy

Like every native tool, custom tools need inline scripts and styles allowed on the tool page. Tools with AI steps also need connect-src https://seogrove.io.

Page copy

Custom tools come with a full page: how to use the tool, how the result is calculated, a worked example and an ## FAQ section. In content.html the tool comes first and the copy follows.

Rebuild existing tools

Every tool has a rebuild panel on its review page. Rebuilds keep the slug and all run analytics. Custom tools are redesigned, rebuilt and re-tested from your instructions (for example "add a delivery fee"). Ready-made tools re-generate their title, intro, field labels, SEO metadata and CTA. Older lead-generation template tools are upgraded to custom tools when rebuilt.

  • Rebuilds are free and don't consume your monthly tool generation quota.
  • Instructions are optional; leave them blank for an automatic improvement pass.
  • After a rebuild the tool returns to review status. Re-publish when you're happy with it.
  • The rebuild count and timestamp are stored in the tool's metadata.