已验证的 AgentReady.md 证书
签发于 sig: 444d75098eda86fa 验证 →

已分析URL

https://kwantra.com/fr

分析另一个URL

AI-Ready评分

61 / C

一般

/ 100

Token节省量

HTML Token 53.432
Markdown Token 203
节省 100%

评分详情

语义化HTML 61/100
内容效率 52/100
AI可发现性 47/100
结构化数据 85/100
可访问性 78/100

新兴协议

已检测到 1/3

AI代理查找的well-known端点。检测到意味着代理可以自动发现并连接到您的服务。

  • OAuth Discovery RFC 8414
    /.well-known/oauth-authorization-server
    • issuer: https://kwantra.com
    • token_endpoint: https://kwantra.com/api/auth/login
    • 2 grant type(s)
  • MCP Server Card Anthropic
    /.well-known/mcp.json
  • A2A Agent Card Google
    /.well-known/agent.json

您的网站没有llms.txt文件。这是帮助AI代理理解网站结构的新兴标准。

如何实施

按照llmstxt.org规范创建/llms.txt文件。包含网站描述和关键页面的链接。

您的页面未使用<article>或<main>元素。这些语义容器帮助AI代理识别主要内容区域,忽略导航、侧边栏和页脚。

如何实施

在页面主要内容周围添加<main>元素,并对博客文章或产品描述等独立内容块使用<article>。

您的页面实际内容与总HTML的比率较低。页面重量的大部分是标记、脚本或样式而非内容。

如何实施

将CSS移至外部样式表,删除内联样式,最小化JavaScript,确保HTML专注于内容结构。

许多元素具有内联样式属性。这些会为提取内容的AI代理增加噪声。

如何实施

将所有内联样式移至样式表中的CSS类。如需大量独特样式,使用Tailwind等实用CSS框架。

您的robots.txt阻止了部分AI机器人(GPTBot、ClaudeBot、PerplexityBot)。这会阻止AI代理索引您的内容。

如何实施

更新robots.txt以允许AI机器人。为GPTBot、ClaudeBot和PerplexityBot添加明确的Allow规则。

您的网站不支持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发现。

