---
title: "تزریق لحظه‌ای Edge JSON‑LD برای داده‌های ساختاری چند‌زبانه"
---

# تزریق لحظه‌ای Edge JSON‑LD برای داده‌های ساختاری چند‌زبانه

موتورهای جستجو به‌طور فزاینده‌ای برای درک زمینهٔ صفحه به داده‌های ساختاری متکی هستند و سرعت تحویل این داده‌ها می‌تواند به‌طور مستقیم بر پتانسیل رتبه‌بندی تاثیر بگذارد. برای وب‌سایت‌های جهانی که ده‌ها نسخهٔ زبانی دارند، مدل سنتی تعبیهٔ بلوک‌های ثابت JSON‑LD در زمان ساخت، تأخیر، تکرار و بار نگهداری بالایی ایجاد می‌کند. با جابه‌جایی تولید و اعتبارسنجی JSON‑LD به لبهٔ شبکه، می‌توانید **اسکیماهای لحظه‌ای و آگاه از زبان** را هم به خزنده‌ها و هم به کاربران ارائه دهید و اطمینان حاصل کنید که هر نسخهٔ زبانی صفحه دقیق‌ترین میکرو‑داده‌ها را بدون قربانی کردن عملکرد نمایش می‌دهد.

## چرا داده‌های ساختاری میزبانی‌شده در لبه مهم است

هنگامی که یک درخواست از مرورگر بازدیدکننده به سرور مبدا می‌رسد، هر میلی‌ثانیه مهم است. **شبکه‌های تحویل محتوا (CDN)** قرارگرفته در لبه می‌توانند پاسخ‌های HTTP را قبل از رسیدن به کلاینت رهگیری و اصلاح کنند. این قابلیت امکان زیر را می‌دهد:

* افزودن یا جایگزینی بلوک‌های JSON‑LD بر پایهٔ زبان تشخیص‑یافته.
* اعتبارسنجی اسکیما نسبت به آخرین تعاریف [Schema.org] به‑صورت لحظه‌ای.
* بهره‌برداری از مدل‌های **هوش مصنوعی (AI)** برای غنی‌سازی موجودیت‌ها با ویژگی‌های زمینه‌ای مانند ساعت کاری محلی، ارز یا کلمات کلیدی متناسب فرهنگی.

نتیجه یک تجربه **بدون تأخیر** برای کاربران انسانی و خزنده‌های خودکار است که معیارهای بارگذاری صفحه—یکی از عوامل شناخته‌شدهٔ رتبه‌بندی—را بهبود می‌بخشد و خطر ارائه داده‌های ساختاری منقضی یا نادرست را کاهش می‌دهد.

## اجزای اصلی یک خط لولهٔ تزریق لحظه‌ای در لبه

خط لوله از سه مرحلهٔ منطقی تشکیل می‌شود: تشخیص، تولید و اعتبارسنجی.

### تشخیص locale

در لبه، هدر `Accept-Language` درخواست بررسی می‌شود و با یک جدول نگاشتی چند‌زبانه مطابقت‌سریع پیدا می‌کند که کد زبان هدف (مثلاً `en`، `fr`، `de`) را تعیین می‌کند. اگر این هدر موجود نباشد، به زبان پیش‌فرض سایت باز می‌گردد.

### تولید JSON‑LD

یک تابع سرورلس سبک، نوشته شده به‌صورت JavaScript یا Rust، مدل محتوای پایه را از یک ذخیره‌ساز کلید‑مقدار می‌کشد. سپس فیلدهای مخصوص زبان—مانند `name`، `description` و `offers.priceCurrency`—را در قالب **JSON‑LD** ادغام می‌کند. برای غنی‌سازی مبتنی بر هوش مصنوعی، ممکن است یک **Large Language Model (LLM)** فشرده برای ترکیب مترادف‌ها یا اصطلاحات محلی فراخوانی شود.

### اعتبارسنجی لحظه‌ای

پیش از خروج پاسخ از لبه، JSON‑LD تولیدشده از طریق یک اعتبارسنجی‌کنندهٔ JSON‑Schema که به نسخهٔ فعلی [Schema.org] اشاره دارد، عبور می‌کند. در صورت بروز خطا، به اسکیما ایمن قبلاً اعتبارسنجی‑شده بازمی‌گردد تا موتورهای جستجو هرگز با نشانه‌شدهٔ خراب مواجه نشوند.

## پیاده‌سازی Edge JSON‑LD با Cloudflare Workers (مثال)

در ادامه یک مثال مختصر از نحوهٔ انجام تشخیص locale، تولید JSON‑LD و اعتبارسنجی آن در یک Cloudflare Worker آورده شده است. کد از کتابخانهٔ `jsonschema` برای اعتبارسنجی و یک نقطهٔ انتهایی کوچک LLM برای غنی‌سازی زمینه‌ای استفاده می‌کند.

```javascript
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const url = new URL(request.url)
  const lang = request.headers.get('Accept-Language')?.split(',')[0] || 'en'
  const baseContent = await KV.get(`content:${url.pathname}`, { type: 'json' })
  const localized = await enrichWithLLM(baseContent, lang)

  const schema = await fetch('https://schema.org/version/latest/schema.json').then(r => r.json())
  const validator = new jsonschema.Validator()
  const result = validator.validate(localized.jsonld, schema)

  let jsonldBlock = result.errors.length ? baseContent.fallbackJsonld : localized.jsonld
  const response = await fetch(request)
  let html = await response.text()
  html = html.replace('</head>', `<script type="application/ld+json">\n${JSON.stringify(jsonldBlock, null, 2)}\n</script></