Skip to content

Agents Reference

All agents are accessible at Account → SEO Agents. Each agent has a dedicated form page, a polling status screen, and a persistent result page.


Keyword Research

Slug: keyword-research | Category: Research | SERP data: Yes | Est. time: 30 s

Generates a full keyword strategy from a seed keyword: long-tail variations, search intent classification, semantic/LSI terms, and content gap opportunities.

Inputs

FieldRequiredDescription
Seed KeywordYesThe primary keyword or phrase you want to rank for
Niche / IndustryNoNarrows suggestions to a specific context
Target CountryNoCountry for SERP results (default: US)
Number of VariationsNoLong-tail keywords to generate (5–30, default 15)

Output (structured JSON)

json
{
  "primary_keyword": "electric car charging station",
  "volume_estimate": "unknown",
  "intent": "commercial",
  "difficulty": "medium",
  "long_tail_keywords": [
    { "keyword": "best home ev charging station 2025", "intent": "commercial", "difficulty": "low", "rationale": "..." }
  ],
  "semantic_terms": [
    { "term": "EVSE", "relevance": "..." }
  ],
  "content_gaps": [
    { "angle": "Apartment-friendly EV charging", "suggested_title": "..." }
  ]
}

Tools used

  • fetch_serp_results — fetches top organic results to infer competition and intent

Meta Tag Generator

Slug: meta-tag-generator | Category: On-page | SERP data: No | Est. time: 20 s

Generates optimised title tags, meta descriptions, Open Graph tags, and Twitter Card tags. Accepts a URL (fetches live content) or pasted text.

Inputs

FieldRequiredDescription
Page URLOne of URL or Content requiredFetches live page content via HTTP
Page ContentOne of URL or Content requiredPaste raw copy or HTML — HTML tags are stripped
Target KeywordNoKeyword to include in title and description
Brand NameNoAppended to the title tag (e.g. … | ChargePanda)
Number of VariationsNoHow many alternative tag sets to generate (1–5, default 3)

Output (HTML)

Ready-to-copy <head> snippet for each variation, wrapped in <pre><code> blocks with a one-sentence strategic rationale.

Tools used

  • fetch_web_page — fetches and extracts body text from the provided URL

Competitor Analysis

Slug: competitor-analysis | Category: Research | SERP data: Yes | Est. time: 60 s

Fetches the top-ranking pages for a keyword, analyses their SEO tactics (word count, heading structure, schema, strengths/weaknesses), and produces a ranked list of recommendations to outrank them.

Inputs

FieldRequiredDescription
Target KeywordYesKeyword to analyse competition for
Your Page URLNoIf provided, your page is included in the comparison
Target CountryNoCountry for SERP results (default: US)
Competitors to AnalyseNoNumber of top-ranking pages to fetch (2–5, default 3)

Output (structured JSON)

json
{
  "keyword": "best ev home charger",
  "serp_data_available": true,
  "your_score": null,
  "competitors": [
    {
      "position": 1,
      "url": "https://example.com",
      "title": "...",
      "word_count": 2800,
      "h1": "...",
      "h2_count": 8,
      "has_schema": true,
      "strengths": ["Comparison table", "Expert quotes"],
      "weaknesses": ["No installation guide"]
    }
  ],
  "content_gaps": ["Installation cost breakdown"],
  "recommendations": ["Target 2,500–3,000 words to match competitor depth"]
}

Tools used

  • fetch_serp_results — fetches top organic SERP results
  • fetch_web_page — fetches and parses each competitor page

Content Audit

Slug: content-audit | Category: On-page | SERP data: No | Est. time: 25 s

Audits an existing page for SEO health across eight dimensions. Produces an overall score (0–100), letter grade, and actionable quick wins.

Inputs

FieldRequiredDescription
Page URLOne of URL or Content requiredFetches live page for analysis
Page ContentOne of URL or Content requiredPaste full HTML or plain text
Target KeywordNoUsed to check keyword placement and density