{\n res.setHeader('Vary', 'Accept');\n res.setHeader('Link', '; 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', '; 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":"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 :\n# "}] }'>

您的页面大量依赖<div>元素。<section>、<nav>、<header>、<footer>和<aside>等语义元素为AI代理提供有意义的结构。

如何实施

将通用<div>容器替换为适当的语义元素。对主题分组使用<section>,导航使用<nav>,页面/区块的头部和底部使用<header>/<footer>。

主要内容出现在HTML文档的后部。AI代理可能对较早出现的内容赋予更高权重。

如何实施

重构HTML,使<main>或<article>内容出现在侧边栏和补充内容之前。

未找到规范URL。它帮助AI代理识别页面的首选版本并避免重复内容。

如何实施

添加指向页面规范URL的<link rel="canonical" href="...">标签。

Markdown Token: 203
Gestion de patrimoine personnel

## Votre patrimoine,
enfin tout en un.

Kwantra centralise vos actions, ETF, crypto, immobilier et épargne. Suivez votre patrimoine net en temps réel, planifiez vos achats et préparez votre déclaration fiscale.

Actions ETF Crypto Immobilier Épargne

Ce que vous pouvez faire avec Kwantra

## Tout ce dont vous avez besoin,
rien de superflu.

8

Modules intégrés

100%

Vos données, chez vous

0€

Gratuit, sans engagement

∞

Actifs suivis

Gratuit · Sans engagement · Données privées

## Prêt à prendre
le contrôle ?

Créez votre compte en moins d'une minute et commencez à visualiser votre patrimoine comme jamais.

Aucune carte bancaire requise

Sans engagement

Aucun traceur tiers
Kwantra — Gérez votre patrimoine

Gestion de patrimoine personnel

# Votre patrimoine,
enfin tout en un.

Kwantra centralise vos actions, ETF, crypto, immobilier et épargne. Suivez votre patrimoine net en temps réel, planifiez vos achats et préparez votre déclaration fiscale.

[Créer un compte gratuit](https://kwantra.com/register) [Se connecter](https://kwantra.com/login)

Actions ETF Crypto Immobilier Épargne

Patrimoine net

0 €

+14.2% vs an dernier

JanMarMaiJuilSepNovDéc

📈

Actions & ETF+12.3%

68 200 €

🏢

Immobilier+2.1%

38 500 €

₿

Crypto+18.7%

14 100 €

💰

Épargne+1.2%

7 650 €

Mis à jour à l'instant

26/05/2026

₿

Bitcoin

0 €

+2.1%

Dividendes annuels

\+ 0 €

Ce que vous pouvez faire avec Kwantra

## Tout ce dont vous avez besoin,
rien de superflu.

### Actions & ETF

Gérez plusieurs comptes (PEA, CTO, AV). Suivez dividendes, plus-values et performance par enveloppe fiscale.

+14.2% sur 12 mois

PEACTOAssurance-viePER

### Crypto-monnaies

Centralisez wallets et exchanges. Importez vos positions CSV, suivez vos gains et pertes.

BinanceCoinbase\+ plus

### Projection DRIP

Simulez la croissance de vos dividendes sur 40 ans avec réinvestissement.

Intérêts composés sur 40 ans

### Plan d'achat annuel

Planifiez vos achats sur 12 mois par actif et par compte.

J

F

M

A

M

J

J

A

S

O

N

D

### Immobilier

Valorisation nette, emprunts restants, revenus locatifs. Intégré au patrimoine total.

### Épargne & liquidités

Livrets, comptes courants et épargne de précaution dans votre bilan net.

### Fiscalité

Rapport fiscal annuel automatique : plus-values réalisées, dividendes perçus, flat tax calculée.

30%

Flat tax PFU

Auto

Calcul FIFO

### Cotations temps réel

Actualisation automatique des cours via Yahoo Finance. Plus de 10 000 titres supportés.

MSCI World ETF+1.24%

Apple Inc.+0.87%

EUR/USD\-0.12%

8

Modules intégrés

100%

Vos données, chez vous

0€

Gratuit, sans engagement

∞

Actifs suivis

Gratuit · Sans engagement · Données privées

## Prêt à prendre
le contrôle ?

Créez votre compte en moins d'une minute et commencez à visualiser votre patrimoine comme jamais.

[Créer mon espace patrimoine](https://kwantra.com/register) [Déjà inscrit ? Connectez-vous](https://kwantra.com/login)

Aucune carte bancaire requise

Sans engagement

Aucun traceur tiers

将此文件上传到服务器的/fr.md,以便AI代理可以访问页面的干净版本。您也可以配置Accept: text/markdown内容协商以自动提供。

为此单页生成的llms.txt

下载llms.txt
# Kwantra

> Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire, gratuite et respectueuse de votre vie privée.

## Main
- [Kwantra — Gérez votre patrimoine](https://kwantra.com/fr): Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire, gratuite et respectueuse…
- [Fonctionnalités](https://kwantra.com/fr/fonctionnalites)
- [À propos](https://kwantra.com/fr/a-propos)
- [Communauté](https://kwantra.com/fr/communaute)
- [Se connecter](https://kwantra.com/login)
- [Commencer](https://kwantra.com/register)
- [Mentions légales](https://kwantra.com/fr/mentions-legales)
- [Confidentialité](https://kwantra.com/fr/confidentialite)
- [CGU](https://kwantra.com/fr/cgu)

## Blog
- [Blog](https://kwantra.com/fr/blog)

## Legal
- [Cookies](https://kwantra.com/fr/cookies)

完整llms.txt需要全域分析(即将推出)

将此文件上传到域名根目录的https://kwantra.com/llms.txt。ChatGPT、Claude和Perplexity等AI代理会检查此文件以了解您的网站结构。

语义化HTML

使用article或main元素 (0/100)

Missing <article> and <main> elements

正确的标题层级 (100/100)

Clean heading hierarchy

使用语义化HTML元素 (13/100)

6 semantic elements, 147 divs (ratio: 4%)

有意义的图片alt属性 (100/100)

No images found

较低的div嵌套深度 (90/100)

Avg div depth: 6.0, max: 11

内容效率

良好的Token减少比率 (100/100)

100% token reduction (HTML→Markdown)

良好的内容与噪声比 (0/100)

Content ratio: 0.5% (690 content chars / 147564 HTML bytes)

最少的内联样式 (0/100)

47/418 elements with inline styles (11.2%)

合理的页面重量 (80/100)

HTML size: 144KB

AI可发现性

有llms.txt文件 (0/100)

No llms.txt found

有robots.txt文件 (100/100)

robots.txt exists

robots.txt允许AI机器人 (34/100)

2/3 AI bots blocked: ClaudeBot, GPTBot

有sitemap.xml (100/100)

Sitemap found

Markdown for Agents支持 (40/100) Cloudflare CDN
&#10003; Accept: text/markdown &#10007; .md URL &#10007; <link> tag &#10007; Link header YAML frontmatter (basic)
有Content-Signal(robots.txt或HTTP标头) (60/100)
&#10003; robots.txt &#10007; HTTP header &#10003; Policy

结构化数据

有Schema.org / JSON-LD (100/100)

JSON-LD found: WebPage

有Open Graph标签 (100/100)

All OG tags present

有meta描述 (100/100)

Meta description: 139 chars

有规范URL (0/100)

No canonical URL

有lang属性 (100/100)

lang="fr"

可访问性

无需JavaScript即可获取内容 (100/100)

Content available without JavaScript

合理的页面大小 (100/100)

Page size: 144KB

内容在HTML中位置靠前 (25/100)

Main content starts at 70% of HTML

{
  "url": "https://kwantra.com/fr",
  "timestamp": 1779792469381,
  "fetch": {
    "mode": "simple",
    "timeMs": 260,
    "htmlSizeBytes": 147564,
    "supportsMarkdown": true,
    "markdownAgents": {
      "contentNegotiation": true,
      "mdUrl": {
        "found": false,
        "url": null
      },
      "linkTag": {
        "found": false,
        "url": null
      },
      "linkHeader": {
        "found": false,
        "url": null
      },
      "responseHeaders": {
        "contentSignal": null,
        "xMarkdownTokens": "586",
        "vary": "accept"
      },
      "frontmatter": {
        "present": true,
        "fields": [
          "title",
          "description"
        ],
        "level": "basic"
      },
      "level": "cloudflare"
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "Kwantra — Gérez votre patrimoine",
    "excerpt": "Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire et gratuite.",
    "byline": null,
    "siteName": "Kwantra",
    "lang": "fr",
    "contentLength": 690,
    "metadata": {
      "description": "Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire, gratuite et respectueuse de votre vie privée.",
      "ogTitle": "Kwantra — Gérez votre patrimoine",
      "ogDescription": "Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire et gratuite.",
      "ogImage": "https://kwantra.fr/og-image.png",
      "ogType": "website",
      "canonical": null,
      "lang": "fr",
      "schemas": [
        {
          "@context": "https://schema.org",
          "@type": "WebPage",
          "@id": "https://kwantra.fr/#webpage",
          "url": "https://kwantra.fr/",
          "name": "Kwantra — Gérez votre patrimoine",
          "description": "Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire, gratuite et respectueuse de votre vie privée.",
          "isPartOf": {
            "@id": "https://kwantra.fr/#website"
          },
          "about": {
            "@id": "https://kwantra.fr/#organization"
          },
          "inLanguage": "fr-FR"
        }
      ],
      "robotsMeta": null,
      "author": null,
      "generator": null,
      "markdownAlternateHref": null
    }
  },
  "markdown": "Gestion de patrimoine personnel\n\n## Votre patrimoine,\nenfin tout en un.\n\nKwantra centralise vos actions, ETF, crypto, immobilier et épargne. Suivez votre patrimoine net en temps réel, planifiez vos achats et préparez votre déclaration fiscale.\n\nActions ETF Crypto Immobilier Épargne\n\nCe que vous pouvez faire avec Kwantra\n\n## Tout ce dont vous avez besoin,\nrien de superflu.\n\n8\n\nModules intégrés\n\n100%\n\nVos données, chez vous\n\n0€\n\nGratuit, sans engagement\n\n∞\n\nActifs suivis\n\nGratuit · Sans engagement · Données privées\n\n## Prêt à prendre\nle contrôle ?\n\nCréez votre compte en moins d'une minute et commencez à visualiser votre patrimoine comme jamais.\n\nAucune carte bancaire requise\n\nSans engagement\n\nAucun traceur tiers\n",
  "fullPageMarkdown": "Kwantra — Gérez votre patrimoine\n\nGestion de patrimoine personnel\n\n# Votre patrimoine,\nenfin tout en un.\n\nKwantra centralise vos actions, ETF, crypto, immobilier et épargne. Suivez votre patrimoine net en temps réel, planifiez vos achats et préparez votre déclaration fiscale.\n\n[Créer un compte gratuit](https://kwantra.com/register) [Se connecter](https://kwantra.com/login)\n\nActions ETF Crypto Immobilier Épargne\n\nPatrimoine net\n\n0 €\n\n+14.2% vs an dernier\n\nJanMarMaiJuilSepNovDéc\n\n📈\n\nActions & ETF+12.3%\n\n68 200 €\n\n🏢\n\nImmobilier+2.1%\n\n38 500 €\n\n₿\n\nCrypto+18.7%\n\n14 100 €\n\n💰\n\nÉpargne+1.2%\n\n7 650 €\n\nMis à jour à l'instant\n\n26/05/2026\n\n₿\n\nBitcoin\n\n0 €\n\n+2.1%\n\nDividendes annuels\n\n\\+ 0 €\n\nCe que vous pouvez faire avec Kwantra\n\n## Tout ce dont vous avez besoin,\nrien de superflu.\n\n### Actions & ETF\n\nGérez plusieurs comptes (PEA, CTO, AV). Suivez dividendes, plus-values et performance par enveloppe fiscale.\n\n+14.2% sur 12 mois\n\nPEACTOAssurance-viePER\n\n### Crypto-monnaies\n\nCentralisez wallets et exchanges. Importez vos positions CSV, suivez vos gains et pertes.\n\nBinanceCoinbase\\+ plus\n\n### Projection DRIP\n\nSimulez la croissance de vos dividendes sur 40 ans avec réinvestissement.\n\nIntérêts composés sur 40 ans\n\n### Plan d'achat annuel\n\nPlanifiez vos achats sur 12 mois par actif et par compte.\n\nJ\n\nF\n\nM\n\nA\n\nM\n\nJ\n\nJ\n\nA\n\nS\n\nO\n\nN\n\nD\n\n### Immobilier\n\nValorisation nette, emprunts restants, revenus locatifs. Intégré au patrimoine total.\n\n### Épargne & liquidités\n\nLivrets, comptes courants et épargne de précaution dans votre bilan net.\n\n### Fiscalité\n\nRapport fiscal annuel automatique : plus-values réalisées, dividendes perçus, flat tax calculée.\n\n30%\n\nFlat tax PFU\n\nAuto\n\nCalcul FIFO\n\n### Cotations temps réel\n\nActualisation automatique des cours via Yahoo Finance. Plus de 10 000 titres supportés.\n\nMSCI World ETF+1.24%\n\nApple Inc.+0.87%\n\nEUR/USD\\-0.12%\n\n8\n\nModules intégrés\n\n100%\n\nVos données, chez vous\n\n0€\n\nGratuit, sans engagement\n\n∞\n\nActifs suivis\n\nGratuit · Sans engagement · Données privées\n\n## Prêt à prendre\nle contrôle ?\n\nCréez votre compte en moins d'une minute et commencez à visualiser votre patrimoine comme jamais.\n\n[Créer mon espace patrimoine](https://kwantra.com/register) [Déjà inscrit ? Connectez-vous](https://kwantra.com/login)\n\nAucune carte bancaire requise\n\nSans engagement\n\nAucun traceur tiers\n",
  "markdownStats": {
    "images": 0,
    "links": 0,
    "tables": 0,
    "codeBlocks": 0,
    "headings": 3
  },
  "tokens": {
    "htmlTokens": 53432,
    "markdownTokens": 203,
    "reduction": 53229,
    "reductionPercent": 100
  },
  "score": {
    "score": 61,
    "grade": "C",
    "dimensions": {
      "semanticHtml": {
        "score": 61,
        "weight": 20,
        "grade": "C",
        "checks": {
          "uses_article_or_main": {
            "score": 0,
            "weight": 20,
            "details": "Missing <article> and <main> elements"
          },
          "proper_heading_hierarchy": {
            "score": 100,
            "weight": 25,
            "details": "Clean heading hierarchy"
          },
          "semantic_elements": {
            "score": 13,
            "weight": 20,
            "details": "6 semantic elements, 147 divs (ratio: 4%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "details": "No images found"
          },
          "low_div_nesting": {
            "score": 90,
            "weight": 20,
            "details": "Avg div depth: 6.0, max: 11"
          }
        }
      },
      "contentEfficiency": {
        "score": 52,
        "weight": 25,
        "grade": "D",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "details": "100% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 0,
            "weight": 30,
            "details": "Content ratio: 0.5% (690 content chars / 147564 HTML bytes)"
          },
          "minimal_inline_styles": {
            "score": 0,
            "weight": 15,
            "details": "47/418 elements with inline styles (11.2%)"
          },
          "reasonable_page_weight": {
            "score": 80,
            "weight": 15,
            "details": "HTML size: 144KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 47,
        "weight": 25,
        "grade": "D",
        "checks": {
          "has_llms_txt": {
            "score": 0,
            "weight": 20,
            "details": "No llms.txt found"
          },
          "has_robots_txt": {
            "score": 100,
            "weight": 10,
            "details": "robots.txt exists"
          },
          "robots_allows_ai_bots": {
            "score": 34,
            "weight": 15,
            "details": "2/3 AI bots blocked: ClaudeBot, GPTBot"
          },
          "has_sitemap": {
            "score": 100,
            "weight": 10,
            "details": "Sitemap found"
          },
          "supports_markdown_negotiation": {
            "score": 40,
            "weight": 25,
            "details": "CDN level (Cloudflare) — Content negotiation"
          },
          "has_content_signals": {
            "score": 60,
            "weight": 20,
            "details": "robots.txt: search=yes, ai-train=no | Policy included"
          }
        }
      },
      "structuredData": {
        "score": 85,
        "weight": 15,
        "grade": "B",
        "checks": {
          "has_schema_org": {
            "score": 100,
            "weight": 30,
            "details": "JSON-LD found: WebPage"
          },
          "has_open_graph": {
            "score": 100,
            "weight": 25,
            "details": "All OG tags present"
          },
          "has_meta_description": {
            "score": 100,
            "weight": 20,
            "details": "Meta description: 139 chars"
          },
          "has_canonical_url": {
            "score": 0,
            "weight": 15,
            "details": "No canonical URL"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "details": "lang=\"fr\""
          }
        }
      },
      "accessibility": {
        "score": 78,
        "weight": 15,
        "grade": "B",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 40,
            "details": "Content available without JavaScript"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 30,
            "details": "Page size: 144KB"
          },
          "fast_content_position": {
            "score": 25,
            "weight": 30,
            "details": "Main content starts at 70% of HTML"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "id": "add_llms_txt",
      "priority": "critical",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_llms_txt.title",
      "descriptionKey": "rec.add_llms_txt.description",
      "howToKey": "rec.add_llms_txt.howto",
      "effort": "quick-win",
      "estimatedImpact": 10,
      "checkScore": 0,
      "checkDetails": "No llms.txt found"
    },
    {
      "id": "add_article_main",
      "priority": "critical",
      "category": "semanticHtml",
      "titleKey": "rec.add_article_main.title",
      "descriptionKey": "rec.add_article_main.description",
      "howToKey": "rec.add_article_main.howto",
      "effort": "quick-win",
      "estimatedImpact": 8,
      "checkScore": 0,
      "checkDetails": "Missing <article> and <main> elements"
    },
    {
      "id": "improve_content_ratio",
      "priority": "critical",
      "category": "contentEfficiency",
      "titleKey": "rec.improve_content_ratio.title",
      "descriptionKey": "rec.improve_content_ratio.description",
      "howToKey": "rec.improve_content_ratio.howto",
      "effort": "moderate",
      "estimatedImpact": 6,
      "checkScore": 0,
      "checkDetails": "Content ratio: 0.5% (690 content chars / 147564 HTML bytes)"
    },
    {
      "id": "remove_inline_styles",
      "priority": "critical",
      "category": "contentEfficiency",
      "titleKey": "rec.remove_inline_styles.title",
      "descriptionKey": "rec.remove_inline_styles.description",
      "howToKey": "rec.remove_inline_styles.howto",
      "effort": "moderate",
      "estimatedImpact": 3,
      "checkScore": 0,
      "checkDetails": "47/418 elements with inline styles (11.2%)"
    },
    {
      "id": "allow_ai_bots",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.allow_ai_bots.title",
      "descriptionKey": "rec.allow_ai_bots.description",
      "howToKey": "rec.allow_ai_bots.howto",
      "effort": "quick-win",
      "estimatedImpact": 7,
      "checkScore": 34,
      "checkDetails": "2/3 AI bots blocked: ClaudeBot, GPTBot"
    },
    {
      "id": "add_markdown_negotiation",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_markdown_negotiation.title",
      "descriptionKey": "rec.add_markdown_negotiation.description",
      "howToKey": "rec.add_markdown_negotiation.howto",
      "effort": "significant",
      "estimatedImpact": 6,
      "checkScore": 40,
      "checkDetails": "CDN level (Cloudflare) — Content negotiation"
    },
    {
      "id": "add_semantic_elements",
      "priority": "high",
      "category": "semanticHtml",
      "titleKey": "rec.add_semantic_elements.title",
      "descriptionKey": "rec.add_semantic_elements.description",
      "howToKey": "rec.add_semantic_elements.howto",
      "effort": "moderate",
      "estimatedImpact": 5,
      "checkScore": 13,
      "checkDetails": "6 semantic elements, 147 divs (ratio: 4%)"
    },
    {
      "id": "move_content_earlier",
      "priority": "high",
      "category": "accessibility",
      "titleKey": "rec.move_content_earlier.title",
      "descriptionKey": "rec.move_content_earlier.description",
      "howToKey": "rec.move_content_earlier.howto",
      "effort": "moderate",
      "estimatedImpact": 4,
      "checkScore": 25,
      "checkDetails": "Main content starts at 70% of HTML"
    },
    {
      "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",
      "effort": "quick-win",
      "estimatedImpact": 3,
      "checkScore": 0,
      "checkDetails": "No canonical URL"
    }
  ],
  "llmsTxtPreview": "# Kwantra\n\n> Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire, gratuite et respectueuse de votre vie privée.\n\n## Main\n- [Kwantra — Gérez votre patrimoine](https://kwantra.com/fr): Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire, gratuite et respectueuse…\n- [Fonctionnalités](https://kwantra.com/fr/fonctionnalites)\n- [À propos](https://kwantra.com/fr/a-propos)\n- [Communauté](https://kwantra.com/fr/communaute)\n- [Se connecter](https://kwantra.com/login)\n- [Commencer](https://kwantra.com/register)\n- [Mentions légales](https://kwantra.com/fr/mentions-legales)\n- [Confidentialité](https://kwantra.com/fr/confidentialite)\n- [CGU](https://kwantra.com/fr/cgu)\n\n## Blog\n- [Blog](https://kwantra.com/fr/blog)\n\n## Legal\n- [Cookies](https://kwantra.com/fr/cookies)\n\n",
  "llmsTxtExisting": null,
  "emergingProtocols": {
    "oauthDiscovery": {
      "exists": true,
      "url": "https://kwantra.com/.well-known/oauth-authorization-server",
      "issuer": "https://kwantra.com",
      "authorizationEndpoint": "https://kwantra.com/fr",
      "tokenEndpoint": "https://kwantra.com/api/auth/login",
      "grantTypesSupported": [
        "password",
        "refresh_token"
      ],
      "scopesSupported": [
        "openid",
        "profile",
        "email"
      ]
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://kwantra.com/.well-known/mcp.json"
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://kwantra.com/.well-known/agent.json"
    },
    "count": 1
  },
  "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": "# Kwantra\n\n> Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire, gratuite et respectueuse de votre vie privée.\n\n## Main\n- [Kwantra — Gérez votre patrimoine](https://kwantra.com/fr): Centralisez et suivez vos actions, crypto, immobilier et épargne depuis une interface claire, gratuite et respectueuse…\n- [Fonctionnalités](https://kwantra.com/fr/fonctionnalites)\n- [À propos](https://kwantra.com/fr/a-propos)\n- [Communauté](https://kwantra.com/fr/communaute)\n- [Se connecter](https://kwantra.com/login)\n- [Commencer](https://kwantra.com/register)\n- [Mentions légales](https://kwantra.com/fr/mentions-legales)\n- [Confidentialité](https://kwantra.com/fr/confidentialite)\n- [CGU](https://kwantra.com/fr/cgu)\n\n## Blog\n- [Blog](https://kwantra.com/fr/blog)\n\n## Legal\n- [Cookies](https://kwantra.com/fr/cookies)\n\n",
      "filename": "/llms.txt"
    },
    {
      "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://kwantra.com/fr\">",
      "filename": "<head>"
    },
    {
      "id": "allow_ai_bots",
      "title": "Allow AI bots in robots.txt",
      "description": "Some AI bots are blocked in your robots.txt. Remove or modify these Disallow rules to let AI agents index your content.",
      "language": "txt",
      "code": "# Add to your robots.txt — explicitly allow AI bots:\nUser-agent: GPTBot\nAllow: /\n\nUser-agent: ClaudeBot\nAllow: /\n\nUser-agent: PerplexityBot\nAllow: /",
      "filename": "/robots.txt"
    },
    {
      "id": "add_article_main",
      "title": "Wrap content in <main> and <article>",
      "description": "Semantic HTML landmarks help AI agents identify the main content of your page.",
      "language": "html",
      "code": "<main>\n  <article>\n    <h1>Your Page Title</h1>\n    <p>Your content here...</p>\n  </article>\n</main>",
      "filename": "<body>"
    },
    {
      "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流水线中。

分享您的结果

Twitter LinkedIn

嵌入您的徽章

将此徽章添加到您的网站。当您的 AI 就绪评分发生变化时,它会自动更新。

AgentReady.md score for kwantra.com
Script 推荐
<script src="https://agentready.md/badge.js" data-id="571ab99d-7208-4cfc-b1a3-57f4baa3cb96" data-domain="kwantra.com"></script>
Markdown
[![AgentReady.md score for kwantra.com](https://agentready.md/badge/kwantra.com.svg)](https://agentready.md/zh/r/571ab99d-7208-4cfc-b1a3-57f4baa3cb96)

即将推出:全域分析

爬取您的整个域名,生成llms.txt,并随时间监控您的AI就绪度评分。加入等候名单以获取通知。

您已加入名单!服务上线时我们会通知您。