{"id":315682,"date":"2026-06-21T11:14:56","date_gmt":"2026-06-21T11:14:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/seoforge\/"},"modified":"2026-07-01T09:50:51","modified_gmt":"2026-07-01T09:50:51","slug":"brainwerk-seo-suite","status":"publish","type":"plugin","link":"https:\/\/kk.wordpress.org\/plugins\/brainwerk-seo-suite\/","author":23503111,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Brainwerk SEO Suite","header_author":"Stefan Kogelgruber","header_description":"Privacy-first WordPress SEO suite with built-in visitor analytics, source tracking, on-page analyzer, sitemap, redirects, 404-logger and Schema.org. Multisite-ready and GDPR-compliant.","assets_banners_color":"192245","last_updated":"2026-07-01 09:50:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/seoforge.brainwerk.at","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":173,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.7.5":{"tag":"0.7.5","author":"brainwerk","date":"2026-06-29 17:01:53"},"0.9.0":{"tag":"0.9.0","author":"brainwerk","date":"2026-06-29 17:26:26"},"1.0.0":{"tag":"1.0.0","author":"brainwerk","date":"2026-06-30 15:50:01"},"1.0.1":{"tag":"1.0.1","author":"brainwerk","date":"2026-07-01 05:57:51"},"1.1.0":{"tag":"1.1.0","author":"brainwerk","date":"2026-07-01 07:09:10"},"1.2.0":{"tag":"1.2.0","author":"brainwerk","date":"2026-07-01 09:50:51"}},"upgrade_notice":{"1.2.0":"<p>Your settings now survive an uninstall and are restored automatically on reinstall. Nothing to do \u2014 it&#039;s on by default (toggle under Privacy).<\/p>","1.1.0":"<p>Adds the optional SEO benchmark network \u2014 contribute anonymous aggregate stats and compare against peers. Strictly opt-in, off by default. Nothing is sent unless you enable it.<\/p>","1.0.1":"<p>Fixes connecting to the optional &quot;SEO network&quot; sensor (registration token is now saved correctly). Recommended if you use the SEO network \/ fleet feature.<\/p>","1.0.0":"<p>Version 1.0! Reports are now dependency-free printable HTML (with a visitor-countries block), onboarding gains a GEO\/AEO step, accessibility is improved and schema migrations are hardened. Existing installs upgrade automatically.<\/p>","0.9.0":"<p>Generative Engine Optimization arrives: control AI crawlers, publish llms.txt, add FAQ schema and track AI-answer-engine traffic \u2014 plus free visitor-country analytics. Existing installs upgrade automatically.<\/p>","0.7.6":"<p>Multisite stats are now per-site: a new site selector switches between this site, the whole network, or any single subsite. Single-site installs are unaffected.<\/p>","0.6.0":"<p>Freemius integration is live. Existing Free installs keep working unchanged; Pro features require a license.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3580576,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3580576,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3580576,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3580576,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.7.5","0.9.0","1.0.0","1.0.1","1.1.0","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3590080,"resolution":"1","location":"assets","locale":"","width":2071,"height":1113},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3590080,"resolution":"10","location":"assets","locale":"","width":1999,"height":871},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3590080,"resolution":"11","location":"assets","locale":"","width":1996,"height":808},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3590080,"resolution":"12","location":"assets","locale":"","width":2053,"height":610},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3590080,"resolution":"13","location":"assets","locale":"","width":1984,"height":544},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3590080,"resolution":"14","location":"assets","locale":"","width":2052,"height":1285},"screenshot-15.png":{"filename":"screenshot-15.png","revision":3590080,"resolution":"15","location":"assets","locale":"","width":2062,"height":1221},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3590080,"resolution":"2","location":"assets","locale":"","width":2005,"height":1240},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3590080,"resolution":"3","location":"assets","locale":"","width":2059,"height":1081},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3590080,"resolution":"4","location":"assets","locale":"","width":2074,"height":868},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3590080,"resolution":"5","location":"assets","locale":"","width":2074,"height":711},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3590080,"resolution":"6","location":"assets","locale":"","width":2079,"height":1276},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3590080,"resolution":"7","location":"assets","locale":"","width":2074,"height":406},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3590080,"resolution":"8","location":"assets","locale":"","width":2062,"height":1270},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3590080,"resolution":"9","location":"assets","locale":"","width":1992,"height":1021}},"screenshots":{"1":"Dashboard \u2014 pageviews, unique visitors, bounce rate and a visits-over-time chart.","2":"Top pages \u2014 hits and unique visitors per URL.","3":"Live recent-visits log \u2014 page, source, device and browser, cookie-free.","4":"Top pages and top traffic sources side by side.","5":"Traffic by source type \u2014 direct, search, social, referral and more.","6":"Hourly visits plus browser and operating-system breakdowns.","7":"Device split \u2014 mobile, desktop and tablet.","8":"On-page SEO analyzer with per-post focus-keyword scoring.","9":"AI-powered SEO suggestions \u2014 bring your own EU-based Mistral key.","10":"Meta tags, Open Graph, Twitter Cards and Schema.org JSON-LD.","11":"Redirect manager \u2014 301\/302\/307\/308 with exact or wildcard matching.","12":"404 log \u2014 turn any missing URL into a redirect in one click.","13":"Health check \u2014 tables, cron jobs and sitemap status at a glance.","14":"Pre-launch sanity check across every module.","15":"Tools \u2014 test e-mails, CSV import\/export and data cleanup."}},"plugin_section":[262246],"plugin_tags":[232,131785,727,186,1557],"plugin_category":[36,55],"plugin_contributors":[268198,78154],"plugin_business_model":[],"class_list":["post-315682","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-analytics","plugin_tags-gdpr","plugin_tags-redirect","plugin_tags-seo","plugin_tags-sitemap","plugin_category-analytics","plugin_category-seo-and-marketing","plugin_contributors-brainwerk","plugin_contributors-freemius","plugin_committers-brainwerk"],"banners":{"banner":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/banner-772x250.png?rev=3580576","banner_2x":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/banner-1544x500.png?rev=3580576","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/icon-128x128.png?rev=3580576","icon_2x":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/icon-256x256.png?rev=3580576","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-1.png?rev=3590080","caption":"Dashboard \u2014 pageviews, unique visitors, bounce rate and a visits-over-time chart."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-2.png?rev=3590080","caption":"Top pages \u2014 hits and unique visitors per URL."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-3.png?rev=3590080","caption":"Live recent-visits log \u2014 page, source, device and browser, cookie-free."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-4.png?rev=3590080","caption":"Top pages and top traffic sources side by side."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-5.png?rev=3590080","caption":"Traffic by source type \u2014 direct, search, social, referral and more."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-6.png?rev=3590080","caption":"Hourly visits plus browser and operating-system breakdowns."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-7.png?rev=3590080","caption":"Device split \u2014 mobile, desktop and tablet."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-8.png?rev=3590080","caption":"On-page SEO analyzer with per-post focus-keyword scoring."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-9.png?rev=3590080","caption":"AI-powered SEO suggestions \u2014 bring your own EU-based Mistral key."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-10.png?rev=3590080","caption":"Meta tags, Open Graph, Twitter Cards and Schema.org JSON-LD."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-11.png?rev=3590080","caption":"Redirect manager \u2014 301\/302\/307\/308 with exact or wildcard matching."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-12.png?rev=3590080","caption":"404 log \u2014 turn any missing URL into a redirect in one click."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-13.png?rev=3590080","caption":"Health check \u2014 tables, cron jobs and sitemap status at a glance."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-14.png?rev=3590080","caption":"Pre-launch sanity check across every module."},{"src":"https:\/\/ps.w.org\/brainwerk-seo-suite\/assets\/screenshot-15.png?rev=3590080","caption":"Tools \u2014 test e-mails, CSV import\/export and data cleanup."}],"raw_content":"<!--section=description-->\n<p><strong>SEO and visitor analytics that never sell you \u2014 or your visitors \u2014 out.<\/strong><\/p>\n\n<p>Brainwerk SEO Suite is the all-in-one SEO and analytics toolkit for WordPress that keeps <strong>100 % of your data on your own server<\/strong>. No cookies. No Google Analytics. No Facebook Pixel. No \"anonymous\" data brokering. Just clear, honest insight into how people find and use your site \u2014 plus everything you need to rank in search <em>and<\/em> in AI answer engines.<\/p>\n\n<h4>\ud83c\uddea\ud83c\uddfa Made in Europe. Made for Europe.<\/h4>\n\n<p>Engineered in the EU, to EU standards, with <strong>privacy-by-design built into every query<\/strong> \u2014 never bolted on afterwards. Your analytics never leave your infrastructure, so you stay in control of your data and your visitors' trust.<\/p>\n\n<ul>\n<li><strong>GDPR-ready out of the box<\/strong> \u2014 IP anonymisation, daily-rotating visitor hashes, DNT-aware, configurable retention and one-click erasure. In most setups, <strong>no cookie banner needed<\/strong>.<\/li>\n<li><strong>Built for NIS2-era governance<\/strong> \u2014 everything self-hosted, auditable and under your control, to support your GDPR and NIS2 data-governance obligations.<\/li>\n<li><strong>EU-based AI, optional<\/strong> \u2014 AI suggestions run on <strong>Mistral AI \ud83c\uddea\ud83c\uddfa<\/strong> with your own key, so even your AI workflow stays in Europe.<\/li>\n<li><strong>High-tech under the hood<\/strong> \u2014 pre-aggregated daily tables for sub-millisecond dashboards even past 100k+ visits\/month, hardened <code>%i<\/code> SQL, cached sitemap &amp; meta output, a REST API and full WP-CLI control.<\/li>\n<\/ul>\n\n<h4>Get found by search engines *and* AI<\/h4>\n\n<p>Search is changing. Brainwerk SEO Suite covers classic SEO <strong>and<\/strong> the new world of AI answer engines:<\/p>\n\n<ul>\n<li><strong>Generative Engine Optimization (GEO\/AEO)<\/strong> \u2014 control which AI crawlers may use your content (GPTBot, Google-Extended, ClaudeBot, PerplexityBot and more) straight from robots.txt, publish an <code>llms.txt<\/code> content manifest, add per-post FAQ schema (FAQPage + speakable), and see traffic arriving from ChatGPT, Gemini, Copilot, Perplexity &amp; Claude as its own source.<\/li>\n<li><strong>Meta engine<\/strong> \u2014 title, meta description, Open Graph, Twitter Cards, canonical, per-post overrides.<\/li>\n<li><strong>Schema.org JSON-LD<\/strong> \u2014 Article, Organization, BreadcrumbList, WebSite, FAQPage.<\/li>\n<li><strong>XML sitemap<\/strong> \u2014 chunked URL sets + custom robots.txt.<\/li>\n<li><strong>On-page SEO analyzer<\/strong> \u2014 score 0\u2013100 across 9 checks (focus keyword, alt text, internal links, readability).<\/li>\n<\/ul>\n\n<h4>Privacy-first analytics, built in<\/h4>\n\n<ul>\n<li><strong>Local visitor analytics<\/strong> \u2014 server-side pageviews, no cookies, no Google Analytics, no Facebook Pixel.<\/li>\n<li><strong>Source attribution<\/strong> \u2014 search, social, referrers, UTM, direct, and AI answer engines.<\/li>\n<li><strong>Visitor countries<\/strong> \u2014 offline IP\u2192country lookup from a bundled database, no external calls (works on locked-down servers).<\/li>\n<li><strong>Top pages, entry\/exit pages, device + browser + OS breakdown.<\/strong><\/li>\n<li><strong>Redirect manager<\/strong> \u2014 301 \/ 302 \/ 307 \/ 308 with exact &amp; prefix matching, plus a <strong>404 log<\/strong> with one-click \"create redirect\".<\/li>\n<li><strong>AI suggestions<\/strong> \u2014 bring your own Mistral key for titles, meta descriptions and focus keywords.<\/li>\n<li><strong>Migration wizard<\/strong> \u2014 import metadata + redirects from Yoast, RankMath, AIOSEO.<\/li>\n<li><strong>Multisite-aware<\/strong> \u2014 network activation, network-wide settings, per-site overrides.<\/li>\n<\/ul>\n\n<h4>Plays nicely with Yoast, RankMath &amp; co.<\/h4>\n\n<p>Already running another SEO plugin? Brainwerk SEO Suite auto-detects it and stands down its meta, schema and sitemap modules \u2014 so you keep <strong>analytics, the 404 log, redirects and the analyzer<\/strong> as a clean add-on, with no duplicate output. One toggle forces full takeover whenever you're ready to switch.<\/p>\n\n<h4>Go Pro<\/h4>\n\n<p>The Pro tier (via Freemius license) adds:<\/p>\n\n<ul>\n<li>Google Search Console &amp; Bing Webmaster sync<\/li>\n<li>Region &amp; city geolocation drill-down (Free already covers countries)<\/li>\n<li>Slack \/ Discord \/ MS-Teams webhook alerts<\/li>\n<li>Traffic anomaly detection (Z-score baseline, 3\u03c3 alerts)<\/li>\n<li>Multisite-aggregate dashboard, white-label branding, priority support<\/li>\n<\/ul>\n\n<h4>\ud83c\uddea\ud83c\uddfa Auf Deutsch \u2014 kurz &amp; knapp<\/h4>\n\n<p>Brainwerk SEO Suite ist das All-in-one-SEO- und Analytics-Tool f\u00fcr WordPress, das <strong>100 % deiner Daten auf deinem eigenen Server<\/strong> beh\u00e4lt. Keine Cookies, kein Google Analytics, kein Facebook Pixel, kein Datenhandel \u2014 nur ehrliche Insights und alles, was du brauchst, um in Suchmaschinen <strong>und<\/strong> in KI-Antwortmaschinen gefunden zu werden.<\/p>\n\n<ul>\n<li><strong>Made in Europe, made for Europe<\/strong> \u2014 in der EU nach EU-Standards entwickelt, Privacy-by-Design in jeder Abfrage<\/li>\n<li><strong>DSGVO-ready ab Werk<\/strong> \u2014 IP-Anonymisierung, t\u00e4glich rotierende Besucher-Hashes, DNT-treu, meist <strong>ohne Cookie-Banner<\/strong><\/li>\n<li><strong>F\u00fcr die NIS2-\u00c4ra gebaut<\/strong> \u2014 alles selbst gehostet, auditierbar und unter deiner Kontrolle<\/li>\n<li><strong>EU-KI<\/strong> \u2014 AI-Vorschl\u00e4ge laufen optional \u00fcber <strong>Mistral AI \ud83c\uddea\ud83c\uddfa<\/strong> mit deinem eigenen Key<\/li>\n<li><strong>GEO\/AEO<\/strong> \u2014 KI-Crawler steuern (GPTBot, Google-Extended, ClaudeBot \u2026), <code>llms.txt<\/code>, FAQ-Schema, KI-Traffic-Tracking (ChatGPT, Gemini, Perplexity, Claude)<\/li>\n<li><strong>High-Tech im Maschinenraum<\/strong> \u2014 Sub-Millisekunden-Dashboards, geh\u00e4rtetes SQL, REST-API &amp; WP-CLI<\/li>\n<li><strong>Alles aus einer Hand<\/strong> \u2014 Analytics, Meta, Schema.org, Sitemap, Redirects, 404-Log, Analyzer<\/li>\n<\/ul>\n\n<p>Bereits Yoast oder RankMath im Einsatz? Brainwerk erkennt das automatisch und schaltet seine Meta-\/Schema-\/Sitemap-Module ab \u2014 du beh\u00e4ltst <strong>Analytics, 404-Log, Redirects und Analyzer<\/strong> als sauberes Add-on, ohne Doppelausgabe.<\/p>\n\n<h3>External services<\/h3>\n\n<p>The optional AI features connect to <strong>one external AI provider, Mistral AI (EU-based)<\/strong>. They are <strong>opt-in<\/strong> and only used when you explicitly enter your own API key.<\/p>\n\n<p><strong>Mistral AI API \u2014 <code>https:\/\/api.mistral.ai<\/code><\/strong> (EU-based)<\/p>\n\n<ul>\n<li><strong>What it is used for:<\/strong> Generating AI suggestions for SEO titles, meta descriptions, focus keywords and internal-link recommendations when you click the \"\u2728 Suggest with AI\" buttons in the on-page meta box or the AI tab.<\/li>\n<li><strong>When data is sent:<\/strong> Only when an editor clicks one of the AI-suggestion buttons in the WordPress admin. No data is sent on the front-end, during normal page views, or in cron jobs.<\/li>\n<li><strong>What data is sent:<\/strong> Your own Mistral API key (you supply it; the plugin does not bundle one), the post title and the post body content of the post you are editing, plus a short instruction prompt. Nothing else \u2014 no user identifiers, no site-wide content, no analytics.<\/li>\n<li><strong>How to disable:<\/strong> Leave the API key field empty in <em>Brainwerk SEO Suite \u2192 AI<\/em> settings, or toggle the AI feature off. With no key, the plugin never contacts any AI provider.<\/li>\n<li><strong>Provider:<\/strong> Mistral AI (France\/EU) \u2014 <a href=\"https:\/\/mistral.ai\/terms\/\">Terms of Service<\/a> \u2014 <a href=\"https:\/\/mistral.ai\/terms\/#privacy-policy\">Privacy Policy<\/a><\/li>\n<li><strong>API documentation:<\/strong> <a href=\"https:\/\/docs.mistral.ai\/\">https:\/\/docs.mistral.ai\/<\/a><\/li>\n<\/ul>\n\n<p><strong>SEO benchmark network \u2014 <code>https:\/\/shieldforge-intel.brainwerk.at<\/code><\/strong> (EU-based) \u2014 <strong>opt-in, off by default<\/strong><\/p>\n\n<ul>\n<li><strong>What it is used for:<\/strong> If you choose to join the benchmark network, the plugin sends one aggregate snapshot per day so you can compare your site against anonymised peers in your industry.<\/li>\n<li><strong>When data is sent:<\/strong> Only after you explicitly opt in (a consent step during onboarding, or <em>Brainwerk SEO Suite \u2192 Tools \u2192 SEO network<\/em>). Nothing is sent until you enable it, and you can disconnect any time.<\/li>\n<li><strong>What data is sent:<\/strong> Aggregate figures only \u2014 visit\/session totals, percentages (traffic sources, devices, bot share), p75 Core Web Vitals and an optional self-declared industry label. The exact same numbers shown on your own dashboard. <strong>Never<\/strong> an individual visitor, IP address, URL or any personal data.<\/li>\n<li><strong>How to disable:<\/strong> Leave it off, or click <em>Disconnect<\/em> under <em>Tools \u2192 SEO network<\/em>. When off, the plugin never contacts the hub.<\/li>\n<li><strong>Provider:<\/strong> Brainwerk (Austria\/EU) \u2014 <a href=\"https:\/\/brainwerk.at\/datenschutz\/\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<p>Licensing for the optional Pro tier is handled by Freemius (Merchant of Record). License-validation traffic \u2014 only performed when you activate a Pro license on the <em>License<\/em> tab \u2014 goes to <code>https:\/\/api.freemius.com<\/code>. See the <a href=\"https:\/\/freemius.com\/terms\/\">Freemius Terms of Service<\/a> and <a href=\"https:\/\/freemius.com\/privacy\/\">Privacy Policy<\/a>. With no Pro license entered, the plugin never contacts Freemius.<\/p>\n\n<p><strong>Visitor-country lookup is offline.<\/strong> The Free country-level geolocation uses a compact IP\u2192country database <strong>bundled inside the plugin<\/strong> and resolved locally \u2014 it makes <strong>no external requests<\/strong>. The bundled data is derived from the <strong>DB-IP IP-to-Country Lite<\/strong> database by DB-IP, licensed under <a href=\"https:\/\/creativecommons.org\/licenses\/by\/4.0\/\">Creative Commons Attribution 4.0 International (CC BY 4.0)<\/a>. IP Geolocation by <a href=\"https:\/\/db-ip.com\">DB-IP<\/a>. The Pro region\/city drill-down uses MaxMind's GeoLite2 City database (downloaded once to your server when you enable it); this product includes GeoLite2 data created by MaxMind, available from <a href=\"https:\/\/www.maxmind.com\">https:\/\/www.maxmind.com<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>seoforge<\/code> folder to <code>\/wp-content\/plugins\/<\/code> (or install via the WordPress Plugin Directory).<\/li>\n<li><strong>Activate<\/strong> the plugin on the Plugins page, or <strong>Network Activate<\/strong> on Multisite.<\/li>\n<li>Open <em>Brainwerk SEO Suite<\/em> in the admin menu and complete the 3-step setup wizard.<\/li>\n<li>(Optional) On the <em>License<\/em> tab, activate a Pro license to unlock Pro modules.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20brainwerk%20seo%20suite%20work%20with%20yoast%20%2F%20rankmath%20%2F%20aioseo%20already%20installed%3F\"><h3>Does Brainwerk SEO Suite work with Yoast \/ RankMath \/ AIOSEO already installed?<\/h3><\/dt>\n<dd><p>Yes. Brainwerk SEO Suite auto-detects the active SEO plugin and stands down its meta, schema, sitemap and robots modules so there's no duplicate output. Analytics, the 404 log, redirects and the on-page analyzer keep working side by side. A single toggle on the <em>Privacy \/ GDPR<\/em> tab forces takeover whenever you want.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20add%20a%20cookie%20banner%3F\"><h3>Do I need to add a cookie banner?<\/h3><\/dt>\n<dd><p>Not because of Brainwerk SEO Suite. The plugin doesn't drop any cookies, doesn't use a cross-site identifier, anonymizes IPs and respects DNT by default. The bundled privacy snippet documents exactly what is stored so you can paste it into your own privacy policy.<\/p><\/dd>\n<dt id=\"is%20the%20analytics%20data%20accurate%20without%20javascript%3F\"><h3>Is the analytics data accurate without JavaScript?<\/h3><\/dt>\n<dd><p>The server-side mode catches all real requests, including users who block JavaScript or use strict tracking-protection. It does count fewer \"bot-like\" visits than JS-based analytics because we filter known crawler user agents. A JS beacon mode for time-on-page and scroll depth is included if you want the extra signal.<\/p><\/dd>\n<dt id=\"will%20brainwerk%20seo%20suite%20slow%20down%20my%20site%3F\"><h3>Will Brainwerk SEO Suite slow down my site?<\/h3><\/dt>\n<dd><p>The tracker only inserts one row per pageview (no joins, no remote calls). All dashboards read from a pre-aggregated daily table, so the admin pages are sub-millisecond even at 100k+ visits per month. The sitemap and meta output are cached.<\/p><\/dd>\n<dt id=\"is%20there%20a%20wp-cli%20command%3F\"><h3>Is there a wp-cli command?<\/h3><\/dt>\n<dd><p>Yes \u2014 <code>wp seoforge stats<\/code>, <code>wp seoforge purge<\/code>, <code>wp seoforge cleanup<\/code>, <code>wp seoforge aggregate<\/code>, <code>wp seoforge export<\/code>, <code>wp seoforge import-redirects<\/code>, <code>wp seoforge seed-demo<\/code> and <code>wp seoforge license<\/code>.<\/p><\/dd>\n<dt id=\"where%20is%20data%20stored%3F\"><h3>Where is data stored?<\/h3><\/dt>\n<dd><p>Six tables under the network prefix (<code>wp_seoforge_visits<\/code>, <code>_sessions<\/code>, <code>_redirects<\/code>, <code>_404<\/code>, <code>_meta<\/code>, <code>_daily<\/code>) and a settings option. Nothing leaves the server (Pro modules use opt-in external APIs).<\/p><\/dd>\n<dt id=\"where%20is%20the%20license%20server%3F\"><h3>Where is the license server?<\/h3><\/dt>\n<dd><p>Licensing is handled by Freemius (Merchant of Record). All license traffic goes to <code>api.freemius.com<\/code>. There is no Brainwerk SEO Suite-operated license server.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0 \u2014 2026-07-01<\/h4>\n\n<ul>\n<li><strong>New \u2014 settings survive uninstall &amp; reinstall<\/strong>: your configuration is now kept in a private database backup, so if you delete and later reinstall the plugin, all your settings are restored automatically \u2014 no reconfiguring. The backup holds only your settings (never visitor data) and is never placed in a public folder. It even survives the \"delete all data on uninstall\" option. A new <em>Privacy \u2192 Remember settings for reinstall<\/em> toggle (on by default) lets you turn it off for a complete wipe.<\/li>\n<\/ul>\n\n<h4>1.1.0 \u2014 2026-07-01<\/h4>\n\n<ul>\n<li><strong>New \u2014 SEO benchmark network (opt-in)<\/strong>: contribute one aggregate snapshot per day (counts, percentages and p75 Core Web Vitals only \u2014 never a single visitor, IP or URL) and see how your site compares to anonymised peers in your industry. Strictly opt-in and off by default: a clear consent step in onboarding, plus a one-time invitation on the plugin's own screens. Available on every tier. Manage or disconnect any time under <em>Tools \u2192 SEO network<\/em>. Fully documented under <em>External services<\/em>.<\/li>\n<li><strong>New \u2014 pull transport for locked-down servers<\/strong>: sites whose PHP cannot make outbound HTTPS can still take part \u2014 the hub fetches the daily snapshot from an authenticated, read-only endpoint instead (the site makes no outbound connections).<\/li>\n<\/ul>\n\n<h4>1.0.1 \u2014 2026-07-01<\/h4>\n\n<ul>\n<li><strong>Fix<\/strong>: connecting to the optional \"SEO network\" sensor could fail with \"missing_register_token\" \u2014 the registration token, industry and enable toggle were silently dropped when saving settings. These are now persisted correctly, so connecting works.<\/li>\n<\/ul>\n\n<h4>1.0.0 \u2014 2026-06-30<\/h4>\n\n<ul>\n<li><strong>Printable reports, no PDF software required<\/strong>: the report generator now produces a self-contained, branded HTML report that any browser saves as PDF. This removes an external PDF library dependency, so reports work on every install \u2014 including locked-down servers.<\/li>\n<li><strong>Reports now include visitor countries<\/strong>: the report gained a \"Top countries\" block (flags + share bars) alongside the KPI grid, trend, sources and devices.<\/li>\n<li><strong>Onboarding<\/strong>: a new \"AI search readiness (GEO\/AEO)\" step lets you switch on the llms.txt manifest and FAQ schema right from the setup wizard.<\/li>\n<li><strong>Accessibility<\/strong>: clearer screen-reader labels on the redirect, 404 and visitor-country controls; decorative icons are now correctly hidden from assistive tech.<\/li>\n<li><strong>Hardening<\/strong>: database schema migrations now run only in the admin context (never triggered by a public front-end request), with a lock against concurrent runs.<\/li>\n<li><strong>Pro<\/strong>: opt-in \"SEO network\" sensor pushes one aggregate snapshot per day to power an agency fleet overview and anonymous peer benchmarks (counts and percentages only \u2014 never per-visitor data). Search Console performance (clicks, impressions, position, top queries) now has its own card.<\/li>\n<\/ul>\n\n<h4>0.9.0 \u2014 2026-06-29<\/h4>\n\n<ul>\n<li><strong>Generative Engine Optimization (GEO\/AEO)<\/strong> \u2014 a new toolkit to get your content surfaced and cited by AI answer engines:\n\n<ul>\n<li><strong>AI-crawler controls<\/strong>: one-click allow\/block for GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, PerplexityBot, Google-Extended, Applebot-Extended, Bytespider, CCBot and more \u2014 written straight into robots.txt.<\/li>\n<li><strong>llms.txt manifest<\/strong>: optionally publish <code>\/llms.txt<\/code> (+ <code>\/llms-full.txt<\/code>), a Markdown map of your key pages and posts for AI crawlers \u2014 generated automatically and cached.<\/li>\n<li><strong>FAQ schema<\/strong>: add question\/answer pairs per post\/page in the editor; output as FAQPage JSON-LD (plus <code>speakable<\/code> on articles) for rich results and AI answers.<\/li>\n<li><strong>AI-engine traffic<\/strong>: visits arriving from ChatGPT, Gemini, Copilot, Perplexity, Claude and other assistants are now classified as their own \"AI answer engines\" source, with a dedicated breakdown on the Sources tab.<\/li>\n<\/ul><\/li>\n<li><strong>Fix<\/strong>: saving settings on the Meta\/Schema tab silently did nothing after a slug rename (the form data was read under the wrong key). Settings now save correctly again.<\/li>\n<\/ul>\n\n<h4>0.8.0 \u2014 2026-06-29<\/h4>\n\n<ul>\n<li><strong>Visitor geolocation, now in Free<\/strong>: the Visitors tab gets a \"Visitor countries\" breakdown with flags and share-of-traffic bars, and recent visits show a country column. Country resolution runs entirely <strong>offline<\/strong> from a compact IP\u2192country database bundled inside the plugin (built from DB-IP Lite, CC BY 4.0) \u2014 no external requests, so it works on locked-down\/firewalled servers too. Covers both IPv4 and IPv6.<\/li>\n<li><strong>Pro \u2014 region &amp; city drill-down<\/strong>: with a Pro license, click any country to expand its top regions and cities, powered by MaxMind's GeoLite2 City database (read with a bundled, dependency-free reader). Country-level data stays available on Free.<\/li>\n<li><strong>Schema<\/strong>: visits and sessions gain <code>region<\/code> + <code>city<\/code> columns (DB upgrade to v4, applied automatically).<\/li>\n<li><strong>Demo data<\/strong>: the demo seeder now emits internally-consistent country\/region\/city so the new geolocation views look populated out of the box.<\/li>\n<\/ul>\n\n<h4>0.7.7 \u2014 2026-06-24<\/h4>\n\n<ul>\n<li><strong>Every e-mail now shares the same polished design<\/strong>: the traffic-spike alert, the scheduled report cover e-mails (auto weekly\/monthly and re-sends) and the \"send test\" e-mail were plain text or a bare one-liner \u2014 they now use the same branded HTML shell as the digests (navy gradient header with logo, status-coloured hero band, clean facts table, call-to-action button and the made-in-EU footer). Consistent look across every notification the plugin sends.<\/li>\n<li><strong>Richer traffic-spike alert<\/strong>: the anomaly alert now leads with a colour-coded hero (amber for a spike, red for an extreme spike) and a tidy breakdown \u2014 hour, human pageviews, z-score, rolling baseline and your alert threshold \u2014 plus a one-click button into the live dashboard. Slack\/Discord\/Teams webhook payloads are unchanged.<\/li>\n<li><strong>Fix \u2014 <code>\/favicon.ico<\/code> no longer counted as a page<\/strong>: favicon requests (and any other static asset that gets routed through WordPress) were recorded as visits and could top the \"Top pages\" report. They are now excluded from tracking (via <code>is_favicon()<\/code> plus a static-file-extension guard), so the report only shows real pages.<\/li>\n<li><strong>Fix \u2014 broken in-app links (\"Sorry, you are not allowed to access this page\")<\/strong>: links that pointed to the old <code>admin.php?page=seoforge<\/code> slug \u2014 the onboarding \"Start setup\" button, Site Health fixes, the dashboard widget, report\/e-mail buttons and others \u2014 led to a permission error because the admin page slug is <code>brainwerk-seo-suite<\/code>. All ~40 links now use the correct slug.<\/li>\n<\/ul>\n\n<h4>0.7.6 \u2014 2026-06-21<\/h4>\n\n<ul>\n<li><strong>E-mail reports \u2014 graphical daily &amp; weekly digests<\/strong>: the report e-mails are now beautifully designed HTML (brand header, KPI tiles with period-over-period trend arrows, traffic-source bars, top pages, Core Web Vitals ratings, human-vs-bot split) \u2014 everything at a glance. New <strong>daily<\/strong> digest in addition to the weekly one; configure recipient + cadence and send a test from <em>Tools \u2192 E-mail reports<\/em>.<\/li>\n<li><strong>Fix \u2014 Core Web Vitals, engagement &amp; new-visitor tracking now actually work<\/strong>: these metrics queried database columns that were never created or populated (they silently returned 0 and logged \"unknown column\" errors). The schema now includes <code>lcp_ms<\/code>\/<code>cls_x1000<\/code>\/<code>inp_ms<\/code>\/<code>is_engaged<\/code>\/<code>is_new_visitor<\/code> (DB upgrade to v3, applied automatically), new-visitor detection runs server-side, engagement + Core Web Vitals (LCP\/INP\/CLS, real field data) are captured via the front-end beacon (beacon\/hybrid tracking mode). Verified on a staging install.<\/li>\n<li><strong>Hardening &amp; cleanup<\/strong> (from an internal audit): Multisite isolation fix so a subsite admin can no longer delete\/toggle another site's redirect by id; removed a dead \"link check\" cron that fired into the void; report crons are now cleared on deactivation; minor robustness fixes.<\/li>\n<li><strong>AI \u2014 Mistral AI support (EU-based) + provider choice<\/strong>: AI suggestions can now run on Mistral AI \u2014 an EU-based provider, so your content stays in the EU \u2014 in addition to Anthropic (Claude). Choose your provider and model in the AI tab; Mistral is the new default for fresh installs. Still bring-your-own-key, encrypted at rest, fully opt-in.<\/li>\n<li><strong>Pro \u2014 Executive report (CEO \/ CTO)<\/strong>: a one-click, print-ready branded report for leadership. Pick an Executive (CEO), Technical (CTO) or Full\/Board preset, choose a period, and present it or save it as PDF from the browser. Includes period-over-period deltas, human-vs-bot split, traffic mix, geographic reach, top\/entry\/exit pages, Core Web Vitals ratings (overall and by device), new-vs-returning audience and a privacy\/compliance summary \u2014 rendered entirely from your own first-party data, no external service. The Free build shows a preview\/upsell.<\/li>\n<li><strong>Multisite<\/strong>: the analytics tabs (Dashboard, Visitors, Sources, Pages) and the at-a-glance dashboard widget now scope visitor stats per site. A new site selector lets you switch between <strong>this site<\/strong>, the <strong>entire network<\/strong> (aggregated), or any <strong>single subsite<\/strong>; the choice is remembered per user. Previously every subsite admin saw network-wide totals.<\/li>\n<li><strong>Multisite<\/strong>: the network Dashboard adds a per-site breakdown table (pageviews \/ unique visitors \/ sessions per subsite) with a one-click drill-down into each site.<\/li>\n<li><strong>Fix<\/strong>: <code>SEOFORGE_VERSION<\/code> was still reporting <code>0.7.4<\/code>; it is now back in sync with the plugin header.<\/li>\n<\/ul>\n\n<h4>0.7.5 \u2014 2026-06-19<\/h4>\n\n<ul>\n<li><strong>Security\/SQL<\/strong>: every plugin-owned table name that was previously interpolated into a query string is now passed through the <code>$wpdb-&gt;prepare()<\/code> <code>%i<\/code> identifier placeholder (WordPress 6.2+) instead of string interpolation. Conditional <code>WHERE<\/code> builders and the breakdown\/percentile switches were restructured so each <code>$wpdb-&gt;prepare()<\/code> call receives a string literal with placeholders only \u2014 no SQL string is built in a variable. The only remaining interpolation is the dynamic <code>post_type IN (...)<\/code> list, which uses generated <code>%s<\/code> placeholders bound through <code>prepare()<\/code> (an <code>IN()<\/code> list cannot use <code>%i<\/code>). Requires at least WordPress 6.2.<\/li>\n<\/ul>\n\n<h4>0.7.4 \u2014 2026-06-14<\/h4>\n\n<ul>\n<li><strong>Security<\/strong>: removed the last two cases of a column identifier being interpolated into SQL. The breakdown query (<code>Seoforge_Stats::group_count()<\/code>) and the Core Web Vitals percentile query (<code>Seoforge_Reports::percentile()<\/code>) now select a separate, fully literal query string per allowed column \u2014 the SQL identifier is never taken from a variable. All values continue to be bound through <code>$wpdb-&gt;prepare()<\/code>.<\/li>\n<\/ul>\n\n<h4>0.7.3 \u2014 2026-06-13<\/h4>\n\n<ul>\n<li><strong>Enqueue<\/strong>: the Reports tab no longer outputs an inline <code>&lt;script&gt;<\/code>; its quick-range helper moved into the enqueued <code>assets\/js\/admin.js<\/code>.<\/li>\n<li><strong>i18n<\/strong>: the last <code>seoforge<\/code> text-domain string now uses <code>brainwerk-seo-suite<\/code>, matching the plugin slug.<\/li>\n<li><strong>Security<\/strong>: report admin-post handlers sanitize the nonce with <code>sanitize_text_field( wp_unslash() )<\/code> and unslash\/sanitize all request values; the post meta box sanitizes its submitted array at input.<\/li>\n<\/ul>\n\n<h4>0.7.2 \u2014 2026-06-10<\/h4>\n\n<ul>\n<li><strong>Security<\/strong>: table names passed to the internal table-resolver are now validated against the fixed whitelist of plugin tables before being used in SQL.<\/li>\n<li><strong>Security<\/strong>: the migration coordinator builds its post-type <code>IN (...)<\/code> list from dynamically generated <code>%s<\/code> placeholders via <code>$wpdb-&gt;prepare()<\/code> instead of escaping + interpolation.<\/li>\n<li><strong>Security<\/strong>: internal report\/stats helpers validate metric and group-by column names against fixed whitelists before using them as SQL identifiers.<\/li>\n<\/ul>\n\n<h4>0.7.1 \u2014 2026-06-03<\/h4>\n\n<ul>\n<li><strong>Security<\/strong>: Schema.org JSON-LD is now emitted with slash-escaping (no <code>JSON_UNESCAPED_SLASHES<\/code>), so a value containing <code>&lt;\/script&gt;<\/code> can no longer break out of the inline <code>application\/ld+json<\/code> block. <code>\\\/<\/code> and <code>\\uXXXX<\/code> remain valid JSON-LD.<\/li>\n<\/ul>\n\n<h4>0.7.0 \u2014 2026-05-21<\/h4>\n\n<ul>\n<li><strong>Rebranded<\/strong> to Brainwerk SEO Suite (was: SEOForge). Display name + text-domain + plugin filename updated.<\/li>\n<li><strong>Security<\/strong>: nonce verification in the post meta box now goes through <code>sanitize_text_field( wp_unslash() )<\/code> (pluggable-function hardening).<\/li>\n<li><strong>Security<\/strong>: <code>$_COOKIE<\/code> reads in the tracker now go through <code>sanitize_text_field( wp_unslash() )<\/code> in addition to the existing hex-filter.<\/li>\n<li><strong>Security<\/strong>: SVG sparkline attributes in the dashboard widget now use <code>esc_attr()<\/code> for chart coordinates.<\/li>\n<li><strong>Security<\/strong>: WP-CLI <code>export --out=&lt;path&gt;<\/code> is now restricted to a <code>wp-content\/uploads\/seoforge\/<\/code> subdirectory (and writes only the basename) so it cannot clobber arbitrary paths.<\/li>\n<li><strong>wp.org compliance<\/strong>: removed the Pro-only bearer-key path from the REST <code>permission_callback<\/code>. The Free REST API is admin-cookie\/nonce only. Pro external dashboards stay in the separate Premium build.<\/li>\n<li><strong>wp.org compliance<\/strong>: removed <code>load_plugin_textdomain()<\/code> \u2014 WordPress 4.6+ auto-loads translations for plugins hosted on wp.org by slug.<\/li>\n<li><strong>wp.org compliance<\/strong>: weekly digest now uses <code>admin_url()<\/code> instead of a hard-coded <code>\/wp-admin\/<\/code> path.<\/li>\n<li><strong>Docs<\/strong>: readme now documents the optional Anthropic (Claude) API integration as an <code>== External services ==<\/code> section, with what is sent, when, how to disable, and links to Anthropic's Terms \/ Privacy.<\/li>\n<\/ul>\n\n<h4>0.6.0 \u2014 2026-05-19<\/h4>\n\n<ul>\n<li>Freemius integration live-wired end-to-end (real product IDs, SDK in <code>freemius\/<\/code>, <code>is_live=true<\/code>).<\/li>\n<li>Paid plans Starter (\u20ac59\/yr, 1 site) and Agency (\u20ac199\/yr, 25 sites) with auto-generated pricing table.<\/li>\n<li>New sanity row in the Tools tab reports SDK \/ opt-in \/ license state.<\/li>\n<li>Premium build script (<code>bin\/build-premium.sh<\/code>) for Freemius Deploy.<\/li>\n<li>Fix: <code>Seoforge_License::is_pro()<\/code> now uses <code>is_paying()<\/code> so Pro modules load in both Free and Premium builds with a valid license.<\/li>\n<li><code>uninstall.php<\/code> logic migrated to Freemius <code>after_uninstall<\/code> hook (per Freemius Deploy guideline).<\/li>\n<\/ul>\n\n<h4>0.5.0 \u2014 2026-05-10<\/h4>\n\n<ul>\n<li>CI alignment with the ShieldForge UX (Hero banner, tab groups, action items, iOS toggles, tooltips, dark mode, mobile, sanity card).<\/li>\n<li><code>bin\/bump-version.{sh,ps1}<\/code> + <code>bin\/build-free.{sh,ps1}<\/code> + <code>.distignore<\/code>.<\/li>\n<li>Pre-launch sanity check (17 checks across versioning, cron, DB, privacy, tracking, sitemap, coexistence, file hygiene, readme, translations).<\/li>\n<li>i18n: POT + de_DE PO\/MO shipped.<\/li>\n<li>PHPUnit tests for <code>Seoforge_Crypto<\/code> + <code>Seoforge_Analyzer<\/code>.<\/li>\n<\/ul>\n\n<h4>0.4.0 \u2014 2026-05-07<\/h4>\n\n<ul>\n<li>Migration wizard for Yoast \/ RankMath \/ AIOSEO (metadata + redirects).<\/li>\n<li>JS-beacon tracking mode with scroll depth + outbound clicks.<\/li>\n<li><code>Seoforge_Health<\/code> setup-health score on the Dashboard.<\/li>\n<li>UX polish for non-technical site owners.<\/li>\n<\/ul>\n\n<h4>0.3.0 \u2014 2026-05-07<\/h4>\n\n<ul>\n<li>Pre-aggregated daily table for O(1) dashboard queries.<\/li>\n<li>Transient caches with auto-flush on mutations.<\/li>\n<li>License-key encryption at rest (AES-256-CBC).<\/li>\n<li>Streamed CSV exports (visits, sessions, 404, redirects).<\/li>\n<li>Bulk redirect import from CSV.<\/li>\n<li>WP-CLI commands (<code>wp seoforge ...<\/code>).<\/li>\n<li>Demo seeder + live-visitors widget.<\/li>\n<li>REST API (<code>\/wp-json\/seoforge\/v1\/...<\/code>).<\/li>\n<\/ul>\n\n<h4>0.2.0 \u2014 2026-05-07<\/h4>\n\n<ul>\n<li>Coexistence layer detects Yoast \/ RankMath \/ AIOSEO \/ The SEO Framework \/ SEOPress and stands down passively.<\/li>\n<li>License + Pro module foundation.<\/li>\n<li>Pro stubs: Geo-Lookup, webhooks, anomaly detection, Search Console.<\/li>\n<li>Marketing landing page (<code>landing\/index.html<\/code>).<\/li>\n<\/ul>\n\n<h4>0.1.0 \u2014 2026-05-07<\/h4>\n\n<ul>\n<li>Initial release: tracker, sessions, stats, meta, schema, sitemap, robots, redirects, 404 log, on-page analyzer, weekly digest, onboarding wizard, tools tab.<\/li>\n<\/ul>","raw_excerpt":"All-in-one SEO &amp; cookie-free analytics, plus AI-search (GEO\/AEO) tools. Made in Europe, made for Europe \u2014 GDPR &amp; NIS2-ready.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/315682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=315682"}],"author":[{"embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/brainwerk"}],"wp:attachment":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=315682"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=315682"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=315682"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=315682"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=315682"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=315682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}