Output (structured JSON)

json
{
  "url": "https://example.com/page",
  "overall_score": 72,
  "grade": "B",
  "target_keyword": "home EV charger",
  "readability": { "flesch_score": 65, "grade_level": 9, "reading_ease": "Standard", "word_count": 1200 },
  "dimensions": [
    { "name": "Title Tag", "score": "pass", "notes": "57 chars, keyword present" },
    { "name": "Meta Description", "score": "warn", "notes": "145 chars — slightly short" },
    { "name": "Heading Structure", "score": "fail", "notes": "Two H1 tags found" }
  ],
  "issues": ["Duplicate H1"],
  "quick_wins": ["Merge H1 tags", "Expand meta description to 155+ chars"],
  "detailed_recommendations": ["..."]
}

Dimensions scored: Title Tag, Meta Description, Heading Structure, Keyword Usage, Readability, Content Depth, Open Graph tags, Canonical tag.

Tools used

  • fetch_web_page — fetches and extracts page content
  • analyse_readability — computes Flesch reading ease and grade level

Content Brief

Slug: content-brief | Category: Content | SERP data: Yes | Est. time: 45 s

Creates a detailed brief for a content writer: recommended title, H1, word count target, heading outline, must-cover topics, secondary keywords, content formats, schema recommendation, and internal linking ideas.

Inputs

FieldRequiredDescription
Target KeywordYesThe keyword to build the brief around
Content GoalNoInformational, commercial, landing page, product, or FAQ
Target AudienceNoWho the content is written for
Target CountryNoCountry for SERP results (default: US)
Competitor URLNoA top-ranking URL to analyse structure and depth

Output (structured JSON)

json
{
  "keyword": "ev charger installation guide",
  "recommended_title": "EV Charger Installation Guide: Costs, Steps & Top Picks (2025)",
  "recommended_h1": "EV Charger Installation Guide",
  "word_count_range": "2000–2500",
  "search_intent": "informational",
  "tone": "helpful, authoritative, jargon-light",
  "outline": [
    { "heading": "What is an EV Charger?", "level": "H2", "notes": "Brief intro — 100 words" }
  ],
  "must_include_topics": ["permitting requirements", "cost breakdown"],
  "must_include_keywords": ["Level 2 charger", "EVSE"],
  "recommended_formats": ["comparison table", "numbered steps", "FAQ section"],
  "schema_recommendation": "HowTo",
  "internal_linking_ideas": ["best home ev chargers"],
  "cta_recommendation": null
}

Tools used

  • fetch_serp_results — analyses what formats and topics rank for the keyword
  • fetch_web_page — fetches competitor URL structure when provided

Schema Markup

Slug: schema-markup | Category: On-page | SERP data: No | Est. time: 20 s

Generates valid JSON-LD schema markup ready to paste into a page's <head>. Supports Article, HowTo, FAQ, Product, LocalBusiness, BreadcrumbList, Review, Recipe, Event, VideoObject, and WebSite schemas. Can auto-detect the correct type from page content.

Inputs

FieldRequiredDescription
Page URLOne of URL or Content requiredFetches live page content
Page ContentOne of URL or Content requiredPaste content, FAQs, product details, or step-by-step instructions
Schema TypeNoSpecific type or "Auto-detect" (default)
Site / Business NameNoUsed in publisher, brand, and WebSite schemas
Also generate BreadcrumbList?NoGenerates a second schema block for breadcrumb navigation

Output (HTML)

A heading for each schema block followed by a <pre><code> block containing the JSON-LD, ready to copy-paste. Any properties that could not be inferred from the content are flagged so the user knows what to fill in manually.

Supported schema types: Article, HowTo, FAQPage, Product, LocalBusiness, BreadcrumbList, Review, Recipe, Event, VideoObject, WebSite.

