← Files SEO AuditARCHIVED FILE
plugin.json
10.2 KB · Nov 7, 2026 · 00:09 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "seo-audit",
"version": "1.7.0",
"description": "Find what to fix on a public website, for search engines and for AI answers.",
"author": {
"name": "Agent Tools",
"email": "support@openkrill.app",
"url": "https://tools.openkrill.app/"
},
"homepage": "https://tools.openkrill.app/",
"extensions": {
"com.openai": {
"interface": {
"displayName": "SEO Audit",
"shortDescription": "SEO audit, AI citation checks",
"longDescription": "Find what to fix on a public website, for search engines and for AI answers.\n\n- audit_site: SEO audit of up to 25 pages, failed rules by priority with the fix and source, a row per page with broken internal links and images without alt, plus AI-search steps for the site owner.\n- audit_page: the same page rules for one address.\n- local_ai_readiness: whether a local business site is ready to be named in AI search.\n- score_page_citation: a 0 to 100 citation score for one page, with fixes by biggest gain.\n- compare_citations: what the pages an AI answer cited share that your page lacks.\n- find_ai_questions: long searches to answer, from a pasted Search Console export.\n- check_ai_instructions: checks a site's llms.txt, llms-full.txt and AI page.\n- generate_ai_instructions: drafts an llms.txt for the owner to review.\n- audit_ai_search: grades a site on 12 on-site checks AI answer engines rely on, pass, partial or fail, with the 3 biggest fixes.\n\nIt reads only the public sites you name, respects robots.txt and refuses private addresses. It does not run JavaScript, query search or AI engines, fetch directories, or measure rankings, traffic or backlinks. Scores and checks do not promise a citation or an effect on AI search answers.\n\nNothing about you or the site is stored. Answers are cached for ten minutes. The optional judgement step, off by default, sends page text to a language model service. It and local checks are limited per day.",
"developerName": "Agent Tools",
"category": "Developer Tools",
"capabilities": [
"Audits up to 25 pages of a site from its homepage and sitemap, with robots.txt respected",
"Returns failed rules grouped by priority with the affected pages, the fix and the documentation link",
"Checks titles, descriptions, headings, canonicals, noindex, structured data, share tags and image alt text",
"Finds broken links, redirect chains, sitemap problems, thin and duplicate content",
"Checks local business markup: name, address, phone, hours, map, and that the details match the page",
"Compares pages: near-identical templated pages, little own text, hreflang returns, sitemap pages nothing links to",
"Adds AI-search steps to a site audit: search engine webmaster reports, IndexNow, content, with sources",
"Audits one page with the full page rule set",
"Optional judgement of page purpose and competing pages, limited per day",
"Checks local AI-search readiness: services, locations, prices, FAQ, schema, NAP, proof",
"Checks llms.txt, llms-full.txt, an AI page, home links, and name, product and fact consistency",
"Drafts an llms.txt from the site's own public pages for the owner to review",
"Grades 12 AI-search checks from a site's own pages, each pass, partial, fail or unknown, with the top 3 fixes",
"Scores one page from 0 to 100 for citation chance, with fixes by biggest gain",
"Compares pages an AI answer cited with yours: opening answer, headings, table, list, date, links out, schema",
"Ranks 7+ word searches in a pasted Search Console export, with page, question heading and answer skeleton"
],
"websiteURL": "https://tools.openkrill.app/",
"privacyPolicyURL": "https://tools.openkrill.app/privacy",
"termsOfServiceURL": "https://tools.openkrill.app/terms",
"supportURL": "https://tools.openkrill.app/support",
"defaultPrompt": [
"Audit example.com for SEO problems",
"Is https://example.com/pricing likely to be cited in AI answers? What should I fix?",
"Run an AI search audit of example.com."
],
"brandColor": "#047857",
"brandColorDark": "#2E9E78",
"composerIcon": "./assets/icon.svg",
"logo": "./assets/icon.svg"
},
"review": {
"demo_recording_url": "https://tools.openkrill.app/demos/seo-audit.mp4",
"test_cases": {
"positive": [
{
"description": "Failed rules grouped into high, medium and low, each with the affected pages, the fix and the documentation link, the number of pages read, and any notes such as a missing sitemap. Check against: https://example.com/, its robots.txt, its sitemap and the pages they link to",
"prompt": "Audit example.com for SEO problems.",
"tools_triggered": "audit_site",
"expected_behavior": "Calls audit_site with domain \"example.com\" and leaves judge off."
},
{
"description": "Pass, warn or fail for each check (service pages, location pages, prices, FAQ, LocalBusiness schema, NAP, proof, one-line description, recent content), each with an evidence URL and a fix, plus the Yext study note and profile advice marked as not fetched. Check against: https://example.com/ and the public pages it links to",
"prompt": "Is example.com ready to be named in AI search? It is a local plumbing business.",
"tools_triggered": "local_ai_readiness",
"expected_behavior": "Calls local_ai_readiness with url \"example.com\" and does not query an AI engine or a directory."
},
{
"description": "The gaps first, each with how many cited pages have the signal, the value on the user's page and a fix, then every signal, any cited page that could not be read, and a note that a shared signal is a pattern in a small sample and not a promise of a citation. Check against: The cited pages, the user's page and their robots.txt files",
"prompt": "Google's AI Overview for \"best form builder\" cites https://a.example.com/best and https://b.example.com/guide. How does https://mine.example.com/forms compare?",
"tools_triggered": "compare_citations",
"expected_behavior": "Calls compare_citations with query \"best form builder\", the two cited addresses and url \"https://mine.example.com/forms\", and does not query Google or an AI engine."
},
{
"description": "A score from 0 to 100, ten checks with points earned, and a fix list ordered by the biggest point gain, plus a note that the score is not a promise of a citation. Check against: The pasted pricing page in the prompt: no answer in the opening, no headings, no list, no FAQ and no JSON-LD.",
"prompt": "Will this page be cited, and how do I fix it? Here is the HTML:\n\n<!doctype html><html lang=\"en\"><head><title>Pricing</title></head><body><div class=\"hero\"><img src=\"/hero.png\"><p>Plans for every team.</p></div><div>Starter is 9 dollars a month. Pro is 29 dollars a month. Cancel any time.</div></body></html>",
"tools_triggered": "score_page_citation",
"expected_behavior": "Calls score_page_citation with the pasted html and does not query an AI engine."
},
{
"description": "A score out of 12, the 3 biggest fixes, and 12 rows (pass, partial, fail or unknown), each with evidence, an evidence URL and a fix, plus the cited checklist, the date the pages were read, and a note that no citation is promised. Check against: https://example.com/, its robots.txt, /llms.txt and up to 9 public pages linked from the homepage",
"prompt": "Will ChatGPT recommend example.com? Audit it for AI search.",
"tools_triggered": "audit_ai_search",
"expected_behavior": "Calls audit_ai_search with domain \"example.com\" and does not query an AI engine."
}
],
"negative": [
{
"description": "compare_citations reads only the pages the caller names. It never queries Google or an AI engine, so it cannot find the cited pages itself. Expected: Does not call a tool; says it does not read Google or AI answers, and asks the user for the cited addresses to compare.",
"prompt": "Look up what Google's AI Overview cites for \"best form builder\" and compare it with my page."
},
{
"description": "Local and private addresses are refused by design. Expected: Does not call a tool; says only public websites can be checked.",
"prompt": "Audit http://localhost:3000, draft an llms.txt for it, and check http://192.168.1.10."
},
{
"description": "generate_ai_instructions returns text only. The plugin does not write to the site and does not query AI engines. Expected: Does not publish anything and does not promise an effect. Says the draft is for the owner to review, and the cited post is not a guarantee.",
"prompt": "Publish the drafted llms.txt to example.com and guarantee it will change our branded AI Overviews."
}
]
}
},
"publication": {
"release_notes": "This version stops repeating the names of people found on a page: the author and quote checks now say only whether a named author or named quote is there, and how many. It also adds audit_ai_search, 12 on-site checks of whether AI answers can read and quote a site, each pass, partial, fail or unknown with the evidence URL and a fix; compare_citations, what the pages an AI answer cited share that your page lacks; find_ai_questions, long searches to answer from a pasted Search Console export; score_page_citation, a 0 to 100 rule score for one page; check_ai_instructions and generate_ai_instructions for a site's llms.txt; and local_ai_readiness for a local business site. All of them read only the public pages you name, with robots.txt respected, call no search or AI engine, store nothing and do not promise a citation."
},
"apps": "./.app.json"
}
}
}
SHA-256: 753d793680301ac868575a2e37b24435d9028fbce4c953f0c4d1ba80b5014f62