RankZoro AI SEO

Description

The SEO & Store Workbench includes an AI SEO Agent chat. Ask about SEO tasks, optionally share the inspected page, and request a supported proposal for metadata, content refresh, internal links, FAQs or product-category guidance. Proposal generation uses 30 credits; applying any generated change remains a separate review and approval.

Free SEO Tools works without a RankZoro account: browse posts/pages/products,
write title and supported SEO metadata changes, preview exact fields, approve
locally and restore when no newer edits intervened. WordPress administrator
permission and nonces remain mandatory. Local edits do not authorize remote
publishing. A native title/description fallback runs only when no other detected
SEO plugin owns those fields. Other SEO plugins remain in control.

The free browser toolkit adds local text/HTML/schema/robots/image/CSV utilities.
Limited free AI requires explicit excerpt submission and has network/shared caps.
Local data is not automatically contributed to shared model training.

The RankZoro WordPress plugin creates a secure, API-key-authenticated bridge between your WordPress site and your RankZoro account.

What RankZoro can do once connected:

  • Create and publish AI-generated articles after the site owner enables and configures publishing
  • Schedule articles for chosen publication dates; scheduled autopilot requires the enabled automation add-on and available credits
  • Apply internal links to existing posts with one click
  • Apply AI SEO fixes — title, meta description, focus keyword, slug, canonical, status — on command
  • Apply multiple SEO fixes in a single bulk request
  • Inject JSON-LD schema markup (Article, FAQPage, HowTo, Product, etc.) into any post — outputs in <head> automatically
  • Register webhooks — WordPress fires instant POST notifications to RankZoro on post.published, post.updated, or post.deleted
  • Content decay monitoring — optional daily WP-Cron reports of stale-post metadata, enabled separately by an administrator
  • Fetch posts for analysis, internal link mapping, and content decay audits
  • Find internal backlinks — which posts on this site link to a given post
  • Filter posts by category, tag, author, post type
  • List all registered public custom post types (CPTs)
  • List authors with avatar URLs and post counts
  • Set Yoast SEO, RankMath, and SEOPress meta fields automatically when publishing
  • Upload and set featured images; upload standalone media to the media library
  • Report full site info — active SEO plugin, theme, post counts, PHP version, timezone

Scheduled AI generation and publishing are off until a site owner explicitly
enables and configures them. Scheduled automation requires the RankZoro
automation add-on and available generation credits. Connecting a site alone
does not grant permission to publish.

External Services and Privacy

Free manual SEO tools run on your WordPress site without a RankZoro account.
Cloud AI, research, proposal generation, content generation and optional
automation are provided by the RankZoro service. These service features may
require an account, credits or a paid subscription; they are not a time-limited
trial of the local plugin tools.

RankZoro

The plugin communicates with https://rankzoro.co after you approve a connection
or explicitly request a connected feature. Connection requests include the
site URL, authentication details and plugin/account information. Requested
cloud actions can include selected post, page, product or category identifiers,
titles, URLs, metadata, content and proposed changes. AI chat sends your question;
inspected page text is included only when you choose that option.

Daily stale-content reporting is off by default, including after an account is
connected. If an administrator enables it, WP-Cron sends the site URL and up to
100 stale published posts’ identifiers, titles, URLs, publication/modification
dates and word counts to RankZoro each day. Post bodies are not included in
these reports. “Run Scan Now” sends one report without enabling recurring
reports. Disconnecting disables recurring stale-content reports.

Scheduled growth/content workflows require separate configuration and may send
the content and resource data needed to perform those chosen workflows.
AI generation is performed by RankZoro’s cloud services, not downloaded PHP or
JavaScript code. See the service’s Terms of Service
and Privacy Policy.

IndexNow

Only when you request an IndexNow submission, the plugin verifies your site’s
public key URL and sends the site’s hostname, key, key location and selected
page URL to https://api.indexnow.org/indexnow. This is a submission request,
not confirmation of indexing. See https://www.indexnow.org/ for the protocol
and participating services. IndexNow Terms
describe the service conditions.

Administrator-configured webhooks

No webhook destination is configured by default. If you configure one,
WordPress sends the selected publish, update or deletion events, site URL and
associated post data to that URL. Only configure destinations you trust and
have permission to send this data to. Remove the webhook to stop delivery.

The external browser toolkit is opened only when you follow its link. Local
tool inputs stay in that browser until you explicitly confirm a service request.
The plugin does not automatically contribute site content to shared model training.

Support

For plugin support, email support@rankzoro.co. Once the plugin is listed,
WordPress-specific issues can also be reported using its WordPress.org
Support tab. Do not post connection tokens, API keys, private content or
account credentials in public support requests.

License