Tools used

  • fetch_web_page — fetches and parses the page when a URL is provided

Blog Writer

Slug: blog-writer | Category: Content | SERP data: Yes | Est. time: 90 s

Writes a complete, publication-ready SEO article from a keyword and an optional brief. The output is a ready-to-paste HTML fragment that includes a suggested meta title and description, H1, H2/H3 body sections, and an optional FAQ block at the end.

Inputs

FieldRequiredDescription
Target KeywordYesThe primary keyword the article should rank for
Content Brief / OutlineNoPaste an outline or brief (e.g. from the Content Brief agent) — if omitted the agent builds its own structure from SERP data
Article LengthNoShort (600–800 w), Medium (1,200–1,500 w), or Long (2,000–2,500 w) — default Medium
ToneNoInformational, Conversational, Professional, or Persuasive — default Informational
Target AudienceNoDescribe who the article is written for
Target CountryNoCountry for SERP results (default: US)
Include FAQ sectionNoToggle — appends a Frequently Asked Questions block at the end (default: on)

Output (HTML)

A ready-to-paste HTML fragment structured as:

html
<div class="meta-box">
  <p><strong>Suggested title tag:</strong> How to Install an EV Charger at Home: Costs, Steps &amp; Tips (2025)</p>
  <p><strong>Suggested meta description:</strong> Learn how to install a home EV charger in 6 steps...</p>
</div>

<h1>How to Install an EV Charger at Home</h1>
<p>Introduction paragraph...</p>
<h2>Level 1 vs Level 2: Which Charger Do You Need?</h2>
<p>...</p>

<!-- If FAQ toggle is on: -->
<h2>Frequently Asked Questions</h2>
<h3>Do I need an electrician to install a home EV charger?</h3>
<p>Yes. Level 2 chargers require a dedicated 240 V circuit...</p>

Tools used

  • fetch_serp_results — analyses what content formats and subtopics currently rank for the keyword

Content Rewriter

Slug: content-rewriter | Category: Content | SERP data: No | Est. time: 60 s

Rewrites existing content to improve SEO, readability, depth, or tone. The agent scores the original with Flesch-Kincaid before rewriting, scores the rewrite, and returns the updated article alongside a before/after comparison table and a bullet-point summary of key changes.

Inputs

FieldRequiredDescription
Existing ContentYesPaste the article or page copy to rewrite — plain text or HTML (tags are stripped before analysis) — up to 10,000 characters
Target KeywordYesThe keyword the rewritten content should be optimised for
Rewrite GoalNoImprove SEO, Improve Readability, Expand Depth, Modernise, or Change Tone — default Improve SEO
Target ToneNoMatch original, Formal, Conversational, or Persuasive — default Match original
Preserve existing heading structureNoToggle — when on, keeps the existing H2 headings verbatim (default: off)

Output (HTML)

A ready-to-paste HTML fragment structured as:

html
<div class="rewrite-summary">
  <h3>Improvements Made</h3>
  <table>
    <thead><tr><th>Metric</th><th>Before</th><th>After</th></tr></thead>
    <tbody>
      <tr><td>Flesch Score</td><td>48.2 (Fairly Difficult)</td><td>67.4 (Standard)</td></tr>
      <tr><td>Grade Level</td><td>13.1</td><td>9.4</td></tr>
      <tr><td>Word Count</td><td>480</td><td>620</td></tr>
      <tr><td>Avg. Sentence Length</td><td>24 words</td><td>15 words</td></tr>
    </tbody>
  </table>
  <ul>
    <li>Added target keyword "home ev charger installation" to H1 and opening paragraph</li>
    <li>Broke 8 run-on sentences into shorter ones</li>
    <li>Expanded the "Costs" section with a pricing breakdown</li>
  </ul>
</div>

<h1>Rewritten article heading</h1>
<p>Rewritten content...</p>

Tools used

  • analyse_readability — called twice: once on the original content and once on the rewrite, to produce the before/after scores

