Rank Authority SEO Connector

Sharraxaad

Rank Authority SEO Connector links your WordPress site to the Rank Authority Dashboard. It provides REST API endpoints for publishing, updating, and deleting blog posts directly from your dashboard, plus IndexNow key-file support for search engine discovery workflows.

This plugin is a connector: the content optimization itself happens in the Rank Authority Dashboard, which is a paid third-party service and requires an account. See the External Services section below for every remote endpoint the plugin contacts and what is sent to it.

New in 1.0.61: The update endpoint no longer accepts a post_meta parameter, which previously allowed an authenticated request to write almost any post meta key with an unchecked value. Restoring a page builder layout now uses a copy the plugin saves when it clears the layout, so values sent with a request can no longer reach meta that page builders render as CSS or widgets.

Previously in 1.0.60: Removed arbitrary CSS handling entirely — the publishing endpoint no longer stores <style> blocks from submitted HTML, and nothing prints stored CSS into the page. Markup returned by the recommendation service is now filtered with wp_kses_post() before it is inserted, recommendations may only set attributes on an allow list, and JSON-LD is hex-escaped so no value can break out of its script block.

Previously in 1.0.59: Plugin display name changed to “Rank Authority SEO Connector” to describe the plugin itself. Hardened bearer-token authentication so an empty stored token can no longer be matched by an empty Authorization: Bearer header, and documented every external service the plugin contacts.

Previously in 1.0.58: SSR link recommendations now fall back to the visible anchor text when their CSS selector does not match the live DOM (parity with content/heading recommendations), improving link-optimization reliability on CMS-connected sites.

Previously in 1.0.57: Added an authenticated GET /ra/v1/content?slug=<slug> route that returns a published post/page body together with its SEO metadata (effective title, meta description, canonical, focus keyphrase) in one call. This lets the Rank Authority scanner audit title/meta-description tags for CMS-connected sites, which the public wp/v2 REST body does not expose. The GET /ra/v1/post/{id} response now also includes seo_title and canonical.

Previously in 1.0.56: RA-driven deletions now unpublish the post to draft (restorable) instead of permanently deleting it, while still serving 410 for the URL. Also added an authenticated GET /ra/v1/inventory route returning paginated published permalinks across all public post types, giving the Rank Authority Dashboard an authoritative URL list for Missing-page detection.

