분석된 URL
https://www.ohkunoshimarabbitrescue.org/
측정: 3주 전
AI-Ready 점수
보통
/ 100
토큰 절감량
점수 상세
신흥 프로토콜
6개 중 0개 감지AI 에이전트가 찾는 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 Markdown for Agents support detected
사이트가 Markdown for Agents를 지원하지 않습니다. 이 Cloudflare 표준을 통해 AI 에이전트가 마크다운 형식으로 콘텐츠를 요청할 수 있으며, 토큰 사용량을 ~80% 줄일 수 있습니다.
구현 방법
다음 중 하나 이상을 구현하세요: (1) Accept: text/markdown에 마크다운 콘텐츠로 응답. (2) .md URL 제공 (예: /page.md). (3) <link rel="alternate" type="text/markdown"> 태그 추가. (4) 마크다운 발견을 위한 Link HTTP 헤더 추가.
측정 결과 Page size: 1017KB
페이지가 권장 크기보다 큽니다. 큰 페이지는 AI 에이전트에게 처리가 더 느리고 비용이 더 많이 듭니다.
구현 방법
HTML 최소화, 비핵심 스크립트 지연 로딩, 사용하지 않는 CSS 제거로 페이지 크기를 최적화하세요.
측정 결과 Content ratio: 0.1% (586 content chars / 1041388 HTML bytes)
페이지의 실제 콘텐츠와 전체 HTML의 비율이 낮습니다. 페이지 무게의 상당 부분이 콘텐츠가 아닌 마크업, 스크립트, 스타일입니다.
구현 방법
CSS를 외부 스타일시트로 이동하고, 인라인 스타일을 제거하고, JavaScript를 최소화하고, HTML이 콘텐츠 구조에 집중하도록 하세요.
측정 결과 No Content-Signal found (robots.txt or HTTP headers)
Content-Signal 지시어가 발견되지 않았습니다. 이는 AI 에이전트에게 콘텐츠 사용 방법(검색 색인, AI 입력, 훈련 데이터)을 알려줍니다. 권장 위치는 robots.txt입니다.
구현 방법
robots.txt에 Content-Signal을 추가하세요: User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. 마크다운 응답의 HTTP 헤더로도 추가할 수 있습니다.
측정 결과 12 semantic elements, 192 divs (ratio: 6%)
페이지가 <div> 요소에 크게 의존합니다. <section>, <nav>, <header>, <footer>, <aside> 같은 시맨틱 요소는 AI 에이전트에게 의미 있는 구조를 제공합니다.
구현 방법
범용 <div> 컨테이너를 적절한 시맨틱 요소로 교체하세요. 주제별 그룹에는 <section>, 내비게이션에는 <nav>, 페이지/섹션 헤더와 푸터에는 <header>/<footer>를 사용하세요.
측정 결과 HTML size: 1017KB
HTML 페이지가 권장 수준보다 무겁습니다. 큰 페이지는 AI 에이전트의 처리에 더 많은 시간과 토큰이 필요합니다.
구현 방법
사용하지 않는 코드 제거, HTML 최소화, 비핵심 콘텐츠 지연 로딩으로 HTML 크기를 줄이세요.
측정 결과 no <h1>
제목 구조에 문제가 있습니다 (레벨 건너뛰기 또는 다중 h1 태그). 깔끔한 계층 구조는 AI 에이전트가 콘텐츠 구성을 이해하는 데 도움을 줍니다.
구현 방법
페이지당 정확히 하나의 <h1>을 유지하고, 제목이 순차적 순서를 따르도록 하세요: h1 > h2 > h3. 레벨을 건너뛰지 마세요 (예: h1에서 바로 h3).
측정 결과 130/585 elements with inline styles (22.2%)
많은 요소에 인라인 스타일 속성이 있습니다. 이는 콘텐츠를 추출하는 AI 에이전트에게 잡음이 됩니다.
구현 방법
모든 인라인 스타일을 스타일시트의 CSS 클래스로 이동하세요. 많은 고유 스타일이 필요하면 Tailwind 같은 유틸리티 CSS 프레임워크를 사용하세요.
측정 결과 Avg div depth: 10.3, max: 17
페이지에 깊이 중첩된 <div> 요소가 있습니다. 깊은 중첩은 잡음을 추가하고 AI 에이전트의 콘텐츠 추출을 어렵게 합니다.
구현 방법
불필요한 래퍼 div를 제거하여 HTML 구조를 단순화하세요. 중첩 컨테이너 div 대신 CSS Grid 또는 Flexbox를 레이아웃에 사용하세요.
大久野島のうさぎたちに何が起きているのか? 広島県の大久野島は「うさぎの島」として知られ、多くの観光客が訪れています。 しかし、その裏でうさぎたちは過酷な環境にさらされ、命の危機に瀕しています。 無責任なエサやりで栄養失調や誤嚥が多発 観光客による抱っこや追いかけ回しで骨折・ストレス死 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
이 파일을 서버의 /index.md에 업로드하여 AI 에이전트가 페이지의 깔끔한 버전에 접근할 수 있게 하세요. Accept: text/markdown 콘텐츠 협상을 설정하여 자동으로 제공할 수도 있습니다.
권장 내용
# 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)
전체 llms.txt는 도메인 전체 분석이 필요합니다 (곧 출시)
이 파일을 도메인 루트의 https://www.ohkunoshimarabbitrescue.org/llms.txt에 업로드하세요. ChatGPT, Claude, Perplexity 등의 AI 에이전트가 이 파일을 확인하여 사이트 구조를 파악합니다.
이 사이트에는 이미 llms.txt 파일이 있습니다.
유효한 형식# 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 の呼び出しを実装してください。
접근성
Content available without JavaScript
Main content starts at 20% of HTML
Page size: 1017KB
AI 발견 가능성
All major AI search bots allowed
Sitemap found
robots.txt exists
llms.txt exists and is valid
구조화 데이터
JSON-LD found but basic types: WebSite, WebSite
All OG tags present
Meta description: 137 chars
Canonical URL present
lang="ja"
시맨틱 HTML
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
콘텐츠 효율성
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\">"
}
]
}
]
}
API를 사용하여 프로그래밍 방식으로 가져올 수 있습니다 (곧 출시)
이 JSON은 내부용입니다 — Markdown 및 llms.txt 파일과 달리 사이트에 업로드하기 위한 것이 아닙니다. 시간에 따른 점수 추적을 위한 기준값으로 저장하거나, 개발팀과 공유하거나, CI/CD 파이프라인에 통합하세요.
결과 공유
또는 AI에게 개선 방법을 물어보세요
다른 의견도 들어보시겠어요?
Cloudflare에도 무료 스캐너가 있는데, 던지는 질문이 다릅니다. 그쪽은 에이전트가 호출할 수 있도록 사이트가 게시한 것(MCP 서버 카드, Agent Skills, API 카탈로그, DNS 레코드)을 채점합니다. 저희는 에이전트가 콘텐츠에 도달해 읽고 이해할 수 있는지를 채점합니다. 한쪽은 좋고 다른 쪽은 나쁠 수 있으니 두 점수가 다른 것은 당연합니다. 서로 다른 질문에 대한 답이고, 둘 다 알아둘 가치가 있습니다.
Cloudflare로 www.ohkunoshimarabbitrescue.org 검사하기배지 삽입
이 배지를 사이트에 추가하세요. AI 준비도 점수가 변경되면 자동으로 업데이트됩니다.
<script src="https://agentready.md/badge.js" data-id="736cdfed-013e-4363-8944-9d996bb6db6d" data-domain="www.ohkunoshimarabbitrescue.org"></script>
[](https://agentready.md/ko/r/ohkunoshimarabbitrescue.org)
곧 출시: 전체 도메인 분석
전체 도메인을 크롤링하고, llms.txt를 생성하고, AI 준비도 점수를 시간에 따라 모니터링하세요. 대기자 명단에 등록하여 알림을 받으세요.
명단에 등록되었습니다! 서비스 출시 시 알려드리겠습니다.