Verified AgentReady.md certificate
Issued sig: b7330ec50edd0471 Verify →

Analyzed URL

https://bursa.fiyatlari.pro/

Analyze another URL

AI-Ready Score

80 / B

Good

out of 100

Token Savings

HTML tokens 9123
Markdown tokens 905
Savings 90%

Score Breakdown

Semantic HTML 86/100
Content Efficiency 85/100
AI Discoverability 60/100
Structured Data 77/100
Accessibility 100/100

Emerging protocols

1 of 3 detected

Well-known endpoints AI agents look for. Detected here means an agent can discover and connect to your service automatically.

  • OAuth Discovery RFC 8414
    /.well-known/oauth-authorization-server
    • issuer: https://bursa.fiyatlari.pro
    • token_endpoint: https://bursa.fiyatlari.pro/oauth/token
    • 2 grant type(s)
  • MCP Server Card Anthropic
    /.well-known/mcp.json
  • A2A Agent Card Google
    /.well-known/agent.json

No Content-Signal directives found. These tell AI agents how they may use your content (search indexing, AI input, training data). The recommended location is robots.txt.

How to implement

Add Content-Signal to your robots.txt: User-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no. You can also add it as an HTTP header on markdown responses.

{\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});"}] }'>

Your site doesn't support Markdown for Agents. This Cloudflare standard lets AI agents request content in markdown format, reducing token usage by ~80%.

How to implement

Implement one or more: (1) Respond to Accept: text/markdown with markdown content. (2) Serve .md URLs (e.g., /page.md). (3) Add <link rel="alternate" type="text/markdown"> tags. (4) Add Link HTTP headers for markdown discovery.

{\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# "}] }'>

Your page relies heavily on <div> elements. Semantic elements like <section>, <nav>, <header>, <footer>, and <aside> provide meaningful structure for AI agents.

How to implement

Replace generic <div> containers with appropriate semantic elements. Use <section> for thematic groups, <nav> for navigation, <header>/<footer> for page/section headers and footers.

Missing or incomplete Open Graph tags. OG tags help AI agents (and social platforms) understand your page title, description, and image.

How to implement

Add og:title, og:description, and og:image meta tags to your page's <head>.

post_content), 30);\n $image = get_the_post_thumbnail_url($post, 'large') ?: 'https://yoursite.com/og-image.jpg';\n $url = get_permalink($post);\n printf('' . \"\\n\", esc_attr($title));\n printf('' . \"\\n\", esc_attr($desc));\n printf('' . \"\\n\", esc_url($image));\n printf('' . \"\\n\", esc_url($url));\n echo '' . \"\\n\";\n}, 5);"},{"id":"nextjs","label":"Next.js","language":"typescript","filename":"app/page.tsx","code":"// Next.js App Router — Metadata API\nimport type { Metadata } from 'next';\n\nexport const metadata: Metadata = {\n title: \"Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar\",\n description: \"Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!\",\n openGraph: {\n title: \"Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar\",\n description: \"Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!\",\n url: \"https://bursa.fiyatlari.pro/\",\n images: [\"https://yoursite.com/og-image.jpg\"],\n type: 'website',\n },\n};"}] }'>
Markdown tokens: 905
Güncel Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını karşılaştırın, ihtiyacınıza en doğru teklifi bulun.

