=== TextTwin: llms.txt Generator and Plain Text Pages for AI SEO ===
Contributors: fixitusman
Tags: llms.txt, ai seo, llm, geo, ai
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.2
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Creates llms.txt, llms-full.txt and a plain text twin of every page, so ChatGPT, Claude and other AI tools can read your site.

== Description ==

TextTwin makes your WordPress content easy for AI tools to read. It gives every page you choose a plain text twin, and builds an llms.txt index and an llms-full.txt file from your published content. Everything updates on its own whenever you edit, publish or delete content.

= What makes TextTwin different =

Many llms.txt plugins only build an index file that lists your pages. TextTwin also gives every page its own readable copy, so an AI agent that lands on any page can get clean text right away:

* **A plain text twin of every page**, at /llms-guides/page-slug.txt and at the page's own address with .md added, both kept in sync with the live page.
* **Discovery from any page**: each page's code carries alternate links and a short "LLM/AI Agent Notice" pointing AI agents to its own twin, the index and the full file.
* **Built for help centers**: Heroic Knowledge Base, BetterDocs and Echo Knowledge Base articles are grouped by category in the order your help center already uses, with links between articles pointing to their twins.
* **Clean conversion**: tables, lists, headings, videos and internal links from the block editor, the Classic Editor and Elementor become tidy plain text, built as a logged-out visitor so private content never leaks.

AI assistants and AI agents such as ChatGPT, Claude, Perplexity and Gemini read web pages through all their menus, scripts and layout code. A plain text version gives them only your words, headings, lists, tables, links and videos, which makes your content quicker to read and harder to misread. This is the same approach large documentation sites use for their AI readers.

= What TextTwin creates =

* **/llms.txt**: an index of your content that follows the llms.txt standard, grouped into sections with a one-line summary for each item.
* **/llms-full.txt**: all of your chosen content in one plain text file.
* **A plain text twin of each page** at /llms-guides/your-page-slug.txt, with links between pages pointing to their text twins.
* **A Markdown copy at each page's own address**: add .md to any included page's address, as the llms.txt standard suggests, for example /docs/getting-started.md.
* **Links in each page's code**: alternate links and a short "LLM/AI Agent Notice" comment that point AI agents to the plain text files.

= Built for help centers and knowledge bases =

TextTwin recognizes Heroic Knowledge Base, BetterDocs and Echo Knowledge Base on its own and groups articles by their categories, in the order your help center already uses. It also works with posts, pages, products and any other public content type.

= Simple by design =

The settings page has three options: turn it on, choose what to include, and add a one-sentence description of your site. Sections, summaries and item names are worked out for you.

* **Safe by default:** drafts, private and password-protected content never appear, and files are always built as a logged-out visitor, so member-only text stays private.
* **Respects your SEO settings:** pages set to noindex in Yoast SEO, Rank Math or SEOPress are left out, and any single page can be left out with one checkbox on its edit screen.
* **Clash alerts:** TextTwin tells you if the llms.txt feature in Yoast SEO, All in One SEO, Rank Math or SEOPress is also turned on, or if another llms.txt plugin or a real llms.txt file would get in the way, and where to switch it off.
* **AI crawler check:** it warns you when your robots.txt or the "Discourage search engines" setting blocks AI crawlers such as GPTBot and ClaudeBot.
* **Fast and lightweight:** files are built once and cached, no scripts or styles load on your pages, and nothing is sent to any outside service.

= Page builders and editors =

TextTwin reads content from the block editor, the Classic Editor and Elementor, including synced patterns and shortcodes. It turns tables, lists, headings, YouTube and Vimeo embeds, and links into clean plain text.

= For developers =

* Change any built-in choice with the `texttwin_settings` filter, such as the section order, the folder name or extra links.
* WP-CLI: `wp texttwin status`, `wp texttwin rebuild` and `wp texttwin print index|full|slug`.

== Installation ==

1. Go to Plugins > Add New Plugin, search for TextTwin, then click Install Now and Activate.
2. Go to Settings > TextTwin.
3. Tick the content to include, add a one-sentence description of your site, and click Save Changes.
4. Open the llms.txt link at the bottom of the settings page to see the result.

If your host or a CDN caches pages, exclude /llms.txt, /llms-full.txt and the /llms-guides/ folder from caching so AI tools always get the latest copy.

== Frequently Asked Questions ==

= What is llms.txt? =

llms.txt is a proposed standard for a plain text file at the root of a website. It gives AI tools a short summary of the site and a list of its most useful pages, much like robots.txt and sitemaps help search engines.

= Does llms.txt help with AI SEO or GEO? =

It helps AI agents and assistants find and read your content when they visit your site. Google has said its AI Overviews do not need llms.txt, so treat it as a way to make your content easy for AI tools to use, not as a ranking factor.

= How is TextTwin different from other llms.txt plugins? =

Besides llms.txt and llms-full.txt, TextTwin gives every page its own plain text twin and adds links to it in each page's code, so an AI agent that lands on any page can find a clean copy. It also groups help center articles by category and has almost no settings to manage.

= Will the text files show up in Google search? =

No. The llms-full.txt file and the page twins are sent with a noindex header, so they never compete with your real pages. The llms.txt index stays indexable.

= Do I need to rebuild the files after editing content? =

No. The files rebuild on their own when you publish, edit, delete or recategorize content, and when you change the site title or permalinks.

= Can I leave a page out? =

Yes. Tick "Leave this out of the AI text files" on the page's edit screen. Pages set to noindex in Yoast SEO, Rank Math or SEOPress are left out automatically.

= I see an alert about Yoast SEO, All in One SEO or Rank Math. What should I do? =

Those plugins have their own llms.txt feature. Only one plugin should answer /llms.txt, so the alert shows exactly where to switch the other feature off. The rest of your SEO plugin keeps working as normal.

= My llms.txt shows a 404 error or an old version. =

Make sure TextTwin is turned on, then clear any page cache or CDN cache. If a real llms.txt file sits in your site folder, the server shows it instead, so TextTwin warns you about it on the settings page.

= Does TextTwin send my content anywhere? =

No. TextTwin only creates files on your own site. It does not contact any outside service.

== Screenshots ==

1. The settings page, with its three options.

== Changelog ==

= 1.0.0 =
* First public release.