The distributed plugin source is licensed under the GNU General Public License,
version 2 or any later version (GPL-2.0-or-later). The full version 2 license is
included in LICENSE.txt. The separately hosted RankZoro service has its own
Terms of Service; those terms do not restrict your GPL rights in this plugin.

Source Code

The plugin-specific JavaScript and CSS are included in this plugin package as
human-readable, editable source files. The files enqueued by the plugin are
admin-settings.js, content-admin.js, site-pairing.js, and workbench.js,
with their corresponding CSS files. These are distributed directly; they are
not minified or transpiled, and the plugin does not bundle third-party
JavaScript or CSS libraries. No JavaScript or CSS build step is required.

See SOURCE.md in the plugin directory for a source-file overview and release
packaging notes.

Installation

  1. Upload the rankzoro folder to the /wp-content/plugins/ directory, OR install via WordPress Admin Plugins Upload Plugin.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. Go to the RankZoro menu item in your WordPress admin sidebar.
  4. Use Free SEO Tools without connecting an account, or optionally connect for cloud service features.

Recommended connection: in RankZoro CMS Connections, enter your exact HTTPS
WordPress site URL, open WordPress, and approve the read-only connection.
Each approval expires after ten minutes and can be used once. Publishing
requires a separate permission in WordPress RankZoro.

Manual connection fallback:
1. Paste your Plugin Token from rankzoro.co Settings WordPress Plugin Token into the plugin’s connection form.
2. Click Connect, then copy the Site URL and API Key shown.
3. In RankZoro CMS Connections Add Connection WordPress (Plugin), enter those details.

FAQ

Is this secure?

Local administration actions require WordPress capabilities and nonces.
Remote site operations require an authenticated connection key. Read-only
pairing does not enable publishing; writing requires separate permission.
Keys are stored in your WordPress options, so keep your site and database
access protected. You can disconnect or regenerate the connection key from
the plugin settings page.

Which SEO plugins are supported?

Yoast SEO, RankMath, and SEOPress. The plugin auto-detects which is active and reads/writes the correct meta keys for each. If none are installed, standard WordPress fields are used.

How do webhooks work?

Register a webhook URL via POST /webhooks. WordPress then fires an instant HTTP POST to that URL whenever a post is published, updated, or deleted — so RankZoro never needs to poll for changes. Webhooks can be listed (GET /webhooks) and removed (DELETE /webhooks/{id}) via API or from the admin settings page.

How does content decay monitoring work?

Daily reporting is off by default. An administrator can enable it in the
Content Decay Monitor. When enabled, a daily WP-Cron callback reports metadata
for up to 100 published posts older than the configured update threshold
(default: 90 days). You can also request a one-time report with “Run Scan Now”.
See External Services and Privacy for the fields sent to RankZoro.

What schema types are supported for JSON-LD injection?

Article, FAQPage, HowTo, WebPage, BlogPosting, Product, BreadcrumbList, LocalBusiness, Person, Organization, Event. The JSON-LD block is output in <head> automatically on the post’s singular page.

What WordPress REST API endpoints does this add?

All endpoints are under /wp-json/rankzoro/v1/:

Info
– GET /status — health check, plugin version, plan, SEO plugin, webhook count
– GET /site-info — site name, WP/PHP version, active theme, all active plugins, post counts, timezone, decay settings

Posts
– GET /posts — list posts (params: type, status, per_page, page, search, category, tag, author, orderby, order)
– POST /posts — create a post (title, content, excerpt, status, type, date, slug, author, categories, tags, featured_image_url, meta_title, meta_description, focus_keyword, canonical)
– GET /posts/{id} — get single post with full content + schema
– PUT|PATCH /posts/{id} — update post
– DELETE /posts/{id} — delete post (?force=true for permanent)
– POST /posts/{id}/apply-links — inject internal links into content
– POST /posts/{id}/apply-fix — single SEO fix (types: title, content, slug, excerpt, status, meta_title, meta_description, focus_keyword, canonical)
– POST /posts/{id}/bulk-fix — multiple fixes: {"fixes":[{"type":"meta_title","value":"..."},{"type":"focus_keyword","value":"..."}]}
– POST /posts/{id}/apply-schema — inject JSON-LD schema: {"schema":{"@type":"FAQPage","mainEntity":[...]}} | {"action":"delete"} to remove
– GET /posts/{id}/backlinks — find all published posts on this site that link to this post

Taxonomy & Structure
– GET /pages — list published pages
– GET /categories — list all categories
– GET /tags — list all post tags
– GET /authors — list authors (admin, editor, author, contributor) with avatar URLs and post counts
– GET /post-types — list all public registered post types with label, singular, supports, and published count