[Yapay Zeka Chat](https://bursa.fiyatlari.pro/ai-chat)

## Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyatları Nasıl Bulunur?

Üç adımda Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını karşılaştırın ve en uygun fiyatı bulun.

1

### İlanları İnceleyin

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar ilanlarını kategori, bütçe ve özelliklere göre filtreleyin.

2

### Fiyatları Karşılaştırın

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını yan yana görün, güncel verilerle doğru kararı verin.

3

### En Uygun Fiyatı Bulun

Detaylı fiyat bilgisi alın, ihtiyacınıza en uygun Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatını bulun.

## Neden Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar için Fiyatları Pro?

Doğru Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatını bulmak hiç bu kadar kolay olmamıştı.

### Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyat Karşılaştırma

Farklı kaynaklardan Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını tek bir platformda karşılaştırın, bütçenize en uygun seçimi bulun.

### Doğrulanmış Veriler

Tüm Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyat verileri düzenli olarak güncellenir ve doğrulanır. Güvenilir bilgiye ulaşın.

### Ücretsiz Erişim

Tüm Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyat karşılaştırmalarına ücretsiz erişin. İhtiyacınız olan bilgiye anında ulaşın.

### Kategoriye Göre Ara

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını kategori, marka ve özelliklere göre filtreleyin.

### Güncel Fiyatlar

Güncel ve geçmiş Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını görün, fiyat trendlerini takip edin.

### Hızlı Destek

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatları hakkında sorularınız mı var? Destek ekibimiz size yardımcı olur.

## Son Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar İçerikleri

[İçerikler →](https://bursa.fiyatlari.pro/contents)

Henüz içerik bulunmuyor.

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar ilanlarını inceleyin veya detaylı fiyat karşılaştırmalarını keşfedin. Fiyatları Pro ile en uygun fiyatı bulun.
Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar                         [Skip to content](https://bursa.fiyatlari.pro/#main-content)

[B Bursa](https://bursa.fiyatlari.pro/)

TR EN ES

# Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar

 Ara

Güncel Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını karşılaştırın, ihtiyacınıza en doğru teklifi bulun.

[Yapay Zeka Chat](https://bursa.fiyatlari.pro/ai-chat)

## Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyatları Nasıl Bulunur?

Üç adımda Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını karşılaştırın ve en uygun fiyatı bulun.

1

### İlanları İnceleyin

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar ilanlarını kategori, bütçe ve özelliklere göre filtreleyin.

2

### Fiyatları Karşılaştırın

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını yan yana görün, güncel verilerle doğru kararı verin.

3

### En Uygun Fiyatı Bulun

Detaylı fiyat bilgisi alın, ihtiyacınıza en uygun Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatını bulun.

## Neden Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar için Fiyatları Pro?

Doğru Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatını bulmak hiç bu kadar kolay olmamıştı.

### Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyat Karşılaştırma

Farklı kaynaklardan Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını tek bir platformda karşılaştırın, bütçenize en uygun seçimi bulun.

### Doğrulanmış Veriler

Tüm Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyat verileri düzenli olarak güncellenir ve doğrulanır. Güvenilir bilgiye ulaşın.

### Ücretsiz Erişim

Tüm Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyat karşılaştırmalarına ücretsiz erişin. İhtiyacınız olan bilgiye anında ulaşın.

### Kategoriye Göre Ara

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını kategori, marka ve özelliklere göre filtreleyin.

### Güncel Fiyatlar

Güncel ve geçmiş Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını görün, fiyat trendlerini takip edin.

### Hızlı Destek

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatları hakkında sorularınız mı var? Destek ekibimiz size yardımcı olur.

## Son Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar İçerikleri[İçerikler →](https://bursa.fiyatlari.pro/contents)

Henüz içerik bulunmuyor.

## Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyatlarını mı Arıyorsunuz?

Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar ilanlarını inceleyin veya detaylı fiyat karşılaştırmalarını keşfedin. Fiyatları Pro ile en uygun fiyatı bulun.

[İçerikler](https://bursa.fiyatlari.pro/contents) [Hakkımızda](https://bursa.fiyatlari.pro/about)

[](https://bursa.fiyatlari.pro/ai-chat "Yapay Zeka Chat")

Upload this file as /index.md on your server so AI agents can access a clean version of your page. You can also configure Accept: text/markdown content negotiation to serve it automatically.

Our recommendation

Download llms.txt
# Bursa

> Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!

## Main
- [Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar](https://bursa.fiyatlari.pro/): Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!
- [Hakkımızda](https://bursa.fiyatlari.pro/about)
- [İlanlar](https://bursa.fiyatlari.pro/listings)
- [İçerikler](https://bursa.fiyatlari.pro/contents)
- [Yapay Zeka Chat](https://bursa.fiyatlari.pro/ai-chat)
- [KVKK Aydınlatma Metni](https://bursa.fiyatlari.pro/kvkk)
- [Profil](https://bursa.fiyatlari.pro/profile)

## Legal
- [Gizlilik Politikası](https://bursa.fiyatlari.pro/privacy-policy)
- [Kullanım Koşulları](https://bursa.fiyatlari.pro/terms)
- [İade ve İptal Politikası](https://bursa.fiyatlari.pro/refund-policy)
- [Çerez Politikası](https://bursa.fiyatlari.pro/cookie-policy)

## Support
- [İletişim](https://bursa.fiyatlari.pro/contact)

Full llms.txt requires domain-wide analysis (coming soon)

Upload this file to https://bursa.fiyatlari.pro/llms.txt at the root of your domain. AI agents like ChatGPT, Claude, and Perplexity check this file to understand your site structure.

This site already has a llms.txt file.

Valid format
# Bursa

> Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!

## Documentation

- [MCP Server Card](https://bursa.fiyatlari.pro/.well-known/mcp)
- [Agent Skills](https://bursa.fiyatlari.pro/.well-known/agent-skills)
- [API Catalog](https://bursa.fiyatlari.pro/.well-known/api-catalog)

## MCP Tools

- [search_contents](https://bursa.fiyatlari.pro/mcp): Search content entries for the current wildcard domain project (bursa). Searches by title, description or slug.

## Key Pages

- [Home](https://bursa.fiyatlari.pro/)
- [Listings](https://bursa.fiyatlari.pro/listings)
- [Contents](https://bursa.fiyatlari.pro/contents)
- [AI Chat](https://bursa.fiyatlari.pro/ai-chat)

## Sitemap

- [sitemap.xml](https://bursa.fiyatlari.pro/sitemap.xml)

Semantic HTML

Uses article or main element (100/100)

Has <main>

Proper heading hierarchy (85/100)

1 heading level skip(s)

Uses semantic HTML elements (49/100)

12 semantic elements, 70 divs (ratio: 15%)

Meaningful image alt texts (100/100)

No images found

Low div nesting depth (100/100)

Avg div depth: 2.9, max: 6

Content Efficiency

Good token reduction ratio (100/100)

90% token reduction (HTML→Markdown)

Good content-to-noise ratio (50/100)

Content ratio: 10.9% (3062 content chars / 28001 HTML bytes)

Minimal inline styles (100/100)

1/251 elements with inline styles (0.4%)

Reasonable page weight (100/100)

HTML size: 27KB

AI Discoverability

Has llms.txt file (100/100)

llms.txt exists and is valid

Has robots.txt file (100/100)

robots.txt exists

Robots.txt allows AI bots (100/100)

All major AI bots allowed

Has sitemap.xml (100/100)

Sitemap found

Markdown for Agents support (20/100) Application
&#10007; Accept: text/markdown &#10007; .md URL &#10003; <link> tag &#10007; Link header
Has Content-Signal (robots.txt or HTTP headers) (0/100)
&#10003; robots.txt &#10003; HTTP header &#10007; Policy

Structured Data

Has Schema.org / JSON-LD (50/100)

JSON-LD found but basic types: WebSite

Has Open Graph tags (67/100)

2/3 OG tags present

Has meta description (100/100)

Meta description: 80 chars

Has canonical URL (100/100)

Canonical URL present

Has lang attribute (100/100)

lang="tr"

Accessibility

Content available without JavaScript (100/100)

Content available without JavaScript

Reasonable page size (100/100)

Page size: 27KB

Content appears early in HTML (100/100)

Main content starts at 18% of HTML

{
  "url": "https://bursa.fiyatlari.pro/",
  "timestamp": 1776716430876,
  "fetch": {
    "mode": "simple",
    "timeMs": 199,
    "htmlSizeBytes": 28001,
    "supportsMarkdown": false,
    "markdownAgents": {
      "contentNegotiation": false,
      "mdUrl": {
        "found": false,
        "url": null
      },
      "linkTag": {
        "found": true,
        "url": "/llms-full.txt"
      },
      "linkHeader": {
        "found": false,
        "url": null
      },
      "responseHeaders": {
        "contentSignal": null,
        "xMarkdownTokens": null,
        "vary": null
      },
      "frontmatter": {
        "present": false,
        "fields": [],
        "level": "none"
      },
      "level": "application"
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar",
    "excerpt": "Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!",
    "byline": null,
    "siteName": "Bursa",
    "lang": "tr",
    "contentLength": 3062,
    "metadata": {
      "description": "Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!",
      "ogTitle": "Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar",
      "ogDescription": "Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!",
      "ogImage": null,
      "ogType": "website",
      "canonical": "https://bursa.fiyatlari.pro/",
      "lang": "tr",
      "schemas": [
        {
          "@context": "https://schema.org",
          "@type": "WebSite",
          "name": "Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar",
          "url": "https://bursa.fiyatlari.pro",
          "description": "Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!",
          "inLanguage": "tr"
        }
      ],
      "robotsMeta": "index, follow",
      "author": null,
      "generator": null,
      "markdownAlternateHref": "/llms-full.txt"
    }
  },
  "markdown": "Güncel Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını karşılaştırın, ihtiyacınıza en doğru teklifi bulun.\n\n[Yapay Zeka Chat](https://bursa.fiyatlari.pro/ai-chat)\n\n## Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyatları Nasıl Bulunur?\n\nÜç adımda Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını karşılaştırın ve en uygun fiyatı bulun.\n\n1\n\n### İlanları İnceleyin\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar ilanlarını kategori, bütçe ve özelliklere göre filtreleyin.\n\n2\n\n### Fiyatları Karşılaştırın\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını yan yana görün, güncel verilerle doğru kararı verin.\n\n3\n\n### En Uygun Fiyatı Bulun\n\nDetaylı fiyat bilgisi alın, ihtiyacınıza en uygun Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatını bulun.\n\n## Neden Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar için Fiyatları Pro?\n\nDoğru Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatını bulmak hiç bu kadar kolay olmamıştı.\n\n### Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyat Karşılaştırma\n\nFarklı kaynaklardan Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını tek bir platformda karşılaştırın, bütçenize en uygun seçimi bulun.\n\n### Doğrulanmış Veriler\n\nTüm Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyat verileri düzenli olarak güncellenir ve doğrulanır. Güvenilir bilgiye ulaşın.\n\n### Ücretsiz Erişim\n\nTüm Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyat karşılaştırmalarına ücretsiz erişin. İhtiyacınız olan bilgiye anında ulaşın.\n\n### Kategoriye Göre Ara\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını kategori, marka ve özelliklere göre filtreleyin.\n\n### Güncel Fiyatlar\n\nGüncel ve geçmiş Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını görün, fiyat trendlerini takip edin.\n\n### Hızlı Destek\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatları hakkında sorularınız mı var? Destek ekibimiz size yardımcı olur.\n\n## Son Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar İçerikleri\n\n[İçerikler →](https://bursa.fiyatlari.pro/contents)\n\nHenüz içerik bulunmuyor.\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar ilanlarını inceleyin veya detaylı fiyat karşılaştırmalarını keşfedin. Fiyatları Pro ile en uygun fiyatı bulun.\n",
  "fullPageMarkdown": "Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar                         [Skip to content](https://bursa.fiyatlari.pro/#main-content)\n\n[B Bursa](https://bursa.fiyatlari.pro/)\n\nTR EN ES\n\n# Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar\n\n Ara\n\nGüncel Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını karşılaştırın, ihtiyacınıza en doğru teklifi bulun.\n\n[Yapay Zeka Chat](https://bursa.fiyatlari.pro/ai-chat)\n\n## Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyatları Nasıl Bulunur?\n\nÜç adımda Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını karşılaştırın ve en uygun fiyatı bulun.\n\n1\n\n### İlanları İnceleyin\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar ilanlarını kategori, bütçe ve özelliklere göre filtreleyin.\n\n2\n\n### Fiyatları Karşılaştırın\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını yan yana görün, güncel verilerle doğru kararı verin.\n\n3\n\n### En Uygun Fiyatı Bulun\n\nDetaylı fiyat bilgisi alın, ihtiyacınıza en uygun Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatını bulun.\n\n## Neden Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar için Fiyatları Pro?\n\nDoğru Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatını bulmak hiç bu kadar kolay olmamıştı.\n\n### Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyat Karşılaştırma\n\nFarklı kaynaklardan Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını tek bir platformda karşılaştırın, bütçenize en uygun seçimi bulun.\n\n### Doğrulanmış Veriler\n\nTüm Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyat verileri düzenli olarak güncellenir ve doğrulanır. Güvenilir bilgiye ulaşın.\n\n### Ücretsiz Erişim\n\nTüm Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyat karşılaştırmalarına ücretsiz erişin. İhtiyacınız olan bilgiye anında ulaşın.\n\n### Kategoriye Göre Ara\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını kategori, marka ve özelliklere göre filtreleyin.\n\n### Güncel Fiyatlar\n\nGüncel ve geçmiş Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatlarını görün, fiyat trendlerini takip edin.\n\n### Hızlı Destek\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar fiyatları hakkında sorularınız mı var? Destek ekibimiz size yardımcı olur.\n\n## Son Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar İçerikleri[İçerikler →](https://bursa.fiyatlari.pro/contents)\n\nHenüz içerik bulunmuyor.\n\n## Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar Fiyatlarını mı Arıyorsunuz?\n\nBursa Fiyat Karşılaştırma ve En Uygun Fiyatlar ilanlarını inceleyin veya detaylı fiyat karşılaştırmalarını keşfedin. Fiyatları Pro ile en uygun fiyatı bulun.\n\n[İçerikler](https://bursa.fiyatlari.pro/contents) [Hakkımızda](https://bursa.fiyatlari.pro/about)\n\n[](https://bursa.fiyatlari.pro/ai-chat \"Yapay Zeka Chat\")\n",
  "markdownStats": {
    "images": 0,
    "links": 2,
    "tables": 0,
    "codeBlocks": 0,
    "headings": 12
  },
  "tokens": {
    "htmlTokens": 9123,
    "markdownTokens": 905,
    "reduction": 8218,
    "reductionPercent": 90
  },
  "score": {
    "score": 80,
    "grade": "B",
    "dimensions": {
      "semanticHtml": {
        "score": 86,
        "weight": 20,
        "grade": "B",
        "checks": {
          "uses_article_or_main": {
            "score": 100,
            "weight": 20,
            "details": "Has <main>"
          },
          "proper_heading_hierarchy": {
            "score": 85,
            "weight": 25,
            "details": "1 heading level skip(s)"
          },
          "semantic_elements": {
            "score": 49,
            "weight": 20,
            "details": "12 semantic elements, 70 divs (ratio: 15%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "details": "No images found"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 20,
            "details": "Avg div depth: 2.9, max: 6"
          }
        }
      },
      "contentEfficiency": {
        "score": 85,
        "weight": 25,
        "grade": "B",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "details": "90% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 50,
            "weight": 30,
            "details": "Content ratio: 10.9% (3062 content chars / 28001 HTML bytes)"
          },
          "minimal_inline_styles": {
            "score": 100,
            "weight": 15,
            "details": "1/251 elements with inline styles (0.4%)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 15,
            "details": "HTML size: 27KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 60,
        "weight": 25,
        "grade": "C",
        "checks": {
          "has_llms_txt": {
            "score": 100,
            "weight": 20,
            "details": "llms.txt exists and is valid"
          },
          "has_robots_txt": {
            "score": 100,
            "weight": 10,
            "details": "robots.txt exists"
          },
          "robots_allows_ai_bots": {
            "score": 100,
            "weight": 15,
            "details": "All major AI bots allowed"
          },
          "has_sitemap": {
            "score": 100,
            "weight": 10,
            "details": "Sitemap found"
          },
          "supports_markdown_negotiation": {
            "score": 20,
            "weight": 25,
            "details": "Application level — <link> tag"
          },
          "has_content_signals": {
            "score": 0,
            "weight": 20,
            "details": "No Content-Signal found (robots.txt or HTTP headers)"
          }
        }
      },
      "structuredData": {
        "score": 77,
        "weight": 15,
        "grade": "B",
        "checks": {
          "has_schema_org": {
            "score": 50,
            "weight": 30,
            "details": "JSON-LD found but basic types: WebSite"
          },
          "has_open_graph": {
            "score": 67,
            "weight": 25,
            "details": "2/3 OG tags present"
          },
          "has_meta_description": {
            "score": 100,
            "weight": 20,
            "details": "Meta description: 80 chars"
          },
          "has_canonical_url": {
            "score": 100,
            "weight": 15,
            "details": "Canonical URL present"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "details": "lang=\"tr\""
          }
        }
      },
      "accessibility": {
        "score": 100,
        "weight": 15,
        "grade": "A",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 40,
            "details": "Content available without JavaScript"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 30,
            "details": "Page size: 27KB"
          },
          "fast_content_position": {
            "score": 100,
            "weight": 30,
            "details": "Main content starts at 18% of HTML"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "id": "add_content_signals",
      "priority": "critical",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_content_signals.title",
      "descriptionKey": "rec.add_content_signals.description",
      "howToKey": "rec.add_content_signals.howto",
      "effort": "quick-win",
      "estimatedImpact": 5,
      "checkScore": 0,
      "checkDetails": "No Content-Signal found (robots.txt or HTTP headers)"
    },
    {
      "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": 20,
      "checkDetails": "Application level — <link> tag"
    },
    {
      "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": 49,
      "checkDetails": "12 semantic elements, 70 divs (ratio: 15%)"
    },
    {
      "id": "add_open_graph",
      "priority": "medium",
      "category": "structuredData",
      "titleKey": "rec.add_open_graph.title",
      "descriptionKey": "rec.add_open_graph.description",
      "howToKey": "rec.add_open_graph.howto",
      "effort": "quick-win",
      "estimatedImpact": 4,
      "checkScore": 67,
      "checkDetails": "2/3 OG tags present"
    }
  ],
  "llmsTxtPreview": "# Bursa\n\n> Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!\n\n## Main\n- [Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar](https://bursa.fiyatlari.pro/): Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!\n- [Hakkımızda](https://bursa.fiyatlari.pro/about)\n- [İlanlar](https://bursa.fiyatlari.pro/listings)\n- [İçerikler](https://bursa.fiyatlari.pro/contents)\n- [Yapay Zeka Chat](https://bursa.fiyatlari.pro/ai-chat)\n- [KVKK Aydınlatma Metni](https://bursa.fiyatlari.pro/kvkk)\n- [Profil](https://bursa.fiyatlari.pro/profile)\n\n## Legal\n- [Gizlilik Politikası](https://bursa.fiyatlari.pro/privacy-policy)\n- [Kullanım Koşulları](https://bursa.fiyatlari.pro/terms)\n- [İade ve İptal Politikası](https://bursa.fiyatlari.pro/refund-policy)\n- [Çerez Politikası](https://bursa.fiyatlari.pro/cookie-policy)\n\n## Support\n- [İletişim](https://bursa.fiyatlari.pro/contact)\n\n",
  "llmsTxtExisting": "# Bursa\n\n> Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!\n\n## Documentation\n\n- [MCP Server Card](https://bursa.fiyatlari.pro/.well-known/mcp)\n- [Agent Skills](https://bursa.fiyatlari.pro/.well-known/agent-skills)\n- [API Catalog](https://bursa.fiyatlari.pro/.well-known/api-catalog)\n\n## MCP Tools\n\n- [search_contents](https://bursa.fiyatlari.pro/mcp): Search content entries for the current wildcard domain project (bursa). Searches by title, description or slug.\n\n## Key Pages\n\n- [Home](https://bursa.fiyatlari.pro/)\n- [Listings](https://bursa.fiyatlari.pro/listings)\n- [Contents](https://bursa.fiyatlari.pro/contents)\n- [AI Chat](https://bursa.fiyatlari.pro/ai-chat)\n\n## Sitemap\n\n- [sitemap.xml](https://bursa.fiyatlari.pro/sitemap.xml)",
  "emergingProtocols": {
    "oauthDiscovery": {
      "exists": true,
      "url": "https://bursa.fiyatlari.pro/.well-known/oauth-authorization-server",
      "issuer": "https://bursa.fiyatlari.pro",
      "authorizationEndpoint": "https://bursa.fiyatlari.pro/oauth/authorize",
      "tokenEndpoint": "https://bursa.fiyatlari.pro/oauth/token",
      "grantTypesSupported": [
        "authorization_code",
        "client_credentials"
      ],
      "scopesSupported": [
        "mcp:read",
        "mcp:tools"
      ]
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://bursa.fiyatlari.pro/.well-known/mcp.json"
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://bursa.fiyatlari.pro/.well-known/agent.json"
    },
    "count": 1
  },
  "snippets": [
    {
      "id": "add_open_graph",
      "title": "Add missing Open Graph tags",
      "description": "Open Graph tags control how your page looks when shared on social media and how AI platforms preview your URL in answers.",
      "language": "html",
      "code": "<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://bursa.fiyatlari.pro/\">\n<meta property=\"og:type\" content=\"website\">",
      "filename": "<head>",
      "stacks": [
        {
          "id": "html",
          "label": "HTML <head>",
          "language": "html",
          "filename": "<head>",
          "code": "<meta property=\"og:image\" content=\"https://yoursite.com/og-image.jpg\">\n<meta property=\"og:url\" content=\"https://bursa.fiyatlari.pro/\">\n<meta property=\"og:type\" content=\"website\">"
        },
        {
          "id": "wordpress",
          "label": "WordPress",
          "language": "php",
          "filename": "functions.php",
          "code": "<?php\n// Quick Open Graph tags without a plugin (skip if Yoast / Rank Math is active)\nadd_action('wp_head', function () {\n    if (!is_singular()) return;\n    $post = get_queried_object();\n    $title = get_the_title($post);\n    $desc  = get_the_excerpt($post) ?: wp_trim_words(strip_tags($post->post_content), 30);\n    $image = get_the_post_thumbnail_url($post, 'large') ?: 'https://yoursite.com/og-image.jpg';\n    $url   = get_permalink($post);\n    printf('<meta property=\"og:title\" content=\"%s\">' . \"\\n\", esc_attr($title));\n    printf('<meta property=\"og:description\" content=\"%s\">' . \"\\n\", esc_attr($desc));\n    printf('<meta property=\"og:image\" content=\"%s\">' . \"\\n\", esc_url($image));\n    printf('<meta property=\"og:url\" content=\"%s\">' . \"\\n\", esc_url($url));\n    echo '<meta property=\"og:type\" content=\"article\">' . \"\\n\";\n}, 5);"
        },
        {
          "id": "nextjs",
          "label": "Next.js",
          "language": "typescript",
          "filename": "app/page.tsx",
          "code": "// Next.js App Router — Metadata API\nimport type { Metadata } from 'next';\n\nexport const metadata: Metadata = {\n  title: \"Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar\",\n  description: \"Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!\",\n  openGraph: {\n    title: \"Bursa Fiyat Karşılaştırma ve En Uygun Fiyatlar\",\n    description: \"Bursa ürünleri ve hizmetleri için en iyi fiyatları karşılaştırın, tasarruf edin!\",\n    url: \"https://bursa.fiyatlari.pro/\",\n    images: [\"https://yoursite.com/og-image.jpg\"],\n    type: 'website',\n  },\n};"
        }
      ]
    },
    {
      "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 our API to get this programmatically (coming soon)

This JSON is for internal use — unlike the Markdown and llms.txt files, it's not meant to be uploaded to your site. Save it as a baseline to track your score over time, share it with your dev team, or integrate it into your CI/CD pipeline.

Share your results

Twitter LinkedIn

Embed your badge

Add this badge to your site. It updates automatically as your AI-readiness score changes.

AgentReady.md score for bursa.fiyatlari.pro
Script Recommended
<script src="https://agentready.md/badge.js" data-id="a2a81f4c-3a3d-4e85-9ce3-8b8803f78ab5" data-domain="bursa.fiyatlari.pro"></script>
Markdown
[![AgentReady.md score for bursa.fiyatlari.pro](https://agentready.md/badge/bursa.fiyatlari.pro.svg)](https://agentready.md/r/a2a81f4c-3a3d-4e85-9ce3-8b8803f78ab5)

Coming soon: Full Domain Analysis

Crawl your entire domain, generate llms.txt, and monitor your AI-readiness score over time. Join the waitlist to be notified.

You're on the list! We'll notify you when it launches.