FAQ Generator

Slug: faq-generator | Category: Content | SERP data: Yes | Est. time: 30 s

Generates a set of SEO-optimised FAQs grounded in real "People Also Ask" data. Optionally reads a source URL so the FAQs match the page's content. Output includes the visual FAQ list and an optional FAQPage JSON-LD schema block for Google rich results.

Inputs

FieldRequiredDescription
Topic / KeywordYesThe topic the FAQs should be built around
Source Page URLNoIf provided, the agent reads this page and generates FAQs relevant to its content
Number of FAQsNoHow many FAQ pairs to generate — 5, 10, 15, or 20 (default: 10)
ToneNoConversational or Formal (default: Conversational)
Include FAQPage JSON-LD schemaNoToggle — appends a ready-to-paste FAQPage schema block (default: on)

Output (HTML)

html
<div class="faq-list">
  <h2>Frequently Asked Questions</h2>
  <div class="faq-item">
    <h3>How much does it cost to install a home EV charger?</h3>
    <p>The total cost typically ranges from $500 to $2,000...</p>
  </div>
  <!-- repeated for each FAQ -->
</div>

<!-- If schema toggle is on: -->
<div class="schema-block">
  <h3>FAQPage Schema (JSON-LD)</h3>
  <p>Copy and paste this into your page's <code>&lt;head&gt;</code>...</p>
  <pre><code>{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [ ... ]
}</code></pre>
</div>

Tools used

  • fetch_serp_results — surfaces "People Also Ask" questions and related searches for the topic
  • fetch_web_page — fetches and parses the source URL when provided

Core Web Vitals Advisor

Slug: core-web-vitals | Category: Technical | SERP data: No | Est. time: 25 s

Analyses a page's Core Web Vitals using the Google PageSpeed Insights API. Returns a performance score, per-metric verdicts, an overall pass/fail, and a prioritised list of developer-ready fixes.

PageSpeed API key

The agent works without an API key (anonymous quota). For higher volume, add a free Google PageSpeed API key in Admin → SEO Agents → Settings.

Inputs

FieldRequiredDescription
Page URLYesThe page to analyse
DeviceNoMobile, Desktop, or Both (default: Both — reports worst-case values)

Output (structured)

json
{
  "url": "https://example.com",
  "strategy": "mobile",
  "overall": {
    "performance_score": 67,
    "cwv_pass": false,
    "summary": "Page fails Core Web Vitals on mobile. LCP and TBT are the primary issues."
  },
  "metrics": [
    { "name": "LCP",  "full_name": "Largest Contentful Paint", "value": "3.2 s",  "status": "needs-improvement", "threshold": "Good < 2.5 s" },
    { "name": "CLS",  "full_name": "Cumulative Layout Shift",  "value": "0.05",   "status": "good",              "threshold": "Good < 0.1" },
    { "name": "FID",  "full_name": "First Input Delay",        "value": "18 ms",  "status": "good",              "threshold": "Good < 100 ms" },
    { "name": "FCP",  "full_name": "First Contentful Paint",   "value": "1.9 s",  "status": "needs-improvement", "threshold": "Good < 1.8 s" },
    { "name": "TBT",  "full_name": "Total Blocking Time",      "value": "480 ms", "status": "poor",              "threshold": "Good < 200 ms" },
    { "name": "TTFB", "full_name": "Time to First Byte",       "value": "0.6 s",  "status": "good",              "threshold": "Good < 0.8 s" }
  ],
  "top_fixes": [
    { "priority": 1, "issue": "Reduce unused JavaScript", "impact": "Could save ~0.8 s", "how": "..." }
  ]
}

Core Web Vitals thresholds:

MetricGoodNeeds ImprovementPoor
LCP< 2.5 s< 4 s≥ 4 s
CLS< 0.1< 0.25≥ 0.25
FID< 100 ms< 300 ms≥ 300 ms
FCP< 1.8 s< 3 s≥ 3 s
TBT< 200 ms< 600 ms≥ 600 ms
TTFB< 0.8 s< 1.8 s≥ 1.8 s

