=== RankKit SEO ===
Contributors: speedrank, freemius
Tags: seo, schema, xml sitemap, ai, mcp
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.2.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Complete SEO with a built-in MCP server: AI agents work on your SEO with approval and one-click undo. Your own AI key, no credits.

== Description ==

RankKit SEO is a complete SEO plugin that AI agents can run safely. Its built-in MCP server lets Claude, ChatGPT, Cursor, VS Code or any other MCP client work on your SEO. You decide what an agent may touch, you approve its edits, and you can undo any change.

= Why switch to RankKit SEO =

* **Safe AI agents, built in.** 100+ SEO tools over MCP, no companion plugin. Agent tokens are scoped, every write can be dry-run first, and edits wait for your approval by default. Every change is logged and can be undone, one at a time or as a batch.
* **claude.ai and ChatGPT connect by URL, free.** Sign in through a WordPress consent screen where you pick read-only, content editor or full access.
* **Your AI key, no credits.** Claude, OpenAI, Gemini, OpenRouter or a local model (Ollama, LM Studio, vLLM). No RankKit SEO account and no credits to buy.
* **Light and quiet.** No admin nags. Modules run only when they are on. Front-end CSS loads only on pages that use RankKit SEO's FAQ, How-to or Table of contents blocks.
* **Works where you build.** Gutenberg, Classic Editor and Elementor get a native SEO panel. Content analysis also reads Divi, Oxygen, Breakdance and Bricks pages.
* **Multilingual.** WPML, Polylang and TranslatePress: hreflang, og:locale alternates and language-aware sitemaps.
* **Easy to move to.** Import from Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, Slim SEO or Squirrly SEO in one click, with a backup first. The import can be undone.

= On-page SEO and the editor =

* SEO titles, meta descriptions, robots, canonical URLs, Open Graph and X (Twitter) cards, with templates and variables such as %title% and %sitename%.
* Live content analysis with unlimited focus keywords, a score per keyword and a warning when another post already targets the same keyword.
* "Explain with AI" on every recommendation.
* Search, Facebook, X, LinkedIn and Pinterest previews.
* SEO panel in the block editor sidebar, the Classic Editor meta box and an Elementor drawer.
* FAQ, How-to and Table of contents blocks (and Elementor widgets) that output FAQPage, HowTo and table-of-contents schema, with no front-end JavaScript.
* External link rules: nofollow, sponsored, ugc and new-tab for outgoing links, with allow and deny lists.
* Bulk editor for titles, descriptions and focus keywords, plus a duplicate titles and descriptions report.

= Schema =

* JSON-LD graph: Organization or Person, LocalBusiness, WebSite, WebPage types, Article types, Product for WooCommerce, BreadcrumbList and FAQPage.
* Schema manager on every post: Article, BlogPosting, NewsArticle, FAQPage, HowTo, VideoObject, Review, Recipe, Event, Course, SoftwareApplication, Product, Person, Service, JobPosting or your own JSON-LD.
* Schema validator that shows the final graph, errors and recommendations, with a link to Google's Rich Results Test.
* Import schema from any URL and map it to your post.

= Local SEO and WooCommerce =

* Business details, opening hours (split hours, 24-hour days, closed days) and LocalBusiness schema.
* `[speedrank_local]` shortcode and Business info block, and a locations.kml sitemap.
* WooCommerce: full Product schema with price, availability, GTIN, brand, images, ratings and reviews; product variables for titles; cart, checkout and account pages kept out of search.

= Sitemaps, indexing and AI search =

* XML sitemaps on top of the WordPress core sitemaps, with noindexed content left out and translations linked as alternates.
* robots.txt editor with switches for AI crawlers such as GPTBot, ClaudeBot, PerplexityBot and Google-Extended.
* llms.txt (per language on Polylang sites), plus Markdown versions of your pages for AI agents.
* IndexNow pings, so Bing and others hear about new content quickly.
* AI crawler analytics: which AI bots read which pages over the last 90 days, split into training, AI search and live user requests.

= Site audit, speed and security =

