=== Complete AI Web ===
Contributors: completeaiweb
Tags: llms.txt, ai, json-ld, schema, robots.txt
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Serves your Complete AI Web AI Listing on your own site: llms.txt, llms-full.txt, JSON-LD and robots.txt lines for AI search bots.

== Description ==

Complete AI Web helps AI assistants and AI search tools describe your business correctly. You keep a fact sheet about your business in your Complete AI Web dashboard. We turn it into the files AI tools look for, and this plugin serves those files on your own WordPress site.

We never need to log in to your site. You paste a connection key once, and the plugin keeps itself up to date.

What the plugin adds to your site:

* **/llms.txt**: a short, clear summary of your business for AI assistants.
* **/llms-full.txt**: the longer version with all your facts, FAQs, services and policies.
* **JSON-LD structured data** in the page head: your business (Organization or LocalBusiness), your services and offers, and your FAQs. On the homepage only, or on every page.
* **robots.txt lines** that welcome AI search bots. They are added to the end of your robots.txt. Your existing rules are never changed or removed.

Each part can be switched on or off on its own.

How it stays up to date:

* When you change your fact sheet, Complete AI Web sends a signed message to your site, and the plugin fetches the new files straight away.
* Once a day the plugin checks in with Complete AI Web and fetches new files if your listing changed.
* Files are cached on your site for 12 hours. The plugin also keeps the last good copy, so your files stay online even if Complete AI Web cannot be reached for a while.

You need an AI Listing from [Complete AI Web](https://completeaiweb.com/) to use this plugin.

== Installation ==

1. In your WordPress admin, go to Plugins > Add New, search for "Complete AI Web" and click Install, then Activate. You can also upload the plugin zip under Plugins > Add New > Upload Plugin.
2. In your Complete AI Web dashboard, open your listing, add a WordPress site and copy the connection key. It starts with `caw_`.
3. In WordPress, go to Settings > Complete AI Web, paste the key and click Connect.
4. Check the Status box. When it says "Working", open `https://your-site.com/llms.txt` to see your listing.

== Frequently Asked Questions ==

= Do I need an account with Complete AI Web? =

Yes. The plugin serves the files that Complete AI Web builds from your fact sheet. Without a connection key it does nothing.

= Do you get access to my WordPress site? =

No. The plugin only fetches your public listing files and tells Complete AI Web where to send update messages. We cannot log in, read your content or change anything else on your site.

= The Status box says a physical llms.txt file is in the way. What do I do? =

If a real file called `llms.txt` sits in your site's main folder, your web server sends that file before WordPress runs, so the file always wins. Delete or rename it with your host's file manager or by FTP. If another plugin created it (some SEO plugins do), switch off that plugin's llms.txt feature first, or it may create the file again.

= I use Yoast SEO, Rank Math, All in One SEO or SEOPress. Is that a problem? =

No, but SEO plugins usually print their own Organization schema. To avoid describing your business twice, keep our JSON-LD set to "Homepage only", or switch it off if your SEO plugin already describes your business well. If your SEO plugin also has an llms.txt feature, keep only one of them switched on.

= My site has a robots.txt file. Can the plugin still add the lines? =

WordPress can only add lines to robots.txt when there is no real robots.txt file in your site's main folder. If you have one, the settings page shows the recommended lines so you can copy them into your file by hand.

= Nothing is added to robots.txt. Why? =

If your site is set to discourage search engines (Settings > Reading), the plugin leaves robots.txt alone on purpose.

= /llms.txt shows a "page not found" error. =

Make sure your permalinks are not set to "Plain" (Settings > Permalinks). Then click Save on that screen once, which rebuilds the rewrite rules. Some security plugins or server rules block .txt files. If so, ask your host to allow `/llms.txt` and `/llms-full.txt`.

= I updated my fact sheet, but my site still shows the old version. =

Click "Refresh now" on the settings page. If you use a page cache or a CDN, clear it as well. The files are sent with a 5 minute browser cache.

= Updates from the dashboard do not reach my site. =

Complete AI Web sends update messages to `/wp-json/completeaiweb/v1/refresh`. Some security plugins block the WordPress REST API for visitors who are not logged in. Allow that one route, or rely on the daily check, which fetches new files within a day.

= What happens if I disconnect or delete the plugin? =

Disconnect removes the key and the cached files from your site, and the plugin stops serving your listing. Deleting the plugin removes all its settings and cached data.

== External services ==

This plugin connects to the Complete AI Web API at `https://app.completeaiweb.com`, run by Complete AI Web. It is needed to download your AI Listing files and keep them up to date. Nothing is sent until you paste a connection key and click Connect.

What is sent, and when:

* **When you click Connect** (`POST /v1/connect`): your connection key (in the Authorization header), your site address, the address of the plugin's refresh route on your site, the plugin version and the platform name ("wordpress").
* **Once a day** (`POST /v1/heartbeat`): your connection key, your site address, the plugin version, and whether llms.txt and JSON-LD are switched on.
* **When files are fetched** (`GET /v1/listing/{site key}/llms.txt`, `llms-full.txt`, `schema.json`, `robots.txt` and `status`): your public site key. Your server's IP address and a user agent with the plugin version and your site address are sent with every request, as with any web request. This happens when you connect, when you click "Refresh now", when Complete AI Web tells the plugin your listing changed, and when the 12 hour cache runs out.

Complete AI Web also sends signed update messages to your site's `/wp-json/completeaiweb/v1/refresh` route when your fact sheet changes. They contain only your site key and the listing version.

No information about your visitors is sent.

* Terms of service: https://completeaiweb.com/terms
* Privacy policy: https://completeaiweb.com/privacy

== Changelog ==

= 1.0.0 =
* First release: serves /llms.txt and /llms-full.txt, prints JSON-LD, adds robots.txt lines, signed refresh route, daily heartbeat, 12 hour cache with a last good copy.

== Upgrade Notice ==

= 1.0.0 =
First release.