Tools used

  • fetch_pagespeed_data — calls Google PageSpeed Insights API (once per strategy)

Site Audit

Slug: site-audit | Category: Technical | SERP data: No | Est. time: 180 s

Crawls a site and checks for common SEO issues across up to 50 pages. Returns an issue summary, priority fix list, and a full per-page issue log.

Inputs

FieldRequiredDescription
Site URLYesHomepage URL — the agent discovers internal links from here
Pages to CrawlNo10 (fastest), 25, or 50 pages (slowest — may take 3–4 min)
Issues to CheckNoMulti-select — defaults to missing meta, duplicate titles, missing alt, missing canonical

Available checks:

CheckSeverityNotes
Missing title tag or meta descriptionWarningFlags absent or empty values
Duplicate title tagsCriticalFlags any title appearing on more than one page
Images missing alt textWarningBased on content signals — may not catch all cases
Missing canonical tagInfoFlags pages with no canonical set
Broken internal linksCriticalFetches each link — significantly increases run time

Output (HTML)

A three-section report:

  1. Audit Summary — pages crawled, total issues, issue-type breakdown table
  2. Priority Fixes — top 5–10 most impactful changes with affected URLs
  3. Full Issue List — table of every issue: page, issue type, severity, recommendation

Tools used

  • fetch_web_page — called once per crawled page (and per link when broken-link check is on)

Slug: internal-link-suggester | Category: On-page | SERP data: No | Est. time: 60 s

Finds internal linking opportunities from a set of source pages to a target page. For each source page the agent suggests the best anchor text, two alternatives, and the specific passage where the link fits naturally — with a relevance rating.

Inputs

FieldRequiredDescription
Target Page URLYesThe page you want to build internal links TO
Target Keyword / TopicYesThe main keyword of the target page — used to find relevant anchor text
Source Pages to CheckYesOne URL per line — up to 10 pages to scan for opportunities

Output (structured JSON)

json
{
  "target_url": "https://example.com/ev-charging-guide",
  "target_keyword": "EV charging guide",
  "pages_analysed": 3,
  "opportunities_found": 5,
  "no_opportunity_pages": ["https://example.com/contact"],
  "opportunities": [
    {
      "source_url": "https://example.com/blog/electric-cars",
      "anchor_text": "EV charging guide",
      "anchor_alternatives": ["home charging guide", "complete EV charger walkthrough"],
      "placement": "Third paragraph — after \"...charging infrastructure has expanded rapidly.\"",
      "relevance": "high",
      "context": "The paragraph discusses charging infrastructure and would benefit from a link to the full guide."
    }
  ],
  "summary": "Found 5 internal linking opportunities across 3 pages."
}

Tools used

  • fetch_web_page — fetches the target page and each source page

Image Alt Text

Slug: image-alt-text | Category: On-page | SERP data: No | Est. time: 20 s

Generates SEO-optimised alt text for up to 20 images in a single run. The agent infers the image subject from filenames, directory paths, and an optional source page fetch, then writes alt text in your chosen style.

Inputs

FieldRequiredDescription
Image URLsYesOne image URL per line — up to 20 images
Page Context / Target KeywordYesDescribes what the page is about — helps write contextually relevant alt text
Alt Text StyleNoDescriptive (accurate, accessibility-first), Keyword-rich (natural keyword weaving), or Concise (under 60 chars) — default: Descriptive
Source Page URLNoOptional — if provided, the agent reads the page for richer context

Output (structured JSON)

