{"id":350684,"date":"2026-09-03T04:16:47","date_gmt":"2026-09-03T04:16:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/semantic-related-posts-by-juanjo-labs\/"},"modified":"2026-09-03T04:16:36","modified_gmt":"2026-09-03T04:16:36","slug":"juanjo-labs-semantic-related-posts","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/juanjo-labs-semantic-related-posts\/","author":23544038,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Juanjo Labs Semantic Related Posts","header_author":"Juanjo Labs","header_description":"Inserta posts relacionados autom\u00e1ticamente usando embeddings sem\u00e1nticos via Voyage AI.","assets_banners_color":"265696","last_updated":"2026-09-03 04:16:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/juanjo-labs-semantic-related-posts\/","header_author_uri":"https:\/\/juanjoblog.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"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":"juanjolabs","date":"2026-09-03 04:16:36","revision":3678932}},"upgrade_notice":{"1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3680232,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3680260,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Related posts widget on a blog article","2":"Settings panel and embeddings generation","3":"Comparison: related posts by tags (left) vs. by embeddings (right)"}},"plugin_section":[],"plugin_tags":[2353,250171,1089,140844,186],"plugin_category":[55],"plugin_contributors":[78154,278947],"plugin_business_model":[],"class_list":["post-350684","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-embeddings","plugin_tags-related-posts","plugin_tags-semantic-search","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-freemius","plugin_contributors-juanjolabs","plugin_committers-juanjolabs"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/juanjo-labs-semantic-related-posts\/assets\/icon-256x256.png?rev=3680232","icon_2x":"https:\/\/ps.w.org\/juanjo-labs-semantic-related-posts\/assets\/icon-256x256.png?rev=3680232","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Juanjo Labs Semantic Related Posts<\/strong> shows related articles using <strong>real semantic similarity<\/strong> (AI embeddings), not just shared tags or categories like most related-posts plugins.<\/p>\n\n<p>Why does this matter? A traditional related-posts plugin only compares shared tags and categories. This plugin understands what each article is actually <em>about<\/em> and finds genuinely similar content, even if it doesn't share a single tag.<\/p>\n\n<h4>4 matching modes, not just AI<\/h4>\n\n<p>Pick whichever mode fits your site best \u2014 all four are available in both Lite and Pro:<\/p>\n\n<ul>\n<li><strong>AI semantic<\/strong> \u2014 embeddings, finds real similarity of meaning<\/li>\n<li><strong>By category<\/strong> \u2014 most recent posts from the same category<\/li>\n<li><strong>By tags<\/strong> \u2014 posts sharing the most tags with the current one<\/li>\n<li><strong>Hybrid<\/strong> \u2014 combines tags + category, with AI re-ranking if an API key is configured<\/li>\n<\/ul>\n\n<h4>Lite version features (free)<\/h4>\n\n<ul>\n<li>All 4 matching modes (AI, category, tags, hybrid)<\/li>\n<li>Embeddings generated from each post's title and excerpt (AI mode)<\/li>\n<li>Unlimited posts indexed with AI<\/li>\n<li>Choose which public post types are included (posts, pages, WooCommerce products, other custom post types) \u2014 with automatic price display for products<\/li>\n<li>1 widget style (simple grid)<\/li>\n<li>Manual embeddings recalculation<\/li>\n<li>Basic SEO metadata for Rank Math (title, description and ALT generated by rules, no API cost)<\/li>\n<\/ul>\n\n<h4>With the Pro version you get<\/h4>\n\n<ul>\n<li>Embeddings over the full post content (higher accuracy in AI mode)<\/li>\n<li>Automatic recalculation via cron (Lite is manual, on demand)<\/li>\n<li>3 widget styles (Grid, List, Compact) and a customizable accent color<\/li>\n<li>Dedicated WooCommerce integration hook for classic themes where the product page doesn't run <code>the_content<\/code> (covers cases the standard content filter misses)<\/li>\n<li>Manual post exclusion and per-category weight control<\/li>\n<li>SEO metadata generated with real AI (Claude) for Rank Math: title, description and image ALT text<\/li>\n<li>Priority email support<\/li>\n<\/ul>\n\n<p>Upgrade to Pro anytime from the plugin's settings page in your WordPress admin (Settings \u2192 Semantic Related Posts \u2192 Licencia).<\/p>\n\n<h4>Use cases<\/h4>\n\n<ul>\n<li>Blogs and news sites that want to reduce bounce rate<\/li>\n<li>E-commerce sites with products related by real description, not just category<\/li>\n<li>Multilingual sites that need an alternative to English-only plugins<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to third-party AI APIs to provide its core features. You must supply your own API key for each service you want to use; the plugin never sends data to these services without a key configured, and none of your API keys are ever sent to us (Juanjo Labs) or to any server other than the provider's own.<\/p>\n\n<p><strong>Voyage AI (embeddings)<\/strong> \u2014 used to generate the semantic embeddings that power the \"AI semantic\" and \"Hybrid\" related-posts modes.\nIt sends the title and excerpt of each published post (and, in the Pro version, the full post content) to Voyage AI's API whenever a post is created or updated and an API key is configured. No data is sent if this mode isn't in use or no API key is set.\nProvider: Voyage AI Innovations, Inc. \u2014 <a href=\"https:\/\/www.voyageai.com\/tos\">Terms of Service<\/a> \u2014 <a href=\"https:\/\/www.voyageai.com\/privacy\">Privacy Policy<\/a><\/p>\n\n<p><strong>Anthropic API (Claude)<\/strong> \u2014 used only in the Pro version, to generate SEO metadata (title, description, focus keyword) and image ALT text for Rank Math.\nIt sends the post's title and content (for metadata) or an image's binary data (for ALT text) to Anthropic's API when you use the \"Generate SEO\" tools and an Anthropic API key is configured. No data is sent if no API key is set, or in the Lite version, which generates this metadata locally using simple rules instead.\nProvider: Anthropic, PBC \u2014 <a href=\"https:\/\/www.anthropic.com\/legal\/commercial-terms\">Commercial Terms of Service<\/a> \u2014 <a href=\"https:\/\/www.anthropic.com\/legal\/privacy\">Privacy Policy<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>juanjo-labs-semantic-related-posts<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin from the \"Plugins\" menu in WordPress<\/li>\n<li>Go to Settings \u2192 Semantic Related Posts and generate the initial embeddings<\/li>\n<li>Insert the <code>[semantic_related_posts]<\/code> shortcode, or use the included block\/widget<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20external%20api%20key%3F\"><h3>Do I need an external API key?<\/h3><\/dt>\n<dd><p>Yes, the AI matching mode uses Voyage AI's embeddings API \u2014 you supply your own key, and Voyage AI's own free tier includes a monthly quota (set by Voyage AI, not by this plugin). The category, tags, and hybrid-without-API-key modes don't require any external key.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20any%20wordpress%20theme%3F\"><h3>Does it work with any WordPress theme?<\/h3><\/dt>\n<dd><p>Yes, the widget adapts to your theme's styles and can be inserted via shortcode, Gutenberg block, or classic widget.<\/p>\n\n<p>On sites with <strong>WooCommerce<\/strong>: if you include \"Products\" under Settings \u2192 Semantic Related Posts \u2192 Tipos de contenido, the widget inserts automatically on product pages the same way it does on posts, on any theme that runs <code>the_content<\/code> for the product description (Storefront, Astra, Flatsome, OceanWP, and most themes used with WooCommerce in production). The <strong>Pro<\/strong> version adds a dedicated WooCommerce hook that also covers classic themes where the product has no long description (so <code>the_content<\/code> never runs). On <strong>fully block-based themes with WooCommerce Blocks<\/strong> (for example, Twenty Twenty-Four), automatic insertion doesn't work on either version because of how those themes rebuild the product page \u2014 in that case, manually add a \"Custom HTML\" block with the <code>[semantic_related_posts]<\/code> shortcode to the product template (Appearance \u2192 Site Editor \u2192 Templates \u2192 Single Product). The shortcode works correctly on any theme, including block themes.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20lite%20and%20pro%3F\"><h3>What's the difference between Lite and Pro?<\/h3><\/dt>\n<dd><p>Both versions include all 4 matching modes (AI, category, tags, hybrid), unlimited AI indexing, the ability to include any public post type (including WooCommerce products), and SEO metadata generation for Rank Math. Lite uses title + excerpt for AI mode and rule-based SEO metadata, generated manually. Pro adds embeddings over the full post content (higher accuracy), automatic recalculation via cron, real AI-generated (Claude) SEO metadata, 3 widget styles, a dedicated WooCommerce integration hook for classic themes, manual post exclusion, and per-category weighting.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"AI-powered semantic related posts (embeddings), plus category\/tags\/hybrid modes and automatic Rank Math SEO metadata.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=350684"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/juanjolabs"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350684"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350684"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350684"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350684"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350684"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}