Toutmark AI Citation
Toutmark AI Citation
Description
Toutmark is an AI citation platform aligned with Google’s May 2026 AI Optimization guidance. This plugin connects your WordPress site to your Toutmark account and adds the technical signals that AI engines reward — all visible to every visitor, with no user-agent-conditional content delivery and no hidden text.
What it does
- Schema injection. Emits standard schema.org JSON-LD on each page via the
wp_headhook, sourced from your Toutmark account. Visible to humans and bots alike. - /llms.txt + /llms-full.txt files. Serves public files at the root of your site (used by ChatGPT and Perplexity): llms.txt is the index, llms-full.txt carries the full text of your published content so AI systems can read everything in one fetch. Both populated from your Toutmark account, both visible to any visitor.
- One link to the pages Toutmark publishes. Each of those pages lives at its own address with nothing pointing at it, which means visitors cannot find it and crawlers may never reach it. This adds an ordinary, visible link on every page: in the footer by default, or as one item at the end of your main menu if you choose the top menu. Once there are more than three pages, Toutmark puts an answers hub page that lists them all in your approval queue, and once you approve it and it is published, the link is a single link to it; until then, the pages themselves are linked in the footer. If you choose the top menu (in Toutmark, or under “Where it goes” here on a site connected with its Toutmark key, which the daily check-in passes on), the hub page goes in your approval queue from your first page, since a menu takes one link; until it is published the page links stay in the footer, and a theme with no main menu keeps the link in the footer. The menu item is added as each page loads; your saved menus are never edited. Switch it off in settings, or place the
[toutmark_hub_link]shortcode in your own footer instead. - AI bot reachability. Runs a daily ping back to Toutmark; the Toutmark service then verifies that GPTBot, ClaudeBot, PerplexityBot, ChatGPT-User, and Googlebot can reach your site and surfaces results in your dashboard.
- One-click connect. A “Connect to Toutmark” button creates a WordPress Application Password for your user account with core’s
WP_Application_PasswordsAPI and sends it to Toutmark over HTTPS. Toutmark uses it to publish the pages and posts you approve in your Toutmark dashboard, and to make the changes to your existing pages that you approve there. You can revoke it any time from Users Profile Application Passwords.
What it does NOT do
- Does not deliver different content to bots than to humans. Google’s spam policy treats user-agent-conditional content delivery as a manual-action risk. Toutmark refuses to do it on principle.
- Does not inject hidden text, white-on-white text, off-screen text, zero-size text, or
display:nonecontent blocks. Every character is visible to humans at full opacity, in normal document flow. - The plugin itself does not modify your post content. Schema and llms.txt content are added via standard WordPress hooks (
wp_head, rewrite rules). Changes to your existing pages (for example a paragraph rewrite) are made by Toutmark through the standard REST API with the Application Password you connect, and only once they are approved. - Does not add a page or post to your site without your approval. A new page goes live only after you approve it in your Toutmark dashboard. Edits to pages you already have follow the approval setting you choose there: ask every time, or automatic. Regulated businesses are never approved automatically.
- Does not need Toutmark to be reachable: if it is not, the plugin keeps serving the last copy it has. It needs an active Toutmark subscription to receive updates.
Compliance with Google’s May 2026 spam policy
Google’s updated spam policy targets user-agent-conditional content (cloaking), hidden or invisible text, “AI-only” content blocks visible only to LLM bots, and inauthentic mentions. Toutmark does none of these. Every signal we add is plainly visible to anyone who visits your site.
Requirements
- An active Toutmark subscription — sign up at toutmark.com.
- WordPress 6.0+, PHP 7.4+.
- Application Passwords enabled (default in WordPress 5.6+; some security plugins disable them).
- Outbound HTTPS access from your server to
toutmark.com.
Installation
- Install the plugin from the WordPress.org directory (or upload the ZIP via WordPress admin Plugins Add New Upload Plugin).
- Activate the plugin. You’ll be redirected automatically to the settings page at Settings Toutmark AI Citation.
- Your Customer ID is pre-filled if you came from your Toutmark dashboard’s install link. Otherwise paste it from your Toutmark dashboard.
- Check “Enable plugin” and save.
- Click “Connect to Toutmark.” The plugin generates a WordPress Application Password and sends it to Toutmark in one click. Success notice appears.
That’s it. Toutmark can now publish what you approve, and the plugin adds schema, serves /llms.txt and adds the link to your Toutmark pages from its daily update.
Faq
This plugin is designed to be Google-compliant. Schema injection follows Google’s own guidance. There is no cloaking or hidden text. llms.txt is a standard file at a standard URL, similar to robots.txt or sitemap.xml.
It creates a WordPress Application Password named “Toutmark AI Citation” for the user you are logged in as, and sends it to Toutmark over HTTPS. Application Passwords carry the same permissions as the user they belong to (WordPress cannot limit them further), and the Connect button is on an Administrator-only screen, so this one has Administrator permissions. Toutmark stores it encrypted and uses it for standard WordPress REST API calls (posts, pages, media, categories, and this plugin’s robots.txt route). Connecting again replaces the previous Toutmark passwords on this site (whichever administrator made them), and deleting the plugin revokes them. If you revoke it yourself under Users Profile Application Passwords, Toutmark can no longer publish or change anything until you connect again; the plugin keeps adding schema, llms.txt and the link from its daily update.
Blog posts you asked for, FAQ pages, comparison pages, brand summary and at-a-glance pages, and rewrites of a paragraph on a page you already have. Each new page or post waits in your Toutmark approval queue; when you approve it, Toutmark publishes it to your site through the REST API, live straight away (nothing is placed in your WordPress drafts). Edits to pages you already have follow the approval setting you choose in Toutmark. Any change can be reverted from your Toutmark dashboard.
The plugin fails open. If the Toutmark API is unreachable, slow, or returns an error, the plugin keeps serving the last copy it has. Your site is never broken.
No. Schema is emitted from a locally-cached daily bundle (one fetch per day via wp-cron, then served from a WordPress option). llms.txt is served from the same cache. There are no per-pageview calls to Toutmark.
Two options. (1) Deactivate the plugin — it immediately stops emitting schema and serving llms.txt. (2) Revoke the Application Password under Users Profile Application Passwords — Toutmark can no longer publish to your site, but cached schema and llms.txt remain until you deactivate the plugin or uninstall it.
Reviews
Changelog
2.5.0
- New: before your answers hub exists, the pages Toutmark published are linked directly (up to eight, newest first), so a new page is never left with nothing pointing at it. Previously nothing was shown until the hub was published.
- New: the link can go in your top menu instead of the footer: one item at the end of your main menu (classic menus and the Navigation block), pointing at your answers hub. Choose it in Toutmark, or under “Where it goes” in this plugin’s settings. Your saved menus are not changed; the item is added as each page loads, and if your theme has no main menu the link stays in the footer.
- The daily check-in tells Toutmark where the link is set to go, whether it is switched on, whether your theme has a main menu the plugin knows and whether that menu carried it, so your dashboard says where it really is. The top menu link is added to the theme’s main menu location on classic themes, and to the Navigation block on block themes.
- Reconnecting replaces the previous Toutmark Application Passwords on the site (made by any administrator) instead of adding another, a password Toutmark refused is taken back, and deleting the plugin revokes Toutmark’s passwords.
- The one-click robots.txt fix keeps your original file as its backup when it is applied more than once. Deleting the plugin gives a physical robots.txt that this version changed its original back, as long as nobody has edited the file since; a change made by 2.4.0 is left in place, and Revert in your Toutmark dashboard still restores it.
- Schema is found for an address with or without its trailing slash; the daily check-in stops while the plugin is switched off.
- Readme and settings: say plainly what Toutmark can change on your site and when, and what the plugin does when it is off or Toutmark is unreachable.
2.4.0
- New: one-click robots.txt fix. Your Toutmark dashboard can now apply the corrected robots.txt it previews — through this plugin, with your confirmation — instead of asking you to paste it. Works whether your site uses a physical robots.txt file or WordPress’s virtual one; the previous content is backed up first and a revert is one click.
2.3.0
- Added: one visible link to your Toutmark answers hub in the site footer, so the pages Toutmark publishes are reachable from anywhere on your site instead of only by typing the address.
- Added:
[toutmark_hub_link]shortcode for placing that link in your own footer widget or block template instead. - Added: a Footer link setting to turn it off. It is on by default and only ever renders once a hub page exists.
- Security: the footer link is discarded unless the hub address is on this same site.
2.2.2
- New: serves /llms-full.txt at your site root – the full-content companion to llms.txt, from the same cached daily bundle. No new inputs, no new API calls, visible to every visitor like everything else.
- Rewrite rules now flush automatically once after each plugin update, so the new route works without re-saving permalinks.
2.2.1
- Internationalization: text domain now matches the plugin slug (toutmark-ai-citation) per WordPress.org review.
- Plugin folder and main file renamed to match the slug; legacy toutmark-aeo copies are deactivated automatically on upgrade (settings are preserved).
2.2.0
- Security hardening per WordPress.org plugin review: every form handler now checks capability first, then verifies its nonce via check_admin_referer(), before reading any input or changing any state.
- The dashboard install link’s Customer ID parameter is now display-only pre-fill — it is never persisted from the URL; saving goes through the nonce-protected Settings API form.
- “Test connection” handling moved out of the page renderer into a dedicated admin_init handler with its own capability + nonce gate.
- Added uninstall.php: removes all plugin options, transients, and cron events on uninstall.
- Deactivation now uses wp_clear_scheduled_hook() to clear all scheduled cron occurrences.
- Confirmed compatible with WordPress 7.0.
2.1.0
- New: One-click “Connect to Toutmark” button generates a WordPress Application Password via core API and sends it to Toutmark for REST API-based draft publishing.
- New: Daily content-bundle cron pulls schema + llms.txt + at-a-glance HTML from Toutmark; served from local cache (no per-pageview API calls).
- New:
/llms.txtrewrite rule serves the file from cache. - New: Activation redirect to settings page.
- New: Customer ID pre-fill via
?toutmark_customer_id=URL parameter. - Compatibility: class names now prefixed with
Toutmark_Aeo_per WordPress.NamingConventions.PrefixAllGlobals.
2.0.2
- Cleanup: removed dead user-agent detection code paths.
- Cleanup: completed truncated source files.
- Compliance: all global class/constant names properly prefixed.
2.0.0
- Breaking change. Removed UA-conditional content rewriting to comply with Google’s May 2026 spam-policy update.
- Schema injection retained — visible to humans and bots equally.
- llms.txt support retained.
1.0.5
- Final pre-rebrand release of the prior architecture.