json
{
  "page_context": "home EV charger installation guide",
  "style": "descriptive",
  "images_total": 2,
  "images_results": [
    {
      "url": "https://example.com/images/ev-charging-station.jpg",
      "filename": "ev-charging-station.jpg",
      "alt_text": "Level 2 EV charging station mounted on a residential garage wall",
      "char_count": 62,
      "notes": "Filename strongly indicates subject. Descriptive style used."
    }
  ],
  "summary": "Generated alt text for 2 images."
}

Tools used

  • fetch_web_page — fetches the optional source page for richer context

Local Keyword Research

Slug: local-keyword | Category: Local SEO | SERP data: Yes | Est. time: 35 s

Builds a complete local SEO keyword strategy for any business type and city. Generates primary keywords, "near me" variants, suburb/city combinations, long-tail phrases, and recommended Google Business Profile categories.

Inputs

FieldRequiredDescription
Business Type / ServiceYese.g. "EV charger installation", "plumber", "dental clinic"
City / RegionYesPrimary city or region the business serves
Service RadiusNoCity only, Metro area (city + suburbs), or State-wide — default: Metro
Include "near me" variantsNoToggle — default: on
Number of KeywordsNo20, 50, or 100 keywords — default: 50

Output (structured JSON)

json
{
  "business_type": "EV charger installation",
  "location": "Austin, Texas",
  "radius": "metro",
  "keywords_total": 50,
  "primary_keywords": [
    { "keyword": "EV charger installation Austin", "intent": "commercial", "difficulty": "medium" }
  ],
  "near_me_variants": ["EV charger installation near me", "electric car charger installer near me"],
  "suburb_variants": [
    { "suburb": "Round Rock", "keywords": ["EV charger installation Round Rock", "electric car charger Round Rock TX"] }
  ],
  "long_tail_keywords": [
    { "keyword": "Level 2 EV charger home installation Austin", "intent": "informational", "difficulty": "low" }
  ],
  "gbp_categories": {
    "primary": "Electrician",
    "secondary": ["Electric vehicle charging station", "Solar energy contractor"]
  },
  "summary": "Generated 50 local keywords for EV charger installation in Austin, TX metro area."
}

Tools used

  • fetch_serp_results — researches what keywords and formats rank locally for the business type

Google Business Profile Optimizer

Slug: gbp-optimizer | Category: Local SEO | SERP data: Yes | Est. time: 40 s

Produces a complete Google Business Profile optimisation package: an SEO-optimised description, recommended categories, 10 Google Post ideas, 5 Q&A suggestions, and attribute recommendations.

Inputs

FieldRequiredDescription
Business NameYesThe business name
Business Type / CategoryYesWhat the business does — used to research competitor profiles
City / LocationYesThe city the business operates in
Current Business DescriptionNoPaste existing GBP description to improve — leave blank to write from scratch
Services OfferedNoOne service per line — helps generate specific Post topics and Q&As

Output (structured JSON)

json
{
  "business_name": "Austin EV Charging Co.",
  "location": "Austin, Texas",
  "description": {
    "text": "Austin EV Charging Co. is Austin's leading electric vehicle charger installer...",
    "char_count": 354,
    "notes": "Uses primary keyword in first sentence, includes social proof and CTA. Under 750-char GBP limit."
  },
  "gbp_categories": {
    "primary": "Electrician",
    "secondary": ["Electric vehicle charging station", "Electrical installation service"]
  },
  "google_posts": [
    { "title": "Level 2 Charger Installation — From $299", "hook": "Charge your EV 5x faster at home. Book your installation this week..." }
  ],
  "qa_suggestions": [
    { "question": "How much does EV charger installation cost in Austin?", "answer": "Home Level 2 charger installation in Austin typically ranges from $299–$599..." }
  ],
  "attributes": ["Online appointments", "Free estimates", "LGBTQ+ friendly"],
  "summary": "Generated optimised GBP description, 2 categories, 10 Post ideas, 5 Q&As, and 4 attributes."
}

Description constraints: GBP descriptions have a 750-character hard limit. URLs, phone numbers, and promotional pricing in the description field violate GBP policy and can trigger suspensions — the agent avoids all of these.