Previously in 1.0.55: GEO page and category templates now render on an explicit light surface (white card with dark base text). Generated GEO content assumes a light background, so themes that force a dark body background (e.g. a custom header with body { background: #000 }) were leaving the text invisible or near-black-on-black — the templates now guarantee readable contrast on any theme.

Previously in 1.0.54: Fixed the one-click self-update (POST /ra/v1/upgrade) leaving the plugin deactivated after a successful update. WordPress silently deactivates a plugin before swapping its files, and the REST-triggered path had no admin redirect to restore it — the plugin now records its active state and re-activates itself after the update (network-active sites included).

Previously in 1.0.53: Hardened server-side rendering (SSR) against page builders. Inline <script>, <style>, <svg>, and <noscript> blocks are now shielded from the HTML parser round-trip, so Elementor/Divi-style HTML widgets whose scripts contain markup (e.g. template literals with </div>) are preserved verbatim instead of leaking into the visible page. JSON-LD is unaffected and still updated in place.

Previously in 1.0.52: Fixed one-click self-update (POST /ra/v1/upgrade) wrongly reporting “already up to date” on sites that were behind — it now checks wordpress.org directly and force-installs the latest package even when the cached update metadata is empty (e.g. a non-rank-authority folder name or a stale update check).

Previously in 1.0.51: Added an authenticated POST /ra/v1/posts/bulk-delete endpoint so the Rank Authority Dashboard can remove multiple posts/pages by slug in one request. Deleted URLs are now recorded and served an HTTP 410 Gone response (instead of a 404) to signal a permanent, intentional removal for faster, cleaner deindexing; the marker is automatically cleared if a URL is later reused by a published post.

Previously in 1.0.50: Publish (POST) now accepts an optional slug parameter so the Rank Authority Dashboard can set a custom post permalink when the user specifies one; WordPress still auto-suffixes collisions as usual.

Previously in 1.0.49: One-click plugin self-update via POST /ra/v1/upgrade, filesystem-method pre-check for FTP/SSH sites, and reverse-proxy HTTPS detection via X-Forwarded-Proto / X-Forwarded-SSL.

Previously in 1.0.47: SEO recommendations are now applied server-side (SSR). The optimized title, meta tags, content, and internal/external links are written directly into the page HTML on the server, so every crawler (including non-JS crawlers and social scrapers) sees the optimized markup. The dashboard toggle now controls whether recommendations are applied — the legacy client-side script is no longer injected. Body-level changes are scoped to the post content region, and the result integrates with full-page caches (e.g. WP Rocket) so it is what gets cached.

Previously in 1.0.46: Maintenance release consolidating stored JSON-LD schema rendering into output_schema_markup(); front-end schema and RankLink output behavior is unchanged from 1.0.45.

Previously in 1.0.45: RankLink front-end performance and accuracy pass—single-pass content scan shared between the schema graph and the head summary meta, cached site host/scheme on link normalization, and per-anchor placement attribution based on the enclosing wrapper instead of attribute-occurrence heuristics.

Previously in 1.0.44: RankLink support—internal-link markers survive sanitization, optional JSON-LD relatedLink / significantLink, REST aliases at /ra/v1/page/{id}, and front-end summary plus ?ra_highlight=1 QA styling.

Key Features

  • Secure Token-Based Authentication: Uses Bearer token authentication for secure API access
  • Publish Posts: Create new blog posts directly from the Rank Authority Dashboard
  • Update Posts: Modify existing published posts with new content
  • Delete Posts: Remove posts from your WordPress site
  • IndexNow Key File Support: Configure and serve the IndexNow key file at /{key}.txt for compatible search engine discovery workflows
  • Dashboard Bootstrap Connection: Let administrators complete first-time dashboard connections through an HTTPS-only bootstrap endpoint
  • RSS / WebSub: RSS 2.0 feeds declare a PubSubHubbub (WebSub) hub link so update-friendly services can discover feed changes faster
  • Server-Side Optimization: When enabled, approved recommendations are applied to the rendered page HTML on the server; no third-party script is loaded in visitors’ browsers
  • Owner Controls: Token owner can manage visibility and regenerate tokens
  • HTTPS Required: All API requests require HTTPS for security

How It Works

  1. Install and activate the plugin
  2. Navigate to WordPress Admin Rank Authority
  3. Copy your unique connection token
  4. Use the token in your Rank Authority Dashboard to connect your WordPress site
  5. Start publishing content directly from your dashboard!

Security Features

  • Bearer token authentication
  • HTTPS requirement for all API requests
  • Token regeneration capability
  • Owner-based access controls

External Services

This plugin relies on the Rank Authority service to optimize your content. The endpoints below are every remote host the plugin contacts, what is sent to each, and when.

1. Rank Authority snippet CDN — https://dc23q3bsr9o1t.cloudfront.net/snippets

  • Purpose: retrieve the approved SEO recommendations and JSON-LD for the page currently being rendered.
  • Data sent: your Rank Authority website ID and a SHA-256 hash of the current page URL (as part of the request path). No visitor data, IP logging, or cookies are sent by the plugin.
  • When: on a front-end page render, only when “Enable SEO Tracking” is on and a website ID is connected. The result is cached in a transient for one hour (15 minutes for a miss), so it does not run on every page view.

2. Rank Authority snippet API — https://backend.rankauthority.com/public/snippet

  • Purpose: fallback lookup used only when the CDN has no snippet for the page.
  • Data sent: your website ID and the cleaned page URL as query parameters (website_id, page_id). Tracking parameters such as utm_*, gclid, fbclid, and msclkid are removed first.
  • When: same conditions and caching as the CDN lookup above.

3. Rank Authority Dashboard — https://rankauthority.com

  • Purpose: the dashboard that publishes and updates your content. It calls into your site’s ra/v1 REST endpoints using the bearer token you copy from the plugin settings; the content you publish and the metadata returned by those endpoints (post bodies, permalinks, SEO title and meta description) travel over that connection.
  • Data sent: only what your dashboard requests, and only after you connect the site with the token.
  • When: on demand, when you act in the dashboard.

4. Google Fonts — https://fonts.googleapis.com

  • Purpose: the Inter webfont used by the plugin’s own settings screen in wp-admin.
  • Data sent: the request is made by the administrator’s browser, which exposes their IP address and user agent to Google.
  • When: only while viewing the Rank Authority settings screen in wp-admin. It is not loaded on the front end.

Rank Authority is a third-party paid service operated by Rank Authority. By connecting your site you agree to its terms:

  • Terms of Service: https://rankauthority.com/terms-of-service/
  • Privacy Policy: https://rankauthority.com/privacy-policy/

The plugin also declares a WebSub hub (https://pubsubhubbub.appspot.com/) in your RSS feed so feed subscribers can discover updates faster. The plugin itself sends no data to that hub; it only advertises the link in the feed.

Support

For support, please visit https://rankauthority.com or email support@rankauthority.com

Credits

Developed by Rank Authority
Website: https://rankauthority.com

Rakibaad

Automatic Installation

  1. Log in to your WordPress admin panel
  2. Navigate to Plugins Add New
  3. Search for “Rank Authority”
  4. Click “Install Now” and then “Activate”

Manual Installation

  1. Download the plugin ZIP file
  2. Log in to your WordPress admin panel
  3. Navigate to Plugins Add New
  4. Click “Upload Plugin”
  5. Choose the ZIP file and click “Install Now”
  6. Activate the plugin

After Installation

  1. Go to WordPress Admin Rank Authority
  2. Copy your connection token
  3. Use this token in your Rank Authority Dashboard to connect your site

SBI

How do I get my connection token?

After installing the plugin, navigate to WordPress Admin Rank Authority. Your unique token will be displayed on the settings page.

Is my site secure with this plugin?

Yes! The plugin uses Bearer token authentication and requires HTTPS for all API requests. Only users with the token can access the API endpoints.

Can I regenerate my token?

Yes, any administrator with manage_options capability can regenerate the token from the plugin settings page. This will invalidate the old token. Token reset is no longer restricted to the plugin owner only.

What happens if I disconnect?

When you disconnect from the Rank Authority Dashboard, the website_id will be removed and SEO scripts will stop being injected into your site.

Can multiple users connect to the same site?

The plugin supports site-level connection. The last user to connect will overwrite the previous website_id. For team collaboration, consider using a shared account.

Privacy & Tracking

Applying SEO recommendations is disabled by default. Until you check “Enable SEO Tracking” in the plugin settings and connect the site with a website ID, the plugin makes no requests to the Rank Authority snippet CDN or API.

Once enabled, each front-end page render looks up recommendations for that page. The lookup sends your website ID and the page URL (a SHA-256 hash of it on the CDN path, the URL itself on the API fallback). Tracking parameters such as utm_*, gclid, and fbclid are stripped before the lookup, results are cached for one hour, and no visitor IP addresses, cookies, or personal data are sent by the plugin. Unchecking the option or disconnecting the site stops the lookups immediately.

Note that the plugin settings screen in wp-admin loads a webfont from Google Fonts. That request is made by your browser when you view that one screen, and it happens regardless of the tracking setting. See the External Services section for details.

Dibu-eegisyo

19 Janaayo, 2026
I’ll be honest, I put off SEO for way too long. Between running my business and hearing horror stories about companies overpromising and underdelivering, it just never felt worth the stress. Rank Authority was the first company that actually made it feel simple and doable. What really stood out to me is that they don’t just focus on Google rankings, but also help you get found on AI platforms like ChatGPT and Perplexity — something I hadn’t even thought about before. Getting started was easy, and I didn’t feel overwhelmed at all. Since using Rank Authority, I’ve noticed real improvements in visibility and traffic, and customers are finding us in places we weren’t showing up before. If you’re a business owner who’s been putting SEO off or got burned in the past, I’d genuinely recommend giving them a try.
16 Janaayo, 2026
I’m honestly blown away by what this SEO company has done for my business. I originally hired them to help me rank better on Google and that alone has been a huge win, but what really impressed me is how they also optimize for AI-based searches. That’s something most companies aren’t even thinking about yet. They’ve made my website stronger, more visible, and way more competitive online. I’ve seen improvements in traffic, ranking, and overall online presence, and they’ve been consistent, professional, and easy to work with the entire time. If you want real SEO results and you want your business to stay relevant in the AI era, I highly recommend them.
14 Janaayo, 2026
I own a laser cleaning business and I’ll be honest, I put off dealing with SEO for way too long. I knew we needed more visibility on Google but every time I looked into it, it felt overwhelming or I’d get burned by someone promising the world and delivering nothing. A friend sent me a link to Rank Authority one day. I clicked through, read what they had to say, and it just made sense. No hype, no confusing tech talk. So I figured why not give it a shot. What caught my attention is that it’s not just about ranking on Google. Their platform also helps you get found on AI platforms like ChatGPT and Perplexity — which honestly I hadn’t even thought about until they explained it. That’s where a lot of people are searching now, so it made sense to cover all the bases. I’m actually seeing results. We’re showing up for searches we never ranked for before. Customers are finding us in places we didn’t even exist before. The best part is how easy it is. It’s basically a one-click solution. I connected my site, turned it on, and it does its thing. The platform has a ton of features — way more than I expected — but it’s laid out so simple that I actually use it without feeling lost. I’ve got a business to run and I don’t have time to learn algorithms and keywords. This just works. If you’re a small business owner like me who’s been putting this off or got burned before, just give them a shot.
Akhri dhammaan 3 dibu-eegis

Ka-qaybgalayaasha & Horumariyayaasha

“Rank Authority SEO Connector” waa softiweer il furan. Dadka soo socda ayaa wax ku biiriyay kaabahan.

Ka-qaybgalayaasha

Ku tarjun “Rank Authority SEO Connector” luqaddaada.

Ma xiisaynaysaa horumarinta?

Baadh koodka, fiiri bakhaarka SVN, ama iska qor diiwaanka horumarinta adigoo adeegsanaya RSS.

Isbeddellada

1.0.61

  • Security: removed the post_meta parameter from the update endpoint. It accepted any meta key outside a short blocklist and wrote the value unchanged, which let an authenticated request set meta that themes and page builders render on the frontend. The rank_authority_post_meta_blocklist filter is removed with it
  • Security: restoring a page builder layout no longer writes values from the request. When the plugin clears builder meta it now keeps its own copy on the post, and a restore reads that copy, so request input never reaches keys such as _wpb_shortcodes_custom_css, _wpb_post_custom_css, or _elementor_data, which builders emit as CSS or render as widgets
  • The update endpoint still accepts builder_meta and the response still reports cleared_builder_meta, so existing integrations keep working; the submitted values are ignored in favour of the stored copy
  • The stored builder copy is removed once a restore applies it, and on uninstall
  • The update response reports builder_restored: true when a restore applied the stored copy, false when this site had none to restore from (layouts cleared by an earlier version), and null when no restore was requested

1.0.60

  • Removed arbitrary CSS handling: the publishing endpoint no longer extracts <style> blocks from submitted HTML into post meta, and the plugin no longer prints stored CSS into wp_head. Rows written by earlier versions are deleted on upgrade
  • Security: markup supplied by the recommendation service is now filtered through wp_kses_post() before it is inserted into a page, so script tags, event-handler attributes, and disallowed protocols cannot reach the rendered HTML
  • Security: recommendations may only set attributes on an allow list. Event handlers, style, srcdoc, and formaction are refused outright, and href / src values are restricted to http, https, mailto, and tel
  • Security: element re-tagging is limited to layout and text tags, so a recommendation can no longer rename an element to script
  • Security: JSON-LD is emitted with JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, and JSON_HEX_QUOT, so no schema value can terminate the surrounding script block
  • Removed a step that rewrote \u003C-style escapes in the raw snippet response before decoding it; json_decode() already resolves them, so the rewrite only undid escaping the transport had applied
  • Schema supplied as HTML is now decoded and validated at save time, so post meta holds JSON data instead of <script> markup
  • Fixed SSR page titles losing a literal &: the title was written by assigning nodeValue, which libxml reads as entity references, so “Tips & tricks” was rendered as “Tips tricks”. Titles are now written as a text node
  • Fixed element re-tagging acting on the wrong tag: a new_selector such as h2.title took the last token and produced a <title> element inside the body (and div.wrapper produced <wrapper>). Re-tagging now applies only to recognised layout and text tags and is skipped otherwise, leaving the original element untouched
  • Coding standards: json_encode() calls replaced with wp_json_encode(), admin banner output escaped, and the ra_highlight query flag unslashed and sanitized

1.0.59

  • Renamed the plugin display name to “Rank Authority SEO Connector” so it describes the plugin itself rather than the wider platform, and removed the Plugin URI header, which pointed at a page that no longer exists
  • Security: bearer-token authentication now rejects the request when the stored token is empty, instead of treating an empty Authorization: Bearer header as a match
  • Documented every external service the plugin contacts (snippet CDN, snippet API, dashboard, Google Fonts) in a dedicated External Services section, including what is sent and when
  • Corrected the feature list and privacy notes to match current behaviour: recommendations are applied server-side and no third-party script is loaded for visitors
  • Coding standards: swapped parse_url(), strip_tags(), and unlink() for their WordPress equivalents, unslashed and sanitized every $_SERVER read, escaped the IndexNow key-file body, and set explicit versions on the registered admin assets
  • Tested against WordPress 7.0

1.0.58

  • SSR: link recommendations now fall back to the visible anchor text when their CSS selector does not match the live DOM (parity with content/heading recommendations), improving reliability on CMS-connected sites

1.0.57

  • Added authenticated GET /ra/v1/content?slug=<slug> route: returns a published post/page body plus SEO metadata (effective seo_title, meta_description, canonical, yoast_keyword) in one call, so the Rank Authority scanner can audit title/meta-description tags for CMS-connected sites (the public wp/v2 body does not carry <head> metadata)
  • GET /ra/v1/post/{id} (and /ra/v1/page/{id}) responses now also include seo_title and canonical, resolving Yoast / RankMath / AIOSEO meta with a post-title / permalink fallback
  • SEO title falls back to the post title when the stored value is an unexpanded template (e.g. Yoast %%title%%, RankMath %title%)

1.0.56

  • RA-driven post/page deletion now unpublishes to draft (restorable) instead of permanent delete, while the URL still serves 410
  • Added authenticated GET /ra/v1/inventory route returning paginated published permalinks across all public post types, for authoritative URL inventory

1.0.55

  • GEO page template (page-geo.php): the article now has its own light surface — white background, dark base text color, padding, and rounded corners — so dark-themed sites (or themes whose custom header forces body { background: #000 }) can no longer render the generated GEO content invisible
  • GEO category template (category-geo.php): archive content wrapped in the same light surface; post titles and the page title get explicit dark colors instead of inheriting theme colors designed for a dark background
  • Links without inline colors inside GEO content get a dark fallback color so theme link colors meant for dark backgrounds stay readable on the light surface

1.0.54

  • Fixed POST /ra/v1/upgrade leaving the plugin deactivated after a successful self-update: WordPress’ Plugin_Upgrader silently deactivates the plugin before replacing its files (deactivate_plugin_before_upgrade on non-cron contexts), and the REST path had no admin redirect to reactivate it
  • The endpoint now captures the pre-upgrade active state (including network-activation on multisite) and silently re-activates the plugin after the files are swapped, matching how a normal admin update preserves an active plugin
  • If re-activation fails, the endpoint returns an error instead of reporting success, so the dashboard never shows a healthy connection while the plugin is actually inactive

1.0.53

  • SSR robustness: inline <script>, <style>, <svg>, and <noscript> blocks are stashed behind comment tokens before the DOMDocument load/save round-trip and spliced back verbatim afterward, so libxml can no longer mangle page-builder HTML widgets whose scripts embed markup (template literals containing </div>, etc.) — this was leaking raw JS into the rendered page on Elementor homepages
  • JSON-LD <script type="application/ld+json"> is deliberately left in the DOM so it is still located and updated in place; no change to title/meta/canonical/content/link recommendation behavior

1.0.52

  • Fixed POST /ra/v1/upgrade falsely reporting “already up to date” on sites that were genuinely behind: the self-update now queries wordpress.org directly via plugins_api() and compares with version_compare() instead of relying on WP’s cached update_plugins transient (which stays empty when the plugin folder slug differs from rank-authority or the update cron check is stale/blocked)
  • The wp.org package is injected into the update transient keyed by the actual installed plugin file before running Plugin_Upgrader, so the upgrade proceeds even when WP’s own update check never flagged it

1.0.51

  • Added authenticated POST /ra/v1/posts/bulk-delete endpoint: removes multiple posts/pages by slug in a single request, resolving each slug via the site’s permalink structure (url_to_postid()), hierarchical page path, then post_name fallback, and returning per-slug deleted / not_found / failed results
  • Deleted URLs are now recorded and served an HTTP 410 Gone response on the front end (via template_redirect at priority 0, before canonical redirects and 404 handling) instead of a 404, signaling a permanent/intentional removal to search engines for faster, cleaner deindexing — the homepage is never marked gone
  • The gone marker is recorded BEFORE deletion (since get_permalink() is empty afterward) for both single and bulk deletes, and is automatically cleared on publish/update when a URL is reused by a live post so it serves 200 again

1.0.50

  • Added optional slug parameter on publish (POST): when the Rank Authority Dashboard sends a custom slug, it is applied via post_name (sanitized with sanitize_title()); omitted slug still derives from the title as before, and WordPress handles collision suffixing automatically

1.0.49

  • Added authenticated POST /ra/v1/upgrade endpoint so the Rank Authority Dashboard can trigger a one-click plugin self-update from wordpress.org (runs WP’s Plugin_Upgrader; reports the resulting version, or reports “already up to date” when no update is pending)
  • Self-update now pre-checks the filesystem method and returns a clear error when the site requires FTP/SSH credentials (instead of failing opaquely), and guards against concurrent upgrade requests with a short-lived lock
  • Reverse-proxy/load-balancer compatibility: HTTPS detection on authenticated and bootstrap endpoints now honors the X-Forwarded-Proto/X-Forwarded-SSL headers so sites that terminate TLS upstream are no longer wrongly rejected

1.0.48

  • Added author selection: publish (POST) and update (PUT) handlers now honor an explicit author field from the Rank Authority Dashboard, applying it only when it resolves to a real, publish-capable user (otherwise the create default or the live post author is preserved)
  • Added authenticated GET /ra/v1/authors endpoint returning all publish-capable users (id, name, slug, email) for author selection in the dashboard
  • Hardened post creation: wp_insert_post() is now called with $wp_error = true so a failed insert returns a WP_Error instead of silently passing a 0 post ID

1.0.47

  • Server-side rendering (SSR): approved SEO recommendations are now applied to the rendered page HTML on the server (new includes/class-ra-ssr-optimizer.php), so optimized title/meta/content/links are present in the raw source for all crawlers — a faithful port of the previous client-side script
  • Body-level recommendations are confined to the WordPress post content region (via the_content markers, with a content-container fallback) so theme chrome (header/nav/footer) is never modified
  • Dashboard toggle repurposed: “AI SEO Optimization” now controls whether recommendations are applied server-side rather than whether a tracking script is injected; the legacy client-side script is no longer enqueued
  • Full-page cache integration: SSR output is applied through the rocket_buffer filter so it is what WP Rocket caches, with an idempotency marker (<!--ra-ssr-applied-->) to prevent double application across nested buffers/caches
  • Caches are purged automatically when the toggle (or website_id) changes so the new state takes effect immediately
  • Data source is unchanged from the client script: CDN snippet first (sha256 of the cleaned URL), public API fallback, cached in a transient

1.0.46

  • Internal: Stored schema markup rendering (HTML script blocks, raw JSON, and array-of-schemas) is consolidated back into output_schema_markup(); the render_stored_schema_markup() helper was removed with no change to emitted JSON-LD or RankLink supplemental graph output

1.0.45

  • Front-end: RankLink content is now scanned once per request and the result is shared between the JSON-LD schema graph and the <meta name="ra-ranklink"> summary, eliminating a duplicate preg_match_all pass on every singular page render
  • Front-end: Site host and scheme are computed once per request when normalizing internal RankLink URLs instead of calling home_url() / parse_url() for every anchor
  • Front-end: Placement counts (exact_phrase, paragraph_sentence, related_reading) are now attributed per anchor based on the enclosing wrapper block (with anchor-level data-ra-placement taking precedence), replacing the previous attribute-occurrence heuristic so multi-link wrappers and self-tagged anchors are counted correctly
  • Internal: output_schema_markup split into a smaller entry point plus a dedicated render_stored_schema_markup helper for readability; behavior of stored HTML / JSON / array-of-schemas rendering is unchanged

1.0.44

  • RankLink HTML markers (data-ra-link-id, data-ra-block-id, data-ra-placement) are allowed in post content through wp_kses so Rank Authority internal links survive editor saves
  • REST API: Added GET and PUT /ra/v1/page/{id} as aliases of the existing post read/update handlers
  • JSON-LD: When content contains RankLink anchors, outputs supplemental WebPage @graph schema with relatedLink and significantLink for same-site URLs (capped at 20); refactored JSON-LD script output into a shared helper; RankLink graph can emit even when stored post schema meta is empty
  • Front-end: wp_head emits an HTML comment and <meta name="rank-authority-ranklink"> with internal link and placement counts; ?ra_highlight=1 (or true) adds highlight styling for quick visual QA

1.0.43

  • Updated the plugin display name for the WordPress.org listing and WordPress admin plugin screen

1.0.42

  • Added POST /ra/v1/bootstrap for first-time Rank Authority Dashboard connection setup after WordPress administrator authorization
  • Bootstrap responses include the plugin bearer token, website ID, IndexNow setup metadata, permalink status, and plugin version
  • Bootstrap connection setup requires HTTPS and manage_options capability

1.0.41

  • Added authenticated IndexNow configuration and status endpoints for Rank Authority Dashboard setup
  • Serves the stored IndexNow key at /{key}.txt only on an exact path match, without requiring rewrite-rule flushes
  • Connection and IndexNow status responses now include plugin version and IndexNow setup metadata

1.0.40

  • Added POST /ra/v1/posts/bulk-delete endpoint to delete multiple posts or pages by slug in one authenticated request

1.0.39

  • Fixed the Rank Authority settings page layout so WordPress admin navigation and top-level admin chrome keep their normal positioning
  • Scoped the settings page background and spacing to the plugin content area instead of applying layout styles to the whole admin body
  • Hid unrelated third-party admin notices on the Rank Authority settings page and restyled plugin-generated success messages for consistent alignment

1.0.38

  • Schema: Site-level placeholder tokens ([SITE NAME], [SITE URL], [LOGO URL], [PAGE URL]) emitted by the LLM are now resolved to real WordPress values at publish time
  • [LOGO URL] falls back to the site icon (favicon) when no Customizer logo is set; left as a literal token if neither exists to avoid emitting an empty-URL ImageObject
  • Placeholder substitution runs after field-specific replacements on both POST and PUT, recursively walking decoded JSON-LD as well as raw JSON / HTML schema strings
  • Render-time normalization: wp_head now re-applies site-placeholder substitution and refreshes mainEntityOfPage.@id with the current permalink so structured data stays in sync after slug, site name, URL, or logo changes

1.0.37

  • RSS 2.0 feeds: added WebSub (PubSubHubbub) hub discovery (atom:link rel="hub") pointing to the public hub at https://pubsubhubbub.appspot.com/ so hubs and subscribers can receive push-style feed notifications when you publish or update posts
  • Complements 1.0.36 feed behavior (sort by modified date, up to 50 items per feed request)

1.0.36

  • RSS / Atom feeds: main site feed orders posts by last modified date (newest changes first) instead of publish date only
  • Feed requests up to 50 items per request so recently updated posts surface faster for crawlers and subscribers

1.0.35

  • PUT response now always includes schema (stored schema or null)
  • Previously schema was only included when schema was sent in the request

1.0.34

  • Schema publisher.name now replaced with WordPress site name (Settings > General)
  • Schema author fully replaced with WordPress post author as Person (@type Person, name, url)
  • Ensures schema uses your site’s publisher name and post author for consistent structured data

1.0.33

  • PUT update: Page builder meta (Elementor, WPBakery, Divi, Beaver Builder, Bricks) now cleared when updating content so frontend uses post_content
  • PUT response includes cleared_builder and cleared_builder_meta (saved builder data for restore)
  • PUT accepts builder_meta to restore page builder layout (send cleared_builder_meta back to re-apply)
  • PUT accepts post_meta for arbitrary post meta updates (blocklist protects sensitive keys)
  • Elementor CSS file (post-{id}.css) deleted when clearing Elementor meta to avoid orphaned CSS loading
  • Filters: rank_authority_page_builder_meta_keys, rank_authority_post_meta_blocklist

1.0.32

  • GEO page template: Increased top padding to 10rem for better clearance of theme fixed headers
  • Ensures GEO content is fully visible below sticky headers on all themes

1.0.31

  • GEO page template: Increased top padding for theme fixed/sticky headers in public view
  • Fixes content being cut off at top when viewing GEO pages as non-logged-in visitor
  • Applies to both page-geo.php and category-geo.php templates

1.0.30

  • PUT response now includes full updated content (title, content, excerpt, etc.)
  • Auto-clear post cache after POST/PUT so public view shows new content immediately
  • Supports WP Rocket, W3 Total Cache, LiteSpeed Cache; hook rank_authority_post_cache_cleared for custom cache plugins

1.0.29

  • Added GET /ra/v1/post/{id} endpoint to retrieve post or page by ID
  • Returns content, meta_description, schema, yoast_keyword, featured_image, categories, tags, is_geo
  • Works with same Bearer token; supports draft, private, and pending posts/pages

1.0.28

  • GEO page template: Added padding for admin bar so content is not covered when logged in
  • Prevents WordPress toolbar from overlapping page content on GEO pages

1.0.27

  • GEO: When yoast_keyword is not provided, use page title as Yoast focus keyphrase
  • Enables Yoast SEO score display for prompt-based GEO content (no explicit keyword)
  • Applies to both publish and update endpoints

1.0.26

  • GEO content now published as WordPress pages instead of posts
  • Use is_geo: true or include Geo category ID in categories to publish as page
  • GET /ra/v1/geo-category now returns publish_as_page: true for Dashboard compatibility
  • Added templates/page-geo.php for GEO page display (text-focused, no thumbnails)
  • Geo pages marked with _rank_authority_geo meta for identification
  • Delete endpoint works for both posts and pages (unchanged behavior)

1.0.25

  • Fixed admin page layout – scoped CSS reset to plugin content only
  • Prevents WordPress admin nav and sidebar from being misaligned on Rank Authority settings page

1.0.24

  • Publisher logo dimensions now scaled to fit Google guideline (max 600px width)
  • Prevents Search Console structured data validation warnings for oversized logos

1.0.23

  • Schema mainEntityOfPage.@id now replaced with actual published post URL
  • Publish and update post API responses now include final schema (JSON) in response
  • Ensures schema references the correct permalink for SEO and rich results

1.0.22

  • Schema mainEntityOfPage.@id now replaced with actual published post URL
  • Publish and update post API responses now include final schema (JSON) in response
  • Ensures schema references the correct permalink for SEO and rich results

1.0.21

  • Schema mainEntityOfPage.@id now replaced with actual published post URL
  • Publish and update post API responses now include final schema (JSON) in response
  • Ensures schema references the correct permalink for SEO and rich results

1.0.20

  • Schema image replacement – replaces placeholder images with actual uploaded URLs
  • Supports featured_image_url, images, and images_urls parameters for schema image swap
  • Schema logo replacement – replaces publisher.logo with WordPress site logo from Customizer when available
  • Keeps ImageObject structure for logo (url, width, height)
  • Full support for @graph schema format (BlogPosting, FAQPage, etc.)

1.0.19

  • Fixed Geo exclusion on /blog and custom Blog pages
  • Applies to pages whose slug contains “blog” or “news” (e.g. /blog, /blog-2, /news, /news-en)
  • Filters: ra_geo_exclude_page_slugs (exact match), ra_geo_exclude_slug_contains (partial match)
  • Applies to main query and secondary queries (custom page templates, page builders)

1.0.18

  • Exclude Geo category posts from main blog/posts page
  • Blog page now shows only non-Geo posts – Geo posts visible only at /category/geo/
  • Prevents image-less GEO content from appearing in blog listing

1.0.17

  • Added Geo category for Generative Engine Optimization (GEO) content
  • Auto-creates “Geo” category on plugin install and update
  • Geo category archive uses custom template – text-only list without thumbnails
  • Added GET /ra/v1/geo-category API endpoint to fetch Geo category ID for Dashboard
  • Use Geo category for AI-optimized posts without featured images

1.0.16

  • Added loading overlay and progress indicator for token reset functionality
  • Improved user experience during token regeneration – prevents accidental button clicks
  • Enhanced visual feedback with animated spinner and status messages
  • Better UX with disabled buttons during reset process to prevent user errors

1.0.15

  • Added new /ra/v1/check REST API endpoint for connection verification
  • Connection check endpoint validates website_id without registration
  • Improved connection verification workflow – can now check if a site is connected without modifying settings
  • Enhanced API functionality with dedicated connection verification endpoint

1.0.14

  • Token reset functionality now available to all administrators with manage_options capability
  • Removed owner-only restriction for token regeneration
  • Improved flexibility for team environments where multiple administrators need token management access
  • Enhanced security by maintaining manage_options capability requirement

1.0.13

  • Added full HTML document parsing support – automatically extracts title, meta tags, schema, and styles
  • Enhanced schema support to handle HTML format with multiple script tags
  • Added automatic meta tag extraction from HTML head (description, canonical, Open Graph, Twitter Card)
  • Added automatic style tag extraction and output in wp_head
  • Improved schema merging – combines schemas from HTML and schema parameter
  • Added JSON validation for schema content before output
  • Improved security by validating JSON-LD content extraction
  • Support for multiple schema types in single HTML string format
  • Better handling of complex schema structures with @id references
  • Backward compatible – still supports previous format without full HTML documents

1.0.12

  • Added support for schema parameter in publish and update post endpoints
  • Added JSON-LD structured data output in wp_head for SEO
  • Enhanced schema compatibility with multiple SEO plugins (Yoast SEO, Rank Math, All in One SEO)
  • Improved structured data support for better search engine visibility

1.0.11

  • Added support for meta_description parameter in publish and update post endpoints
  • Added support for keyword parameter to set Yoast SEO focus keyphrase
  • Enhanced SEO plugin compatibility (Yoast SEO, Rank Math, All in One SEO)
  • Improved API functionality with SEO metadata support

1.0.10

  • Moved version information from header to footer above “Powered by” text
  • Improved UI layout by removing version from company name row
  • Enhanced footer styling with dedicated version display

1.0.9

  • Updated support email address to support@rankauthority.com

1.0.8

  • Changed default admin menu icon color to #9BA2A6 (light gray-blue)
  • Improved icon color consistency using CSS mask instead of filters
  • Enhanced icon visibility with better color contrast

1.0.7

  • Improved Reset button form styling with CSS classes instead of inline styles
  • Fixed button width alignment issue by adding dedicated CSS class for reset form
  • Enhanced code maintainability with cleaner CSS structure
  • Improved “What Gets Tracked” card layout with better flex alignment
  • Added custom hover color (#72AEE6) for admin menu icon

1.0.6

  • Fixed Copy Token and Reset button widths to be perfectly equal
  • Improved button flex layout with min-width and white-space properties
  • Enhanced button alignment and visual consistency

1.0.5

  • Fixed Reset button width to match Copy button width
  • Improved admin menu icon styling – default gray color for better consistency
  • Enhanced icon visibility with adjusted brightness and opacity

1.0.4

  • Fixed AI SEO Tracking toggle functionality – now works correctly when clicking toggle button
  • Improved toggle button interaction – both banner and toggle button clicks now work properly
  • Enhanced visual feedback for active/inactive states
  • Fixed toggle button label implementation for better accessibility
  • Improved form submission handling for status changes

1.0.3

  • Complete UI redesign with modern, beautiful interface
  • Added interactive status toggle banner for SEO tracking
  • Improved user experience with card-based layout
  • Enhanced visual feedback with animations and transitions
  • Better information display with icon-based info cards
  • Streamlined settings page with improved accessibility

1.0.2

  • Fixed custom SVG icon display issue in WordPress admin menu
  • Improved menu icon CSS with better fallback support
  • Enhanced icon rendering reliability

1.0.1

  • Added custom SVG icon for admin menu
  • Improved uninstall cleanup to remove all plugin options
  • Enhanced admin menu styling with custom Rank Authority logo

1.0.0

  • Initial release
  • Secure REST API endpoints for publishing, updating, and deleting posts
  • Token-based authentication
  • SEO script injection
  • Owner-based token management
  • Disconnect functionality