URL analisado
https://www.ohkunoshimarabbitrescue.org/
Medido há 3 semanas
Pontuação AI-Ready
Razoável
de 100
Poupança de tokens
Desdobramento da pontuação
Protocolos emergentes
0 de 6 detetadosEndpoints well-known que os agentes de IA procuram. Detetado significa que um agente pode descobrir e conectar-se automaticamente ao seu serviço.
-
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
Isto não fica quieto. A monitorização ainda não existe: junte-se à lista e avisamos quando estiver.
Está na lista! Notificá-lo-emos quando estiver disponível.
O que medimos No Markdown for Agents support detected
O seu site não suporta Markdown for Agents. Este padrão Cloudflare permite que agentes de IA solicitem conteúdo em formato markdown, reduzindo o uso de tokens em ~80%.
Como implementar
Implemente um ou mais: (1) Responder a Accept: text/markdown com conteúdo markdown. (2) Servir URLs .md (ex: /pagina.md). (3) Adicionar tags <link rel="alternate" type="text/markdown">. (4) Adicionar cabeçalhos HTTP Link para descoberta markdown.
O que medimos Page size: 1017KB
A sua página é maior do que o recomendado. Páginas grandes são mais lentas a processar e mais caras para agentes de IA.
Como implementar
Otimize o tamanho da página minimizando HTML, diferindo scripts não-críticos e removendo CSS não utilizado.
O que medimos Content ratio: 0.1% (586 content chars / 1041388 HTML bytes)
A sua página tem um baixo rácio de conteúdo real em relação ao HTML total. Grande parte do peso da página é markup, scripts ou estilos em vez de conteúdo.
Como implementar
Mova CSS para folhas de estilo externas, remova estilos inline, minimize JavaScript e garanta que o HTML se foca na estrutura do conteúdo.
O que medimos No Content-Signal found (robots.txt or HTTP headers)
Nenhuma diretiva Content-Signal encontrada. Estas indicam aos agentes de IA como podem usar o seu conteúdo (indexação, entrada IA, dados de treino). A localização recomendada é robots.txt.
Como implementar
Adicione Content-Signal ao seu robots.txt: User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. Também pode adicioná-lo como cabeçalho HTTP em respostas markdown.
O que medimos 12 semantic elements, 192 divs (ratio: 6%)
A sua página depende muito de elementos <div>. Elementos semânticos como <section>, <nav>, <header>, <footer> e <aside> fornecem uma estrutura significativa para agentes de IA.
Como implementar
Substitua contentores <div> genéricos por elementos semânticos apropriados. Use <section> para grupos temáticos, <nav> para navegação, <header>/<footer> para cabeçalhos e rodapés de página/secção.
O que medimos HTML size: 1017KB
A sua página HTML é mais pesada do que o recomendado. Páginas grandes demoram mais para os agentes de IA processarem e custam mais tokens.
Como implementar
Reduza o tamanho HTML removendo código não utilizado, minimizando HTML e carregando conteúdo não-crítico de forma diferida.
O que medimos no <h1>
A sua estrutura de títulos tem problemas (níveis saltados ou múltiplos h1). Uma hierarquia limpa ajuda os agentes de IA a compreender a organização do conteúdo.
Como implementar
Certifique-se de que tem exatamente um <h1> por página e os títulos seguem uma ordem sequencial: h1 > h2 > h3. Não salte níveis (ex.: h1 diretamente para h3).
O que medimos 130/585 elements with inline styles (22.2%)
Muitos elementos têm atributos de estilo inline. Estes adicionam ruído para agentes de IA que extraem conteúdo.
Como implementar
Mova todos os estilos inline para classes CSS na sua folha de estilos. Use frameworks CSS utilitários como Tailwind se precisar de muitos estilos únicos.
O que medimos Avg div depth: 10.3, max: 17
A sua página tem elementos <div> profundamente aninhados. O aninhamento profundo adiciona ruído e dificulta a extração de conteúdo para agentes de IA.
Como implementar
Simplifique a estrutura HTML removendo divs wrapper desnecessários. Use CSS Grid ou Flexbox para layout em vez de divs contentor aninhados.
大久野島のうさぎたちに何が起きているのか? 広島県の大久野島は「うさぎの島」として知られ、多くの観光客が訪れています。 しかし、その裏でうさぎたちは過酷な環境にさらされ、命の危機に瀕しています。 無責任なエサやりで栄養失調や誤嚥が多発 観光客による抱っこや追いかけ回しで骨折・ストレス死 2024年末には大勢のうさぎが虐他死させられた。 車両事故による重傷・死亡 意図的な虐待とみられる傷を負った個体も確認 繁殖制限がないため、病気やケガが蔓延しやすい状態 こうした状況の中、行政の対応は十分とは言えず、ボランティアや民間の支援に頼らざるを得ないのが現実です。 島で病気やケガをしているうさぎに関しては、保護・救出については終生飼育と島に戻さないことを条件に環境省は黙認しています。 実際に、傷病うさぎたちが善意の救出者と里親のもとで治療を受け、家庭で幸せに暮らしています。 私たちにできること うさぎに触れない・追いかけない・抱っこしない 静かに距離を保ち、うさぎたちにストレスを与えない 島の現実を広め、行政への働きかけを行う 傷ついた子を見つけたら、信頼できる団体や保護主へ連絡を うさぎたちは観光の「道具」ではありません。 命ある動物として、尊重されるべき存在です。 あなたの行動が、うさぎたちの未来を変える力になります。
rabbit island ohkunoshima bunny rescue | rabbit top of page  [大久野島](https://www.ohkunoshimarabbitrescue.org/) [うさぎ島の真実](https://www.ohkunoshimarabbitrescue.org/) [偽りのうさぎの楽園](https://www.ohkunoshimarabbitrescue.org/)   - [](https://www.instagram.com/junkohiking/) - [](https://www.instagram.com/ohkunoshima_rabbit_rescue/) [ENGLISH SITE](https://junkoroberson.wixsite.com/rabbit-island)  [](https://www.bunnycarejp.com/) - [](https://www.facebook.com/bunnyintokyo/) - [](https://www.instagram.com/bunnyintokyo) - [](https://x.com/bunnyintokyo) Search ### 蘭風ちゃんの物語 大久野島で生活する蘭風ちゃんの助けを求める眼差しに皆が心を打たれました! 2024年7月に広島県のうさぎ島として知られる大久野島より保護された耳に大きな腫瘍が出来ていた蘭風(らんぷ)は 初めて公に寄付を募り、医療に掛けられ その後、家庭で暮らしたうさぎでした。  - [](https://www.instagram.com/ohkunoshima_rabbit_rescue) ## 私達の目標 大久野島のうさぎたちは、いまこの瞬間も命の危機にさらされています。 観光地の裏で、怪我や感染症、飢餓、多くの命が適切なケアを受けられないまま失われています。 私たちは、現場で実際に緊急救助してきた記録と経験に基づき、見過ごされてきた現実を変えるために行動しています。しかし、この問題は一部の人間だけでは解決できません、皆さんのご協力が必要です。 - 緊急性の高いうさぎの保護・医療・リハビリ支援 - 里親募集を通じた安全な移動と終生飼育の実現 - 島の現状(怪我・病気、人災)の継続的な記録と公開 - 不適切な餌やりを減らすための啓発活動 - 行政・専門家との連携による根本的解決の模索 この活動は、寄付・支援・拡散によって支えられています。 小さな行動でも、1つの命を救う力になります。 - ご寄付 - 情報をシェアする - 正しい知識を広める - 里親になる・つなぐ 「かわいい」で終わらせない。命に責任を持つ社会へ。 [大久野島](https://www.ohkunoshimarabbitrescue.org/blog)   救出前の蘭ちゃん  手術後の蘭ちゃん ## 大久野島がうさぎの楽園?? 大久野島のうさぎたちに何が起きているのか? 広島県の大久野島は「うさぎの島」として知られ、多くの観光客が訪れています。 しかし、その裏でうさぎたちは過酷な環境にさらされ、命の危機に瀕しています。 無責任なエサやりで栄養失調や誤嚥が多発 観光客による抱っこや追いかけ回しで骨折・ストレス死 2024年末には大勢のうさぎが虐他死させられた。 車両事故による重傷・死亡 意図的な虐待とみられる傷を負った個体も確認 繁殖制限がないため、病気やケガが蔓延しやすい状態 こうした状況の中、行政の対応は十分とは言えず、ボランティアや民間の支援に頼らざるを得ないのが現実です。 島で病気やケガをしているうさぎに関しては、保護・救出については終生飼育と島に戻さないことを条件に環境省は黙認しています。 実際に、傷病うさぎたちが善意の救出者と里親のもとで治療を受け、家庭で幸せに暮らしています。 私たちにできること うさぎに触れない・追いかけない・抱っこしない 静かに距離を保ち、うさぎたちにストレスを与えない 島の現実を広め、行政への働きかけを行う 傷ついた子を見つけたら、信頼できる団体や保護主へ連絡を うさぎたちは観光の「道具」ではありません。 命ある動物として、尊重されるべき存在です。 あなたの行動が、うさぎたちの未来を変える力になります。  bottom of page
Carregue este ficheiro como /index.md no seu servidor para que os agentes de IA possam aceder a uma versão limpa da sua página. Também pode configurar a negociação de conteúdo Accept: text/markdown para o servir automaticamente.
A nossa recomendação
# Ohkunoshima Rabbit I > 大久野島(Ohkunoshima)の「ウサギの楽園」と言われるイメージの裏には、過酷な現実がある。医療ケアを受けられず短命を終える野生化した家うさぎ達。その悲しいサイクルを断ち切ろうと、アニマルウェルフェアの精神を持って懸命に救護を続ける人々の取り組みに注目が集まっている。 ## Main - [rabbit island ohkunoshima bunny rescue | rabbit](https://www.ohkunoshimarabbitrescue.org/): 大久野島(Ohkunoshima)の「ウサギの楽園」と言われるイメージの裏には、過酷な現実がある。医療ケアを受けられず短命を終える野生化した家うさぎ達。その悲しいサイクルを断ち切ろうと、アニマルウェルフェアの精神を持って懸命に救護を続ける… - [里親、一時預かり募集](https://www.ohkunoshimarabbitrescue.org/about-4) - [保護ウサギ一覧](https://www.ohkunoshimarabbitrescue.org/rescued-rabbits) - [寄付で支援する](https://www.ohkunoshimarabbitrescue.org/donation) - [病気と怪我](https://www.ohkunoshimarabbitrescue.org/sick-injured-rabbits) - [保護うさぎのその後](https://www.ohkunoshimarabbitrescue.org/adopted-rabbits) ## Blog - [大久野島ブログ](https://www.ohkunoshimarabbitrescue.org/blog) ## Support - [お問い合わせ](https://www.ohkunoshimarabbitrescue.org/contact-us)
O llms.txt completo requer análise de todo o domínio (em breve)
Carregue este ficheiro como https://www.ohkunoshimarabbitrescue.org/llms.txt na raiz do seu domínio. Agentes de IA como ChatGPT, Claude e Perplexity verificam este ficheiro para compreender a estrutura do seu site.
Este site já possui um ficheiro llms.txt.
Formato válido# Ohkunoshima Rabbit I > このサイトは、大久野島で傷病を負ったウサギの救出活動とその報告をまとめたものです。2024年7月から2026年6月にかけて、28匹のウサギが保護され、医療ケアを受け、新しい家庭へと繋がれました。活動資金は寄付によって賄われ、医療費や諸経費に充てられています。サイトでは、個々のウサギの救出経緯や現在の様子、そして島のウサギが直面する過酷な現実と、それに対する支援の必要性が訴えられています。 ## Homepage link - [home](https://www.ohkunoshimarabbitrescue.org/) ## AI エージェントによるアクセス このサイトは Wix で作成されており、エージェント AI によるアクセス用の MCP (Model Context Protocol) に対応しています。AI エージェントは直接接続して、公開中の最新のサイトコンテンツを取得できます。スクレイピングは不要です。 - [**サイト MCP エンドポイント**](https://www.ohkunoshimarabbitrescue.org/_api/mcp) - [**Wix MCP ドキュメンテーション**](https://dev.wix.com/docs/develop-websites/articles/get-started/about-the-wix-site-mcp) ## 利用可能な MCP ツール ### GetBusinessDetails ビジネスとサイトの詳細(時間帯(タイムゾーン)、メールアドレス、電話番号、住所など)を取得します。- パラメータは必要ありません。 ### SearchInSite サイト内の情報を検索します。 - **searchTerm** - サイト内で検索する語句。 ### SearchSiteApiDocs このサイトにインストールされている Wix ビジネスソリューションの API ドキュメントを取得し、AI クライアントに API の使用方法を通知します。商品とサービスのクエリにこのツールを使用します(SearchInSite の代わりに)。 - **searchTerm** - サイトの API ドキュメント内で検索する語句。 ### GenerateVisitorToken 新しいサイト訪問者セッションを作成し、サイト用のサイト訪問者アクセストークンを取得します。コンテキストに訪問者トークンがまだない場合は、CallWixSiteAPI リクエストを行う前に呼び出す必要があります。 - パラメータは必要ありません。 ### CallWixSiteAPI サイト上で API メソッドを呼び出し、サイト訪問者に代わってアクション(サイトデータのクエリ、プライベート予約を行う、購入を開始するなど)を実行します。 - **visitorToken** - サイト訪問者アクセストークン。利用できない場合は、最初に GenerateVisitorToken を使用します。 - **url** - 呼び出す API メソッドの絶対 URL(例:https://www.wixapis.com/...)。SearchSiteApiDocs を使用して取得します。 - **method** - API 呼び出しに使用する HTTP メソッド。 - **body** - 有効な JSON 文字列としてのリクエストボディ。 ### ReadFullDocsArticle Wix開発者ドキュメンテーションポータルから完全な記事を読み出します。 - **articleUrl** - Wix 開発者ドキュメンテーションポータル内の記事の URL。 ### ReadFullDocsMethodSchema Wix APIメソッドの完全なスキーマを読み出します。実際のメソッドを CallWixSiteAPI で呼び出す前に、先にこのメソッドを呼び出す必要があります。 - **articleUrl** - Wix API メソッドのリファレンス記事の URL。 ## AI + MCPでサイト訪問者ができること - ビジネスの詳細(連絡先情報、ビジネス拠点、営業時間)を取得する - 提供されている商品 / サービスを見つける - サービスや予約を行う - 購入を開始し、死払い手続きを完了するためにサイトに誘導される - サイトを閲覧することなく質問し、関連する回答を得る ## メモ - MCP エンドポイントへの接続に認証は不要です - サイトでアクセス可能な公開情報のみ利用できます - コンテンツは常にリアルタイムで最新です - ツール更新を受け取るには、ツール更新通知を受領した際に tools/list の呼び出しを実装してください。
Acessibilidade
Content available without JavaScript
Main content starts at 20% of HTML
Page size: 1017KB
Descobribilidade IA
All major AI search bots allowed
Sitemap found
robots.txt exists
llms.txt exists and is valid
Dados Estruturados
JSON-LD found but basic types: WebSite, WebSite
All OG tags present
Meta description: 137 chars
Canonical URL present
lang="ja"
HTML Semântico
no <h1>
Has <main>
12 semantic elements, 192 divs (ratio: 6%)
20/23 images with meaningful alt text
Avg div depth: 10.3, max: 17
Eficiência de conteúdo
100% token reduction (HTML→Markdown)
Content ratio: 0.1% (586 content chars / 1041388 HTML bytes)
HTML size: 1017KB
130/585 elements with inline styles (22.2%)
{
"url": "https://www.ohkunoshimarabbitrescue.org/",
"timestamp": 1786513747115,
"fetch": {
"mode": "simple",
"timeMs": 1783,
"htmlSizeBytes": 1041388,
"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": "rabbit island ohkunoshima bunny rescue | rabbit",
"excerpt": "大久野島(Ohkunoshima)の「ウサギの楽園」と言われるイメージの裏には、過酷な現実がある。医療ケアを受けられず短命を終える野生化した家うさぎ達。その悲しいサイクルを断ち切ろうと、アニマルウェルフェアの精神を持って懸命に救護を続ける人々の取り組みに注目が集まっている。",
"byline": null,
"siteName": "Ohkunoshima Rabbit I",
"lang": "ja",
"contentLength": 586,
"metadata": {
"description": "大久野島(Ohkunoshima)の「ウサギの楽園」と言われるイメージの裏には、過酷な現実がある。医療ケアを受けられず短命を終える野生化した家うさぎ達。その悲しいサイクルを断ち切ろうと、アニマルウェルフェアの精神を持って懸命に救護を続ける人々の取り組みに注目が集まっている。",
"ogTitle": "rabbit island ohkunoshima bunny rescue | rabbit",
"ogDescription": "大久野島(Ohkunoshima)の「ウサギの楽園」と言われるイメージの裏には、過酷な現実がある。医療ケアを受けられず短命を終える野生化した家うさぎ達。その悲しいサイクルを断ち切ろうと、アニマルウェルフェアの精神を持って懸命に救護を続ける人々の取り組みに注目が集まっている。",
"ogImage": "https://static.wixstatic.com/media/11062b_55e4be1e75564866b6c28290f9a9d271%7Emv2.png/v1/fit/w_2500,h_1330,al_c/11062b_55e4be1e75564866b6c28290f9a9d271%7Emv2.png",
"ogType": "website",
"canonical": "https://www.ohkunoshimarabbitrescue.org",
"lang": "ja",
"schemas": [
{
"@context": "https://schema.org/",
"@type": "WebSite",
"url": "https://www.ohkunoshimarabbitrescue.org/",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://www.ohkunoshimarabbitrescue.org/popup-bzglk?q={search_term}"
},
"query-input": "required name=search_term"
}
},
{
"@context": "https://schema.org/",
"@type": "WebSite",
"name": "Ohkunoshima Rabbit I",
"url": "https://www.ohkunoshimarabbitrescue.org"
}
],
"robotsMeta": null,
"author": null,
"generator": "Wix.com Website Builder",
"markdownAlternateHref": null
}
},
"markdown": "大久野島のうさぎたちに何が起きているのか?\n\n広島県の大久野島は「うさぎの島」として知られ、多くの観光客が訪れています。 しかし、その裏でうさぎたちは過酷な環境にさらされ、命の危機に瀕しています。\n\n無責任なエサやりで栄養失調や誤嚥が多発\n\n観光客による抱っこや追いかけ回しで骨折・ストレス死\n\n2024年末には大勢のうさぎが虐他死させられた。\n\n車両事故による重傷・死亡\n\n意図的な虐待とみられる傷を負った個体も確認\n\n繁殖制限がないため、病気やケガが蔓延しやすい状態\n\nこうした状況の中、行政の対応は十分とは言えず、ボランティアや民間の支援に頼らざるを得ないのが現実です。\n\n島で病気やケガをしているうさぎに関しては、保護・救出については終生飼育と島に戻さないことを条件に環境省は黙認しています。 実際に、傷病うさぎたちが善意の救出者と里親のもとで治療を受け、家庭で幸せに暮らしています。\n\n私たちにできること\n\nうさぎに触れない・追いかけない・抱っこしない\n\n静かに距離を保ち、うさぎたちにストレスを与えない\n\n島の現実を広め、行政への働きかけを行う\n\n傷ついた子を見つけたら、信頼できる団体や保護主へ連絡を\n\nうさぎたちは観光の「道具」ではありません。 命ある動物として、尊重されるべき存在です。 あなたの行動が、うさぎたちの未来を変える力になります。\n",
"fullPageMarkdown": "rabbit island ohkunoshima bunny rescue | rabbit\n\ntop of page\n\n\n\n[大久野島](https://www.ohkunoshimarabbitrescue.org/)\n\n[うさぎ島の真実](https://www.ohkunoshimarabbitrescue.org/)\n\n[偽りのうさぎの楽園](https://www.ohkunoshimarabbitrescue.org/)\n\n\n\n\n\n- [](https://www.instagram.com/junkohiking/)\n\n- [](https://www.instagram.com/ohkunoshima_rabbit_rescue/)\n\n[ENGLISH SITE](https://junkoroberson.wixsite.com/rabbit-island)\n\n\n\n[](https://www.bunnycarejp.com/)\n\n- [](https://www.facebook.com/bunnyintokyo/)\n- [](https://www.instagram.com/bunnyintokyo)\n- [](https://x.com/bunnyintokyo)\n\nSearch\n\n### 蘭風ちゃんの物語\n\n大久野島で生活する蘭風ちゃんの助けを求める眼差しに皆が心を打たれました!\n\n\n\n2024年7月に広島県のうさぎ島として知られる大久野島より保護された耳に大きな腫瘍が出来ていた蘭風(らんぷ)は\n初めて公に寄付を募り、医療に掛けられ\nその後、家庭で暮らしたうさぎでした。\n\n\n\n- [](https://www.instagram.com/ohkunoshima_rabbit_rescue)\n\n## 私達の目標\n\n大久野島のうさぎたちは、いまこの瞬間も命の危機にさらされています。\n観光地の裏で、怪我や感染症、飢餓、多くの命が適切なケアを受けられないまま失われています。\n\n私たちは、現場で実際に緊急救助してきた記録と経験に基づき、見過ごされてきた現実を変えるために行動しています。しかし、この問題は一部の人間だけでは解決できません、皆さんのご協力が必要です。 \n\n\n\n- 緊急性の高いうさぎの保護・医療・リハビリ支援\n\n- 里親募集を通じた安全な移動と終生飼育の実現\n\n- 島の現状(怪我・病気、人災)の継続的な記録と公開\n\n- 不適切な餌やりを減らすための啓発活動\n\n- 行政・専門家との連携による根本的解決の模索\n\n\n\nこの活動は、寄付・支援・拡散によって支えられています。\n小さな行動でも、1つの命を救う力になります。\n\n- ご寄付\n\n- 情報をシェアする\n\n- 正しい知識を広める\n\n- 里親になる・つなぐ\n\n「かわいい」で終わらせない。命に責任を持つ社会へ。\n\n[大久野島](https://www.ohkunoshimarabbitrescue.org/blog)\n\n\n\n\n\n救出前の蘭ちゃん\n\n\n\n手術後の蘭ちゃん\n\n## 大久野島がうさぎの楽園??\n\n大久野島のうさぎたちに何が起きているのか?\n\n広島県の大久野島は「うさぎの島」として知られ、多くの観光客が訪れています。 しかし、その裏でうさぎたちは過酷な環境にさらされ、命の危機に瀕しています。\n\n無責任なエサやりで栄養失調や誤嚥が多発\n\n観光客による抱っこや追いかけ回しで骨折・ストレス死\n\n2024年末には大勢のうさぎが虐他死させられた。\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\nbottom of page\n",
"markdownStats": {
"images": 0,
"links": 0,
"tables": 0,
"codeBlocks": 0,
"headings": 0
},
"tokens": {
"htmlTokens": 346905,
"markdownTokens": 680,
"reduction": 346225,
"reductionPercent": 100
},
"score": {
"score": 73,
"grade": "C",
"rubricVersion": 2,
"dimensions": {
"accessibility": {
"score": 82,
"weight": 30,
"grade": "B",
"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 20% of HTML"
},
"reasonable_page_size": {
"score": 40,
"weight": 20,
"evidence": "plausible",
"details": "Page size: 1017KB"
}
}
},
"aiDiscoverability": {
"score": 70,
"weight": 25,
"grade": "C",
"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": 100,
"weight": 15,
"evidence": "plausible",
"details": "Sitemap found"
},
"has_robots_txt": {
"score": 100,
"weight": 10,
"evidence": "plausible",
"details": "robots.txt exists"
},
"has_llms_txt": {
"score": 100,
"weight": 10,
"evidence": "speculative",
"details": "llms.txt exists and is valid"
},
"has_content_signals": {
"score": 0,
"weight": 10,
"evidence": "speculative",
"details": "No Content-Signal found (robots.txt or HTTP headers)"
}
}
},
"structuredData": {
"score": 83,
"weight": 20,
"grade": "B",
"checks": {
"has_schema_org": {
"score": 50,
"weight": 35,
"evidence": "proven",
"details": "JSON-LD found but basic types: WebSite, WebSite"
},
"has_open_graph": {
"score": 100,
"weight": 20,
"evidence": "plausible",
"details": "All OG tags present"
},
"has_meta_description": {
"score": 100,
"weight": 20,
"evidence": "plausible",
"details": "Meta description: 137 chars"
},
"has_canonical_url": {
"score": 100,
"weight": 15,
"evidence": "plausible",
"details": "Canonical URL present"
},
"has_lang_attribute": {
"score": 100,
"weight": 10,
"evidence": "plausible",
"details": "lang=\"ja\""
}
}
},
"semanticHtml": {
"score": 68,
"weight": 15,
"grade": "C",
"checks": {
"proper_heading_hierarchy": {
"score": 70,
"weight": 30,
"evidence": "plausible",
"details": "no <h1>"
},
"uses_article_or_main": {
"score": 100,
"weight": 25,
"evidence": "plausible",
"details": "Has <main>"
},
"semantic_elements": {
"score": 20,
"weight": 20,
"evidence": "plausible",
"details": "12 semantic elements, 192 divs (ratio: 6%)"
},
"meaningful_alt_texts": {
"score": 87,
"weight": 15,
"evidence": "plausible",
"details": "20/23 images with meaningful alt text"
},
"low_div_nesting": {
"score": 47,
"weight": 10,
"evidence": "speculative",
"details": "Avg div depth: 10.3, max: 17"
}
}
},
"contentEfficiency": {
"score": 44,
"weight": 10,
"grade": "D",
"checks": {
"token_reduction_ratio": {
"score": 100,
"weight": 40,
"evidence": "speculative",
"details": "100% token reduction (HTML→Markdown)"
},
"content_to_noise_ratio": {
"score": 0,
"weight": 30,
"evidence": "speculative",
"details": "Content ratio: 0.1% (586 content chars / 1041388 HTML bytes)"
},
"reasonable_page_weight": {
"score": 20,
"weight": 20,
"evidence": "speculative",
"details": "HTML size: 1017KB"
},
"minimal_inline_styles": {
"score": 0,
"weight": 10,
"evidence": "speculative",
"details": "130/585 elements with inline styles (22.2%)"
}
}
}
}
},
"recommendations": [
{
"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",
"effort": "significant",
"estimatedImpact": 5,
"maxImpact": 5,
"evidence": "plausible",
"checkScore": 0,
"checkDetails": "No Markdown for Agents support detected"
},
{
"id": "reduce_page_size",
"priority": "high",
"category": "accessibility",
"titleKey": "rec.reduce_page_size.title",
"descriptionKey": "rec.reduce_page_size.description",
"howToKey": "rec.reduce_page_size.howto",
"effort": "moderate",
"estimatedImpact": 3.6,
"maxImpact": 6,
"evidence": "plausible",
"checkScore": 40,
"checkDetails": "Page size: 1017KB"
},
{
"id": "improve_content_ratio",
"priority": "high",
"category": "contentEfficiency",
"titleKey": "rec.improve_content_ratio.title",
"descriptionKey": "rec.improve_content_ratio.description",
"howToKey": "rec.improve_content_ratio.howto",
"effort": "moderate",
"estimatedImpact": 3,
"maxImpact": 3,
"evidence": "speculative",
"checkScore": 0,
"checkDetails": "Content ratio: 0.1% (586 content chars / 1041388 HTML bytes)"
},
{
"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",
"effort": "quick-win",
"estimatedImpact": 2.5,
"maxImpact": 2.5,
"evidence": "speculative",
"checkScore": 0,
"checkDetails": "No Content-Signal found (robots.txt or HTTP headers)"
},
{
"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",
"effort": "moderate",
"estimatedImpact": 2.4,
"maxImpact": 3,
"evidence": "plausible",
"checkScore": 20,
"checkDetails": "12 semantic elements, 192 divs (ratio: 6%)"
},
{
"id": "reduce_page_weight",
"priority": "medium",
"category": "contentEfficiency",
"titleKey": "rec.reduce_page_weight.title",
"descriptionKey": "rec.reduce_page_weight.description",
"howToKey": "rec.reduce_page_weight.howto",
"effort": "significant",
"estimatedImpact": 1.6,
"maxImpact": 2,
"evidence": "speculative",
"checkScore": 20,
"checkDetails": "HTML size: 1017KB"
},
{
"id": "fix_heading_hierarchy",
"priority": "medium",
"category": "semanticHtml",
"titleKey": "rec.fix_heading_hierarchy.title",
"descriptionKey": "rec.fix_heading_hierarchy.description",
"howToKey": "rec.fix_heading_hierarchy.howto",
"effort": "quick-win",
"estimatedImpact": 1.3,
"maxImpact": 4.5,
"evidence": "plausible",
"checkScore": 70,
"checkDetails": "no <h1>"
},
{
"id": "remove_inline_styles",
"priority": "medium",
"category": "contentEfficiency",
"titleKey": "rec.remove_inline_styles.title",
"descriptionKey": "rec.remove_inline_styles.description",
"howToKey": "rec.remove_inline_styles.howto",
"effort": "moderate",
"estimatedImpact": 1,
"maxImpact": 1,
"evidence": "speculative",
"checkScore": 0,
"checkDetails": "130/585 elements with inline styles (22.2%)"
},
{
"id": "reduce_div_nesting",
"priority": "low",
"category": "semanticHtml",
"titleKey": "rec.reduce_div_nesting.title",
"descriptionKey": "rec.reduce_div_nesting.description",
"howToKey": "rec.reduce_div_nesting.howto",
"effort": "significant",
"estimatedImpact": 0.8,
"maxImpact": 1.5,
"evidence": "speculative",
"checkScore": 47,
"checkDetails": "Avg div depth: 10.3, max: 17"
}
],
"llmsTxtPreview": "# Ohkunoshima Rabbit I\n\n> 大久野島(Ohkunoshima)の「ウサギの楽園」と言われるイメージの裏には、過酷な現実がある。医療ケアを受けられず短命を終える野生化した家うさぎ達。その悲しいサイクルを断ち切ろうと、アニマルウェルフェアの精神を持って懸命に救護を続ける人々の取り組みに注目が集まっている。\n\n## Main\n- [rabbit island ohkunoshima bunny rescue | rabbit](https://www.ohkunoshimarabbitrescue.org/): 大久野島(Ohkunoshima)の「ウサギの楽園」と言われるイメージの裏には、過酷な現実がある。医療ケアを受けられず短命を終える野生化した家うさぎ達。その悲しいサイクルを断ち切ろうと、アニマルウェルフェアの精神を持って懸命に救護を続ける…\n- [里親、一時預かり募集](https://www.ohkunoshimarabbitrescue.org/about-4)\n- [保護ウサギ一覧](https://www.ohkunoshimarabbitrescue.org/rescued-rabbits)\n- [寄付で支援する](https://www.ohkunoshimarabbitrescue.org/donation)\n- [病気と怪我](https://www.ohkunoshimarabbitrescue.org/sick-injured-rabbits)\n- [保護うさぎのその後](https://www.ohkunoshimarabbitrescue.org/adopted-rabbits)\n\n## Blog\n- [大久野島ブログ](https://www.ohkunoshimarabbitrescue.org/blog)\n\n## Support\n- [お問い合わせ](https://www.ohkunoshimarabbitrescue.org/contact-us)\n\n",
"llmsTxtExisting": "# Ohkunoshima Rabbit I\n> このサイトは、大久野島で傷病を負ったウサギの救出活動とその報告をまとめたものです。2024年7月から2026年6月にかけて、28匹のウサギが保護され、医療ケアを受け、新しい家庭へと繋がれました。活動資金は寄付によって賄われ、医療費や諸経費に充てられています。サイトでは、個々のウサギの救出経緯や現在の様子、そして島のウサギが直面する過酷な現実と、それに対する支援の必要性が訴えられています。\n\n## Homepage link\n- [home](https://www.ohkunoshimarabbitrescue.org/)\n\n## AI エージェントによるアクセス\n\nこのサイトは Wix で作成されており、エージェント AI によるアクセス用の MCP (Model Context Protocol) に対応しています。AI エージェントは直接接続して、公開中の最新のサイトコンテンツを取得できます。スクレイピングは不要です。\n\n- [**サイト MCP エンドポイント**](https://www.ohkunoshimarabbitrescue.org/_api/mcp)\n- [**Wix MCP ドキュメンテーション**](https://dev.wix.com/docs/develop-websites/articles/get-started/about-the-wix-site-mcp)\n\n## 利用可能な MCP ツール\n\n### GetBusinessDetails\nビジネスとサイトの詳細(時間帯(タイムゾーン)、メールアドレス、電話番号、住所など)を取得します。- パラメータは必要ありません。\n\n### SearchInSite\nサイト内の情報を検索します。\n- **searchTerm** - サイト内で検索する語句。\n\n### SearchSiteApiDocs\nこのサイトにインストールされている Wix ビジネスソリューションの API ドキュメントを取得し、AI クライアントに API の使用方法を通知します。商品とサービスのクエリにこのツールを使用します(SearchInSite の代わりに)。\n- **searchTerm** - サイトの API ドキュメント内で検索する語句。\n\n### GenerateVisitorToken\n新しいサイト訪問者セッションを作成し、サイト用のサイト訪問者アクセストークンを取得します。コンテキストに訪問者トークンがまだない場合は、CallWixSiteAPI リクエストを行う前に呼び出す必要があります。\n- パラメータは必要ありません。\n\n### CallWixSiteAPI\nサイト上で API メソッドを呼び出し、サイト訪問者に代わってアクション(サイトデータのクエリ、プライベート予約を行う、購入を開始するなど)を実行します。\n- **visitorToken** - サイト訪問者アクセストークン。利用できない場合は、最初に GenerateVisitorToken を使用します。\n- **url** - 呼び出す API メソッドの絶対 URL(例:https://www.wixapis.com/...)。SearchSiteApiDocs を使用して取得します。\n- **method** - API 呼び出しに使用する HTTP メソッド。\n- **body** - 有効な JSON 文字列としてのリクエストボディ。\n\n### ReadFullDocsArticle\nWix開発者ドキュメンテーションポータルから完全な記事を読み出します。\n- **articleUrl** - Wix 開発者ドキュメンテーションポータル内の記事の URL。\n\n### ReadFullDocsMethodSchema\nWix APIメソッドの完全なスキーマを読み出します。実際のメソッドを CallWixSiteAPI で呼び出す前に、先にこのメソッドを呼び出す必要があります。\n- **articleUrl** - Wix API メソッドのリファレンス記事の URL。\n\n## AI + MCPでサイト訪問者ができること\n\n- ビジネスの詳細(連絡先情報、ビジネス拠点、営業時間)を取得する\n- 提供されている商品 / サービスを見つける\n- サービスや予約を行う\n- 購入を開始し、死払い手続きを完了するためにサイトに誘導される\n- サイトを閲覧することなく質問し、関連する回答を得る\n\n## メモ\n\n- MCP エンドポイントへの接続に認証は不要です\n- サイトでアクセス可能な公開情報のみ利用できます\n- コンテンツは常にリアルタイムで最新です\n- ツール更新を受け取るには、ツール更新通知を受領した際に tools/list の呼び出しを実装してください。",
"emergingProtocols": {
"oauthProtectedResource": {
"exists": false,
"url": "https://www.ohkunoshimarabbitrescue.org/.well-known/oauth-protected-resource"
},
"oauthDiscovery": {
"exists": false,
"url": "https://www.ohkunoshimarabbitrescue.org/.well-known/oauth-authorization-server"
},
"mcpServerCard": {
"exists": false,
"url": "https://www.ohkunoshimarabbitrescue.org/.well-known/mcp/server-card.json",
"draft": true
},
"a2aAgentCard": {
"exists": false,
"url": "https://www.ohkunoshimarabbitrescue.org/.well-known/agent-card.json"
},
"apiCatalog": {
"exists": false,
"url": "https://www.ohkunoshimarabbitrescue.org/.well-known/api-catalog"
},
"agentSkills": {
"exists": false,
"url": "https://www.ohkunoshimarabbitrescue.org/.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": "fix_heading_hierarchy",
"title": "Fix heading hierarchy",
"description": "Your page has no <h1>. Every page needs exactly one <h1> as the main heading. Add it inside your <main> or <article>.",
"language": "html",
"code": "<h1>rabbit island ohkunoshima bunny rescue | rabbit</h1>",
"filename": "<main> or <article>"
},
{
"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\">"
}
]
}
]
}
Use a nossa API para obter isto programaticamente (em breve)
Este JSON é para uso interno — ao contrário dos ficheiros Markdown e llms.txt, não se destina a ser carregado no seu site. Guarde-o como referência para acompanhar a sua pontuação ao longo do tempo, partilhe-o com a sua equipa de desenvolvimento ou integre-o no seu pipeline CI/CD.
Partilhe os seus resultados
Ou peça a uma IA que o ajude a melhorar
Quer uma segunda opinião?
A Cloudflare também tem um scanner gratuito, e faz uma pergunta diferente. Eles pontuam o que o seu site publica para os agentes invocarem: MCP server cards, Agent Skills, catálogos de API, registos DNS. Nós pontuamos se um agente consegue chegar ao seu conteúdo, lê-lo e compreendê-lo. Um site pode ir bem num e mal no outro, por isso conte com dois números diferentes: são respostas a duas perguntas diferentes, e vale a pena conhecer ambas.
Analisar www.ohkunoshimarabbitrescue.org com a CloudflareIncorpore o seu badge
Adicione este badge ao seu site. Atualiza automaticamente quando a sua pontuação de prontidão para IA mudar.
<script src="https://agentready.md/badge.js" data-id="736cdfed-013e-4363-8944-9d996bb6db6d" data-domain="www.ohkunoshimarabbitrescue.org"></script>
[](https://agentready.md/pt/r/ohkunoshimarabbitrescue.org)
Em breve: Análise completa de domínio
Rastreie todo o seu domínio, gere llms.txt e monitorize a sua pontuação de prontidão para IA ao longo do tempo. Inscreva-se na lista de espera.
Está na lista! Notificá-lo-emos quando estiver disponível.