Tools used

  • fetch_serp_results — researches what top-ranked competitors include in their GBP profiles

SEO Report

Slug: seo-report | Category: Reporting | SERP data: Yes | Est. time: 90 s

Generates a professional, white-label HTML SEO report combining live PageSpeed data, SERP analysis, and page content checks into a single polished document. Suitable for printing to PDF or emailing directly to a client.

Inputs

FieldRequiredDescription
Client / Site NameYesUsed in the report header and throughout the document
Site URLYesThe site being reported on
Primary Target KeywordYesUsed for SERP ranking check and competitor analysis
Report PeriodNoLast 30 days, Last 90 days, Last 6 months, or Custom label — default: Last 30 days
Custom Period LabelNoOnly shown when "Custom label" is selected — e.g. "Q1 2026"
Sections to IncludeNoMulti-select — defaults to all five sections (see below)
Agency NameNoIf provided, replaces the default report branding — white-label output
Agency Logo URLNoDirect URL to a logo image shown in the report header
Notes / Context for ClientNoContext acknowledged in the executive summary — recent changes, goals, concerns

Available sections:

SectionWhat it covers
Technical HealthPageSpeed performance score + full Core Web Vitals table (LCP, CLS, FID, FCP, TBT, TTFB) with pass/fail status and top improvement opportunities
On-Page SEOTitle tag (value + length), meta description, H1, canonical tag, Open Graph completeness
Keyword InsightsCurrent ranking position for the target keyword, search intent, and 4–6 related keyword opportunities from PAA and related searches
Competitor SnapshotTop 3 ranking pages for the target keyword — domain, title, notable strengths, plus a summary of patterns common among competitors
Recommendations RoadmapPrioritised action list with Critical / High / Medium / Quick Win labels and a one-phrase expected impact note per item

Output (HTML)

A fully inline-styled HTML fragment structured as:

  1. Report header — agency branding (name + optional logo), client name, site domain, period, and generated date
  2. Executive summary — 2–3 paragraph professional narrative covering overall health, top findings, and a forward-looking statement
  3. At a Glance — summary table with ✅ / ⚠️ / ❌ status for each included section
  4. (Selected sections in order)
  5. Footer — agency credit and data source attribution

All status indicators use emoji (✅ ⚠️ ❌) so the report renders correctly in email clients and PDF without CSS dependency. Priority labels in the Recommendations Roadmap are colour-coded inline: Critical (red), High (amber), Medium (blue), Quick Win (green).

Tools used

  • fetch_pagespeed_data — called for the Technical Health section
  • fetch_web_page — called to check on-page elements (title, meta, H1, canonical, OG)
  • fetch_serp_results — called for keyword ranking check and competitor identification
  • fetch_web_page — called again on top competitor URLs for the Competitor Snapshot

WordPress Publisher

Slug: wp-publisher | Category: WordPress | SERP data: Yes | Est. time: 120 s

Writes and publishes an SEO-optimised article directly to a connected WordPress site in a single run. Requires a WordPress connection (see WordPress Connections).

Inputs

FieldRequiredDescription
WordPress SiteYesDropdown of the user's connected WordPress sites
Target KeywordYesThe keyword the article should rank for
Content Brief / OutlineNoOptional brief or outline — leave blank to let the agent build its own structure from SERP data
Article LengthNoShort (600–800 w), Medium (1,200–1,500 w), or Long (2,000–2,500 w) — default: Medium
Publish AsNoDraft, Published, or Scheduled — default: Draft
Scheduled Date & TimeNoOnly shown when Scheduled is selected — enter in the WordPress site's timezone
CategoryNoCategory name — matched to an existing WordPress category
TagsNoComma-separated tag names
Set SEO MetaNoToggle — writes SEO title, meta description, and focus keyword via Yoast/RankMath after post creation (default: on)

