已分析URL
https://omniasec.ai/
测量于3周前
AI-Ready评分
一般
/ 100
Token节省量
评分详情
新兴协议
已检测到 0/6AI代理查找的well-known端点。检测到意味着代理可以自动发现并连接到您的服务。
-
OAuth Protected Resource RFC 9728
/.well-known/oauth-protected-resource -
OAuth Discovery RFC 8414
/.well-known/oauth-authorization-server -
MCP Server Card SEP-1649 draft
/.well-known/mcp/server-card.json -
A2A Agent Card A2A v1.0
/.well-known/agent-card.json -
API Catalog RFC 9727
/.well-known/api-catalog -
Agent Skills index Discovery RFC v0.2.0 draft
/.well-known/agent-skills/index.json
分数不会自己保持不变。 监控功能尚未上线——加入名单,上线时通知你。
您已加入名单!服务上线时我们会通知您。
我们测到的 No JSON-LD / Schema.org found
未找到Schema.org结构化数据。JSON-LD帮助AI代理从页面中提取基于事实的结构化信息。
如何实施
添加包含Schema.org标记的<script type="application/ld+json">块。使用适当的类型:博客文章用Article,产品页面用Product,公司页面用Organization。
我们测到的 No Markdown for Agents support detected
您的网站不支持Markdown for Agents。此Cloudflare标准允许AI代理以markdown格式请求内容,减少约80%的令牌使用。
如何实施
实现以下一项或多项:(1) 使用markdown内容响应Accept: text/markdown。(2) 提供.md URL(例如/page.md)。(3) 添加<link rel="alternate" type="text/markdown">标签。(4) 添加Link HTTP标头用于markdown发现。
我们测到的 No sitemap found
未找到站点地图。站点地图帮助AI代理发现网站上的所有页面。
如何实施
创建列出所有公开页面的/sitemap.xml。大多数CMS平台可以自动生成。
我们测到的 No canonical URL
未找到规范URL。它帮助AI代理识别页面的首选版本并避免重复内容。
如何实施
添加指向页面规范URL的<link rel="canonical" href="...">标签。
我们测到的 No llms.txt found
您的网站没有llms.txt文件。这是帮助AI代理理解网站结构的新兴标准。
如何实施
按照llmstxt.org规范创建/llms.txt文件。包含网站描述和关键页面的链接。
我们测到的 No Content-Signal found (robots.txt or HTTP headers)
未找到Content-Signal指令。这些指令告知AI代理如何使用您的内容(搜索索引、AI输入、训练数据)。推荐位置是robots.txt。
如何实施
将Content-Signal添加到您的robots.txt:User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no。也可以作为markdown响应的HTTP标头添加。
我们测到的 Content ratio: 5.9% (2138 content chars / 35943 HTML bytes)
您的页面实际内容与总HTML的比率较低。页面重量的大部分是标记、脚本或样式而非内容。
如何实施
将CSS移至外部样式表,删除内联样式,最小化JavaScript,确保HTML专注于内容结构。
我们测到的 12 semantic elements, 85 divs (ratio: 12%)
您的页面大量依赖<div>元素。<section>、<nav>、<header>、<footer>和<aside>等语义元素为AI代理提供有意义的结构。
如何实施
将通用<div>容器替换为适当的语义元素。对主题分组使用<section>,导航使用<nav>,页面/区块的头部和底部使用<header>/<footer>。
我们测到的 2/3 OG tags present
Open Graph标签缺失或不完整。OG标签帮助AI代理(和社交平台)理解页面的标题、描述和图片。
如何实施
在页面<head>中添加og:title、og:description和og:image meta标签。
我们测到的 4/275 elements with inline styles (1.5%)
许多元素具有内联样式属性。这些会为提取内容的AI代理增加噪声。
如何实施
将所有内联样式移至样式表中的CSS类。如需大量独特样式,使用Tailwind等实用CSS框架。
## The AI Security *Command Center.* Orchestrate your security stack, analyze threats with AI, and stop attacks from one interface. [Try Omnia →](https://app.omniasec.ai/login) or install the CLI `curl -fsSL https://omniasec.ai/cli-install | bash` Our network ## Trusted Partners Capabilities ## Built for modern security teams ### Chat Ask Omnia to deobfuscate code, generate cybersecurity reports, look up hashes, or investigate threats — all through a single conversational interface. ### Custom Agents Create personalized AI agents with custom instructions tailored to your security needs. Define how Omnia thinks, responds, and acts for your specific use cases. ### Templates & Prompts Build reusable prompt templates for recurring tasks like incident triage, threat analysis, or compliance checks. Work faster without starting from scratch. ### Knowledge Upload your documents, reports, and intel feeds to create a private knowledge base. Omnia retrieves relevant context automatically when you need it. ### MCPs Connect your own Model Context Protocol servers to extend Omnia with custom tools, data sources, and integrations — no redeployment needed. ### Community Share and discover agents, prompts, workflows, templates, and knowledge bases created by other security professionals. Scale your operations with collective intelligence. Chat ## Your AI security analyst, one message away Deobfuscate code, generate threat reports, investigate hashes, and run security tasks — all through a conversational interface powered by Omnia's AI agents.  File Analysis ## Upload any file, uncover hidden threats Submit files for deep inspection powered by AI engines. Omnia decompiles binaries, disassembles code, and detects obfuscated malware and zero-day patterns that traditional scanners miss.  Market Intelligence ## Monitor every marketplace, spot risks early Search and audit packages across VS Code, npm, PyPI, and more. Instantly surface malicious extensions, typosquatting attempts, and compromised dependencies before they reach your stack.  Workflows ## Automate your security playbooks Build automated workflows that chain Omnia's AI agents to handle your cybersecurity tasks — from triage to response — without writing a single line of code. 
Home | Omnia [](https://omniasec.ai/) [Try Omnia](https://app.omniasec.ai/login) # The AI Security *Command Center.* Orchestrate your security stack, analyze threats with AI, and stop attacks from one interface. [Try Omnia →](https://app.omniasec.ai/login) or install the CLI `curl -fsSL https://omniasec.ai/cli-install | bash` Our network ## Trusted Partners                                 Capabilities ## Built for modern security teams ### Chat Ask Omnia to deobfuscate code, generate cybersecurity reports, look up hashes, or investigate threats — all through a single conversational interface. ### Custom Agents Create personalized AI agents with custom instructions tailored to your security needs. Define how Omnia thinks, responds, and acts for your specific use cases. ### Templates & Prompts Build reusable prompt templates for recurring tasks like incident triage, threat analysis, or compliance checks. Work faster without starting from scratch. ### Knowledge Upload your documents, reports, and intel feeds to create a private knowledge base. Omnia retrieves relevant context automatically when you need it. ### MCPs Connect your own Model Context Protocol servers to extend Omnia with custom tools, data sources, and integrations — no redeployment needed. ### Community Share and discover agents, prompts, workflows, templates, and knowledge bases created by other security professionals. Scale your operations with collective intelligence. Chat ## Your AI security analyst, one message away Deobfuscate code, generate threat reports, investigate hashes, and run security tasks — all through a conversational interface powered by Omnia's AI agents.  File Analysis ## Upload any file, uncover hidden threats Submit files for deep inspection powered by AI engines. Omnia decompiles binaries, disassembles code, and detects obfuscated malware and zero-day patterns that traditional scanners miss.  Market Intelligence ## Monitor every marketplace, spot risks early Search and audit packages across VS Code, npm, PyPI, and more. Instantly surface malicious extensions, typosquatting attempts, and compromised dependencies before they reach your stack.  Workflows ## Automate your security playbooks Build automated workflows that chain Omnia's AI agents to handle your cybersecurity tasks — from triage to response — without writing a single line of code.  Zero-day reads [View all →](https://omniasec.ai/blog/) [### Welcome to Omnia: Redefining Malware Analysis in the Age of AIMar 16, 2026](https://omniasec.ai/blog/welcome-to-omnia/) \> | ## Ready to see what Omnia can do? Join the community redefining how we fight cyber threats. [Try Omnia →](https://app.omniasec.ai/login)
将此文件上传到服务器的/index.md,以便AI代理可以访问页面的干净版本。您也可以配置Accept: text/markdown内容协商以自动提供。
为此单页生成的llms.txt
# omniasec.ai > Omnia ## Documentation - [Docs](https://omniasec.ai/docs/) ## Main - [Home | Omnia](https://omniasec.ai/): Omnia - [About](https://omniasec.ai/about/) - [Docs](https://omniasec.ai/docs/) - [Bug Bounty](https://omniasec.ai/bug-bounty/) ## Blog - [Blog](https://omniasec.ai/blog/) ## Legal - [Privacy Policy](https://omniasec.ai/privacy-policy/)
完整llms.txt需要全域分析(即将推出)
将此文件上传到域名根目录的https://omniasec.ai/llms.txt。ChatGPT、Claude和Perplexity等AI代理会检查此文件以了解您的网站结构。
可访问性
Content available without JavaScript
Main content starts at 22% of HTML
Page size: 35KB
AI可发现性
All major AI search bots allowed
No sitemap found
robots.txt exists
No llms.txt found
结构化数据
No JSON-LD / Schema.org found
2/3 OG tags present
Meta description too short: 5 chars
No canonical URL
lang="en"
语义化HTML
Clean heading hierarchy
Has <main>
12 semantic elements, 85 divs (ratio: 12%)
36/36 images with meaningful alt text
Avg div depth: 2.0, max: 3
内容效率
96% token reduction (HTML→Markdown)
Content ratio: 5.9% (2138 content chars / 35943 HTML bytes)
HTML size: 35KB
4/275 elements with inline styles (1.5%)
{
"url": "https://omniasec.ai/",
"timestamp": 1788288938884,
"fetch": {
"mode": "simple",
"timeMs": 17,
"htmlSizeBytes": 35943,
"supportsMarkdown": false,
"markdownAgents": {
"contentNegotiation": false,
"mdUrl": {
"found": false,
"url": null
},
"linkTag": {
"found": false,
"url": null
},
"linkHeader": {
"found": false,
"url": null
},
"responseHeaders": {
"contentSignal": null,
"xMarkdownTokens": null,
"vary": null
},
"frontmatter": {
"present": false,
"fields": [],
"level": "none"
},
"level": "none"
},
"statusCode": 200
},
"extraction": {
"title": "Home | Omnia",
"excerpt": "Omnia",
"byline": null,
"siteName": null,
"lang": "en",
"contentLength": 2138,
"metadata": {
"description": "Omnia",
"ogTitle": "Home | Omnia",
"ogDescription": "Omnia",
"ogImage": null,
"ogType": "website",
"canonical": null,
"lang": "en",
"schemas": [],
"robotsMeta": null,
"author": null,
"generator": "Astro v5.17.3",
"markdownAlternateHref": null
}
},
"markdown": "## The AI Security *Command Center.*\n\nOrchestrate your security stack, analyze threats with AI, and stop attacks from one interface.\n\n[Try Omnia →](https://app.omniasec.ai/login)\n\nor install the CLI\n\n`curl -fsSL https://omniasec.ai/cli-install | bash`\n\nOur network\n\n## Trusted Partners\n\nCapabilities\n\n## Built for modern security teams\n\n### Chat\n\nAsk Omnia to deobfuscate code, generate cybersecurity reports, look up hashes, or investigate threats — all through a single conversational interface.\n\n### Custom Agents\n\nCreate personalized AI agents with custom instructions tailored to your security needs. Define how Omnia thinks, responds, and acts for your specific use cases.\n\n### Templates & Prompts\n\nBuild reusable prompt templates for recurring tasks like incident triage, threat analysis, or compliance checks. Work faster without starting from scratch.\n\n### Knowledge\n\nUpload your documents, reports, and intel feeds to create a private knowledge base. Omnia retrieves relevant context automatically when you need it.\n\n### MCPs\n\nConnect your own Model Context Protocol servers to extend Omnia with custom tools, data sources, and integrations — no redeployment needed.\n\n### Community\n\nShare and discover agents, prompts, workflows, templates, and knowledge bases created by other security professionals. Scale your operations with collective intelligence.\n\nChat\n\n## Your AI security analyst, one message away\n\nDeobfuscate code, generate threat reports, investigate hashes, and run security tasks — all through a conversational interface powered by Omnia's AI agents.\n\n\n\nFile Analysis\n\n## Upload any file, uncover hidden threats\n\nSubmit files for deep inspection powered by AI engines. Omnia decompiles binaries, disassembles code, and detects obfuscated malware and zero-day patterns that traditional scanners miss.\n\n\n\nMarket Intelligence\n\n## Monitor every marketplace, spot risks early\n\nSearch and audit packages across VS Code, npm, PyPI, and more. Instantly surface malicious extensions, typosquatting attempts, and compromised dependencies before they reach your stack.\n\n\n\nWorkflows\n\n## Automate your security playbooks\n\nBuild automated workflows that chain Omnia's AI agents to handle your cybersecurity tasks — from triage to response — without writing a single line of code.\n\n\n",
"fullPageMarkdown": "Home | Omnia\n\n[](https://omniasec.ai/)\n\n[Try Omnia](https://app.omniasec.ai/login)\n\n# The AI Security *Command Center.*\n\nOrchestrate your security stack, analyze threats with AI, and stop attacks from one interface.\n\n[Try Omnia →](https://app.omniasec.ai/login)\n\nor install the CLI\n\n`curl -fsSL https://omniasec.ai/cli-install | bash`\n\nOur network\n\n## Trusted Partners\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCapabilities\n\n## Built for modern security teams\n\n### Chat\n\nAsk Omnia to deobfuscate code, generate cybersecurity reports, look up hashes, or investigate threats — all through a single conversational interface.\n\n### Custom Agents\n\nCreate personalized AI agents with custom instructions tailored to your security needs. Define how Omnia thinks, responds, and acts for your specific use cases.\n\n### Templates & Prompts\n\nBuild reusable prompt templates for recurring tasks like incident triage, threat analysis, or compliance checks. Work faster without starting from scratch.\n\n### Knowledge\n\nUpload your documents, reports, and intel feeds to create a private knowledge base. Omnia retrieves relevant context automatically when you need it.\n\n### MCPs\n\nConnect your own Model Context Protocol servers to extend Omnia with custom tools, data sources, and integrations — no redeployment needed.\n\n### Community\n\nShare and discover agents, prompts, workflows, templates, and knowledge bases created by other security professionals. Scale your operations with collective intelligence.\n\nChat\n\n## Your AI security analyst, one message away\n\nDeobfuscate code, generate threat reports, investigate hashes, and run security tasks — all through a conversational interface powered by Omnia's AI agents.\n\n\n\nFile Analysis\n\n## Upload any file, uncover hidden threats\n\nSubmit files for deep inspection powered by AI engines. Omnia decompiles binaries, disassembles code, and detects obfuscated malware and zero-day patterns that traditional scanners miss.\n\n\n\nMarket Intelligence\n\n## Monitor every marketplace, spot risks early\n\nSearch and audit packages across VS Code, npm, PyPI, and more. Instantly surface malicious extensions, typosquatting attempts, and compromised dependencies before they reach your stack.\n\n\n\nWorkflows\n\n## Automate your security playbooks\n\nBuild automated workflows that chain Omnia's AI agents to handle your cybersecurity tasks — from triage to response — without writing a single line of code.\n\n\n\nZero-day reads\n\n[View all →](https://omniasec.ai/blog/)\n\n[### Welcome to Omnia: Redefining Malware Analysis in the Age of AIMar 16, 2026](https://omniasec.ai/blog/welcome-to-omnia/)\n\n\\> |\n\n## Ready to see what\nOmnia can do?\n\nJoin the community redefining how we fight cyber threats.\n\n[Try Omnia →](https://app.omniasec.ai/login)\n",
"markdownStats": {
"images": 4,
"links": 1,
"tables": 0,
"codeBlocks": 0,
"headings": 13
},
"tokens": {
"htmlTokens": 13402,
"markdownTokens": 582,
"reduction": 12820,
"reductionPercent": 96
},
"score": {
"score": 67,
"grade": "C",
"rubricVersion": 3,
"dimensions": {
"accessibility": {
"score": 94,
"weight": 30,
"grade": "A",
"checks": {
"content_without_js": {
"score": 100,
"weight": 55,
"evidence": "proven",
"details": "Content available without JavaScript"
},
"fast_content_position": {
"score": 75,
"weight": 25,
"evidence": "plausible",
"details": "Main content starts at 22% of HTML"
},
"reasonable_page_size": {
"score": 100,
"weight": 20,
"evidence": "plausible",
"details": "Page size: 35KB"
}
}
},
"aiDiscoverability": {
"score": 45,
"weight": 25,
"grade": "D",
"checks": {
"robots_allows_ai_bots": {
"score": 100,
"weight": 35,
"evidence": "proven",
"details": "All major AI search bots allowed"
},
"supports_markdown_negotiation": {
"score": 0,
"weight": 20,
"evidence": "plausible",
"details": "No Markdown for Agents support detected"
},
"has_sitemap": {
"score": 0,
"weight": 15,
"evidence": "plausible",
"details": "No sitemap found"
},
"has_robots_txt": {
"score": 100,
"weight": 10,
"evidence": "plausible",
"details": "robots.txt exists"
},
"has_llms_txt": {
"score": 0,
"weight": 10,
"evidence": "speculative",
"details": "No llms.txt found"
},
"has_content_signals": {
"score": 0,
"weight": 10,
"evidence": "speculative",
"details": "No Content-Signal found (robots.txt or HTTP headers)",
"mechanisms": {
"robotsTxt": false,
"httpHeader": false,
"policy": false
}
}
}
},
"structuredData": {
"score": 33,
"weight": 20,
"grade": "F",
"checks": {
"has_schema_org": {
"score": 0,
"weight": 35,
"evidence": "proven",
"details": "No JSON-LD / Schema.org found"
},
"has_open_graph": {
"score": 67,
"weight": 20,
"evidence": "plausible",
"details": "2/3 OG tags present"
},
"has_meta_description": {
"score": 50,
"weight": 20,
"evidence": "plausible",
"details": "Meta description too short: 5 chars"
},
"has_canonical_url": {
"score": 0,
"weight": 15,
"evidence": "plausible",
"details": "No canonical URL"
},
"has_lang_attribute": {
"score": 100,
"weight": 10,
"evidence": "plausible",
"details": "lang=\"en\""
}
}
},
"semanticHtml": {
"score": 88,
"weight": 15,
"grade": "B",
"checks": {
"proper_heading_hierarchy": {
"score": 100,
"weight": 30,
"evidence": "plausible",
"details": "Clean heading hierarchy"
},
"uses_article_or_main": {
"score": 100,
"weight": 25,
"evidence": "plausible",
"details": "Has <main>"
},
"semantic_elements": {
"score": 41,
"weight": 20,
"evidence": "plausible",
"details": "12 semantic elements, 85 divs (ratio: 12%)"
},
"meaningful_alt_texts": {
"score": 100,
"weight": 15,
"evidence": "plausible",
"details": "36/36 images with meaningful alt text"
},
"low_div_nesting": {
"score": 100,
"weight": 10,
"evidence": "speculative",
"details": "Avg div depth: 2.0, max: 3"
}
}
},
"contentEfficiency": {
"score": 73,
"weight": 10,
"grade": "C",
"checks": {
"token_reduction_ratio": {
"score": 100,
"weight": 40,
"evidence": "speculative",
"details": "96% token reduction (HTML→Markdown)"
},
"content_to_noise_ratio": {
"score": 25,
"weight": 30,
"evidence": "speculative",
"details": "Content ratio: 5.9% (2138 content chars / 35943 HTML bytes)"
},
"reasonable_page_weight": {
"score": 100,
"weight": 20,
"evidence": "speculative",
"details": "HTML size: 35KB"
},
"minimal_inline_styles": {
"score": 50,
"weight": 10,
"evidence": "speculative",
"details": "4/275 elements with inline styles (1.5%)"
}
}
}
}
},
"recommendations": [
{
"id": "add_schema_org",
"priority": "critical",
"category": "structuredData",
"titleKey": "rec.add_schema_org.title",
"descriptionKey": "rec.add_schema_org.description",
"howToKey": "rec.add_schema_org.howto",
"howToStepKeys": null,
"effort": "moderate",
"estimatedImpact": 7,
"maxImpact": 7,
"evidence": "proven",
"checkScore": 0,
"checkDetails": "No JSON-LD / Schema.org found"
},
{
"id": "add_markdown_negotiation",
"priority": "critical",
"category": "aiDiscoverability",
"titleKey": "rec.add_markdown_negotiation.title",
"descriptionKey": "rec.add_markdown_negotiation.description",
"howToKey": "rec.add_markdown_negotiation.howto",
"howToStepKeys": null,
"effort": "significant",
"estimatedImpact": 5,
"maxImpact": 5,
"evidence": "plausible",
"checkScore": 0,
"checkDetails": "No Markdown for Agents support detected"
},
{
"id": "add_sitemap",
"priority": "high",
"category": "aiDiscoverability",
"titleKey": "rec.add_sitemap.title",
"descriptionKey": "rec.add_sitemap.description",
"howToKey": "rec.add_sitemap.howto",
"howToStepKeys": null,
"effort": "quick-win",
"estimatedImpact": 3.8,
"maxImpact": 3.8,
"evidence": "plausible",
"checkScore": 0,
"checkDetails": "No sitemap found"
},
{
"id": "add_canonical_url",
"priority": "high",
"category": "structuredData",
"titleKey": "rec.add_canonical_url.title",
"descriptionKey": "rec.add_canonical_url.description",
"howToKey": "rec.add_canonical_url.howto",
"howToStepKeys": null,
"effort": "quick-win",
"estimatedImpact": 3,
"maxImpact": 3,
"evidence": "plausible",
"checkScore": 0,
"checkDetails": "No canonical URL"
},
{
"id": "add_llms_txt",
"priority": "high",
"category": "aiDiscoverability",
"titleKey": "rec.add_llms_txt.title",
"descriptionKey": "rec.add_llms_txt.description",
"howToKey": "rec.add_llms_txt.howto",
"howToStepKeys": null,
"effort": "quick-win",
"estimatedImpact": 2.5,
"maxImpact": 2.5,
"evidence": "speculative",
"checkScore": 0,
"checkDetails": "No llms.txt found"
},
{
"id": "add_content_signals",
"priority": "high",
"category": "aiDiscoverability",
"titleKey": "rec.add_content_signals.title",
"descriptionKey": "rec.add_content_signals.description",
"howToKey": "rec.add_content_signals.howto",
"howToStepKeys": null,
"effort": "quick-win",
"estimatedImpact": 2.5,
"maxImpact": 2.5,
"evidence": "speculative",
"checkScore": 0,
"checkDetails": "No Content-Signal found (robots.txt or HTTP headers)"
},
{
"id": "improve_content_ratio",
"priority": "medium",
"category": "contentEfficiency",
"titleKey": "rec.improve_content_ratio.title",
"descriptionKey": "rec.improve_content_ratio.description",
"howToKey": "rec.improve_content_ratio.howto",
"howToStepKeys": null,
"effort": "moderate",
"estimatedImpact": 2.3,
"maxImpact": 3,
"evidence": "speculative",
"checkScore": 25,
"checkDetails": "Content ratio: 5.9% (2138 content chars / 35943 HTML bytes)"
},
{
"id": "add_semantic_elements",
"priority": "medium",
"category": "semanticHtml",
"titleKey": "rec.add_semantic_elements.title",
"descriptionKey": "rec.add_semantic_elements.description",
"howToKey": "rec.add_semantic_elements.howto",
"howToStepKeys": null,
"effort": "moderate",
"estimatedImpact": 1.8,
"maxImpact": 3,
"evidence": "plausible",
"checkScore": 41,
"checkDetails": "12 semantic elements, 85 divs (ratio: 12%)"
},
{
"id": "add_open_graph",
"priority": "medium",
"category": "structuredData",
"titleKey": "rec.add_open_graph.title",
"descriptionKey": "rec.add_open_graph.description",
"howToKey": "rec.add_open_graph.howto",
"howToStepKeys": null,
"effort": "quick-win",
"estimatedImpact": 1.3,
"maxImpact": 4,
"evidence": "plausible",
"checkScore": 67,
"checkDetails": "2/3 OG tags present"
},
{
"id": "remove_inline_styles",
"priority": "low",
"category": "contentEfficiency",
"titleKey": "rec.remove_inline_styles.title",
"descriptionKey": "rec.remove_inline_styles.description",
"howToKey": "rec.remove_inline_styles.howto",
"howToStepKeys": null,
"effort": "moderate",
"estimatedImpact": 0.5,
"maxImpact": 1,
"evidence": "speculative",
"checkScore": 50,
"checkDetails": "4/275 elements with inline styles (1.5%)"
}
],
"llmsTxtPreview": "# omniasec.ai\n\n> Omnia\n\n## Documentation\n- [Docs](https://omniasec.ai/docs/)\n\n## Main\n- [Home | Omnia](https://omniasec.ai/): Omnia\n- [About](https://omniasec.ai/about/)\n- [Docs](https://omniasec.ai/docs/)\n- [Bug Bounty](https://omniasec.ai/bug-bounty/)\n\n## Blog\n- [Blog](https://omniasec.ai/blog/)\n\n## Legal\n- [Privacy Policy](https://omniasec.ai/privacy-policy/)\n\n",
"llmsTxtExisting": null,
"emergingProtocols": {
"oauthProtectedResource": {
"exists": false,
"url": "https://omniasec.ai/.well-known/oauth-protected-resource"
},
"oauthDiscovery": {
"exists": false,
"url": "https://omniasec.ai/.well-known/oauth-authorization-server"
},
"mcpServerCard": {
"exists": false,
"url": "https://omniasec.ai/.well-known/mcp/server-card.json",
"draft": true
},
"a2aAgentCard": {
"exists": false,
"url": "https://omniasec.ai/.well-known/agent-card.json"
},
"apiCatalog": {
"exists": false,
"url": "https://omniasec.ai/.well-known/api-catalog"
},
"agentSkills": {
"exists": false,
"url": "https://omniasec.ai/.well-known/agent-skills/index.json",
"draft": true
},
"count": 0,
"total": 6
},
"botAccess": {
"probed": true,
"bot": "OAI-SearchBot",
"controlStatus": 200,
"botStatus": 200,
"discriminates": false,
"refusedAsBot": false,
"edge": null,
"verifiable": false,
"detail": "This origin answers OAI-SearchBot exactly as it answers any other client (200). No edge-level filtering of AI crawlers observed."
},
"snippets": [
{
"id": "add_llms_txt",
"title": "Create /llms.txt",
"description": "Upload this file to your web root. It tells AI agents what your site is about and which pages matter.",
"language": "markdown",
"code": "# omniasec.ai\n\n> Omnia\n\n## Documentation\n- [Docs](https://omniasec.ai/docs/)\n\n## Main\n- [Home | Omnia](https://omniasec.ai/): Omnia\n- [About](https://omniasec.ai/about/)\n- [Docs](https://omniasec.ai/docs/)\n- [Bug Bounty](https://omniasec.ai/bug-bounty/)\n\n## Blog\n- [Blog](https://omniasec.ai/blog/)\n\n## Legal\n- [Privacy Policy](https://omniasec.ai/privacy-policy/)\n\n",
"filename": "/llms.txt"
},
{
"id": "add_open_graph",
"title": "Add missing Open Graph tags",
"description": "Open Graph tags control how your page looks when shared on social media and how AI platforms preview your URL in answers.",
"language": "html",
"code": "<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://omniasec.ai/\">\n<meta property=\"og:type\" content=\"website\">",
"filename": "<head>",
"stacks": [
{
"id": "html",
"label": "HTML <head>",
"language": "html",
"filename": "<head>",
"code": "<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://omniasec.ai/\">\n<meta property=\"og:type\" content=\"website\">"
},
{
"id": "wordpress",
"label": "WordPress",
"language": "php",
"filename": "functions.php",
"code": "<?php\n// Quick Open Graph tags without a plugin (skip if Yoast / Rank Math is active)\nadd_action('wp_head', function () {\n if (!is_singular()) return;\n $post = get_queried_object();\n $title = get_the_title($post);\n $desc = get_the_excerpt($post) ?: wp_trim_words(strip_tags($post->post_content), 30);\n $image = get_the_post_thumbnail_url($post, 'large') ?: 'https://yoursite.com/og-image.jpg';\n $url = get_permalink($post);\n printf('<meta property=\"og:title\" content=\"%s\">' . \"\\n\", esc_attr($title));\n printf('<meta property=\"og:description\" content=\"%s\">' . \"\\n\", esc_attr($desc));\n printf('<meta property=\"og:image\" content=\"%s\">' . \"\\n\", esc_url($image));\n printf('<meta property=\"og:url\" content=\"%s\">' . \"\\n\", esc_url($url));\n echo '<meta property=\"og:type\" content=\"article\">' . \"\\n\";\n}, 5);"
},
{
"id": "nextjs",
"label": "Next.js",
"language": "typescript",
"filename": "app/page.tsx",
"code": "// Next.js App Router — Metadata API\nimport type { Metadata } from 'next';\n\nexport const metadata: Metadata = {\n title: \"Home | Omnia\",\n description: \"Omnia\",\n openGraph: {\n title: \"Home | Omnia\",\n description: \"Omnia\",\n url: \"https://omniasec.ai/\",\n images: [\"https://yoursite.com/og-image.jpg\"],\n type: 'website',\n },\n};"
}
]
},
{
"id": "add_canonical_url",
"title": "Add canonical URL",
"description": "The canonical URL tells AI agents which version of the page is the \"official\" one, avoiding duplicate content issues.",
"language": "html",
"code": "<link rel=\"canonical\" href=\"https://omniasec.ai/\">",
"filename": "<head>"
},
{
"id": "add_schema_org",
"title": "Add Schema.org JSON-LD",
"description": "Structured data helps AI agents understand the type, author, and purpose of your content.",
"language": "html",
"code": "<script type=\"application/ld+json\">\n{\n \"@context\": \"https://schema.org\",\n \"@type\": \"WebPage\",\n \"name\": \"Home | Omnia\",\n \"description\": \"Omnia\",\n \"url\": \"https://omniasec.ai/\",\n \"inLanguage\": \"en\"\n}\n</script>",
"filename": "<head>"
},
{
"id": "add_sitemap",
"title": "Create /sitemap.xml",
"description": "A sitemap helps AI agents discover all your pages. Most CMS platforms generate one automatically.",
"language": "xml",
"code": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n <url>\n <loc>https://omniasec.ai/</loc>\n <lastmod>2026-09-01</lastmod>\n </url>\n</urlset>",
"filename": "/sitemap.xml"
},
{
"id": "add_content_signals",
"title": "Add Content-Signal directives",
"description": "Content-Signal tells AI agents how they may use your content. The canonical location is robots.txt, but you can also expose it as an HTTP header from any stack.",
"language": "txt",
"code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no",
"filename": "/robots.txt",
"stacks": [
{
"id": "robots",
"label": "robots.txt",
"language": "txt",
"filename": "/robots.txt",
"code": "User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no"
},
{
"id": "nginx",
"label": "Nginx",
"language": "nginx",
"filename": "server block",
"code": "# Inside your server { } block:\nadd_header Content-Signal \"search=yes, ai-input=yes, ai-train=no\" always;"
},
{
"id": "apache",
"label": "Apache",
"language": "apache",
"filename": ".htaccess",
"code": "# In .htaccess (or VirtualHost):\nHeader set Content-Signal \"search=yes, ai-input=yes, ai-train=no\""
},
{
"id": "wordpress",
"label": "WordPress",
"language": "php",
"filename": "functions.php",
"code": "<?php\n// In your theme's functions.php or a small mu-plugin\nadd_action('send_headers', function () {\n header('Content-Signal: search=yes, ai-input=yes, ai-train=no');\n});\n\n// Optional: also append the directive to the dynamic robots.txt\nadd_filter('robots_txt', function ($output) {\n return $output . \"\\nContent-Signal: search=yes, ai-input=yes, ai-train=no\\n\";\n}, 10, 1);"
},
{
"id": "nextjs",
"label": "Next.js",
"language": "typescript",
"filename": "middleware.ts",
"code": "// middleware.ts (Next.js 13+ App Router or Pages Router)\nimport { NextResponse } from 'next/server';\nexport function middleware() {\n const res = NextResponse.next();\n res.headers.set(\n 'Content-Signal',\n 'search=yes, ai-input=yes, ai-train=no'\n );\n return res;\n}\nexport const config = { matcher: '/:path*' };"
},
{
"id": "cloudflare",
"label": "Cloudflare Workers",
"language": "javascript",
"filename": "worker.js",
"code": "// Cloudflare Worker that proxies your origin and adds the header\nexport default {\n async fetch(request, env, ctx) {\n const res = await fetch(request);\n const newRes = new Response(res.body, res);\n newRes.headers.set(\n 'Content-Signal',\n 'search=yes, ai-input=yes, ai-train=no'\n );\n return newRes;\n },\n};"
},
{
"id": "express",
"label": "Express / Fastify",
"language": "javascript",
"filename": "server.js",
"code": "// Express\napp.use((req, res, next) => {\n res.setHeader('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n next();\n});\n\n// Fastify\nfastify.addHook('onSend', (request, reply, payload, done) => {\n reply.header('Content-Signal', 'search=yes, ai-input=yes, ai-train=no');\n done();\n});"
}
]
},
{
"id": "add_markdown_negotiation",
"title": "Support Markdown for Agents",
"description": "Let AI agents request a clean Markdown version of any page via content negotiation, .md alternate URLs, link tags or Link headers.",
"language": "html",
"code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">",
"filename": "<head>",
"stacks": [
{
"id": "html",
"label": "HTML <head>",
"language": "html",
"filename": "<head>",
"code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
},
{
"id": "express",
"label": "Express",
"language": "javascript",
"filename": "server.js",
"code": "// Mechanisms 1 + 4: content negotiation + Link header\napp.get('/page', (req, res) => {\n res.setHeader('Vary', 'Accept');\n res.setHeader('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n if ((req.headers.accept || '').includes('text/markdown')) {\n res.type('text/markdown; charset=utf-8');\n return res.send(renderMarkdown('page'));\n }\n res.render('page');\n});"
},
{
"id": "fastify",
"label": "Fastify",
"language": "javascript",
"filename": "server.js",
"code": "// Mechanisms 1 + 4: content negotiation + Link header\nfastify.get('/page', async (req, reply) => {\n reply.header('Vary', 'Accept');\n reply.header('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n if ((req.headers.accept || '').includes('text/markdown')) {\n return reply.type('text/markdown; charset=utf-8').send(renderMarkdown('page'));\n }\n return reply.view('/page.ejs');\n});"
},
{
"id": "nextjs",
"label": "Next.js",
"language": "typescript",
"filename": "app/page/route.ts",
"code": "// Next.js App Router — Route Handler returning Markdown\nimport { NextRequest } from 'next/server';\nimport { renderMarkdown } from '@/lib/md';\nexport async function GET(req: NextRequest) {\n const accept = req.headers.get('accept') || '';\n if (accept.includes('text/markdown')) {\n return new Response(await renderMarkdown('page'), {\n headers: {\n 'Content-Type': 'text/markdown; charset=utf-8',\n 'Vary': 'Accept',\n },\n });\n }\n // Fall through to the page component\n return new Response(null, { status: 404 });\n}"
},
{
"id": "wordpress",
"label": "WordPress",
"language": "php",
"filename": "functions.php",
"code": "<?php\n// Mechanism 1: respond to Accept: text/markdown on the same URL\nadd_action('template_redirect', function () {\n if (!is_singular()) return;\n $accept = $_SERVER['HTTP_ACCEPT'] ?? '';\n if (strpos($accept, 'text/markdown') === false) return;\n header('Content-Type: text/markdown; charset=utf-8');\n header('Vary: Accept');\n $post = get_queried_object();\n echo \"# \" . get_the_title($post) . \"\\n\\n\";\n echo wp_strip_all_tags(apply_filters('the_content', $post->post_content));\n exit;\n});"
},
{
"id": "static",
"label": "Hugo / Jekyll / Astro",
"language": "txt",
"filename": "static/page.md",
"code": "# Mechanism 2: serve .md alongside .html\n# Hugo: place page.md in /static/ — built unchanged\n# Jekyll: drop page.md in /assets/ — copied as-is\n# Astro: src/pages/page.md.ts that exports a GET returning markdown\n\n# Then advertise with mechanism 3 in <head>:\n# <link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
}
]
}
]
}
使用我们的API以编程方式获取此内容(即将推出)
此JSON供内部使用 — 与Markdown和llms.txt文件不同,它不适合上传到您的网站。将其保存为基准值以跟踪评分变化,与开发团队共享,或集成到CI/CD流水线中。
分享您的结果
或者让 AI 帮你改进
想听听第二种意见?
Cloudflare 也提供免费扫描工具,但它问的是另一个问题。他们评分的是你的站点为智能体调用而发布的东西:MCP server card、Agent Skills、API 目录、DNS 记录。我们评分的是智能体能否访问、读取并理解你的内容。一个站点可能在其中一项表现很好、另一项很差,所以看到两个不同的分数很正常:它们是两个不同问题的答案,都值得了解。
用 Cloudflare 扫描 omniasec.ai嵌入您的徽章
将此徽章添加到您的网站。当您的 AI 就绪评分发生变化时,它会自动更新。
<script src="https://agentready.md/badge.js" data-id="5bfdaf82-b42f-4b2d-b48f-d72e765c9af5" data-domain="omniasec.ai"></script>
[](https://agentready.md/zh/r/omniasec.ai)
即将推出:全域分析
爬取您的整个域名,生成llms.txt,并随时间监控您的AI就绪度评分。加入等候名单以获取通知。
您已加入名单!服务上线时我们会通知您。