Directory / plugin
Clearway Forge – AI Traffic Analytics & llms.txt for WooCommerce
v1.0.3 · by avakodeforge
See which AI assistants send visitors and orders to your WooCommerce store, and publish llms.txt for your catalogue. Data stays on your server.
About this plugin
Clearway Forge shows how much AI assistants such as ChatGPT, Perplexity and Claude send to your WooCommerce store, and what that traffic is worth in orders. It measures the channel from your own server and joins it to your WooCommerce orders, so the numbers match the money in your own database. No third-party script and no pixel on your storefront.
It counts. Every AI visit and every order it leads to, attributed with first-party data. You choose the attribution model on the Settings screen: last touch, first touch, linear or time decay. The reporting window goes back up to 400 days.
It shows its work. Next to every number you see how it was identified: a referrer, a campaign tag, or an assistant that fetched the same page moments earlier. Estimates are labelled as estimates and reported separately from proven revenue.
It makes your store readable to machines. An llms.txt and llms-full.txt map of your catalogue and policies, generated from your live products and kept in sync as they change.
It logs the bots. You see which crawlers read your store, how often and for what purpose. A request claiming to be GPTBot from an address outside OpenAI’s published ranges is shown as what it is: someone pretending. That check needs the address lists the vendors publish, so it works once you turn on crawler address verification on the Settings screen.
Your data stays on your server
The plugin stores no IP addresses and no email addresses. Visitor sessions are keyed by a first-party cookie, set only for visits that actually came from an AI assistant. When a consent plugin that supports the WP Consent API is active, the cookie is set only after the visitor has agreed to anonymous statistics. WordPress privacy exporter and eraser hooks are supported. The plugin is compatible with High-Performance Order Storage and the block-based cart and checkout.
What it does not do
It does not survey language models about your brand, it does not generate content, and it does not run its own MCP server. It measures the channel. If you already run an MCP connector, the two work side by side: a connector opens your store to agents, and this plugin records what they did.
The only request the plugin can make is the download of the public crawler address lists, and only after you turn crawler address verification on. See External services.
Documentation: https://clearwayforge.com/docs/
External services
This plugin can make one kind of outbound request. It is off until you turn it on, and it is disclosed here in full.
Crawler address lists published by OpenAI and Perplexity.
What it is for. A user agent string costs nothing to forge. To tell a real GPTBot visit from a scraper wearing its name, the plugin compares the requesting address against the ranges each vendor publishes. Without this, every claimed crawler would have to be taken at its word, and the crawler log would be worth very little.
What is sent. Nothing. These are plain unauthenticated GET requests for public JSON files. No personal data, no store data, no site identifier and no licence key are transmitted. The plugin does not send your visitors’ addresses anywhere; it downloads the vendors’ lists and does the comparison locally.
What is received. A list of IP ranges.
When. Only after you turn on Crawler address verification on the plugin’s Settings screen. From then on, once a day from a background task, never during a customer’s page view. Activating the plugin does not contact any server.
Which endpoints.
https://openai.com/gptbot.jsonhttps://openai.com/searchbot.jsonhttps://openai.com/chatgpt-user.jsonhttps://www.perplexity.ai/perplexitybot.json
Terms of the providers. OpenAI: terms, privacy. Perplexity: terms, privacy.
While it is off. Nothing is downloaded. Crawler visits are then reported as “declared”: the user agent matched, but the address could not be checked. The plugin never treats an unverified visit as a forged one. Turning verification off again stops the daily download and deletes the lists already downloaded.
The plugin contains no analytics, no telemetry and no licensing calls of its own.
Free and paid
Everything described above is free and stays free. That includes the reporting window, up to the last 400 days, and all four attribution models: last touch, first touch, linear and time decay, chosen on the Settings screen. Nothing about either depends on a key.
A separate paid add-on, installed alongside this plugin, adds:
- CSV export of revenue by AI agent
- A monthly digest email
- Schema enrichment aimed at agents, and a machine readable catalog feed that puts the catalogue into assistant product discovery
- Agent guard rails: per agent keys with scopes, an append only journal with a hash chain, and a kill switch that turns the agent API off. The agent API is read-only today; held writes will arrive with write tools
A licence for the paid add-on also includes priority email support while it is active. It ends when the licence expires and comes back on renewal.
The free plugin contains none of that code. Nothing here is a disabled button waiting for a payment.
Hooks for other plugins
Two actions are published as a stable contract, so a mailing list, a CRM or an operations dashboard can react to the AI channel without polling the database. The second one, clearwayforge/action_held, does not fire yet.
clearwayforge/ai_order
Fired by this free plugin when an order has been attributed to the AI channel. Once per order, never once per touch, and only after the attribution row has been written, so a listener that reads the tables sees the order it was woken for. Orders with nothing to attribute fire nothing at all.
do_action( 'clearwayforge/ai_order', int $order_id, string $agent, array $attribution );
$order_id— the WooCommerce order.$agent— the assistant with the largest share:chatgpt,perplexity,claudeand so on. Ties are broken by the dashboard’s own order, so the same order always names the same winner.-
$attribution— model, currency,order_total_cents,ai_total_cents,proven_total_cents,fully_proven, and asourceslist with one entry per touch. Money is always whole cents, never a float. Nothing about the visitor is included: no address, no email, no user agent.example.php:
add_action( ‘clearwayforge/ai_order’, function ( $order_id, $agent, $attribution ) {
error_log( sprintf( ‘#%d came from %s: %d cents’, $order_id, $agent, $attribution[‘ai_total_cents’] ) );
}, 10, 3 );
clearwayforge/action_held
This hook does not fire yet. The agent API is read-only today, so the paid add-on never holds an action and never calls it; held writes will arrive with write tools. The contract below is settled in advance, so a listener can be written now.
Planned contract, once write tools arrive: the add-on fires it once per hold, immediately after the journal entry is written and before the agent gets its answer. Nothing in the store has been changed at that point, and nothing will change until you decide.
do_action( 'clearwayforge/action_held', int $hold_id, string $agent, string $capability, string $summary );
$hold_id— the journal sequence number, which doubles as the identifier of the pending action.$agent— the agent key,agt_….$capability— the ability name, for examplewoocommerce/update-product-price. Not the scope: the scope says what kind of action it is, the ability name says what would actually happen.$summary— one phrase for a human: “Change a product price”.
The arguments carry no part of the agent’s payload. The journal keeps only its hash, for the same reason: the contents of a call do not belong in places outside the store.
This hook does not exist on a site running only the free plugin, because nothing there holds agent actions; on a site with the add-on it does not fire yet either. Guard has_action() accordingly, or check that the add-on is active.