* Site audit with a 0–100 score across indexing, metadata, content, technical, social, AI search, security and performance, with one-click fixes. It reads your site directly and does not crawl it.
* Optional hardening fixes: turn off XML-RPC, stop user enumeration, turn off the file editor, hide the WordPress version.
* PageSpeed Insights and Core Web Vitals for any URL, with history.
* Competitor analysis: compare a competitor's page with yours, side by side.
* Image SEO: readable alt text from file names, and a list of images without alt text.

= AI with your own key =

* SEO title, meta description and focus keyword suggestions, and image alt text (with vision when your model supports it).
* AI content briefs (intent, outline, questions, entities, content gaps and internal links) and full article drafts, saved as drafts for you to review.
* A daily request limit and a "Pause all AI" switch.

= Google Search Console and Analytics =

* Connect with your own Google Cloud OAuth client or a service account. Access is read-only, and your data goes straight from Google to your site.
* Search Console: clicks, impressions, CTR and position compared with the previous period, with top queries and pages.
* Google Analytics 4: traffic, engagement and visits from AI assistants such as ChatGPT, Perplexity, Claude, Gemini and Copilot.
* Optional GA4 tag installer, an optional dashboard widget, and an optional monthly SEO email report.

= Site management =

* Role manager: choose which roles can edit SEO fields, use AI, see analytics, manage redirects, run the audit, change settings or approve agent changes.
* Backups of settings and SEO data before every import and bulk change, with one-click restore. Export and import everything as JSON.
* Redirect manager with 301, 302 and 307 redirects, and automatic redirects when a slug changes.
* Breadcrumbs (shortcode and template tag) and site verification for Google, Bing, Yandex, Pinterest and Baidu.

= RankKit SEO Pro =

RankKit SEO Pro is an optional paid upgrade with a 14-day free trial. It is a separate plugin download, and this free plugin is complete without it. Pro adds:

* AI visibility tracking: whether ChatGPT, Claude, Gemini and Perplexity mention and cite you, with share of voice against competitors.
* Rank tracker, AI insights and trend analysis, Traffic Recovery briefs for pages losing clicks, and Focus Pages diagnosis.
* Search Console opportunities with one-click fixes, URL inspection and index status for every post.
* AI internal linking, AI metadata written on publish, bulk AI, and the AI FAQ generator.
* Schema templates with display conditions, custom fields in schema (ACF, Meta Box, Pods), and schema import from code.
* News and video sitemaps, llms-full.txt and an AI usage policy.
* Multiple locations, advanced WooCommerce SEO (GTIN, MPN, ISBN, variation offers) and AI referral revenue for WooCommerce.
* Prefix and regex redirects, 308, 410 and 451 responses, a 404 monitor, a 404 catch-all and a broken link checker.
* Audit history and scheduled audits, and email reports on your schedule with your branding.

