{"id":328106,"date":"2026-06-19T12:59:21","date_gmt":"2026-06-19T12:59:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/goldenretriever-ai-chat\/"},"modified":"2026-06-24T15:08:39","modified_gmt":"2026-06-24T15:08:39","slug":"goldenretriever-ai-chat","status":"publish","type":"plugin","link":"https:\/\/nb.wordpress.org\/plugins\/goldenretriever-ai-chat\/","author":23518600,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.18.5","stable_tag":"0.18.5","tested":"7.0","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"GoldenRetriever AI Chat","header_author":"GoldenRetriever AI","header_description":"AI chat advisor for WordPress, grounded in your site's content. Bring your own Anthropic API key.","assets_banners_color":"656b5b","last_updated":"2026-06-24 15:08:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/goldenretriever.ai\/plugins\/","header_author_uri":"https:\/\/goldenretriever.ai\/plugins\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":128,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.18.4":{"tag":"0.18.4","author":"felixxvelarde","date":"2026-06-23 16:07:11"},"0.18.5":{"tag":"0.18.5","author":"felixxvelarde","date":"2026-06-24 15:08:39"},"0.9.7":{"tag":"0.9.7","author":"felixxvelarde","date":"2026-06-19 12:59:05"}},"upgrade_notice":{"0.13.0":"<p>Adds provider-aware Settings and new extension hooks for the Pro add-on. No action needed for existing sites.<\/p>","0.9.6":"<p>Feature release: advanced prompt editing; consent-aware lead capture with WordPress privacy exporter\/eraser integration; refer-a-friend; and an optional (opt-in, off by default) widget attribution link. Database version bumps to 6; upgrade runs automatically on activation.<\/p>","0.9.5":"<p>Reliability and robustness release: streaming survives proxies, stalls, and unusual line endings; non-English content indexes without optional PHP extensions; settings saves are atomic. Recommended for all installs.<\/p>","0.9.4":"<p>Security and reliability release: provider errors are hidden from visitors, stale content is purged from the chat index on reindex, rate limiting is made race-proof, and a cached-page token expiry no longer disables the widget. Recommended for all installs.<\/p>","0.9.3":"<p>Security and reliability release: password-protected content is excluded from the chat index, rate limiting is hardened, and long conversations, error messages, and multisite cleanup are fixed. Recommended for all installs.<\/p>","0.9.2":"<p>First public release candidate. Fresh install only; no upgrade path from the alpha.<\/p>","0.1.0-alpha":"<p>First development release. No upgrade path required.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3578686,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3578686,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3578686,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3578686,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"goldenretriever-ai-chat\/chat-widget":{"name":"goldenretriever-ai-chat\/chat-widget","title":"GoldenRetriever AI Chat"}},"tagged_versions":["0.18.4","0.18.5","0.9.7"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3578686,"resolution":"1","location":"assets","locale":"","width":1958,"height":1310},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3578686,"resolution":"2","location":"assets","locale":"","width":1960,"height":1430},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3578686,"resolution":"3","location":"assets","locale":"","width":1958,"height":1350},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3578686,"resolution":"4","location":"assets","locale":"","width":1960,"height":2686},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3578686,"resolution":"5","location":"assets","locale":"","width":1956,"height":2322},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3578686,"resolution":"6","location":"assets","locale":"","width":1960,"height":2842}},"screenshots":{"1":"Settings tab \u2014 paste an Anthropic API key, pick a model, and set the system prompt, all in one place.","2":"Settings tab \u2014 the built-in \"Try it\" panel streaming a Claude response before you go live.","3":"Settings tab \u2014 the connection test reporting a clear pass\/fail for your provider.","4":"Knowledge tab \u2014 choose post types, add URL\/file knowledge sources, preview retrieved chunks for any query.","5":"Appearance tab \u2014 accent colour, welcome message, button label, corner position, custom SVG logo.","6":"Front-end widget \u2014 a real visitor conversation streaming live against the site's published content."}},"plugin_section":[],"plugin_tags":[90336,2364,229563,14090,70446],"plugin_category":[41],"plugin_contributors":[267902],"plugin_business_model":[],"class_list":["post-328106","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-chat","plugin_tags-chatbot","plugin_tags-claude","plugin_tags-knowledge-base","plugin_tags-rag","plugin_category-communication","plugin_contributors-felixxvelarde","plugin_committers-felixxvelarde"],"banners":{"banner":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/banner-772x250.png?rev=3578686","banner_2x":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/banner-1544x500.png?rev=3578686","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/icon-128x128.png?rev=3578686","icon_2x":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/icon-256x256.png?rev=3578686","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/screenshot-1.png?rev=3578686","caption":"Settings tab \u2014 paste an Anthropic API key, pick a model, and set the system prompt, all in one place."},{"src":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/screenshot-2.png?rev=3578686","caption":"Settings tab \u2014 the built-in \"Try it\" panel streaming a Claude response before you go live."},{"src":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/screenshot-3.png?rev=3578686","caption":"Settings tab \u2014 the connection test reporting a clear pass\/fail for your provider."},{"src":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/screenshot-4.png?rev=3578686","caption":"Knowledge tab \u2014 choose post types, add URL\/file knowledge sources, preview retrieved chunks for any query."},{"src":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/screenshot-5.png?rev=3578686","caption":"Appearance tab \u2014 accent colour, welcome message, button label, corner position, custom SVG logo."},{"src":"https:\/\/ps.w.org\/goldenretriever-ai-chat\/assets\/screenshot-6.png?rev=3578686","caption":"Front-end widget \u2014 a real visitor conversation streaming live against the site's published content."}],"raw_content":"<!--section=description-->\n<p>GoldenRetriever AI Chat turns your WordPress site into a 24\/7 AI advisor that talks like you and answers visitor questions grounded in your own content. Drop a chat widget on any page, or flip on the site-wide floating bubble. Your visitors get answers about your products, policies and posts in seconds \u2014 no live-chat staffing, no monthly per-message bills, no third-party service holding your conversation history.<\/p>\n\n<p>You bring your own Anthropic API key for Claude. The plugin sends your visitors' messages and a system prompt grounded in your site content directly to Anthropic \u2014 never to a SaaS vendor in the middle. Conversations are rate-limited, capability-gated and origin-checked at the REST layer; the API key is encrypted at rest with AES-256-GCM tied to your WordPress salts.<\/p>\n\n<h4>Your content already has the answers<\/h4>\n\n<p>You've spent years writing posts, pages, FAQs and policies. Most visitors never read them \u2014 they scan for a few seconds, don't spot what they came for, and leave, straight past the answer you already wrote.<\/p>\n\n<p>GoldenRetriever AI Chat fixes that. When a visitor asks a question, it finds the relevant passages in your own content and answers from those \u2014 instantly, in plain language, and it shows which of your pages the answer came from. The answer was already buried in your site; the plugin fetches it. There's no knowledge base to rebuild, nothing to retrain, no copying and pasting your content into a separate tool.<\/p>\n\n<p>And because every answer is drawn only from your own published content, the advisor stays grounded in what you actually said \u2014 it isn't inventing facts or pulling from the open web. That retrieve-then-answer method is the same principle behind today's most reliable AI assistants: find the right source first, then answer from it.<\/p>\n\n<p><strong>Built for non-technical site owners.<\/strong> Five-minute setup from \"install\" to \"ask my first question.\" Native WordPress UI, Gutenberg block, classic shortcode, sensible defaults for every option, and a built-in Test Chat panel so you can sanity-check the advisor before any visitor sees it.<\/p>\n\n<p><strong>Features in this free release<\/strong><\/p>\n\n<ul>\n<li><strong>Streaming Claude chat<\/strong> \u2014 Server-Sent Events flow tokens to the visitor as Claude generates them.<\/li>\n<li><strong>Encrypted BYO API key<\/strong> \u2014 Your Anthropic key is encrypted with AES-256-GCM at rest, tied to your WordPress salts. Only the last four characters are ever shown in the UI; the plaintext is never echoed back.<\/li>\n<li><strong>Three placements<\/strong> \u2014 site-wide floating bubble, Gutenberg <code>GoldenRetriever AI Chat<\/code> block, or <code>[grchat_chat]<\/code> shortcode; inherits your theme's colours and fonts automatically.<\/li>\n<li><strong>Theme-inheriting widget<\/strong> \u2014 picks up <code>--wp--preset--color--primary<\/code> and your body font where the theme exposes them; falls back to a neutral palette.<\/li>\n<li><strong>Site-grounded answers from your own content<\/strong> \u2014 posts and pages (including shortcode and page-builder output) are rendered and indexed, so the advisor retrieves the relevant passages from your site before it answers.<\/li>\n<li><strong>Incremental updates on save<\/strong> \u2014 the index updates automatically when you publish or update a post; no manual re-index needed for routine changes.<\/li>\n<li><strong>Resumable \"Reindex all content\" job<\/strong> \u2014 a one-click full reindex with a live progress bar; safe to stop and restart at any time.<\/li>\n<li><strong>URL and file knowledge sources<\/strong> \u2014 administrators can add a public URL (SSRF-guarded via <code>wp_safe_remote_get()<\/code>) or upload <code>.txt<\/code> \/ <code>.md<\/code> files to extend the knowledge base.<\/li>\n<li><strong>Configurable maximum response length<\/strong> \u2014 cap token usage per reply to control cost.<\/li>\n<li><strong>Signed-token + rate-limited public chat endpoint<\/strong> \u2014 the anonymous front-end chat endpoint is protected by a short-lived signed request token; per-IP and global rate limits (both filterable) stop abusive traffic.<\/li>\n<li><strong>Advanced prompt editing with reset<\/strong> \u2014 edit the system prompt in the admin, inject important links (booking URL, contact page, support email) automatically into every conversation, and reset to the shipped default with one click.<\/li>\n<li><strong>Important links injection<\/strong> \u2014 the advisor automatically weaves your booking URL, contact page, and support email address into answers; no manual prompt editing required.<\/li>\n<li><strong>Email me this chat<\/strong> \u2014 visitors can email themselves the conversation transcript from inside the widget. Consent-aware: the visitor's email is stored in your site's own database only when they opt in (not sent to any external service). Administrators can view captured leads in wp-admin, export them as a CSV from the Leads tab, and the table is fully covered by WordPress's built-in privacy exporter and personal-data eraser tools.<\/li>\n<li><strong>Leads tab<\/strong> \u2014 paginated list of visitors who opted in to receive their transcript, with CSV export and injection-safe column handling. Pro routes leads to your inbox or CRM with full conversation context.<\/li>\n<li><strong>Bug report<\/strong> \u2014 the Support tab lets you send a pre-filled diagnostics report to the support team via your own email client (mailto), with recent log entries attached. No data leaves your server until you click Send in your email app.<\/li>\n<li><strong>Refer a friend<\/strong> \u2014 one-click referral link from the Support tab (draft copy shipped; final wording is a pending decision).<\/li>\n<li><strong>Optional \"Get your own\" widget link<\/strong> \u2014 a small, configurable attribution link in the widget footer that drives word-of-mouth. Toggle it off from the Appearance tab.<\/li>\n<li><strong>Full uninstall cleanup<\/strong> \u2014 removing the plugin drops all plugin-created tables and options; no orphaned data.<\/li>\n<\/ul>\n\n<p><strong>How it works in three steps<\/strong><\/p>\n\n<ol>\n<li>Install the plugin and activate it. WordPress redirects you straight to the Settings tab on first run.<\/li>\n<li>Paste your Anthropic API key, pick a Claude model (Sonnet, Opus or Haiku), and save. The key is encrypted before it hits the database.<\/li>\n<li>Decide where the chat lives \u2014 flip Floating widget on for site-wide, or drop the <code>[grchat_chat]<\/code> shortcode \/ GoldenRetriever AI Chat block on any page.<\/li>\n<\/ol>\n\n<p><strong>What's coming in GoldenRetriever AI Chat Pro<\/strong><\/p>\n\n<p>The free version is the chat surface. Pro adds OpenAI and Gemini providers, multi-persona advisors, PDF\/DOCX\/CSV file knowledge with embeddings retrieval, lead routing to your inbox\/CRM with full conversation context, and white-labelling \u2014 all as a separate plugin you install alongside the free version. No data migration, no breakage.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to third-party services that you configure and pay for\ndirectly with your own API keys. It includes no central service operated by us.<\/p>\n\n<ol>\n<li><p>Your chosen AI provider (Anthropic Claude \u2014 api.anthropic.com).\nWhen a visitor sends a chat message, the plugin sends the conversation and\nthe relevant excerpts of your site content to the AI provider you configured,\nusing the API key you entered, and streams the reply back. This happens only\non an explicit chat action. Data sent: the visitor's messages and the matched\nsite-content excerpts. Anthropic terms: https:\/\/www.anthropic.com\/legal\/commercial-terms\n\u2014 privacy: https:\/\/www.anthropic.com\/legal\/privacy<\/p><\/li>\n<li><p>Administrator-added knowledge-source URLs (your server \u2192 the URL you enter).\nWhen a site administrator adds a URL as a knowledge source on the Knowledge\ntab, the plugin fetches that URL directly from your server (using WordPress's\nbuilt-in wp_safe_remote_get(), which blocks private\/internal addresses). The\nrequest goes from your server to the public URL you entered; no data is sent\nto any third party in the process. Only administrators (manage_options) can\nadd or refresh sources.<\/p><\/li>\n<li><p>\"Email me this chat\" lead capture (your site's database only).\nWhen a visitor opts in to receive a transcript of their chat conversation\nby email, the plugin stores their email address in your site's own\ndatabase (table wp_grchat_leads). No data is sent to us or any third\nparty. The transcript email is sent via your site's own wp_mail() function,\nusing your server's configured mail transport. The visitor's email address\nis stored only with their explicit consent, and only on your own server.<\/p><\/li>\n<li><p>Freemius \u2014 licence management and the in-admin upgrade path (optional, opt-in).\nSo you can browse and buy the paid add-on (GoldenRetriever AI Chat Pro) from\nyour WordPress dashboard, this plugin bundles the Freemius SDK. On activation\nit shows a one-time connection screen that you can SKIP \u2014 the plugin is fully\nfunctional without it and never requires a Freemius account. Only if you opt\nin does Freemius receive basic environment data to manage licensing and\nupdates: your site URL, the administrator's name and email, the WordPress\nand PHP versions, and basic environment details such as your active plugins\nand theme. Skipping the opt-in sends nothing. The\nfree plugin uses this connection only for the upgrade and add-on listing; the\npaid features live in the separate Pro plugin, which Freemius delivers. The\nFreemius API endpoint is api.freemius.com. Freemius terms:\nhttps:\/\/freemius.com\/terms\/ \u2014 privacy: https:\/\/freemius.com\/privacy\/<\/p><\/li>\n<\/ol>\n\n<p>Apart from the administrator-initiated knowledge-source fetch (item 2) and the\noptional, opt-in Freemius connection (item 4), the only outbound HTTP calls are\nto your chosen AI provider, and only on explicit user action. The plugin does\nnot use embeddings (Anthropic provides no embeddings API); semantic\/embeddings\nretrieval is a separate Pro feature, not in this free plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>From your WordPress admin, go to Plugins \u2192 Add New, click \"Upload Plugin\", choose the <code>.zip<\/code> and click Install Now. (Or unzip into <code>\/wp-content\/plugins\/<\/code>.)<\/li>\n<li>Activate GoldenRetriever AI Chat through the Plugins screen. WordPress will redirect you to Settings \u2192 GoldenRetriever AI Chat on first run.<\/li>\n<li>Paste your Anthropic API key (get one at https:\/\/console.anthropic.com\/), pick a model, set a system prompt, and Save.<\/li>\n<li>On the Settings tab, use the \"Try it\" panel to ask a question and confirm the round-trip works.<\/li>\n<li>Decide where the advisor appears: flip the Appearance tab's Floating widget on for site-wide, drop the GoldenRetriever AI Chat block on a page in the block editor, or paste <code>[grchat_chat title=\"Ask us anything\"]<\/code> into a post.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20developer%20to%20install%20this%3F\"><h3>Do I need a developer to install this?<\/h3><\/dt>\n<dd><p>No. If you can install a WordPress plugin from the admin, you can install GoldenRetriever AI Chat. The setup is a paste-a-key-and-save flow; the connection test on the Settings tab tells you exactly what to do if anything is off \u2014 usually it's a one-line message to send your hosting provider.<\/p><\/dd>\n<dt id=\"which%20ai%20provider%20does%20this%20use%3F\"><h3>Which AI provider does this use?<\/h3><\/dt>\n<dd><p>The free version uses Claude (Anthropic). Pro adds OpenAI (GPT) and Gemini (Google) as alternative providers. You bring the API key for whichever provider you choose; there is no markup, you pay your provider directly.<\/p><\/dd>\n<dt id=\"how%20much%20will%20i%20actually%20spend%20on%20ai%3F\"><h3>How much will I actually spend on AI?<\/h3><\/dt>\n<dd><p>For a small business site receiving roughly 30 advisor conversations a day, expect \u00a35\u2013\u00a315 per month with Claude Sonnet 4.6 (the recommended default). Claude Haiku is cheaper for higher volumes; Opus is more expensive but more capable. Anthropic bills you directly per token used.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20my%20theme%3F\"><h3>Does this work with my theme?<\/h3><\/dt>\n<dd><p>Yes. The widget inherits your theme's primary colour (via <code>--wp--preset--color--primary<\/code>) and body font where the theme exposes them, falling back to a neutral indigo + system font stack. It's been verified against Twenty Twenty-Five and the major block themes.<\/p><\/dd>\n<dt id=\"where%20does%20my%20data%20live%3F\"><h3>Where does my data live?<\/h3><\/dt>\n<dd><p>Inside your WordPress database. The plugin doesn't have a server. It doesn't see your content, your visitors, or your conversations. The only outbound traffic for serving chat is the API call to Anthropic that you authorise by configuring an API key. (If you opt in to the optional Freemius connection for the in-admin upgrade path, basic licence\/environment data also goes to Freemius \u2014 see \"External services\"; skipping that opt-in sends nothing.) Conversation history isn't stored server-side beyond a per-session browser cookie that lets visitors continue a conversation across page loads.<\/p><\/dd>\n<dt id=\"can%20i%20see%20what%20the%20advisor%20would%20say%20before%20publishing%3F\"><h3>Can I see what the advisor would say before publishing?<\/h3><\/dt>\n<dd><p>Yes. The \"Try it\" panel on the Settings tab lets you run real conversations against your configured model end-to-end, without any visitor seeing the widget. The Knowledge tab also includes a Test Retrieval panel that shows you which posts the advisor would quote for a given query.<\/p><\/dd>\n<dt id=\"how%20does%20the%20plugin%20protect%20my%20anthropic%20api%20key%3F\"><h3>How does the plugin protect my Anthropic API key?<\/h3><\/dt>\n<dd><p>The key is encrypted with AES-256-GCM tied to your WordPress salts before it's written to the database, and the option is stored with <code>autoload=no<\/code>. The admin UI only ever displays a masked form (<code>\u2022\u2022\u2022\u2022XXXX<\/code>). The plaintext key is read only at the moment a chat is being served.<\/p><\/dd>\n<dt id=\"how%20does%20it%20stop%20visitors%20from%20running%20up%20my%20anthropic%20bill%3F\"><h3>How does it stop visitors from running up my Anthropic bill?<\/h3><\/dt>\n<dd><p>The plugin enforces a per-IP rate limit (30 messages\/hour by default) and a global rate limit (200 messages\/hour by default) before any call to Anthropic. Both limits are filterable. The widget also caps individual messages at 4,096 characters and conversations at 20 messages.<\/p><\/dd>\n<dt id=\"will%20my%20visitors%27%20conversations%20be%20private%3F\"><h3>Will my visitors' conversations be private?<\/h3><\/dt>\n<dd><p>Conversations go directly from your visitor's browser through your WordPress site to Anthropic and back. They are not logged on disk, not analytics-tracked, not sent to any third-party server we operate (we don't have one). Anthropic processes the messages per their published privacy policy.<\/p><\/dd>\n<dt id=\"how%20does%20the%20content%20index%20work%20%E2%80%94%20will%20page%20builder%20content%20be%20indexed%3F\"><h3>How does the content index work \u2014 will page builder content be indexed?<\/h3><\/dt>\n<dd><p>Yes. GoldenRetriever AI Chat runs each post through <code>the_content<\/code> before indexing, which executes shortcodes and page-builder block output exactly the same way WordPress renders them for visitors. This means rendered text \u2014 including prices, product names, or any text generated by shortcodes \u2014 becomes searchable and can be quoted in answers.<\/p>\n\n<p>If you want to exclude a specific post from the index (for example, a page you keep published for internal reasons), use the <code>grchat_index_render_content<\/code> filter: return <code>false<\/code> for that post's ID and it will be skipped during indexing.<\/p><\/dd>\n<dt id=\"why%20doesn%27t%20the%20advisor%20know%20about%20content%20on%20my%20homepage%20or%20builder%20pages%3F\"><h3>Why doesn't the advisor know about content on my homepage or builder pages?<\/h3><\/dt>\n<dd><p>Some sites store their visible copy in shortcodes or page-builder plugins (Elementor, Divi, Bricks, a \"Custom Code\" plugin, etc.) that only register their handlers on front-end requests. In that context WordPress leaves the shortcode tags unexpanded, so the index sees <code>[ccj id=\"tabmenu\"]<\/code> instead of real content. The same issue applies to injected widgets \u2014 pricing tables, review carousels, WooCommerce product tabs \u2014 that are added by JavaScript or page-builder render engines after WordPress processes the raw post content.<\/p>\n\n<p>GoldenRetriever AI Chat handles this by fetching every public page directly via its own front-end URL (a \"loopback self-fetch\") during indexing. The fetched page is parsed and chrome-stripped (navigation, header, footer, sidebars, scripts are all removed) so only the main content area reaches the index. The plugin then compares the chrome-stripped fetched text against the admin-context render and indexes whichever version is richer. No configuration is needed \u2014 run a full Reindex (Knowledge tab \u2192 Reindex all content) and the advisor picks up the full visitor-facing copy.<\/p>\n\n<p>The same applies to your homepage when it is a custom theme template or front-page widget rather than a WordPress page: a URL knowledge source for your homepage is created and refreshed automatically on every full reindex. The source appears in the Knowledge tab (labelled \"Homepage (auto)\") after the first reindex completes.<\/p>\n\n<p>Performance note: each post requires one HTTP fetch during the reindex. On most sites (batch size 10, 5-second timeout per fetch) a batch of 10 posts takes at most ~50 seconds. The reindex is resumable \u2014 if it is slow you can let it run in the background and come back; the progress bar will be right where you left it. The same fetch also runs when you save or update a post in the WordPress editor \u2014 expect a brief extra moment before the save completes while the plugin fetches the page's public version to keep the index current.<\/p>\n\n<p>To opt out of the auto homepage source, add this to your theme's functions.php or a custom plugin:<\/p>\n\n<p>add_filter( 'grchat_auto_homepage_source', '__return_false' );<\/p>\n\n<p>To skip the loopback self-fetch for a specific post:<\/p>\n\n<p>add_filter( 'grchat_index_fetch_rendered', function( $do, $post ) {\n      return 123 === $post-&gt;ID ? false : $do; \/\/ replace 123 with the post ID to skip\n  }, 10, 2 );<\/p>\n\n<p>To override the richer-wins threshold for a specific post (e.g. always use the fetched version):<\/p>\n\n<p>add_filter( 'grchat_index_prefer_fetched', function( $prefer, $post, $fetched_len, $rendered_len ) {\n      return 456 === $post-&gt;ID ? true : $prefer; \/\/ replace 456 with the post ID\n  }, 10, 4 );<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>Yes \u2014 Pro adds OpenAI + Gemini providers, multi-persona advisors, file-upload knowledge (PDF\/DOCX\/TXT\/MD\/CSV) with embeddings retrieval, lead routing to your inbox\/CRM with full conversation context, and white-labelling. It installs as a separate plugin and works alongside the free version. The free plugin keeps working forever \u2014 Pro never holds it hostage.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>The complete version history is in changelog.txt. Recent releases:<\/p>\n\n<h4>0.18.5<\/h4>\n\n<ul>\n<li>Fix: knowledge-base file uploads no longer fail with a \"You do not have sufficient permissions to upload files\" error on sites running CleanTalk Security &amp; Malware Firewall (and similar plugins that screen admin-area uploads). Uploads now use an AJAX endpoint those scanners don't block; settings, sources, and the rest of the Knowledge tab are unchanged.<\/li>\n<\/ul>\n\n<h4>0.18.4<\/h4>\n\n<ul>\n<li>Upgrade: a new \"Go Pro\" tab lets you compare the Personal, Business, and Agency plans \u2014 sites and AI personas included \u2014 and start checkout on the tier you choose, right inside the dashboard, instead of opening a new tab and always landing on the entry plan.<\/li>\n<\/ul>\n\n<h4>0.18.3<\/h4>\n\n<ul>\n<li>Grounding: a fresh install now indexes your existing published content automatically in the background, so answers are grounded without a manual reindex; an admin notice shows index status (building \/ empty \/ ready).<\/li>\n<li>No-hallucination: when nothing relevant is indexed yet, the assistant now says it doesn't have that information instead of guessing from general knowledge.<\/li>\n<li>Knowledge uploads: clearer, accurate error messages when a file can't be added (no longer implies only .txt\/.md are supported, and explains that scanned\/image-only PDFs have no extractable text).<\/li>\n<li>Maintenance: uninstall cleanup now runs via the Freemius after_uninstall hook instead of a bundled uninstall.php (no change to what gets removed).<\/li>\n<\/ul>\n\n<h4>0.18.2<\/h4>\n\n<ul>\n<li>i18n: the \"provider unavailable\" messages shown to administrators are now translatable.<\/li>\n<\/ul>\n\n<h4>0.18.1<\/h4>\n\n<ul>\n<li>Chat block: the persona attribute set by the Pro editor add-on now persists reliably across save and reload (declared in the block's editor schema).<\/li>\n<li>Reliability: if a configured provider becomes unavailable (e.g. a Pro provider after the Pro plugin is deactivated), the widget no longer answers visitors with placeholder text \u2014 it uses your Claude provider if configured, otherwise reports the assistant as temporarily unavailable.<\/li>\n<li>Add-on provider errors now surface a useful diagnostic to admins instead of a generic \"unexpected error\".<\/li>\n<\/ul>\n\n<h4>0.18.0<\/h4>\n\n<ul>\n<li>Improved: the \"Upgrade to Pro\" links open the Pro checkout showing all plans (leading with the entry price, and offering existing customers a prorated upgrade), instead of the in-admin Add-Ons page that highlighted the top-tier price.<\/li>\n<li>Improved: your licence and account details now appear as an \"Account\" tab inside the GoldenRetriever settings screen, instead of a separate WordPress submenu \u2014 including the option to change plan (upgrade\/downgrade).<\/li>\n<li>Fix: the \"Exclude specific content\" search on the Knowledge tab now works on sites using default (plain) permalinks. Previously the search box returned no results there, so items could not be added to the exclusion list.<\/li>\n<li>Fix: the automatic \"Homepage (auto)\" knowledge source no longer shows \"That URL cannot be fetched\" on localhost installs and on hosts that resolve their own domain to a private address \u2014 fetching your own site is now routed through the loopback-safe path, matching the background reindex.<\/li>\n<\/ul>\n\n<h4>0.17.0<\/h4>\n\n<ul>\n<li>Fix: uploaded-file knowledge sources are no longer cited with a filename dressed up as a URL. The advisor now labels them \"(uploaded file)\", so it can't tell a visitor to \"visit\" a non-clickable file path.<\/li>\n<\/ul>\n\n<h4>0.16.0<\/h4>\n\n<ul>\n<li>Knowledge tab: new \"Exclude specific content\" picker \u2014 search for any post or page by title, add it to the exclusion list, and the advisor will never surface it. Excluded items survive a full reindex.<\/li>\n<li>REST endpoint <code>GET \/grchat\/v1\/admin\/search-content?q=\u2026<\/code> for the title-search picker (admin-only; requires X-WP-Nonce).<\/li>\n<\/ul>\n\n<h4>0.15.0<\/h4>\n\n<ul>\n<li>New: a native in-admin upgrade path to GoldenRetriever AI Chat Pro. The free plugin now connects to Freemius as the parent product, so you can browse and buy Pro from your WordPress dashboard. The connection opt-in is entirely optional and skippable \u2014 the plugin is fully functional without a Freemius account.<\/li>\n<\/ul>\n\n<h4>0.14.0<\/h4>\n\n<ul>\n<li>Knowledge tab: the file-upload form now lists the file types your install can actually ingest, shows per-type caveats, and points to the Pro add-on for PDF\/Word\/CSV uploads.<\/li>\n<li>Developer seams for the Pro lead-routing add-on: <code>grchat_lead_captured<\/code> (fires when a consented transcript lead is stored) and <code>grchat_leads_after_table<\/code> (Leads-tab render hook).<\/li>\n<\/ul>\n\n<h4>0.13.0<\/h4>\n\n<ul>\n<li>Provider-aware Settings: one unified form with a default-provider selector, the active provider's model list, and provider-aware \"configured\" checks for the notices, connection test, and Try-it panel.<\/li>\n<li>New developer hooks: <code>grchat_settings_provider_fields<\/code>, <code>grchat_settings_after_save<\/code>, <code>grchat_provider_models<\/code>, <code>grchat_provider_configured<\/code> (consumed by GoldenRetriever AI Chat Pro). Retired <code>grchat_settings_after_provider<\/code>.<\/li>\n<li>Anchored the System prompt heading so the Pro Agents link lands on it.<\/li>\n<\/ul>\n\n<h4>0.12.0<\/h4>\n\n<ul>\n<li>Admin consolidation: the Settings tab is now the single home for your AI provider key, the system prompt, the connection test, and a \"Try it\" chat \u2014 the Advanced, Connection test, and Test chat tabs have been folded in.<\/li>\n<li>New <code>grchat_settings_after_provider<\/code> action lets companion plugins (GoldenRetriever AI Chat Pro) add provider key fields directly under the Anthropic key.<\/li>\n<\/ul>\n\n<h4>0.11.0<\/h4>\n\n<ul>\n<li>Developer: retrieval re-ranking and upload-extraction extension points for the upcoming Pro plugin and third-party developers \u2014 a retrieval candidate-pool filter (grchat_retrieval_candidates), a post-retrieval re-rank filter (grchat_retrieved_chunks), and upload filters for accepted file types, extraction, and size (grchat_upload_file_types \/ grchat_upload_extract_text \/ grchat_upload_max_bytes). No behaviour changes when nothing is hooked.<\/li>\n<\/ul>\n\n<h4>0.10.0<\/h4>\n\n<ul>\n<li>Developer: extension points for the upcoming Pro plugin and third-party developers \u2014 a provider registry filter (grchat_llm_providers), per-request agent resolution on the public chat endpoint (grchat_agent_config + optional agent parameter), admin tab registration (grchat_admin_tabs \/ grchat_admin_tab_render), a per-request model override in provider options, and an agent attribute on the block, shortcode and floating widget (grchat_widget_default_agent) passed through to the chat request. No behaviour changes when nothing is hooked.<\/li>\n<\/ul>\n\n<p>Older releases (0.9.6 and earlier) are listed in changelog.txt.<\/p>","raw_excerpt":"AI chatbot that answers visitor questions from your own site content. No rebuilding, no retraining. Bring your own Anthropic API key.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=328106"}],"author":[{"embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/felixxvelarde"}],"wp:attachment":[{"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328106"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328106"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328106"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328106"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328106"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}