<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: anti Gym Club</title>
    <description>The latest articles on DEV Community by anti Gym Club (@antigymclub).</description>
    <link>https://dev.to/antigymclub</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3875616%2F78fc9ad6-c95a-4068-b6e0-c0d296576a7f.png</url>
      <title>DEV Community: anti Gym Club</title>
      <link>https://dev.to/antigymclub</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/antigymclub"/>
    <language>en</language>
    <item>
      <title>llm.txt: How to Make Your Wordpress Readable by AI Assistants</title>
      <dc:creator>anti Gym Club</dc:creator>
      <pubDate>Sun, 12 Apr 2026 23:37:17 +0000</pubDate>
      <link>https://dev.to/antigymclub/llmtxt-how-to-make-your-wordpress-readable-by-ai-assistants-228j</link>
      <guid>https://dev.to/antigymclub/llmtxt-how-to-make-your-wordpress-readable-by-ai-assistants-228j</guid>
      <description>&lt;p&gt;You've heard of robots.txt. It tells search engines what to crawl.&lt;/p&gt;

&lt;p&gt;Now there's llm.txt. It tells AI assistants what your site is about.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;AI assistants like ChatGPT and Claude are becoming how people find information. But they work differently&lt;br&gt;
  than Google.&lt;/p&gt;

&lt;p&gt;Google crawls your site, follows links, understands structure. AI assistants? They need explicit context.&lt;/p&gt;

&lt;p&gt;Without it, they might:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ignore your site entirely&lt;/li&gt;
&lt;li&gt;Hallucinate wrong information about you&lt;/li&gt;
&lt;li&gt;Recommend competitors instead&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What is llm.txt?&lt;/p&gt;

&lt;p&gt;A plain text file at yoursite.com/llm.txt that provides context to AI.&lt;/p&gt;

&lt;p&gt;Basic structure:&lt;/p&gt;
&lt;h2&gt;
  
  
  Site Name
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Brief description of what this site does&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  About
&lt;/h2&gt;

&lt;p&gt;Detailed information about the site or business.&lt;/p&gt;
&lt;h2&gt;
  
  
  Key Pages
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;/about - About page&lt;/li&gt;
&lt;li&gt;/products - Product listings&lt;/li&gt;
&lt;li&gt;/blog - Technical articles&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Products/Services
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Product 1 - Description&lt;/li&gt;
&lt;li&gt;Product 2 - Description&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Contact
&lt;/h2&gt;

&lt;p&gt;&lt;a href="mailto:email@example.com"&gt;email@example.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Human-readable. Machine-parseable. Takes 5 minutes to create.&lt;/p&gt;

&lt;p&gt;Why It Matters&lt;/p&gt;

&lt;p&gt;AI search is growing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ChatGPT: 100M+ weekly users&lt;/li&gt;
&lt;li&gt;Perplexity: 10M+ monthly users&lt;/li&gt;
&lt;li&gt;Google AI Overviews: 30%+ of searches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tools decide what content to surface. Without context, they skip you.&lt;/p&gt;

&lt;p&gt;Implementation in WordPress&lt;/p&gt;

&lt;p&gt;Option 1: Manual&lt;/p&gt;

&lt;p&gt;Create llm.txt in your root directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;  &lt;span class="c1"&gt;// In functions.php - serve llm.txt&lt;/span&gt;
  &lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'init'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_SERVER&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'REQUEST_URI'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;'/llm.txt'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="nb"&gt;header&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Content-Type: text/plain'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
          &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="nb"&gt;file_get_contents&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;ABSPATH&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'llm.txt'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
          &lt;span class="k"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then create the file manually and update it when you publish.&lt;/p&gt;

&lt;p&gt;Option 2: Auto-generate&lt;/p&gt;

&lt;p&gt;Query your posts and build the file dynamically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;  &lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'init'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_SERVER&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'REQUEST_URI'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;'/llm.txt'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="nb"&gt;header&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Content-Type: text/plain'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

          &lt;span class="nv"&gt;$output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"# "&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;get_bloginfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
          &lt;span class="nv"&gt;$output&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"&amp;gt; "&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;get_bloginfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'description'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

          &lt;span class="nv"&gt;$output&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"## Recent Posts&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
          &lt;span class="nv"&gt;$posts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_posts&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;'numberposts'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
          &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$posts&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
              &lt;span class="nv"&gt;$output&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"- "&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;get_permalink&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s2"&gt;" - "&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;post_title&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
          &lt;span class="p"&gt;}&lt;/span&gt;

          &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$output&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
          &lt;span class="k"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This keeps it updated automatically.&lt;/p&gt;

&lt;p&gt;Option 3: Use a Plugin&lt;/p&gt;

&lt;p&gt;If you want more control without writing code, &lt;a href="https://antigymclub.com/plugins/llm-txt-generator-pro/" rel="noopener noreferrer"&gt;https://antigymclub.com/plugins/llm-txt-generator-pro/&lt;/a&gt; handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auto-generation from all content types

&lt;ul&gt;
&lt;li&gt;Custom sections and context&lt;/li&gt;
&lt;li&gt;Updates on publish&lt;/li&gt;
&lt;li&gt;Preview before going live&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Content Portability
&lt;/h2&gt;

&lt;p&gt;Related problem: your content is trapped in WordPress's database.&lt;/p&gt;

&lt;p&gt;For AI training, headless migrations, or proper backups, you need clean exports.&lt;/p&gt;

&lt;p&gt;WordPress's native XML export is... not clean.&lt;/p&gt;

&lt;p&gt;Better approach: export to JSON or Markdown.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;  &lt;span class="c1"&gt;// Simple JSON export&lt;/span&gt;
  &lt;span class="nv"&gt;$posts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_posts&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;'numberposts'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$export&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

  &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$posts&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nv"&gt;$export&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="s1"&gt;'title'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;post_title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="s1"&gt;'content'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;post_content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="s1"&gt;'date'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;post_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="s1"&gt;'url'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;get_permalink&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$post&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nb"&gt;header&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="nb"&gt;json_encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$export&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;JSON_PRETTY_PRINT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Markdown with frontmatter, you'll need to convert HTML content - more complex but doable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full Solution
&lt;/h2&gt;

&lt;p&gt;I built two plugins that work together:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LLM.txt Generator Pro - AI context file, auto-updated&lt;/li&gt;
&lt;li&gt;Content Exporter JSON/MD - Clean exports to JSON/Markdown&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Available as the &lt;a href="https://antigymclub.com/bundles/ai-readiness-bundle/" rel="noopener noreferrer"&gt;https://antigymclub.com/bundles/ai-readiness-bundle/&lt;/a&gt; - $29 for both.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Minimum viable approach:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create llm.txt with your site description and key pages&lt;/li&gt;
&lt;li&gt;Upload to root directory&lt;/li&gt;
&lt;li&gt;Test: visit yoursite.com/llm.txt&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it. AI assistants can now understand your site.&lt;/p&gt;

&lt;p&gt;For automation, either write the code above or use a plugin.&lt;/p&gt;




&lt;p&gt;Questions? Drop them in the comments.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>ai</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