See [rankkitseo.site/pricing](https://rankkitseo.site/pricing).

= Source code =

The admin screens are written in React and compiled with `@wordpress/scripts`. The uncompiled source is included in the plugin's `src` folder. Run `npm install && npm run build:free` to rebuild it.

== Installation ==

1. In wp-admin, go to Plugins → Add New, search for "RankKit SEO", then install and activate it.
2. Open RankKit SEO → Dashboard and run the site audit.
3. Coming from another SEO plugin? Open RankKit SEO → Tools → Import. RankKit SEO backs up first and can deactivate the old plugin for you.
4. Optional: add an AI key in RankKit SEO → Settings → AI.
5. Optional: turn on agent access in RankKit SEO → AI Agents. Connect claude.ai or ChatGPT by URL, or create a token and paste the setup snippet into your MCP client.

== Frequently Asked Questions ==

= Can I switch from Yoast SEO or Rank Math without losing my SEO? =

Yes. RankKit SEO → Tools → Import finds Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, Slim SEO and Squirrly SEO data. Depending on the source plugin, it copies:

* Titles, meta descriptions and focus keywords.
* Robots settings and canonical URLs.
* Social titles, descriptions and images.
* Primary categories and cornerstone flags.

Exact-match redirects are also imported from Rank Math, Redirection, Yoast SEO Premium and Squirrly. Title variables are converted. RankKit SEO takes a backup first, your old plugin's data is never changed, and the whole import shows in the Change Log, where you can undo it.

= Is the free version limited? =

No. Everything listed above, outside the RankKit SEO Pro section, is fully available with no time or usage limit. RankKit SEO Pro is a separate download that adds the Pro features.

= Does RankKit SEO send my content anywhere? =

Only when you use a feature that needs an outside service. For example, an AI suggestion goes to the AI provider you configured with your own key. There are no RankKit SEO servers, no credits and no tracking. Freemius only receives data if you opt in. The External services section below lists every service, what is sent and when.

= Can an AI agent break my site? =

Agent access is off by default. Each token is limited to the areas you allow and to what its WordPress user can do. With approval mode on, which is the default, nothing an agent proposes goes live until you approve it, and every applied change can be undone.

= Which AI clients can connect? =

claude.ai and ChatGPT connect by URL, and you approve them on a WordPress consent screen. Any MCP client that supports Streamable HTTP also works, including Claude Code, Claude Desktop, Cursor and VS Code; RankKit SEO shows a ready-made setup snippet for each one.

= Do I need to pay for AI? =

No. RankKit SEO uses your own key with Anthropic, OpenAI, Google Gemini or OpenRouter, so you pay the provider directly at their prices. A local model through Ollama or LM Studio costs nothing. AI is optional: every SEO feature works without it.

= Will RankKit SEO slow down my site? =

RankKit SEO adds no front-end JavaScript, apart from the Google Analytics tag if you turn it on. A small stylesheet loads only on pages that use its FAQ, How-to or Table of contents blocks. Modules you switch off do not run. Redirect rules are cached, so each request needs only one lookup.

= Does it work with Elementor, Divi and other page builders? =

Yes. Elementor gets a RankKit SEO drawer inside the editor. For Divi, Oxygen, Breakdance and Bricks, the content analysis, audit and AI features read the builder's content, and you edit SEO fields in the WordPress editor screen.

= Does it work on multilingual sites? =

Yes, with WPML, Polylang and TranslatePress. SEO fields can be translated, and RankKit SEO adds hreflang links (unless your multilingual plugin already does), og:locale alternates and language-aware sitemaps. It has been tested most fully with Polylang.

= Why do I create my own Google Cloud client? =

So your Search Console data goes straight from Google to your site, and no third-party server holds your tokens. Agencies can use one service account across many sites.

= Does llms.txt improve Google rankings? =

No. Google has said llms.txt does not affect Google Search. It helps AI agents and tools read your site.

= What happens when I uninstall RankKit SEO? =

Uninstalling removes RankKit SEO's database tables, options, cached data and scheduled tasks. SEO titles and descriptions stored on posts and terms are kept on purpose, so you don't lose your work if you reinstall.

== Screenshots ==

1. Dashboard: SEO health score, top issues and modules.
2. RankKit SEO panel in the block editor: SEO title, description, permalink and keywords, with Analysis, Schema, Social, Advanced and Write with AI sections.
3. AI Agents: MCP endpoint, scoped tokens and setup snippets for Claude, Cursor and VS Code.
4. Change Log: approve, reject or undo every change.
5. Search Console: clicks, impressions, CTR and position, with top queries and pages.
6. AI crawlers: which AI bots read which pages.

== External services ==

RankKit SEO connects to the services below only when you set up or use the feature that needs them. Nothing is sent when you activate the plugin, and RankKit SEO has no server of its own.

= Google OAuth, Search Console and Google Analytics APIs =

Used to show your Search Console and GA4 data after you connect Google in RankKit SEO → Analytics.

* When you connect, your browser opens accounts.google.com with your OAuth client ID and the requested scopes, which are read-only.
* Your site exchanges the returned code, your client ID and your client secret with oauth2.googleapis.com for tokens. With a service account, your site sends a signed token request instead.
* Tokens are refreshed when a report is loaded.
* Reports call www.googleapis.com/webmasters/v3 with your Search Console property, the date range and, in the editor, the page URL. They also call analyticsadmin.googleapis.com to list your properties and analyticsdata.googleapis.com with your GA4 property and the date range for traffic, engagement and AI-assistant referral reports.
* When you disconnect, the refresh token is sent to oauth2.googleapis.com/revoke.

Google [Terms of Service](https://policies.google.com/terms), [Google APIs Terms](https://developers.google.com/terms) and [Privacy Policy](https://policies.google.com/privacy).

= Google Analytics (gtag.js) =

This service is used only if you enter a GA4 Measurement ID in the settings. Visitors' browsers then load www.googletagmanager.com/gtag/js, which sends page views and the visitor's browser data to Google Analytics. Logged-in editors are not tracked by default.

[Google Analytics Terms](https://marketingplatform.google.com/about/analytics/terms/us/) and [Google Privacy Policy](https://policies.google.com/privacy).

= AI providers =

These are used only after you add your own API key in RankKit SEO → Settings → AI, and only when you or an agent you authorized starts an AI action. Examples are suggesting a title or description, suggesting keywords, explaining a recommendation, writing alt text, writing a content brief or an article draft, comparing a competitor's page, or testing the connection.

Each request sends your API key and the text needed for the task: the post title, up to 6,000 characters of the post's text, the focus keyword, the site name and the tone you chose. A content brief or draft sends the topic and keyword you entered and the titles of related posts on your site; a competitor comparison sends both pages' URLs, titles, descriptions, headings, word counts, schema types and up to 1,500 characters of their text. For alt text, the image file, its file name and the parent page title are sent. Only the provider you selected is contacted:

* Anthropic (api.anthropic.com): [Commercial Terms](https://www.anthropic.com/legal/commercial-terms) and [Privacy Policy](https://www.anthropic.com/legal/privacy).
* OpenAI (api.openai.com): [Terms of Use](https://openai.com/policies/terms-of-use) and [Privacy Policy](https://openai.com/policies/privacy-policy).
* Google Gemini (generativelanguage.googleapis.com): [Gemini API Terms](https://ai.google.dev/gemini-api/terms) and [Privacy Policy](https://policies.google.com/privacy).
* OpenRouter (openrouter.ai). Your site URL is also sent as the referrer: [Terms](https://openrouter.ai/terms) and [Privacy Policy](https://openrouter.ai/privacy).
* OpenAI-compatible server: requests go to the base URL you enter, such as a local Ollama or LM Studio, under that server's own terms.
* WordPress AI connector (WordPress 7.0 and later): requests go to the provider configured in Settings → Connectors, under that provider's terms.

= IndexNow =

This service is used only when you turn on the IndexNow module, which is off by default. When you publish or update a post, or submit URLs from RankKit SEO → Tools, your site sends api.indexnow.org your site's host name, your IndexNow key, the key file's URL and the changed URLs. IndexNow shares these URLs with participating search engines, such as Bing and Yandex. Nothing is sent from sites whose environment type is local or development.

[IndexNow documentation and terms](https://www.indexnow.org/terms) and [Microsoft Privacy Statement](https://privacy.microsoft.com/privacystatement).

= Google PageSpeed Insights =

Used only when you run a speed test in RankKit SEO → Site Audit → Page speed, when an agent you authorized runs one, or once a week for your home page if you turn that option on (off by default). Your site sends www.googleapis.com/pagespeedonline/v5/runPagespeed the URL being tested, the device (mobile or desktop) and, if you entered one, your PageSpeed API key.

[Google Terms of Service](https://policies.google.com/terms), [Google APIs Terms](https://developers.google.com/terms) and [Privacy Policy](https://policies.google.com/privacy).

= Pages you ask RankKit SEO to read =

Competitor analysis and "Import schema from URL" fetch the web page whose address you enter, only when you click Compare or Fetch schema, or when an agent you authorized calls the matching tool. Your site makes one ordinary GET request to that address (and, for competitor analysis, to your own page), with a user agent that names RankKit SEO and your site URL. Nothing else is sent. The site audit also requests a few pages of your own site, such as the home page, to check security and performance settings.

= Freemius =

RankKit SEO uses the Freemius SDK for the optional opt-in, the Pro upgrade and trials. No data is sent unless you opt in, start a trial or buy Pro. If you opt in, Freemius receives your site URL, WordPress and PHP versions, the plugin version, your name and email address, and plugin events such as activation, deactivation and uninstall. This includes any feedback you choose to give. You can opt out at any time.

[Freemius Terms](https://freemius.com/terms/) and [Freemius Privacy Policy](https://freemius.com/privacy/).

== Changelog ==

= 1.2.5 =
* Improved: the plugin uses its full name, RankKit SEO, everywhere.

= 1.2.4 =
* The plugin is now called RankKit SEO. Your settings, SEO data and connections are kept.

= 1.2.3 =
* New: a warning when another SEO plugin (Yoast SEO, Rank Math, All in One SEO and others) is active alongside RankKit SEO, with a one-click deactivate button for each and a link to import its settings first.
* New: an SEO column on the posts and pages lists with the SEO score and focus keyword of every post.
* New: AI Writer and Image SEO have their own pages in the RankKit SEO menu. Image SEO also has a switch for automatic alt text on new uploads.
* New: Markdown versions of pages have their own tab in Settings.
* Improved: the RankKit SEO button in the block editor toolbar uses the full-colour logo.
* Fixed: the Permalink field in the SEO panel shows the slug WordPress will use for a draft, made from its title, instead of staying empty.
* Fixed: the RankKit SEO logo on the opt-in and pricing screens.

= 1.2.2 =
* Improved: the free plugin has no limit on focus keywords per post and keeps 90 days of AI crawler history.
* Improved: site-wide changes requested by AI agents (settings, redirects, robots.txt, backups) always wait for an administrator's approval in the Change Log, even when approval for post edits is turned off.
* Fixed: sitemap links in robots.txt, llms.txt and the dashboard work on sites without pretty permalinks.
* Fixed: the "Disable the file editor" hardening switch now takes effect and turns off immediately, without defining DISALLOW_FILE_EDIT.
* Improved: deactivating the previous SEO plugin after an import needs your explicit confirmation.

= 1.2.1 =
* New: File editor in RankKit SEO → Tools. Edit robots.txt (the generated file, or a real robots.txt in your site root) and, on Apache and LiteSpeed servers, .htaccess. RankKit SEO keeps the last five .htaccess versions for one-click restore and puts the previous file back automatically if your home page stops loading after a save.
* New: Site Kit by Google integration. If Site Kit is connected, RankKit SEO can use its Google connection for Search Console and GA4 instead of a separate sign-in.
* New: a Bulk editor shortcut on the Tools page for editing SEO titles and descriptions of many posts at once.

= 1.2.0 =
* New: the RankKit SEO panel in the block editor now slides up from the bottom of the screen, with General, Analysis, Schema, Social, Advanced and Write with AI sections.
* New: AI assistant in the editor. Pick the content type and tone, then generate the SEO title, meta description and focus keywords in one click, or get an editor's review of the content with a quality score and concrete improvements.
* New: Write with AI. Write a complete, SEO-ready article for the post with your own AI provider, review it, then insert it into the editor.
* New: Schema section to generate the page's schema type, add rich-result schema, import schema from any live page, and validate it.
* New: Advanced options per post: redirect this post, hide it from the site's own search results or archive pages, and override robots meta (noindex, nofollow, noarchive, nosnippet, noimageindex).
* Improved: a new, empty post shows "Not analysed yet" instead of a low SEO score until it has a title and content.

= 1.1.3 =
* New: the new RankKit SEO logo in the admin menu, the RankKit SEO header, the editor sidebar button and the agent connection screen.

= 1.1.2 =
* Fixed: exports and backups no longer include the PageSpeed API key or the IndexNow key, as the Export & import card promises.
* Fixed: messages about a missing AI key now point to Settings → AI provider.
* Fixed: the Pro Opportunities report showed twice on the Analytics page.
* Improved: the Google sign-in steps warn that Google ends sign-ins after 7 days while the OAuth consent screen is in Testing, and the error says how to fix it.

= 1.1.1 =
* Fixed: title and description templates lost characters when saved. For example, %category% became "tegory%" and %date% became "te%".
* Fixed: descriptions built from %excerpt% ran the text of neighbouring paragraphs, headings and list items together ("end of para.Start of next").
* Fixed: /llms-full.txt redirected to the home page when llms-full.txt was off or not available. It now returns a plain 404.
* Fixed: redirects waiting for approval showed as "Redirect #0" in the Change Log. They now show their paths, such as "Redirect /old-page → /new-page".
* Fixed: deleting the plugin after deactivating it with WP-CLI left RankKit SEO's tables and settings behind. Deleting the plugin now always cleans up.

= 1.1.0 =
* New free features: Schema manager on every post (16 types plus custom JSON-LD), schema validator and schema import from a URL.
* New free features: FAQ, How-to and Table of contents blocks and Elementor widgets, up to 5 focus keywords, social previews for Facebook, X, LinkedIn and Pinterest, and "Explain with AI" on every recommendation.
* New free features: AI content briefs and article drafts, a bulk editor, a duplicate titles and descriptions report and external link rules.
* New free features: Local SEO (business info, opening hours, shortcode, block, KML sitemap), full WooCommerce Product schema, and WPML, Polylang and TranslatePress support.
* New free features: Google Analytics 4 reports with AI-assistant referrals, PageSpeed Insights, competitor analysis, a dashboard widget and a monthly email report.
* New free features: role manager, backups with one-click restore, JSON export and import, and Squirrly SEO import.
* claude.ai and ChatGPT now connect by URL in the free plugin. The MCP server now has more than 100 tools.
* Pro: rank tracker, AI insights, Traffic Recovery, Focus Pages, index status, schema templates and custom fields, news and video sitemaps, broken link checker, 404 catch-all, audit history and AI referral revenue for WooCommerce.
* Fixed: the "translation loading too early" notice on some sites.

= 1.0.5 =
* The free plugin no longer contains RankKit SEO Pro code. Pro features ship only in the RankKit SEO Pro download.
* The free plugin's admin and editor screens load a smaller bundle without the Pro screens.
* Security: head tags are escaped at output, JSON-LD is printed with the core inline-script helper, and llms.txt responses send `nosniff`.
* Security: AI alt text checks that you can edit the image. Users who can't manage options now only see change-log entries for content they can edit.
* Security: classic meta box and term fields are sanitized when they are read, settings keep their shape when invalid data is posted, and service-account tokens are only requested from Google.
* Change-log, 404 and AI-answer queries are fully prepared. Imported data from other plugins is read without allowing PHP objects.
* Deactivating the plugin now clears pending IndexNow and AI visibility tasks.
* The plugin now loads right-to-left stylesheets on RTL sites.

= 1.0.4 =
* Every section of the admin menu now fits on laptop screens.

= 1.0.3 =
* Activating RankKit SEO Pro while the free plugin is active now switches over cleanly instead of failing.

= 1.0.2 =
* The free build no longer contains any switch that turns on Pro features.

= 1.0.1 =
* Connected to Freemius for RankKit SEO Pro licensing and updates.
* Uninstall cleanup now runs through Freemius so uninstall feedback is recorded.

= 1.0.0 =
* First release.

== Upgrade Notice ==

= 1.2.5 =
The full name RankKit SEO is now used everywhere in the plugin.

= 1.2.4 =
The plugin is now called RankKit SEO. Nothing else changes and your data is kept.

= 1.2.3 =
A warning when other SEO plugins are active, an SEO column on post lists, AI Writer and Image SEO pages, and fixes for draft permalinks and the logo.

= 1.2.2 =
Unlimited focus keywords and 90 days of AI crawler history in the free plugin, and site-wide AI agent changes always wait for your approval.

= 1.2.1 =
Adds a robots.txt and .htaccess file editor and a Site Kit by Google integration.

= 1.2.0 =
A new SEO panel in the block editor with an AI assistant, Write with AI, schema generation and per-post visibility and robots options.

= 1.1.3 =
Brings the new RankKit SEO logo.

= 1.1.2 =
Keeps the PageSpeed and IndexNow keys out of exports and backups, fixes a duplicated Analytics report and explains the 7-day Google sign-in limit.

= 1.1.1 =
Fixes title templates that lost characters such as %category%, run-together excerpts, the /llms-full.txt redirect, "Redirect #0" labels and cleanup after a WP-CLI deactivation.

= 1.1.0 =
A large free update: schema manager, content blocks, Local SEO, WooCommerce schema, multilingual support, GA4 and claude.ai/ChatGPT connection by URL.

= 1.0.5 =
Security hardening and a lighter free plugin with no Pro code inside. Recommended for all sites.
