{"id":364877,"date":"2026-09-09T07:11:48","date_gmt":"2026-09-09T07:11:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dadsfam-seo\/"},"modified":"2026-10-22T13:48:03","modified_gmt":"2026-10-22T13:48:03","slug":"dadsfam-seo","status":"publish","type":"plugin","link":"https:\/\/uk.wordpress.org\/plugins\/dadsfam-seo\/","author":23486748,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.18.0","stable_tag":"2.18.0","tested":"7.1.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"DadsFam SEO","header_author":"DadsFam","header_description":"Enterprise-grade SEO + GEO plugin for WordPress. On-page analysis, XML sitemaps, structured data, OpenGraph, breadcrumbs, robots.txt, llms.txt, AI-crawler controls and IndexNow instant indexing. Extend with the DadsFam SEO Pro add-on for AI tools, redirects, analytics and more.","assets_banners_color":"bbcbdf","last_updated":"2026-10-22 13:48:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/plugins.dadsfam.co.za\/","header_author_uri":"https:\/\/www.dadsfam.co.za","rating":0,"author_block_rating":0,"active_installs":20,"downloads":1117,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.10.0":{"tag":"2.10.0","author":"dadsfam","date":"2026-09-09 11:33:48","revision":3688215},"2.11.0":{"tag":"2.11.0","author":"dadsfam","date":"2026-09-26 15:03:40","revision":3714369},"2.11.1":{"tag":"2.11.1","author":"dadsfam","date":"2026-09-26 15:47:41","revision":3714420},"2.11.2":{"tag":"2.11.2","author":"dadsfam","date":"2026-10-03 12:46:14","revision":3726251},"2.11.3":{"tag":"2.11.3","author":"dadsfam","date":"2026-10-03 14:48:51","revision":3726381},"2.12.1":{"tag":"2.12.1","author":"dadsfam","date":"2026-10-05 18:07:14","revision":3729422},"2.12.2":{"tag":"2.12.2","author":"dadsfam","date":"2026-10-05 18:18:33","revision":3729446},"2.12.4":{"tag":"2.12.4","author":"dadsfam","date":"2026-10-05 18:52:33","revision":3729517},"2.12.5":{"tag":"2.12.5","author":"dadsfam","date":"2026-10-06 13:36:17","revision":3730902},"2.12.6":{"tag":"2.12.6","author":"dadsfam","date":"2026-10-06 13:48:21","revision":3730935},"2.12.7":{"tag":"2.12.7","author":"dadsfam","date":"2026-10-06 14:16:36","revision":3730991},"2.17.0":{"tag":"2.17.0","author":"dadsfam","date":"2026-10-09 18:38:25","revision":3737206},"2.17.1":{"tag":"2.17.1","author":"dadsfam","date":"2026-10-10 05:29:57","revision":3737619},"2.17.2":{"tag":"2.17.2","author":"dadsfam","date":"2026-10-10 05:44:10","revision":3737635},"2.17.3":{"tag":"2.17.3","author":"dadsfam","date":"2026-10-10 15:12:14","revision":3738225},"2.18.0":{"tag":"2.18.0","author":"dadsfam","date":"2026-10-22 13:48:03","revision":3760012},"2.9.0":{"tag":"2.9.0","author":"dadsfam","date":"2026-09-09 07:11:14","revision":3687783},"2.9.1":{"tag":"2.9.1","author":"dadsfam","date":"2026-09-09 07:24:15","revision":3687800},"2.9.2":{"tag":"2.9.2","author":"dadsfam","date":"2026-09-09 07:37:51","revision":3687828}},"upgrade_notice":{"2.18.0":"<p>The SEO Brain checks its own work, learns from your edits and heals itself when a run dies. Better descriptions, keywords and links, and no false warnings for log-in pages.<\/p>","2.17.4":"<p>Better SEO Brain suggestions: your name said once, no title that says less than yours, no link on half a sentence, no redirects for scanner probes, and placeholder text spotted. Old suggestions are refreshed on update.<\/p>","2.17.3":"<p>No focus keyword that lowers a page&#039;s score, the right page for old shop addresses, cleaner logo alt text, and no product name said twice in a description.<\/p>","2.17.2":"<p>Briefs: a longer how-to gets a full brief, and places and names keep the capitals you type.<\/p>","2.17.1":"<p>DadsFam AI tested on a live site&#039;s own pages: descriptions from your own summary and whole sentences, keywords from your titles, the page&#039;s own key takeaways, alt text from your pictures&#039; names, and topics without your contact or privacy page.<\/p>","2.17.0":"<p>DadsFam AI is built in and runs on your own server: better keywords, descriptions, titles and alt text from the SEO Brain, a new X-ray, your topics and the pages worth writing. Also right dates in sitemaps and schema, and a homepage sitemap.<\/p>","2.15.0":"<p>The SEO Brain now finds and fixes problems on your live pages: conflicts with other tools, dead addresses (with Pro), missing internal links and pages losing traffic. Plus an optional weekly email.<\/p>","2.14.0":"<p>The SEO Brain now checks its own changes against real search results, changes back what cost clicks, learns what works on your site, and finds pages close to page one (with a results source such as DadsFam SEO Pro).<\/p>","2.13.0":"<p>Fixes found on live sites: scores only for public content, product tags noindexed, a sitemap that obeys noindex, plain-text schema, Google file verification, theme-built homepages, and Regional editions (hreflang) for country sites.<\/p>","2.12.7":"<p>Dead links are matched to the right page by its words, and product names with a small word inside can be keywords.<\/p>","2.12.6":"<p>Autopilot and &quot;Fix all&quot; never lower a page&#039;s score, keywords match punctuation the way search engines do, and better product keywords.<\/p>","2.12.5":"<p>Autopilot never lowers a page&#039;s score, keywords match the way search engines read punctuation, and better product keywords.<\/p>","2.12.4":"<p>One alt text suggestion per picture, and update steps that run even on sites nobody logs into.<\/p>","2.12.3":"<p>The SEO Brain never offers to replace alt text you wrote yourself.<\/p>","2.12.2":"<p>Better alt text (the product or page name instead of the file name), no one-word keywords on Autopilot, and an llms.txt summary built from your real keywords.<\/p>","2.12.1":"<p>New self-learning SEO Brain: it learns your site, prepares and explains fixes, and on Autopilot applies them with full undo. Also: Rand prices count in GEO, keywords with version numbers or &quot;&amp;&quot; can pass, and text is read correctly.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3687800,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3687800,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3687800,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3687800,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.10.0","2.11.0","2.11.1","2.11.2","2.11.3","2.12.1","2.12.2","2.12.4","2.12.5","2.12.6","2.12.7","2.17.0","2.17.1","2.17.2","2.17.3","2.18.0","2.9.0","2.9.1","2.9.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3714420,"resolution":"1","location":"assets","locale":"","width":1280,"height":597},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3714420,"resolution":"2","location":"assets","locale":"","width":1280,"height":833},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3737206,"resolution":"3","location":"assets","locale":"","width":1000,"height":1200},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3714420,"resolution":"4","location":"assets","locale":"","width":1280,"height":1156},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3714420,"resolution":"5","location":"assets","locale":"","width":1280,"height":494},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3714420,"resolution":"6","location":"assets","locale":"","width":1280,"height":1186},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3729422,"resolution":"7","location":"assets","locale":"","width":1138,"height":446},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3737206,"resolution":"8","location":"assets","locale":"","width":1166,"height":1000},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3737206,"resolution":"9","location":"assets","locale":"","width":1080,"height":725}},"screenshots":{"1":"Open it and you know if people can find you. One sentence answers whether Google and AI assistants can find your site, with a score built from real checks, one button for the next thing to do, and your homepage the way Google shows it and AI assistants read it.","2":"It walks you through setting up. Nine steps that matter, each with a Do it button that takes you straight to the fix, ticking themselves off as you go, next to live site checks and the jobs you do every week.","3":"Every page gets a checklist, and suggestions from DadsFam AI. A live Google preview and a score under the editor, an SEO title and description written from your own words to use in one click, and one press of Analyse lists exactly what to change, in plain English.","4":"It reads your real pages the way Google does. Health Check catches what a settings screen cannot, such as a cache still serving an old copy, fixes what it safely can in one click, and remembers the last report.","5":"When something goes wrong, it tells you what to do. Four things that actually happen, from not showing up on Google to AI assistants not mentioning you, each with the exact steps.","6":"AI answers built in and free. Write the summary AI assistants read about you, and choose which AI crawlers may read your site, no add-on needed.","7":"The SEO Brain: how well it knows your site, the fixes it has ready, and the Ask me first \/ Autopilot \/ Paused switch.","8":"X-ray any page and see what DadsFam AI sees: SEO titles that fit Google, descriptions from your own sentences, the keywords people would type, the answer AI engines would quote, the questions people ask and whether the page answers them, and key takeaways. All worked out on your own server.","9":"DadsFam AI on the SEO Brain screen: what it has learned about your site, your topics and whether their pages link to the main one, and the subjects worth a page of their own. Search numbers need a results source such as DadsFam SEO Pro."}},"plugin_section":[262246],"plugin_tags":[2353,2591,1117,186,1557],"plugin_category":[49,55],"plugin_contributors":[274194],"plugin_business_model":[],"class_list":["post-364877","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-ai","plugin_tags-geo","plugin_tags-schema","plugin_tags-seo","plugin_tags-sitemap","plugin_category-maps-and-location","plugin_category-seo-and-marketing","plugin_contributors-dadsfam","plugin_committers-dadsfam"],"banners":{"banner":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/banner-772x250.png?rev=3687800","banner_2x":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/banner-1544x500.png?rev=3687800","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/icon-128x128.png?rev=3687800","icon_2x":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/icon-256x256.png?rev=3687800","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/screenshot-1.png?rev=3714420","caption":"Open it and you know if people can find you. One sentence answers whether Google and AI assistants can find your site, with a score built from real checks, one button for the next thing to do, and your homepage the way Google shows it and AI assistants read it."},{"src":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/screenshot-2.png?rev=3714420","caption":"It walks you through setting up. Nine steps that matter, each with a Do it button that takes you straight to the fix, ticking themselves off as you go, next to live site checks and the jobs you do every week."},{"src":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/screenshot-3.png?rev=3737206","caption":"Every page gets a checklist, and suggestions from DadsFam AI. A live Google preview and a score under the editor, an SEO title and description written from your own words to use in one click, and one press of Analyse lists exactly what to change, in plain English."},{"src":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/screenshot-4.png?rev=3714420","caption":"It reads your real pages the way Google does. Health Check catches what a settings screen cannot, such as a cache still serving an old copy, fixes what it safely can in one click, and remembers the last report."},{"src":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/screenshot-5.png?rev=3714420","caption":"When something goes wrong, it tells you what to do. Four things that actually happen, from not showing up on Google to AI assistants not mentioning you, each with the exact steps."},{"src":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/screenshot-6.png?rev=3714420","caption":"AI answers built in and free. Write the summary AI assistants read about you, and choose which AI crawlers may read your site, no add-on needed."},{"src":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/screenshot-7.png?rev=3729422","caption":"The SEO Brain: how well it knows your site, the fixes it has ready, and the Ask me first \/ Autopilot \/ Paused switch."},{"src":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/screenshot-8.png?rev=3737206","caption":"X-ray any page and see what DadsFam AI sees: SEO titles that fit Google, descriptions from your own sentences, the keywords people would type, the answer AI engines would quote, the questions people ask and whether the page answers them, and key takeaways. All worked out on your own server."},{"src":"https:\/\/ps.w.org\/dadsfam-seo\/assets\/screenshot-9.png?rev=3737206","caption":"DadsFam AI on the SEO Brain screen: what it has learned about your site, your topics and whether their pages link to the main one, and the subjects worth a page of their own. Search numbers need a results source such as DadsFam SEO Pro."}],"raw_content":"<!--section=description-->\n<p><strong>DadsFam SEO<\/strong> is a complete, free SEO plugin for WordPress: on-page analysis, XML sitemaps, schema, OpenGraph, breadcrumbs and robots.txt, plus <strong>GEO (Generative Engine Optimization)<\/strong> tools that help AI answer engines such as ChatGPT, Google AI Overviews, Perplexity, Gemini and Claude find and cite your content. <strong>DadsFam AI<\/strong> is built in: SEO intelligence that learns your site and writes from your own words, entirely on your own server \u2014 no outside AI service, no API key, nothing sent anywhere. You can extend it with the optional <strong>DadsFam SEO Pro<\/strong> add-on plugin for the AI assistant, redirects and analytics \u2014 it plugs into the same dashboard.<\/p>\n\n<p>Everything described below works on every site. Nothing is disabled, blurred out, time-limited or reduced.<\/p>\n\n<h4>Free Features<\/h4>\n\n<ul>\n<li><strong>DadsFam AI, built in<\/strong> \u2014 SEO, AEO and GEO intelligence that runs entirely on your own server: no outside AI service, no API key, no account, nothing sent anywhere and nothing to pay per use. It reads every page and builds a map of what your site knows: the ideas it writes about, the topics its pages form and the main page each topic should point to. With search results connected it learns your own click rate at every position in Google and which kinds of titles and descriptions earn clicks on your site, then writes that way. It never invents facts: everything it suggests comes from your own pages<\/li>\n<li><strong>SEO Brain<\/strong> \u2014 A self-learning brain for SEO, AEO and GEO. It learns your site in the background, prepares fixes and explains each one in plain English (focus keywords, meta descriptions, SEO titles, alt text, schema, broken internal links, thin tag pages, empty settings), and on Autopilot applies them itself. DadsFam AI writes its descriptions from each page's own sentences, its titles to fit Google's width in pixels, its keywords from what people really type and its alt text from what the picture shows. It reads your sitemap pages the way Google does and keeps any that answer \"noindex\", redirect or fail to load out of the sitemap. It only ever fills in what is empty, keeps an undo for every change and learns from what you accept, undo or rewrite<\/li>\n<li><strong>X-ray any page<\/strong> \u2014 See what DadsFam AI sees: the page's topic, SEO titles that fit Google, descriptions from your own words, focus keywords people would type, the questions people ask and whether the page answers them, the answer AI engines would quote, key takeaways, an FAQ from the page's own sections and what to fix first<\/li>\n<li><strong>Topics, gaps and near-duplicates<\/strong> \u2014 Your site's topics and whether their pages link to the main one, subjects your headings cover that deserve a page of their own, pages that say nearly the same thing, and (with search results) what works on your site<\/li>\n<li><strong>The SEO Brain checks its own work<\/strong> \u2014 It re-reads what it wrote by itself and takes back what its checks of today would not write (never your own words), learns from the values you rewrite, and notices and works around a run that dies part-way. About five weeks after each change to a description, schema type or homepage title, it compares real search results before and after, allowing for how your whole site moved: what worked teaches it, what cost clicks is changed back. It also learns what people really search for: keywords, pages close to page one, questions a page could answer, and what AI assistants do on your site. Needs a results source such as DadsFam SEO Pro (Google Search Console or its own visit counts); developers can supply their own through filters<\/li>\n<li><strong>The SEO Brain fixes what it finds on your live pages<\/strong> \u2014 It reads your pages the way Google does and flags what breaks SEO from outside the plugin: another SEO tool also writing tags, a canonical pointing elsewhere, two titles, the same schema twice. It adds internal links to the pages that need them from your pages that already mention their focus keyword, finds pages losing search traffic and says why, lists pages that share one title in Google, and (with DadsFam SEO Pro) redirects dead addresses people still visit to the page they meant. Every change can be undone, and pages it changes are cleared from your page cache at once<\/li>\n<li><strong>Weekly SEO Brain email<\/strong> \u2014 Off until you switch it on: every Monday, what the Brain changed, whether it worked, what is waiting for you, pages close to page one and pages losing traffic<\/li>\n<li><strong>On-Page SEO Analysis<\/strong> \u2014 26-point weighted scoring engine covering keyword placement, density, content length, heading structure, internal\/external links, image alt text, readability (Flesch-Kincaid, sentence length, passive voice, transition words) and more. Keywords are matched the way people write them, and titles are measured in pixels, the way Google cuts them<\/li>\n<li><strong>Category &amp; Tag SEO<\/strong> \u2014 Full SEO panel on every category, tag, product category and custom taxonomy: title, description, focus keyword, canonical, noindex, live character counters and a Google preview<\/li>\n<li><strong>hreflang and Regional editions<\/strong> \u2014 Automatic language tags for Polylang, WPML and TranslatePress, and Regional editions for one business on several country sites (a .com and a .co.za): every site prints the same tags with an x-default, and the SEO Brain checks the other sites agree. Does nothing on single-language sites<\/li>\n<li><strong>Site Health Tests<\/strong> \u2014 Five SEO checks added to WordPress's own Tools \u2192 Site Health, including detection of the \"Discourage search engines\" box that silently deindexes entire sites<\/li>\n<li><strong>WP-CLI Commands<\/strong> \u2014 <code>wp dfseo doctor<\/code>, <code>audit<\/code>, <code>rescore<\/code> and <code>sitemap<\/code> for bulk work and deploy scripts<\/li>\n<li><strong>SERP Preview<\/strong> \u2014 Real-time desktop and mobile search result preview with character counters<\/li>\n<li><strong>Internal Link Suggestions<\/strong> \u2014 Finds related published content to link to, ranked by relevance to your focus keyword and title, and shows what you've already linked<\/li>\n<li><strong>XML Sitemaps<\/strong> \u2014 Cached index sitemap with per-type sub-sitemaps, a homepage sitemap, image sitemap, and search engine notification via IndexNow on publish<\/li>\n<li><strong>Schema \/ Structured Data<\/strong> \u2014 JSON-LD for Article, WebPage, WebSite + SearchAction, Organisation, BreadcrumbList, and Speakable<\/li>\n<li><strong>OpenGraph &amp; Twitter Cards<\/strong> \u2014 Full social sharing meta tags with image support<\/li>\n<li><strong>Canonical URLs<\/strong> \u2014 Auto-generated or custom per-post canonical<\/li>\n<li><strong>Robots Directives<\/strong> \u2014 noindex, nofollow, noarchive, nosnippet per post<\/li>\n<li><strong>Robots.txt Management<\/strong> \u2014 Live virtual robots.txt with custom rules support<\/li>\n<li><strong>Breadcrumbs<\/strong> \u2014 Schema-enhanced breadcrumbs via <code>[dfseo_breadcrumbs]<\/code> shortcode<\/li>\n<li><strong>Image SEO<\/strong> \u2014 Auto-inject focus keyword into alt text on upload<\/li>\n<li><strong>Site Verification<\/strong> \u2014 Google (HTML tag or HTML file), Bing, Yandex, Pinterest<\/li>\n<li><strong>Instant Indexing<\/strong> \u2014 IndexNow submission (Bing, Yandex, DuckDuckGo, Seznam, Naver), sent in the background and only from your live site, with manual bulk submission and history<\/li>\n<li><strong>SEO Score Column<\/strong> \u2014 Score column on posts, pages, and WooCommerce products<\/li>\n<li><strong>Dashboard Widget<\/strong> \u2014 Quick SEO health overview on WP admin home<\/li>\n<\/ul>\n\n<h4>GEO \u2014 Generative Engine Optimization (Free)<\/h4>\n\n<p>Get discovered and cited by AI answer engines, the next frontier of search:<\/p>\n\n<ul>\n<li><strong>llms.txt<\/strong> \u2014 Auto-generated AI content map served at <code>\/llms.txt<\/code> (the emerging llmstxt.org standard)<\/li>\n<li><strong>AI Crawler Controls<\/strong> \u2014 Allow or block 13 major AI bots (OpenAI GPTBot, ClaudeBot, Google-Extended, PerplexityBot, Applebot, Meta AI, CCBot, Bytespider and more) from robots.txt<\/li>\n<li><strong>Speakable Schema<\/strong> \u2014 Marks content for voice assistants and AI read-aloud<\/li>\n<li><strong>GEO Content Checks<\/strong> \u2014 Analysis flags question-style headings, lists\/tables, and concise direct-answer openings that AI engines prefer to quote<\/li>\n<\/ul>\n\n<h4>Pro Features (DadsFam SEO Pro add-on)<\/h4>\n\n<p>Install the DadsFam SEO Pro add-on plugin alongside this one and activate your licence to unlock:<\/p>\n\n<ul>\n<li><strong>DadsFam AI assistant<\/strong> \u2014 Ask about your site's SEO in plain words: what to fix first, quick wins close to page one, pages losing traffic and why, keywords and titles for any page, the questions people search that you do not answer yet, how you do in AI answers, competing pages, links and topics, and a brief for a new page. Every answer comes from your own data, with changes you apply in one click and undo in another. It runs on your own server, like the rest of DadsFam AI<\/li>\n<li><strong>DadsFam AI in the editor<\/strong> \u2014 Titles and descriptions, the focus keyword from real searches, a page review, FAQs, an answer-first summary, a brief for a new page and text tidy-ups, from the page as it stands in the editor. The writing stays yours<\/li>\n<li><strong>Alt text in the media library<\/strong> \u2014 A \"Write alt text\" button next to every picture, from what your site knows about it<\/li>\n<li><strong>Real Keyword Data<\/strong> \u2014 Actual search queries, clicks, impressions, CTR and ranking position straight from the Google Search Console API<\/li>\n<li><strong>Real results for the SEO Brain<\/strong> \u2014 Google Search Console numbers (or Pro's own visit counts) so the free SEO Brain can judge its changes, learn from them and find opportunities, and DadsFam AI can learn what earns clicks on your site<\/li>\n<li><strong>Redirect Manager<\/strong> \u2014 301, 302, 307, 410 redirects with hit tracking and regex support<\/li>\n<li><strong>Auto-Redirect on URL Change<\/strong> \u2014 Automatically creates a 301 when a published post's slug changes, with redirect-chain prevention<\/li>\n<li><strong>Analytics Dashboard<\/strong> \u2014 Organic traffic trends, engine breakdown, and content decay detection over 7\u201390 day windows<\/li>\n<li><strong>Bulk SEO Editor<\/strong> \u2014 Edit focus keyword, title, and description for hundreds of posts at once<\/li>\n<li><strong>FAQ Schema<\/strong> \u2014 FAQ rich results, with questions suggested by DadsFam AI<\/li>\n<li><strong>Local SEO<\/strong> \u2014 Full LocalBusiness schema with address, phone, geo-coordinates<\/li>\n<li><strong>Data Import<\/strong> \u2014 One-click import from Yoast SEO, Rank Math, and All in One SEO<\/li>\n<li><strong>WooCommerce<\/strong> \u2014 Product schema and integration<\/li>\n<li><strong>News Sitemap<\/strong> \u2014 Google News-compatible sitemap<\/li>\n<li><strong>Google Indexing API<\/strong> \u2014 Direct URL submission to Google<\/li>\n<\/ul>\n\n<h4>A word about PRO<\/h4>\n\n<p>Right, let me be straight with you, because I hate being sold to as much as you do.<\/p>\n\n<p>Everything above is free and it stays free. The scoring engine, XML sitemaps, schema, OpenGraph, canonicals, robots directives, breadcrumbs, internal link suggestions, Instant Indexing and the whole GEO toolkit \u2014 none of those are premium features. Those are the things an SEO plugin should just do, and if I put them behind a paywall I would be taking the mickey.<\/p>\n\n<p>There is a PRO add-on. It exists because I am a dad in Cape Town, and this is one of the things that puts food on the table at my house. That is the honest reason. Not \"unlock your potential\", not \"supercharge your workflow\". Just: if this plugin helped your work get found and you can spare it, PRO helps me keep building.<\/p>\n\n<p>What PRO adds is the heavier lifting you reach for once the basics are in place \u2014 an AI assistant that knows your site, DadsFam AI in the editor and the media library, real keyword data from Google Search Console, a redirect manager that catches slug changes on its own, an analytics dashboard, bulk editing across hundreds of posts at once, and one-click import from Yoast, Rank Math or All in One SEO. That is time saved and depth added. It is not the plugin working properly, because the plugin already works properly.<\/p>\n\n<p>So if the free one does everything you need, brilliant. Genuinely. Use it, and I hope it gets your work in front of the people looking for it. If you get to the point where the extra depth would save you real time, PRO is at plugins.dadsfam.co.za.<\/p>\n\n<p>Either way, thanks for using something I built. \u2014 Zak, DadsFam<\/p>\n\n<h4>DadsFam AI runs on your own server<\/h4>\n\n<p>DadsFam AI is part of this plugin, not a connection to someone else's AI: it reads your pages from your own database, works on your own server and keeps what it learns there, with no API key, no account and nothing to pay per use. The DadsFam SEO Pro add-on's assistant and editor tools use the same engine.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the services below, each only for the feature that needs it. No personal data is transmitted by the free plugin, and DadsFam AI is not one of them: it runs on your own server and sends nothing anywhere.<\/p>\n\n<h4>IndexNow (instant indexing)<\/h4>\n\n<p>While \"Auto-Submit on Publish\" is on (Settings \u2192 Instant Indexing; it is on by default), the plugin tells participating search engines that a page has been published, updated or deleted, so they can recrawl it sooner. It sends the public address of the page, your site's address, your site's IndexNow key and the public location of that key file. It sends no personal data and no post content.<\/p>\n\n<p>The automatic notice goes about a minute after you publish, update or delete a post, in one request for every page changed meanwhile, and only from your live site: a local or staging copy, or a site set to discourage search engines, sends nothing. The manual bulk-submit button on the same screen sends the addresses you enter straight away.<\/p>\n\n<p>The requests go to:<\/p>\n\n<ul>\n<li>api.indexnow.org - the shared IndexNow endpoint, which distributes the notification to participating engines including Bing, Yandex, Seznam and Naver. Terms: https:\/\/www.indexnow.org\/terms - Privacy: https:\/\/www.indexnow.org\/faq<\/li>\n<li>www.bing.com\/indexnow - Microsoft Bing's own IndexNow endpoint, also pinged directly when you use the manual bulk-submit button. Terms: https:\/\/www.microsoft.com\/servicesagreement - Privacy: https:\/\/privacy.microsoft.com\/privacystatement<\/li>\n<\/ul>\n\n<h4>Your own site<\/h4>\n\n<p>The Health Check screen requests pages on your own site and reads the HTML that comes back, so it can see what a search engine actually receives rather than trusting the settings. These requests go to your own domain only, and are made while you are on that screen or running <code>wp dfseo doctor<\/code>.<\/p>\n\n<p>While the SEO Brain's learning is switched on (Settings on the SEO Brain screen), its background run also loads pages of your own site: your homepage, when your theme builds it, so it can be scored and learned from what visitors see, and a few of the pages in your sitemap each hour, to find any that answer \"noindex\", redirect or do not load. These requests go to your own domain only and send nothing but an ordinary page request.<\/p>\n\n<h4>Your other regional editions<\/h4>\n\n<p>Only if you set up Regional editions (Settings \u2192 Advanced): the plugin loads the homepage of each other site you list there, at most once an hour, to check it carries the same hreflang tags as this one. It is an ordinary page request to the addresses you entered, with no data from this site attached, and it stops when you clear the list.<\/p>\n\n<p>The DadsFam SEO Pro add-on is a separate plugin and discloses its own services (its licence server, Google Search Console and the Google Indexing API) in its own readme.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>dadsfam-seo<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin in <strong>Plugins \u2192 Installed Plugins<\/strong><\/li>\n<li>Navigate to <strong>DadsFam SEO \u2192 Settings<\/strong> to configure<\/li>\n<li>Edit any post or page to see the SEO meta box below the editor<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20the%20seo%20brain%20change%20my%20pages%20without%20asking%3F\"><h3>Will the SEO Brain change my pages without asking?<\/h3><\/dt>\n<dd><p>Not unless you switch on Autopilot. By default it learns and prepares fixes, and nothing changes until you tap Apply. On Autopilot it only fills in fields that are empty (it never overwrites what you wrote), every change is listed with the value it replaced, and any change, or all of them, can be undone. It also reads its own earlier changes again as its checks improve, and takes back any they would no longer write; values you changed since are yours and stay. It runs on your own server and sends nothing anywhere.<\/p><\/dd>\n<dt id=\"does%20dadsfam%20ai%20send%20my%20content%20to%20chatgpt%2C%20claude%20or%20another%20ai%20service%3F\"><h3>Does DadsFam AI send my content to ChatGPT, Claude or another AI service?<\/h3><\/dt>\n<dd><p>No. DadsFam AI is part of the plugin and runs inside WordPress on your own server. It reads your pages from your own database, learns from your own search results when DadsFam SEO Pro connects Google Search Console, and keeps what it learns in your own database. There is no outside AI service, no API key, no account and nothing to pay per use.<\/p><\/dd>\n<dt id=\"will%20dadsfam%20ai%20write%20my%20posts%20for%20me%3F\"><h3>Will DadsFam AI write my posts for me?<\/h3><\/dt>\n<dd><p>No, and that is on purpose. It writes the short things search engines and answer engines read \u2014 SEO titles, meta descriptions, focus keywords, alt text, FAQs and a direct answer \u2014 from your page's own sentences, and with DadsFam SEO Pro it plans a new page with a brief: the headings people search, the questions to answer and the pages to link to. It never invents facts, and the writing stays yours.<\/p><\/dd>\n<dt id=\"what%20is%20geo%20%28generative%20engine%20optimization%29%3F\"><h3>What is GEO (Generative Engine Optimization)?<\/h3><\/dt>\n<dd><p>GEO is the practice of optimising your content to be found, understood, and cited by AI answer engines such as ChatGPT, Google AI Overviews, Perplexity, Gemini and Claude \u2014 as opposed to traditional SEO which targets the classic search results. As more people get answers from AI, GEO is becoming essential. DadsFam SEO includes an llms.txt generator, AI crawler controls, Speakable schema, and GEO-focused content checks.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20service%20account%20for%20keyword%20data%3F\"><h3>Do I need a Google service account for keyword data?<\/h3><\/dt>\n<dd><p>To see real keyword data from Google Search Console (queries, clicks, impressions, position), yes \u2014 you add a Google service account (the same one used for the Google Indexing API) and grant it access in Search Console. The plugin walks you through it. IndexNow instant indexing for Bing and others works with no setup at all.<\/p><\/dd>\n<dt id=\"will%20this%20conflict%20with%20another%20seo%20plugin%3F\"><h3>Will this conflict with another SEO plugin?<\/h3><\/dt>\n<dd><p>Run only one SEO plugin at a time. DadsFam SEO can import your existing data from Yoast, Rank Math, and All in One SEO so you can switch cleanly.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.18.0<\/h4>\n\n<ul>\n<li><strong>New: the SEO Brain checks its own work.<\/strong> Everything Autopilot wrote is read again with the Brain's checks of today. Autopilot takes back by itself only what cannot be read two ways: sample text WordPress, a theme or a page builder put there (WordPress's own \"Sample Page\" was the description on five sites), words a page builder split (\"for a ll a ges\"), a keyword that stops half-way (\"acorn kids surf's\"), a link on the start of a longer name (\"Hand cuff\" in \"Hand cuff pouch\"), a redirect to a page that is gone. Every judgment call it offers back with the reason, for you to decide: a line that says it is a test or will be replaced, a keyword that starts or ends on a small word (\"a level tutors\" may be just what people search), the writer talking (\"Quick one for anyone\u2026\"), a client's praise, a sentence that leans on the one before it, your name on a link to one of your pages. Keep what it wrote on a page that reads like a test, put back what it took back from it, or say so on the SEO Brain screen, and the page counts as a real one. The page is thought about again at once, and a value taken back is never offered again. One click puts a value back, even after Autopilot has filled the field again; once you have put back two for one reason, the Brain asks before taking back anything for it again. Keywords from real searches are never taken back for their words, and your own work is never touched, not even what you save while a run is going. A redirect is judged by the page it was made for and where it sends people now, looked at again later in case that page is unpublished, kept when a new page takes the same address, made again when the page is published again, and never made and taken back in a loop. The weekly email lists what was taken back.<\/li>\n<li><strong>New: the SEO Brain learns from your edits.<\/strong> When you rewrite a keyword, title or description it wrote, that kind of fix earns a little less trust, and it learns how you write: the length you like your descriptions, and what you add or take out (a question, your name in the title). A change you leave as it was for two weeks counts in its favour, and offers you turn down three times for one reason stop coming.<\/li>\n<li><strong>New: the SEO Brain heals itself.<\/strong> On one site the Brain had stopped for nine days without anyone knowing. Now a run that dies part-way is recorded with the step, the page and the error. A PHP error on one page or fix: the run carries on with the others at once, and leaves that page or fix out for a week once the error comes up there three runs in a row, so a plugin that fails now and then never empties the site; the same error on most of the pages a part tries for the first time is that code at fault, not your pages, so that part of the run sits out a day and the screen names the plugin's file. One error on many pages is one note, written once or twice a run. A change saved just before another plugin's error is in the list of changes all the same, so it can be undone. A part of the run that keeps failing sits out a day too, and a reading pass that met errors on most pages never replaces what the Brain learned. Running short of memory or time is about the whole run, not the page it happened on: the Brain stops itself before memory runs out, and when the host's limit is reached anyway its runs are smaller for a week, stop in time and still reach every page. When the host kills a run without a word, every page is noted for a week, so a page that hangs is named exactly and left out; two pages that hang are told from the host's time limit, and a slow run from a dead one. Each run's note is also its lock, so two runs never overlap or wipe out each other's record. The SEO Brain screen says what happened and what was left out, in plain words, with a button to try everything again, and says when runs keep stopping early to stay inside PHP's memory limit. When WordPress's scheduled tasks stop running, it says so, and opening wp-admin starts a short Brain run from your browser after your page has loaded.<\/li>\n<li><strong>Improved: descriptions.<\/strong> Never the writer talking about the post, a client's praise, a content note, a sentence that starts with \"They\u2026\" or \"It is also\u2026\", one said twice, sample text, or one that starts with a command (\"makepkg -si\u2026\"). A page that says what it offers (\"Our team will check your gate motor\u2026\", \"Booking is highly recommended.\") is never mistaken for any of these. Words a page builder's markup split are joined again, and spaces it left before a full stop are taken out. A sentence that starts with \"It\" right after one that names what the page is about, or a product's \"It's a lightweight insect bite gel\u2026\", is offered with the name (\"Microsoft Edge is not in the official repos\u2026\"), for you to check; never \"It's a myth that\u2026\", \"It's 2026\u2026\" or \"It's Friday\u2026\".<\/li>\n<li><strong>Improved: keywords and links.<\/strong> No keyword that stops half-way, none that starts or ends on a small word unless the page shows it is a name or a thing (\"OR Tambo\", \"A Level tutors\", \"On Tap Plumbing\", \"in-ear headphones\", \"kids ride on\"), and none that names a product line without what the product is, while what people really type stays: \"plumber near me\", \"loodgieter naby my\", \"first aid kit\" (also on a product page that is only a list of specs), \"being a dad\", \"a la carte menu\", \"what is pepper spray used for\", \"gifts for her\". What a product is comes from its name without sizes, colours, flavours or model numbers (\"Kids Recorder \u2013 Yamaha YRS-24B\" is a recorder). One word is never sure enough for Autopilot. No link on the start of another page's longer name, on your own name or a brand most of your products start with, or in a sentence many pages repeat word for word; a page named just that (\"Web Hosting\") or a guide whose title is about it (\"Is Pepper Spray Legal\u2026\") gets its links, and Title Case copy (\"Buy Hand Cuffs Online\") keeps them.<\/li>\n<li><strong>Fixed: no \"hidden from Google\" warning for log-in, sign-up, members' portal, \"coming soon\" or thank-you pages.<\/strong> Keeping those out of Google is right, and one client's weekly email warned about \"Create Your Login\". A page that sells or explains log-ins (\"Login Security\") still gets the warning. WooCommerce products are no longer called orphans: the shop links them.<\/li>\n<li><strong>Fixed: a page cache made every page look like it was losing traffic.<\/strong> Visits counted as pages are built miss every visit a page cache answers. The SEO Brain now judges nothing by such counts, and with DadsFam SEO Pro 1.13.0, which counts cached visits too, starts again once eight weeks of complete counts are in.<\/li>\n<li>Improved: placeholder text also covers WordPress's own sample page and first post, WooCommerce's sample products, a page that only says \"coming soon\", and a page that says it is only a test. A page about testing, news that something \"will be replaced\", one that says \"coming soon\" about something new, a product whose short description says what it is, or a page with products, a form, a quiz, a video, events or links to other pages on it, is not placeholder.<\/li>\n<li>Improved: a tagline in capitals with bars (\"WEB DESIGN | SEO | HOSTING\") is written as words in the homepage title and llms.txt summary: \"Web design, SEO and hosting\". Names, places and brands keep their capitals (\"Best pizza in Cape Town\", \"iPhone &amp; Samsung repairs\"), and your site's name is not said twice.<\/li>\n<li>Fixed: Autopilot never applies a fix to a page that was deleted or unpublished since the Brain looked at it, and a developer's own writer (the dfseo_brain_ai_text filter) gets the same checks as the Brain's.<\/li>\n<li>On update, suggestions made the old way are taken off the list, and the trust in keywords, descriptions and links starts afresh.<\/li>\n<\/ul>\n\n<h4>2.17.4<\/h4>\n\n<ul>\n<li>Fixed: the SEO Brain no longer says your name twice. A site called \"DadsFam Forum\" was offered the keyword \"dadsfam forum forum\" and the homepage title \"DadsFam Forum Forum | DadsFam Forum\". Your own name is also never a topic in your llms.txt summary (\"about dial sa\").<\/li>\n<li>Fixed: no title that says less than the one you have. \"In South Africa\" is only added where the keyword is what the title leads with and the title names no place already, and the rest of the title stays where there is room (\"Plumber in Cape Town \u2013 24\/7 Call-Outs\"): never \"SA News Roundup in South Africa\", never \"Missing Person in South Africa\" for a whole headline, and never after a business name. A cut never leaves half a thought (\"Local government contacts \u2014 add yours\") or drops the focus keyword, a roundup keeps its date, and a how-to keeps its own \"(3 commands)\".<\/li>\n<li>Fixed: no focus keyword made of a series label (\"part 2\"), no link on half a sentence (\"the numbers on this board work everywhere\"), and no description that leans on what came before it (\"Government ZA put it out again\u2026\") or stops before it says anything. Openings such as \"There is no 24-hour waiting period\u2026\" and \"WordPress 7.1.2 came out on 22 September.\" now count.<\/li>\n<li>Fixed: scanner probes such as \/.git\/HEAD, \/.env, \/.well-known\/\u2026 and \/admin\/\u2026 are no longer offered a redirect, and when two pages fit a dead address equally (\"\/security\"), numbers no longer pick one unless the address has them too. On a big site, matching a long list of dead addresses now stops before PHP's time limit.<\/li>\n<li>New: a page that still shows \"Lorem ipsum\" or a theme's \"dummy text\" is left alone, and the SEO Brain screen names it. A page about lorem ipsum, or a tool that makes it, is not one.<\/li>\n<li>On update, the suggestions made the old way are taken off the list and the SEO Brain thinks again within minutes.<\/li>\n<\/ul>\n\n<h4>2.17.3<\/h4>\n\n<ul>\n<li>Fixed: the SEO Brain no longer suggests a focus keyword made from your name (\"dadsfam contact\", \"ray tac shop\") for a page that never uses it. A keyword the page does not use fails every keyword check, and on live sites it took 11 to 17 points off. Any keyword that would lower a page's score now waits for you, with the score before and after, until the title or description uses it.<\/li>\n<li>Fixed: a dead address that only says how much or how it is packed (\"2-ply-24-rolls-300-sheets-pack\") was sent to the first page with the same words, a kitchen towel. The SEO Brain now finds the product that lists the same amounts (24 rolls, 300 sheets) and offers it for you to check, or offers nothing.<\/li>\n<li>Fixed: a product's dead address is never sent to a product with other numbers in its address: the 24-roll pack is not the 12-roll pack, nor the iPhone 13 case the iPhone 14 case. Before, Autopilot could apply that. An article whose number changed (\"best-laptops-2025\") waits for you.<\/li>\n<li>Improved: the front page is scored by the title and description Google shows for it: its own, or else the Homepage Title and Description settings. A keyword in the Homepage Title was reported missing from the title.<\/li>\n<li>Fixed: alt text for a logo cropped in the Customizer no longer starts \"Cropped cropped\", and which logo file it is (\"main\", \"transparent\", \"footer\") is left out: \"DadsFam logo\".<\/li>\n<li>Fixed: a description never names its subject twice in a row (\"Portable sensory play tray, 58cm x 43.5cm. A portable sensory play tray made for\u2026\").<\/li>\n<\/ul>\n\n<h4>2.17.2<\/h4>\n\n<ul>\n<li>Fixed: a brief for a longer how-to (\"How to set up DKIM on cPanel for a Cape Town business\") came back as an empty \"How to\". The title now keeps who the page is for, and the sections plan the task itself.<\/li>\n<li>Fixed: briefs keep the capitals you type for a place or a name (\"best braai spots in Durbanville\"), and a heading that runs into its paragraph no longer makes an ordinary word look like a name (\"a WordPress Site\").<\/li>\n<\/ul>\n\n<h4>2.17.1<\/h4>\n\n<ul>\n<li>Improved: DadsFam AI, tested on a live site's own pages and better for it. Descriptions start from the summary you wrote for a page (its excerpt), cut to fit Google only where what is left says the same thing: \"except\", \"only\", \"unless\" and \"you need\" always stay, a list is never cut short, and a sentence is never cut at a semicolon. A description is never half a sentence, the page's title said again, a line that leans on the one before it, a note about another version or a notice many of your pages share. Where nothing is good enough, the SEO Brain offers nothing.<\/li>\n<li>Improved: Autopilot never writes a description under 70 characters or one that does not say what the page is, never gives two pages the same one, never applies one that was cut to fit (even from your own summary: those wait for you), and never puts a price, a sale or an offer that ends in a product's description. Any other description that quotes a price or an offer waits for you, because Google keeps showing it after it changes.<\/li>\n<li>Improved: focus keywords are the name a title leads with (\"DadsFam Live Chat\", \"AnyDesk not working on CachyOS\"), never with \"a\" in front (\"What Is a Staging Site?\" is \"staging site\") and never an idiom or a filler (\"wpvibe on your radar\", \"free version\"). One that contains another page's keyword waits for you.<\/li>\n<li>Improved: names keep their spelling: \"iPhone\", \"eThekwini\" and \"macOS\" at the start of a sentence, \"DKIM\", \"cPanel\" and \"WooCommerce\" in briefs, and no \"a\" before a name or a subject such as SEO. A brief for \"best braai spots in Durbanville\" is a round-up (\"The Best Braai Spots in Durbanville\"), not a price guide.<\/li>\n<li>Improved: key takeaways come from the page's own \"Key takeaways\" or \"In short\" list when it has one, and are never a question, an invitation or a line that needs the one before it.<\/li>\n<li>Improved: questions and answers. Headings are asked properly, questions written In Title Case are asked in sentence case, a table is never read as one line, and a cost question is only answered with a price.<\/li>\n<li>Improved: alt text from the picture's own name when it says what the picture shows (\"Opus 5.5 for WordPress \u2013 developer working late at night\"), with version numbers kept and camera codes, dates, \"1 of 4\", emoji and stock-site names left out. Never a photo credit or a \"Photo:\" label, never \"[SOLVED]\", never \"Screenshot\" for a photo of a screen, never \"Home\", never a name stuffed with keywords, and never the same words for two pictures on one page.<\/li>\n<li>Improved: big sites. The SEO Brain's full pass writes fixes for at most 15 seconds at a time, inside PHP's time limit, so a site of 1,000 pages or more on shared hosting never hits it. Pages it does not reach keep their fixes and go first next time.<\/li>\n<li>Improved: your topics. Contact, the privacy policy and the terms are never a topic's main page, an orphan to fix or a page to link from, and a topic is named by a real subject, never your own name, a filler or a version.<\/li>\n<li>Fixed: the llms.txt summary no longer repeats your site name; X-ray no longer suggests covering another product's name or a version number; and a caption such as \"Burst of colour at the office\" is no longer taken for a stock photo credit. The setup wizard no longer logs deprecation notices on WordPress 6.4 and later.<\/li>\n<li>Developers: DFSEO_Content::site_pages() and the dfseo_site_pages filter.<\/li>\n<\/ul>\n\n<h4>2.17.0<\/h4>\n\n<ul>\n<li>New: DadsFam AI, built into the free plugin. It runs entirely on your own server, from your own pages: no outside AI service, no API key, no account, nothing sent anywhere and nothing to pay per use. It builds a map of what your site knows (the ideas it writes about, the topics its pages form and the main page of each topic) and, with search results connected, learns your own click rate at every position in Google and which kinds of titles and descriptions earn clicks on your site.<\/li>\n<li>New: the SEO Brain writes with DadsFam AI. Meta descriptions are picked and tightened from the page's own sentences and scored by what earns clicks on your site. Focus keywords are what people really type: a page people find by your name gets one too (\"dadsfam contact\"), a how-to gets the whole task, and never half a sentence or a describing word. Alt text says what the picture shows, from its caption, what the camera saved in it, the product and its variation, and the heading above it. It never invents facts.<\/li>\n<li>New: SEO titles. Where a page's title is a problem (cut off in Google, the same as another page's, missing its focus keyword, not saying what people search, or leaving most of the line empty), the Brain offers one that fits Google's width in pixels. Never over a title you wrote, and Autopilot leaves titles to you unless you switch them on.<\/li>\n<li>New: X-ray, rebuilt on DadsFam AI: the page's topic, SEO titles that fit Google, descriptions from your own words, focus keywords people would type, the questions people ask and whether the page answers them, the answer AI engines would quote, key takeaways, an FAQ from the page's own sections and what to fix first, with examples.<\/li>\n<li>New on the SEO Brain screen: your topics and whether their pages link to the main one (the missing links are offered as fixes), what works on your site, subjects your headings cover that deserve a page of their own, pages that say nearly the same thing, and the spelling DadsFam AI writes in (as your pages spell, British and South African, or American). The weekly email adds what works and the pages worth writing.<\/li>\n<li>New: log-in, register, account, messages and other web-app pages are recognised, from any plugin. They get no keyword or description and are offered \"Keep out of Google\"; the ones DadsFam AI is sure of leave the sitemap at once.<\/li>\n<li>Improved: keywords are read the way people write them. \"web design in Cape Town\" uses \"web design cape town\", the address what-is-ssl-certificate uses \"what is an ssl certificate\", \"An SSL certificate is\u2026\" opens a page about it, and singular and plural, \"restoring\" and \"restore\", \"backup\" and \"back up\" all match. Keyword density is uses per hundred words, as other SEO tools count it, and is not counted for a question keyword, which good writing answers rather than repeats. Scores are refreshed in the background after the update.<\/li>\n<li>Improved: the title check judges the title Google really shows (your SEO title, or your title template filled in) by its width in pixels, the way Google cuts it. A page without an SEO title of its own was told its title was 0 characters long.<\/li>\n<li>Improved: Instant Indexing works in the background. Changes go to IndexNow a minute later, in one request for everything changed meanwhile, so saving never waits on a search engine and an import of a thousand posts sends one request; and only from your live site, never from a local or staging copy or a site that discourages search engines.<\/li>\n<li>Improved: the SEO Brain asks WordPress for the memory it allows its own heavy work on big sites, and starts fresh on how far to trust its keywords, descriptions and alt text, because DadsFam AI makes them differently.<\/li>\n<li>Improved: shortcodes of plugins that are no longer active are not read as words of the page, and a word is written in capitals only when it is a real acronym (SEO, SSL).<\/li>\n<li>Improved: the Regional editions check reads your other sites past their page cache and CDN, and checks a problem again every 15 minutes instead of every hour.<\/li>\n<li>Fixed: dates were two hours early on South African sites (and out by the time zone's offset anywhere outside UTC). The sitemap's last-changed dates, the publish and update times in schema and social tags, and the dates in llms.txt now carry the right time and offset, and cached sitemaps are rebuilt when you update.<\/li>\n<li>Fixed: a homepage that shows your latest posts, or one your theme lays out with no page chosen, was in no sitemap, and a site with nothing else to list served an empty sitemap index. The homepage now has its own sitemap-home.xml, listed first.<\/li>\n<li>Fixed: five GEO checks in the editor's checklist showed their code (\"geo_tldr_summary\") instead of a name. Every check now has a plain name that can be translated, and the title check's name says what it checks (40\u201360 characters).<\/li>\n<li>Fixed: the sitemap index no longer prints an empty date, a post with no author no longer names \"\/author\/\" (a page that does not exist) in social tags, and a secondary button's label (Analyse, in the editor) no longer disappears under the pointer.<\/li>\n<li>Fixed: removing the plugin deletes everything DadsFam AI learned, every social profile setting (seven were left behind) and any AI key an earlier version saved.<\/li>\n<li>Developers: the dfseo_app_pages, dfseo_indexing_public_site and dfseo_sitemap_home filters; dfseo_brain_ai_text lets your own writer supply the Brain's text; DFSEO_Brain::record_post_change() journals a change with an undo, judged on search results like the Brain's own.<\/li>\n<\/ul>\n\n<h4>2.15.0<\/h4>\n\n<ul>\n<li>New: page doctor. The SEO Brain reads your live pages and finds what breaks SEO from outside the plugin: another SEO tool also writing tags (Yoast, Rank Math, All in One SEO, SEOPress, The SEO Framework, Squirrly \u2014 even when built into a theme), a canonical pointing to another address, missing or printed twice, two titles or none, two robots or description tags, the same schema printed twice, two sets of social tags. Each one is an alert in plain English that names the pages and the fix.<\/li>\n<li>New: self-healing dead addresses (with DadsFam SEO Pro). An address that answers \"not found\" but people still visit \u2014 an old link, a bookmark, Google \u2014 is matched to the page it meant (a renamed page by its old address, a moved or misspelt one by its words) and sent there with a 301. Autopilot makes the sure ones, nothing is guessed, your own redirects are never touched, and Undo removes the Brain's.<\/li>\n<li>New: automatic internal links. Pages no page links to, pages with few links and pages close to page one in Google get a link from your pages that already mention their focus keyword: those words become the link, in the page's own text. Only in paragraphs and lists \u2014 never headings, quotes, buttons, captions or existing links, never on page-builder pages \u2014 one new link per page per run and three at most; each pair of pages is tried once, and Undo puts the page back exactly.<\/li>\n<li>New: pages losing search traffic. The last four weeks against the four before, allowing for how the whole site moved, with why each page fell (it slipped in the rankings, fewer people search, or fewer click) and what to do. A page losing clicks while Google shows it as often is offered a fresh description written for what people search now, judged five weeks later like every Brain change.<\/li>\n<li>New: pages that go out with the same title in Google are listed under \"Worth a look\".<\/li>\n<li>New: the weekly SEO Brain email, off until you switch it on, with a \"Send a test now\" button.<\/li>\n<li>New: a page the Brain changes is cleared from the page cache at once (DadsFam Cache, WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache, Cache Enabler, SiteGround Optimizer), so visitors and Google see the change now.<\/li>\n<li>New: the brain-weekly ability, <code>wp dfseo brain decay<\/code> and <code>wp dfseo brain report<\/code>. Developers can supply page totals with the dfseo_search_pages filter, and dead addresses with dfseo_broken_urls.<\/li>\n<li>Fixed: Jetpack's social tags are switched off while DadsFam SEO writes its own, so pages no longer carry two sets.<\/li>\n<li>Improved: the Brain's background events are removed when the plugin is deactivated.<\/li>\n<\/ul>\n\n<h4>2.14.0<\/h4>\n\n<ul>\n<li>New: the SEO Brain checks its own work against real search results. About five weeks after it changes a page's meta description or schema type, or the homepage title or description, it compares the four weeks before with four weeks after, allowing for how the whole site moved in the same weeks. A page edited in other ways in those weeks is not judged.<\/li>\n<li>New: what worked makes the Brain more willing to make that kind of change and teaches it which wording earns clicks on your site (a number, two sentences, speaking to \"you\"\u2026); new descriptions are written to suit.<\/li>\n<li>New: what cost clicks is changed back: by itself on Autopilot when the numbers are exact (Google Search Console) and the change was its own, otherwise offered to you with the numbers. After two misses on one page the Brain leaves that page's description to Google.<\/li>\n<li>New: the Brain learns what people really search for. Pages without a focus keyword get one from the real searches Google shows them for, the pages people see most are worked on first, \"Close to page one\" lists pages at position 4 to 20 with the clicks a month they could gain and exactly what is missing, and two pages competing for one search are flagged.<\/li>\n<li>New (AEO): questions people ask Google that a page is shown for but does not answer under a heading of its own.<\/li>\n<li>New (GEO): visitors sent by AI assistants (ChatGPT, Perplexity, Claude\u2026) and the pages AI crawlers read most, with the ones that are hard for AI to quote flagged.<\/li>\n<li>New: \"Did it work?\", \"Close to page one in Google\" and \"Answer engines\" on the SEO Brain screen; the brain-results and brain-opportunities abilities for AI assistants; <code>wp dfseo brain results<\/code>.<\/li>\n<li>The numbers come from a results source: DadsFam SEO Pro supplies Google Search Console data or its own visit counts. Without one, nothing is measured and the Brain works exactly as before. Developers can supply their own with the dfseo_search_metrics, dfseo_search_queries and dfseo_ai_activity filters.<\/li>\n<li>Improved: the Brain's trust in each kind of fix counts real results as well as what you applied or undid.<\/li>\n<li>Fixed: on a phone, the plugin's header no longer makes its screens wider than the screen.<\/li>\n<\/ul>\n\n<h4>Earlier versions<\/h4>\n\n<p>The full history, 2.13.0 back to 1.0.0, is in the plugin under DadsFam SEO \u2192 What's new.<\/p>","raw_excerpt":"SEO, GEO and AEO with DadsFam AI built in: a self-learning SEO Brain that runs on your own server, plus sitemaps, schema and llms.txt.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/364877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=364877"}],"author":[{"embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dadsfam"}],"wp:attachment":[{"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=364877"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=364877"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=364877"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=364877"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=364877"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/uk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=364877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}