{"id":295231,"date":"2026-05-14T11:38:31","date_gmt":"2026-05-14T11:38:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/grandranker\/"},"modified":"2026-05-19T10:31:01","modified_gmt":"2026-05-19T10:31:01","slug":"grandranker","status":"publish","type":"plugin","link":"https:\/\/te.wordpress.org\/plugins\/grandranker\/","author":23473238,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.0","stable_tag":"1.1.0","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Grandranker","header_author":"Grandranker","header_description":"Sync AI-generated articles and inject schema markup from Grandranker.","assets_banners_color":"","last_updated":"2026-05-19 10:31:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/grandranker\/","header_author_uri":"https:\/\/grandranker.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":63,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"grandranker","date":"2026-05-14 11:38:21"},"1.0.1":{"tag":"1.0.1","author":"grandranker","date":"2026-05-14 12:35:05"},"1.0.2":{"tag":"1.0.2","author":"grandranker","date":"2026-05-14 14:05:46"},"1.1.0":{"tag":"1.1.0","author":"grandranker","date":"2026-05-19 10:31:01"}},"upgrade_notice":{"1.1.0":"<p>Major update: the plugin now uses signed push delivery for near-instant publishing. After upgrading, open <strong>Grandranker<\/strong> in the admin sidebar and re-connect with your API token to resume publishing.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3531906,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3531906,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,5936,529,7143,186],"plugin_category":[55],"plugin_contributors":[262897],"plugin_business_model":[],"class_list":["post-295231","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-articles","plugin_tags-content","plugin_tags-publishing","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-grandranker","plugin_committers-grandranker"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/grandranker\/assets\/icon-128x128.png?rev=3531906","icon_2x":"https:\/\/ps.w.org\/grandranker\/assets\/icon-256x256.png?rev=3531906","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/grandranker.com\">Grandranker<\/a> is an AI-powered SEO platform that researches your niche, generates high-quality articles optimized for both traditional search engines and AI search (Google AI Overviews, ChatGPT, Perplexity, Claude, Gemini), and publishes them directly to your WordPress site.<\/p>\n\n<p>This plugin connects your WordPress site to Grandranker so articles flow straight from the platform into your blog \u2014 no copy-pasting, no manual formatting.<\/p>\n\n<p><strong>What Grandranker does for you:<\/strong><\/p>\n\n<ul>\n<li>Researches keywords and competitors in your niche<\/li>\n<li>Generates long-form, SEO-optimized articles with structured data (JSON-LD schema)<\/li>\n<li>Tracks your visibility across Google and AI search engines<\/li>\n<li>Publishes and updates articles on your WordPress site automatically<\/li>\n<\/ul>\n\n<p><strong>How the plugin works:<\/strong><\/p>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Enter your Grandranker API token in <strong>Grandranker<\/strong> settings.<\/li>\n<li>Click <strong>Save &amp; Connect<\/strong>.<\/li>\n<li>Articles published in Grandranker appear on your WordPress site automatically \u2014 with content, featured images, categories, tags, meta descriptions, and structured data all handled for you.<\/li>\n<\/ol>\n\n<p><strong>Plugin features:<\/strong><\/p>\n\n<ul>\n<li>Secure HMAC-SHA256 signature verification on every request<\/li>\n<li>Creates and updates WordPress posts with title, slug, content, excerpt, tags, and featured image<\/li>\n<li>Injects JSON-LD structured data (schema markup) into page head for SEO<\/li>\n<li>Writes meta descriptions to Yoast SEO, Rank Math, or All in One SEO (auto-detected)<\/li>\n<li>Configurable default author and post status (Publish \/ Draft \/ Pending Review)<\/li>\n<li>Heartbeat-based delivery polling for near-instant publishing<\/li>\n<li>Unpublish endpoint to remove articles remotely<\/li>\n<li>Diagnostics panel with a manual \"Test Poll Now\" button<\/li>\n<li>One-click Disconnect that removes all stored credentials<\/li>\n<\/ul>\n\n<h3>Third-Party Service<\/h3>\n\n<p>This plugin connects your WordPress site to the <strong>Grandranker API<\/strong> at <code>https:\/\/app.grandranker.com<\/code> to receive articles, schema markup, and delivery payloads from your Grandranker account.<\/p>\n\n<p>Data is sent to and received from Grandranker servers when you:<\/p>\n\n<ul>\n<li>Click <strong>Save &amp; Connect<\/strong> \u2014 your API token is sent in the <code>Authorization: Bearer<\/code> header to exchange it for an HMAC signing secret.<\/li>\n<li>Receive an article \u2014 Grandranker POSTs the article payload (title, content, schema, image URL, tags) to <code>\/wp-json\/grandranker\/v1\/articles<\/code> on your site, signed with <code>X-Grandranker-Signature<\/code> (HMAC-SHA256).<\/li>\n<li>Poll for queued deliveries \u2014 the plugin periodically (via WP-Cron and the WordPress Heartbeat API while admin is open) requests <code>\/api\/v1\/plugin\/deliveries<\/code> from Grandranker to fetch any pending articles.<\/li>\n<li>Click <strong>Test Poll Now<\/strong> or <strong>Disconnect<\/strong> in plugin settings.<\/li>\n<\/ul>\n\n<p>No analytics, page content, or visitor data is sent to Grandranker. Only the site URL and authenticated requests for your own articles are transmitted.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/grandranker.com\">Grandranker Website<\/a><\/li>\n<li><a href=\"https:\/\/grandranker.com\/terms\">Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/grandranker.com\/privacy-policy\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>grandranker<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the <strong>Plugins \u2192 Add New<\/strong> screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Grandranker<\/strong> in the WordPress admin sidebar.<\/li>\n<li>Enter your API token from the Grandranker dashboard (<strong>Integrations \u2192 WordPress Plugin<\/strong>).<\/li>\n<li>Click <strong>Save &amp; Connect<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20find%20my%20api%20token%3F\"><h3>Where do I find my API token?<\/h3><\/dt>\n<dd><p>Log in to <a href=\"https:\/\/app.grandranker.com\">Grandranker<\/a>, open your domain, and go to <strong>Integrations \u2192 WordPress Plugin<\/strong>. Generate a token and paste it into the plugin settings.<\/p><\/dd>\n<dt id=\"is%20the%20connection%20secure%3F\"><h3>Is the connection secure?<\/h3><\/dt>\n<dd><p>Yes. All article pushes are signed with HMAC-SHA256. The signing secret is exchanged once during the initial connection and never transmitted again. Every incoming request is verified before any content is created.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20publish%20an%20article%20in%20grandranker%3F\"><h3>What happens when I publish an article in Grandranker?<\/h3><\/dt>\n<dd><p>The article is sent to your WordPress site via a signed REST API call. The plugin creates a new WordPress post with the title, slug, HTML content, excerpt, meta description, tags, featured image, and JSON-LD structured data. Re-publishing the same article updates the existing post instead of duplicating it.<\/p><\/dd>\n<dt id=\"which%20seo%20plugins%20are%20supported%3F\"><h3>Which SEO plugins are supported?<\/h3><\/dt>\n<dd><p>Yoast SEO, Rank Math, and All in One SEO are auto-detected and the meta description is written to whichever is active. You can also pick the target plugin manually in settings, or disable SEO-plugin integration entirely.<\/p><\/dd>\n<dt id=\"can%20i%20publish%20as%20draft%20or%20pending%20instead%20of%20publish%3F\"><h3>Can I publish as Draft or Pending instead of Publish?<\/h3><\/dt>\n<dd><p>Yes. In <strong>Grandranker \u2192 Settings<\/strong>, set <strong>Post status<\/strong> to Draft or Pending Review and incoming articles will be created in that state.<\/p><\/dd>\n<dt id=\"can%20i%20unpublish%20articles%20from%20grandranker%3F\"><h3>Can I unpublish articles from Grandranker?<\/h3><\/dt>\n<dd><p>Yes. Grandranker can send a delete request to move the WordPress post to the trash.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disconnect%3F\"><h3>How do I disconnect?<\/h3><\/dt>\n<dd><p>Open <strong>Grandranker<\/strong> in the admin sidebar and click <strong>Disconnect<\/strong>. The plugin removes the stored token, signing secret, and all related settings.<\/p><\/dd>\n<dt id=\"will%20uninstalling%20delete%20my%20synced%20posts%3F\"><h3>Will uninstalling delete my synced posts?<\/h3><\/dt>\n<dd><p>No. Only the plugin's settings are removed. Your synced posts, images, and schema stay in place.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: HMAC-signed push delivery \u2014 Grandranker now publishes directly to your site via a signed REST endpoint, replacing the previous pull-based sync.<\/li>\n<li>New: Configurable default author and post status (Publish \/ Draft \/ Pending Review).<\/li>\n<li>New: Auto-detected meta-description integration with Yoast SEO, Rank Math, and All in One SEO (override available in settings).<\/li>\n<li>New: Article tags are now applied to WordPress posts on publish.<\/li>\n<li>New: WordPress category mapping on publish \u2014 converts the article's category slug to a real WP category, creating it if needed.<\/li>\n<li>New: Diagnostics panel and \"Test Poll Now\" button in plugin settings.<\/li>\n<li>New: WordPress Heartbeat API polling for near-instant delivery while admin is open.<\/li>\n<li>New: One-click <strong>Disconnect<\/strong> action that removes all stored credentials and stops polling.<\/li>\n<li>Improved: JSON-LD schema is stripped from post content and injected via <code>wp_head<\/code> instead.<\/li>\n<li>Improved: Re-publishing an article now updates the existing WordPress post instead of skipping it.<\/li>\n<li>Improved: Duplicate-post protection via a 60-second global poll lock and <code>_grandranker_id<\/code> post-meta dedup.<\/li>\n<li>Note: Existing 1.0.x users will need to re-enter their API token after upgrading \u2014 the connection model has changed from pull-based sync to signed push delivery.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Updated plugin description to better reflect Grandranker's full platform: Local SEO, e-commerce content, multi-language, keyword research, AI search visibility, and GEO audit.<\/li>\n<li>Documented all schema types generated for synced posts (Article, BlogPosting, FAQPage, HowTo, Product).<\/li>\n<li>Cleaner Plugin Features section, simpler setup steps, and a Privacy section.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: YouTube, Vimeo, Loom, and Wistia iframe embeds were stripped from synced article content.<\/li>\n<li>Fixed: Featured image upload failed on hosts without the PHP <code>fileinfo<\/code> extension.<\/li>\n<li>Improved: Longer HTTP timeouts for long-form articles and slower hosts.<\/li>\n<li>Improved: Prevent duplicate posts when manual sync and auto-sync run on the same article simultaneously.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Article sync from Grandranker API<\/li>\n<li>JSON-LD schema injection<\/li>\n<li>Yoast SEO and Rank Math meta integration<\/li>\n<li>Hourly auto-sync via WP-Cron<\/li>\n<li>Featured image sideloading<\/li>\n<li>Author and category mapping<\/li>\n<\/ul>","raw_excerpt":"Automatically publish and update SEO-optimized articles from Grandranker \u2014 the AI content platform that helps you rank higher on Google and AI search  &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/295231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=295231"}],"author":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/grandranker"}],"wp:attachment":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=295231"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=295231"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=295231"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=295231"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=295231"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=295231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}