Media
– POST /media — upload media from URL to WP media library: {"url":"...","filename":"..."}

Webhooks
– GET /webhooks — list registered webhooks
– POST /webhooks — register: {"url":"https://...","events":["post.published","post.updated","post.deleted"]}
– DELETE /webhooks/{id} — remove a webhook

Can I revoke access?

Yes. Click Regenerate API Key on the plugin settings page and update the key in RankZoro’s CMS Connections.

Reviews

There are no reviews for this plugin.

Contributors & Developers

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

Contributors

Translate “RankZoro AI SEO” into your language.

Interested in development?

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

Changelog

2.10.5

  • Distribute administrator JavaScript and CSS as readable, editable source.
  • Document the source files and clarify that no JavaScript/CSS compilation is required.

2.10.4

  • Load administrator JavaScript and styles through WordPress enqueue APIs.
  • Use unique rankzoro identifiers for callbacks, settings, AJAX actions, metadata and private proposals.
  • Preserve earlier settings, metadata, proposals and schedules during upgrades without enabling publishing or reporting.

2.10.3

  • Resolve Plugin Check findings for timezone-safe dates, escaping, URL parsing and temporary-file cleanup.
  • Align the text domain with the WordPress.org plugin slug and remove a deprecated multisite parameter.

2.10.2

  • Include the full GPLv2 license and clarify GPLv2-or-later licensing.
  • Document external services, data transfers, service terms and support.
  • Require separate opt-in for daily stale-content metadata reports.
  • Safely encode JSON-LD output so schema text cannot terminate its script tag.

2.10.1

  • Keep Agent proposals bound to the page inspected for that conversation request.
  • Recover from stalled requests, malformed replies and expired sessions.
  • Support separate WordPress installation and public-site hosts.
  • Hide unsupported variation and review-FAQ actions before charging.

2.4.0

  • Added in-WordPress article generation, editable cloud drafts and a date-grouped content calendar.
  • Added explicit opt-in recurring generation and publishing using the connected RankZoro project and credits.
  • Added duplicate-safe new-post publishing with draft verification and active SEO-plugin metadata adapters.
  • Added pause, cancellation, rescheduling and truthful error states; interrupted operations are not silently retried.
  • Reliable automatic schedules require an always-on cloud worker or an externally scheduled worker; idle Autoscale timers are not sufficient.

2.3.0

  • Added authenticated lookup and current-field snapshot for a WordPress post by its own-site URL.
  • Added reviewed change application with a page-revision check and a post-save verification response.
  • Reviewed edits write metadata only to the active Yoast, RankMath or SEOPress plugin, without removing or replacing it.
  • Content edits are blocked when WordPress would sanitize the approved content or existing content differently, to protect reversibility.

2.2.0

  • Added POST /posts/{id}/apply-schema — inject JSON-LD structured data (Article, FAQPage, HowTo, Product, etc.) into any post; outputs via wp_head on singular pages
  • Added GET /posts/{id}/backlinks — searches post_content across all published posts to find internal backlinks to a given URL
  • Added GET /authors — lists authors (admin/editor/author/contributor) with display name, avatar URL, post count
  • Added GET /post-types — lists all registered public CPTs with label, singular, hierarchical, supports, and published count
  • Added GET /webhooks, POST /webhooks, DELETE /webhooks/{id} — register URLs to receive instant POST notifications on post.published, post.updated, post.deleted events
  • Added content decay cron — daily WP_Cron job finds posts not updated within configurable threshold and POSTs report to RankZoro cloud
  • Added content decay settings to admin UI (threshold, last run date, stale count, manual trigger)
  • Added registered webhooks table to admin UI with per-webhook remove button
  • Updated GET /posts to accept any public registered post type via type param (not just post/page)
  • Updated POST /posts to accept any public registered post type
  • Added has_schema and schema_type fields to all post list/get responses
  • Added full schema object to GET /posts/{id} response when schema is set
  • Added webhooks_count and decay_days/decay_last_run fields to /status response
  • Added activation hook to register content decay cron and initialize webhooks option
  • Added deactivation hook to clear cron schedule
  • Updated capabilities list in admin connected screen

2.1.0

  • Added GET /site-info, GET /tags, POST /posts/{id}/bulk-fix, POST /media
  • Added category, tag, author, orderby, order filters to GET /posts
  • Fixed meta field reads for RankMath and SEOPress sites; fixed canonical for all SEO plugins
  • Fixed post_author hardcoded to 1; added categories+tags to post responses
  • SEO plugin detection badge in admin UI; seo_plugin in /status

2.0.0

  • Full rewrite with cloud token auth (rzwp_ tokens) and two-factor connection flow

1.0.0

  • Initial release