Output (structured JSON)

json
{
  "status": "draft_created",
  "post_id": 1042,
  "post_url": "https://yoursite.com/?p=1042",
  "edit_url": "https://yoursite.com/wp-admin/post.php?post=1042&action=edit",
  "title": "How to Install a Home EV Charger: Costs, Steps & Tips (2026)",
  "word_count": 1380,
  "seo_meta_set": true,
  "seo_title": "Home EV Charger Installation Guide: Costs & Steps (2026) | YourSite",
  "seo_description": "Learn how to install a home EV charger in 6 steps. Covers costs ($300–$1,200), permits, and Level 1 vs Level 2.",
  "next_steps": [
    "Add a featured image to the post before publishing.",
    "Add 2–3 internal links from related posts to this one.",
    "Submit the URL to Google Search Console for faster indexing."
  ]
}

Tools used

  • fetch_serp_results — researches the SERP before writing to match current ranking structures
  • wordpress_apilist_categories, create_post, update_seo_meta

WordPress Bulk Meta

Slug: wp-bulk-meta | Category: WordPress | SERP data: No | Est. time: 90 s

Generates and applies SEO title tags and meta descriptions to multiple WordPress posts in one run. Includes a per-post before/after log and an overwrite guard. Requires a WordPress connection.

Inputs

FieldRequiredDescription
WordPress SiteYesDropdown of the user's connected WordPress sites
Posts to ProcessNoMissing meta only (recommended), All published posts, or Posts in a specific category — default: Missing meta
Category NameNoOnly used when "Posts in a specific category" is selected
Maximum PostsNo10, 25, or 50 posts — default: 10
Meta to GenerateNoSEO title only, Meta description only, or Both — default: Both
Overwrite Existing MetaNoToggle — off by default; when off, posts that already have SEO meta are skipped

Output (structured JSON)

json
{
  "scope": "missing-meta",
  "posts_found": 15,
  "posts_processed": 10,
  "posts_updated": 9,
  "posts_skipped": 1,
  "posts_failed": 0,
  "results": [
    {
      "post_id": 101,
      "title": "How to Install a Home EV Charger",
      "seo_title_old": null,
      "seo_title_new": "How to Install a Home EV Charger: Costs & Steps (2026)",
      "seo_desc_old": null,
      "seo_desc_new": "Learn how to install a home EV charger in 6 steps. Covers costs, permits, and Level 1 vs Level 2.",
      "status": "updated"
    },
    {
      "post_id": 102,
      "title": "Best EV Chargers 2026",
      "seo_title_old": "Best EV Chargers 2026 | YourSite",
      "seo_desc_old": "Our top picks for home EV chargers in 2026.",
      "seo_title_new": null,
      "seo_desc_new": null,
      "status": "skipped",
      "skip_reason": "Already has meta — overwrite is off."
    }
  ],
  "errors": [],
  "summary": "Updated SEO meta on 9 of 10 posts. 1 post skipped (already has meta)."
}

Overwrite is off by default

When overwrite is off, the agent skips any post that already has a Yoast or RankMath SEO title or meta description. This is intentional — bulk operations are hard to reverse.

Tools used

  • wordpress_apilist_categories, list_posts, get_post, update_seo_meta

WordPress Connections

WordPress Connections is not an agent — it is a user-facing connection manager at Account → WordPress Connections.

Users add WordPress sites by entering a Site URL, WordPress username, and an Application Password. Application Passwords are a built-in WordPress feature (5.6+) — no plugin is required. The connection is verified on save; invalid credentials or insufficient role are rejected with a clear error message.

Requirements per connected site:

  • WordPress 5.6 or later (Application Passwords support)
  • WordPress REST API enabled (default on all standard WP installs)
  • WordPress user must have at least Editor role

What is stored: Site URL, username, and Application Password (encrypted at rest). Multiple sites per user account are supported.

Released under the Commercial License.