{"id":2,"date":"2025-10-24T07:26:55","date_gmt":"2025-10-24T07:26:55","guid":{"rendered":"https:\/\/moyahost.ai\/?page_id=2"},"modified":"2026-04-22T13:59:06","modified_gmt":"2026-04-22T13:59:06","slug":"agent-ready","status":"publish","type":"page","link":"https:\/\/moyahost.ai\/nl\/agent-ready\/","title":{"rendered":"How I made MoyaHost Agent Ready"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A practical guide for agencies and developers. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;ll set up four things: <code><strong>llms.txt<\/strong><\/code>, an <code><strong>agent-card.json<\/strong><\/code>, JSON-LD schema, and a contact form an AI agent can actually submit.<\/p>\n\n\n\n<div style=\"height:51px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">More traffic to your site is going to come from AI agents acting on behalf of humans \u2014 ChatGPT browse mode, Perplexity, Claude for Chrome, custom-built agents. If your site is built purely for human eyeballs, you're becoming invisible to them.<br><br>At MoyaHost we build AI chatbots, voice agents, and workflow automations \u2014 so running a site that isn't agent-ready wasn't an option. This post is the exact setup we deployed, including the mistake that cost me a rewrite.<br><br><strong>Starting point:<\/strong> a working WordPress site with a functioning contact form that sends email notifications. If you don't have that, fix it first.<br><strong>Our stack:<\/strong> WordPress on cPanel, Elementor, Fluent Forms (free), Fluent SMTP (free) \u2192 Microsoft 365, Code Snippets, Cloudflare DNS.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-base-color has-custom-color-1-background-color has-text-color has-background has-link-color wp-elements-5b95e0b1202974b67228465a5d2ff356 wp-block-paragraph\">Step 1: Use a native WordPress form, not Typeform<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">Typeform embeds are iframes from `<strong>typeform.com<\/strong>`. For an agent to submit one, it has to drive a browser \u2014 slow, flaky, and not documentable in a standard.\n\nA native form lives on your own domain with a submission endpoint you control and can describe.\n\nWe picked Fluent Forms. WPForms, Gravity Forms, or Contact Form 7 all work too; the endpoint details below will differ.\n\nBuild the form, replace your Typeform embed with the shortcode (`<strong>[ fluentform  id= \"1\" ]<\/strong>`), and confirm it renders.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-base-color has-custom-color-1-background-color has-text-color has-background has-link-color wp-elements-ccddfe1af5ba2e0008cb31066b2b79ce wp-block-paragraph\">Step 2: Reliable email delivery (Microsoft 365 + OAuth)<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">WordPress's default `wp_mail()` is notoriously unreliable on shared hosts. You need SMTP.\n\n<strong>Cloudflare is not an SMTP provider.<\/strong> This catches people out. Cloudflare does inbound Email *Routing* (forwards incoming mail to your inbox), and has an Email *Sending* product in private beta \u2014 but nothing usable for a WordPress form today.\n\nIf you already pay for Microsoft 365, use it. No extra service, no extra cost, emails come from the real mailbox.\n\n<strong>Critical 2026 timing note:<\/strong> Microsoft has deprecated Basic Authentication for SMTP. After April 30, 2026, username-and-password SMTP to Office 365 stops working. You must use OAuth 2.0 via Microsoft Graph.\n\nFluent SMTP handles this natively. The setup:\n\n1. In <strong>Microsoft Entra \u2192 App registrations \u2192 New registration<\/strong> \u2014 multi-tenant, use the callback URL Fluent SMTP shows you.\n2. <strong>API permissions<\/strong> \u2014 add Microsoft Graph delegated permissions: `SMTP.Send`, `Mail.Send`, and `offline_access`. Without `offline_access`, tokens expire after an hour.\n3. <strong>Grant admin consent<\/strong> for all three.\n4. <strong>Certificates &amp; secrets \u2192 New client secret<\/strong> \u2014 set to 24 months (the max) and calendar-reminder the renewal.\n5. '<strong>Web' redirect URI<\/strong> : https:\/\/moyahost.ai\/wp-json\/fluent-smtp\/outlook_callback\n6. Plug the Application ID and Client Secret Value into Fluent SMTP and authenticate.\n\nIn Fluent Forms' notification settings, set `From Email` to the mailbox your app has access to (e.g. `info@moyahost.ai`), and `Reply-To` to `{inputs.email}`. Without Reply-To, hitting Reply in Outlook sends back to yourself.<\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-base-color has-custom-color-1-background-color has-text-color has-background has-link-color wp-elements-338449cb80035b85f69d76fdf9a6e6bf wp-block-paragraph\">Step 3: The <code><strong>llms.txt<\/strong><\/code> and <code><strong>llms-full.txt<\/strong><\/code> files (the AI-SEO layer)<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">`<strong>llms.txt<\/strong>` is a 2024 proposal by Jeremy Howard (Answer.AI): a curated, markdown-formatted list of your site's important pages at the domain root, so LLMs can understand your site without crawling full HTML.<br><br>Example: <br><\/pre>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># MoyaHost\n\n> MoyaHost B.V. is a Netherlands-based AI automation agency building\n> custom AI chatbots, voice agents, and workflow automations for\n> SMBs in NL and the EU.\n\n## What we do\n\n- **AI chatbots** \u2014 conversational agents tailored to your business\n- **Voice agents** \u2014 AI phone\/voice interfaces\n- **Workflow automation** \u2014 AI integrated into existing processes\n- **Consultancy** \u2014 ROI-focused AI advisory\n- **Training** \u2014 team workshops on building with AI\n\n## Key pages\n\n- &#91;Home&#93;(https:\/\/moyahost.ai\/): Overview of services\n- &#91;Videos&#93;(https:\/\/moyahost.ai\/videos\/): Demos of chatbots and voice agents\n- &#91;Contact&#93;(https:\/\/moyahost.ai\/contact-us\/): Request a consultation\n\n## Contact\n\n- Email: info@moyahost.ai\n- Response time: Within 1 business day<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">#<\/span><span style=\"color: #88C0D0\"> MoyaHost<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">&gt;<\/span><span style=\"color: #616E88\"> MoyaHost B.V. is a Netherlands-based AI automation agency building<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">&gt;<\/span><span style=\"color: #616E88\"> custom AI chatbots, voice agents, and workflow automations for<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">&gt;<\/span><span style=\"color: #616E88\"> SMBs in NL and the EU.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">##<\/span><span style=\"color: #88C0D0\"> What we do<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF; font-weight: bold\">AI chatbots<\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF\"> \u2014 conversational agents tailored to your business<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF; font-weight: bold\">Voice agents<\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF\"> \u2014 AI phone\/voice interfaces<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF; font-weight: bold\">Workflow automation<\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF\"> \u2014 AI integrated into existing processes<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF; font-weight: bold\">Consultancy<\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF\"> \u2014 ROI-focused AI advisory<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF; font-weight: bold\">Training<\/span><span style=\"color: #ECEFF4; font-weight: bold\">**<\/span><span style=\"color: #D8DEE9FF\"> \u2014 team workshops on building with AI<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">##<\/span><span style=\"color: #88C0D0\"> Key pages<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #88C0D0\">Home<\/span><span style=\"color: #ECEFF4\">&#93;(<\/span><span style=\"color: #D8DEE9FF; text-decoration: underline\">https:\/\/moyahost.ai\/<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">: Overview of services<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #88C0D0\">Videos<\/span><span style=\"color: #ECEFF4\">&#93;(<\/span><span style=\"color: #D8DEE9FF; text-decoration: underline\">https:\/\/moyahost.ai\/videos\/<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">: Demos of chatbots and voice agents<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #88C0D0\">Contact<\/span><span style=\"color: #ECEFF4\">&#93;(<\/span><span style=\"color: #D8DEE9FF; text-decoration: underline\">https:\/\/moyahost.ai\/contact-us\/<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">: Request a consultation<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">##<\/span><span style=\"color: #88C0D0\"> Contact<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> Email: info@moyahost.ai<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> Response time: Within 1 business day<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\"><br>`<strong>llms-full.txt<\/strong>` is the same idea but with full page content inlined \u2014 useful for agents that want deep context in one fetch.<br><br>Upload both to the root of your WordPress install via cPanel File Manager. They must sit at `https:\/\/yourdomain.com\/llms.txt`, not in a subdirectory.<br><br><strong>Exclude them from your XML sitemap.<\/strong> Sitemaps are for search engines indexing HTML pages; including `.txt` files risks duplicate-content flags. Yoast and Rank Math exclude them by default \u2014 verify.<br><br><strong>Honest caveat:<\/strong> ChatGPT, Claude, and Gemini don't automatically fetch `llms.txt` during inference today. It's a bet on where the ecosystem is going. Adoption is accelerating (Anthropic, Stripe, Cloudflare, Perplexity have all shipped one), but don't expect immediate SEO gains from this file alone.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-base-color has-custom-color-1-background-color has-text-color has-background has-link-color wp-elements-4b83d1b97c94a83270b3c66a36c1a8e6 wp-block-paragraph\">Step 4: The agent card (where I got it wrong the first time)<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">The promise: an agent reads a machine-readable file describing how to submit your contact form, then POSTs on behalf of a user. I  assumed Fluent Forms exposed a REST endpoint at `\/wp-json\/fluentform\/v1\/forms\/{id}\/submit`, wrote an agent card documenting JSON POSTs to that path, and deployed it. = <strong>404.<\/strong>\n\nHitting `https:\/\/moyahost.ai\/wp-json\/fluentform\/v1\/` in a browser revealed the actual REST routes. There was no public `\/submit` endpoint. Fluent Forms' REST API is for admin form management only \u2014 not public submissions.\n\n<strong>Lesson: test your own agent card before deploying it.<\/strong> A card documenting a fictional endpoint is worse than no card.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">How Fluent Forms actually works<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">Submissions go through WordPress's legacy AJAX endpoint:<br><br>- <strong>URL:<\/strong> `\/wp-admin\/admin-ajax.php`<br>- <strong>Content-Type:<\/strong> `application\/x-www-form-urlencoded` (not JSON)<br>- <strong>Body:<\/strong> `action=fluentform_submit&amp;form_id=1&amp;data=&lt;url-encoded-query-string-of-fields&gt;`<br><br>Yes \u2014 url-encoding inside url-encoding. It's a pre-REST-era WordPress pattern.<br><br>One good-news finding: Fluent Forms' nonce check is lenient by default. Their source reads:<br><\/pre>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ Validate the form nonce. By default, it does not verify\n\/\/ as many people use caching\n$this->validateNonce();\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">\/\/ Validate the form nonce. By default, it does not verify<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ as many people use caching<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$this-&gt;<\/span><span style=\"color: #88C0D0\">validateNonce<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\"><br>So a capable agent can submit in a single POST without scraping a nonce first.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The working agent card<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">Drop this at `\/.well-known\/agent-card.json`:<\/pre>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>{\n  \"name\": \"MoyaHost\",\n  \"description\": \"Netherlands-based AI automation agency. This is a business contact card, not a live A2A server.\",\n  \"url\": \"https:\/\/moyahost.ai\",\n  \"contact\": {\n    \"email\": \"info@moyahost.ai\",\n    \"form_url\": \"https:\/\/moyahost.ai\/contact-us\/\",\n    \"response_time\": \"1 business day\",\n    \"submission\": {\n      \"method\": \"POST\",\n      \"endpoint\": \"https:\/\/moyahost.ai\/wp-admin\/admin-ajax.php\",\n      \"content_type\": \"application\/x-www-form-urlencoded\",\n      \"request_parameters\": {\n        \"action\": { \"constant_value\": \"fluentform_submit\" },\n        \"form_id\": { \"constant_value\": \"1\" },\n        \"data\": {\n          \"description\": \"URL-encoded query string of form fields\",\n          \"fields\": {\n            \"names&#91;first_name&#93;\": { \"type\": \"string\" },\n            \"names&#91;last_name&#93;\": { \"type\": \"string\" },\n            \"email\": { \"type\": \"string\", \"required\": true },\n            \"checkbox[]\": {\n              \"type\": \"array of string\",\n              \"allowed_values\": &#91;\n                \"AI Chat Bots\", \"AI Voice Agents\", \"AI Workflow\",\n                \"AI Consultancy\", \"AI Training\"\n              &#93;\n            },\n            \"message\": { \"type\": \"string\", \"required\": true }\n          }\n        }\n      }\n    }\n  }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">name<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">MoyaHost<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">description<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Netherlands-based AI automation agency. This is a business contact card, not a live A2A server.<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">url<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/moyahost.ai<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">contact<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">email<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">info@moyahost.ai<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">form_url<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/moyahost.ai\/contact-us\/<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">response_time<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">1 business day<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">submission<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">method<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">POST<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">endpoint<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/moyahost.ai\/wp-admin\/admin-ajax.php<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">content_type<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">application\/x-www-form-urlencoded<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">request_parameters<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">action<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">constant_value<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">fluentform_submit<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">form_id<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">constant_value<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">1<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">data<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">          <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">description<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">URL-encoded query string of form fields<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">          <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">fields<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">names&#91;first_name&#93;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">type<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">string<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">names&#91;last_name&#93;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">type<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">string<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">email<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">type<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">string<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">required<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">checkbox[]<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">type<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">array of string<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">allowed_values<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AI Chat Bots<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AI Voice Agents<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AI Workflow<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AI Consultancy<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AI Training<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">message<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">type<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">string<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #8FBCBB\">required<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">          <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\"><br>Field names must match the exact `name` attributes in your rendered form HTML. Confirm by viewing source on the live contact page \u2014 if you rename a field and forget to update the card, submissions silently fail.<br><br>If the `.well-known` folder doesn't exist, create it. cPanel File Manager may hide it \u2014 enable \"Show Hidden Files\" in Settings.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-base-color has-custom-color-1-background-color has-text-color has-background has-link-color wp-elements-4ad76e07a832fa593f16d7823e5547f2 wp-block-paragraph\">Step 5: JSON-LD (the part that pays off today)<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">`llms.txt` and `agent-card.json` are bets on the future. **JSON-LD is consumed right now** by Google AI Overviews, Perplexity, ChatGPT browse mode, and the whole structured-data ecosystem.\n\nIf you do only one thing from this post, do this.\n\nPaste into your homepage `&lt;head&gt;` via Code Snippets (HTML snippet, Site Wide Header):<\/pre>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>&lt;script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [{\n    \"@type\": \"Organization\",\n    \"@id\": \"https:\/\/moyahost.ai\/#organization\",\n    \"name\": \"MoyaHost\",\n    \"legalName\": \"MoyaHost B.V.\",\n    \"url\": \"https:\/\/moyahost.ai\",\n    \"email\": \"info@moyahost.ai\",\n    \"areaServed\": &#91;\n      { \"@type\": \"Country\", \"name\": \"Netherlands\" },\n      { \"@type\": \"Place\", \"name\": \"European Union\" }\n    &#93;,\n    \"knowsAbout\": &#91;\n      \"AI chatbots\", \"Voice AI agents\", \"AI workflow automation\",\n      \"AI consultancy\", \"AI training\"\n    &#93;,\n    \"contactPoint\": {\n      \"@type\": \"ContactPoint\",\n      \"contactType\": \"sales\",\n      \"email\": \"info@moyahost.ai\",\n      \"url\": \"https:\/\/moyahost.ai\/contact-us\/\",\n      \"availableLanguage\": &#91;\"English\", \"Dutch\"&#93;\n    }\n  }]\n}\n&lt;\/script>\n\n&lt;link rel=\"alternate\" type=\"text\/plain\"\n      href=\"https:\/\/moyahost.ai\/llms.txt\" title=\"LLM site index\" \/><\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">&lt;script<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">type<\/span><span style=\"color: #ECEFF4\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">application\/ld+json<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  &quot;@context&quot;: &quot;https:\/\/schema.org&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  &quot;@graph&quot;: [{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &quot;@type&quot;: &quot;Organization&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &quot;@id&quot;: &quot;https:\/\/moyahost.ai\/#organization&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &quot;name&quot;: &quot;MoyaHost&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &quot;legalName&quot;: &quot;MoyaHost B.V.&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &quot;url&quot;: &quot;https:\/\/moyahost.ai&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &quot;email&quot;: &quot;info@moyahost.ai&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &quot;areaServed&quot;: &#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      { &quot;@type&quot;: &quot;Country&quot;, &quot;name&quot;: &quot;Netherlands&quot; },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      { &quot;@type&quot;: &quot;Place&quot;, &quot;name&quot;: &quot;European Union&quot; }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &quot;knowsAbout&quot;: &#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      &quot;AI chatbots&quot;, &quot;Voice AI agents&quot;, &quot;AI workflow automation&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      &quot;AI consultancy&quot;, &quot;AI training&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &quot;contactPoint&quot;: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      &quot;@type&quot;: &quot;ContactPoint&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      &quot;contactType&quot;: &quot;sales&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      &quot;email&quot;: &quot;info@moyahost.ai&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      &quot;url&quot;: &quot;https:\/\/moyahost.ai\/contact-us\/&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      &quot;availableLanguage&quot;: &#91;&quot;English&quot;, &quot;Dutch&quot;&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  }]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;\/script&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;link<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">rel<\/span><span style=\"color: #ECEFF4\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">alternate<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">type<\/span><span style=\"color: #ECEFF4\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">text\/plain<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">href<\/span><span style=\"color: #ECEFF4\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/moyahost.ai\/llms.txt<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">title<\/span><span style=\"color: #ECEFF4\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">LLM site index<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\"><br>Validate at `https:\/\/search.google.com\/test\/rich-results`. `Organization` should parse with zero errors.<br><br>The `&lt;link rel=\"alternate\"&gt;` tag is the official llms.txt discovery mechanism \u2014 tells agents reading your homepage where to find your LLM index.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-base-color has-custom-color-1-background-color has-text-color has-background has-link-color wp-elements-06f749c2d080c74de051fcdbb12441b3 wp-block-paragraph\">Step 6: Test end-to-end<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">The step most people skip and the most important one. A deployed setup you haven't tested is worse than useless.\n\nFrom PowerShell (using `Invoke-RestMethod` to avoid TLS quirks with Windows curl):<\/pre>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Invoke-RestMethod `\n  -Uri \"https:\/\/moyahost.ai\/wp-admin\/admin-ajax.php\" `\n  -Method Post `\n  -Body @{\n    action = \"fluentform_submit\"\n    form_id = \"1\"\n    data = \"names%5Bfirst_name%5D=Aria&amp;names%5Blast_name%5D=TestAgent&amp;email=YOUR-EMAIL%40gmail.com&amp;checkbox%5B%5D=AI+Chat+Bots&amp;checkbox%5B%5D=AI+Workflow&amp;message=Agent+test+submission\"\n  }<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">Invoke-RestMethod<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">Uri <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/moyahost.ai\/wp-admin\/admin-ajax.php<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">Method Post <\/span><span style=\"color: #81A1C1\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">Body <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">action<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">fluentform_submit<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">form_id<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">1<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">names%5Bfirst_name%5D=Aria&amp;names%5Blast_name%5D=TestAgent&amp;email=YOUR-EMAIL%40gmail.com&amp;checkbox%5B%5D=AI+Chat+Bots&amp;checkbox%5B%5D=AI+Workflow&amp;message=Agent+test+submission<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">Successful response:<\/pre>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>success data\n------- ----\n   True @{insert_id=3; result=; error=}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">success <\/span><span style=\"color: #81A1C1\">data<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">-------<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">----<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">   True <\/span><span style=\"color: #81A1C1\">@<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9\">insert_id<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">result<\/span><span style=\"color: #81A1C1\">=;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">error<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\"><br>Verify three things:<br><br>1. Email arrives with all fields populated correctly (including multi-select checkboxes).<br>2. Reply-To works \u2014 hitting Reply in your mail client puts the submitter's email in To:, not yours.<br>3. The entry appears in Fluent Forms \u2192 Entries with all checkboxes ticked.<br><br>If any of those fail, you have a silent bug to hunt.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Lessons worth writing down<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">- Test the documented endpoint before deploying the card. If your own simulated-agent test can't submit, neither can a real agent.\n- Nonces, rate limiting, and reCAPTCHA are the real blockers. Use honeypot-based anti-spam instead \u2014 reCAPTCHA blocks agents too.\n- Name your tools publicly. Hiding your plugin stack doesn't make you more secure (view-source reveals it in 10 seconds) but does make your docs useless.\n- Review quarterly. A stale card is worse than no card. If you change the form, update the card.\n- `.well-known\/` can need server config. On Apache check `.htaccess`; on nginx you may need an explicit `location ^~ \/.well-known\/` block.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Realistic expectations<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">As of April 2026, no major AI product auto-discovers `agent-card.json`. What you've built pays off when:\n\n- A user points an agent at your URL explicitly\n- A developer builds an agent against your public docs\n- Future mainstream agents add auto-discovery (the incentive is enormous \u2014 they will)\n- Your JSON-LD gets picked up by Google AI Overviews and Perplexity *today*\n\nIn 2015, mobile-responsive was optional. By 2018, not having it was disqualifying. Web-standard transitions from \"nice to have\" to \"table stakes\" are fast. Better to build this now than scramble in 2027.<\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Need help?<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-preformatted has-extra-small-font-size\">We build this infrastructure for clients \u2014 not just the files, but the thinking about how your business should be represented to AI.\n\nIf you're an small\/medium business wanting to be findable by AI agents, an agency looking for a technical partner, or curious about chatbots, voice agents, or workflow automation: [moyahost.ai\/contact-us\/](https:\/\/moyahost.ai\/contact-us\/) or [info@moyahost.ai](mailto:info@moyahost.ai). Human replies within one business day.\n\nIf your agent submits our form, we'll know it was you.<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>A practical guide for agencies and developers. We&#8217;ll set up four things: llms.txt, an agent-card.json, JSON-LD schema, and a contact form an AI agent can&hellip;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/moyahost.ai\/nl\/wp-json\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moyahost.ai\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moyahost.ai\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moyahost.ai\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/moyahost.ai\/nl\/wp-json\/wp\/v2\/comments?post=2"}],"version-history":[{"count":1,"href":"https:\/\/moyahost.ai\/nl\/wp-json\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":207,"href":"https:\/\/moyahost.ai\/nl\/wp-json\/wp\/v2\/pages\/2\/revisions\/207"}],"wp:attachment":[{"href":"https:\/\/moyahost.ai\/nl\/wp-json\/wp\/v2\/media?parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}