پیاده سازی داده های ساختاریافته با JSON-LD

پیاده سازی داده های ساختاریافته با JSON-LD

پیاده سازی داده های ساختاریافته با JSON-LD یک گام حیاتی در بهینه سازی موتورهای جستجو (SEO) است که به موتورهای جستجو کمک می کند محتوای وب سایت شما را با دقت بیشتری درک کنند و آن را به صورت غنی تر (Rich Results) در نتایج جستجو نمایش دهند. این امر نه تنها دیده شدن وب سایت شما را بهبود می بخشد، بلکه می تواند نرخ کلیک (CTR) را افزایش داده و درک عمیق تری از محتوای شما به ربات های جستجو ارائه دهد.

در عصر دیجیتال امروز، جایی که رقابت برای دیده شدن در نتایج جستجو به اوج خود رسیده است، استفاده از ابزارهایی که به موتورهای جستجو در درک بهتر محتوای صفحات ما کمک می کنند، از اهمیت بالایی برخوردار است. داده های ساختاریافته (Structured Data) به همین منظور طراحی شده اند تا به موتورهای جستجو اجازه دهند اطلاعات کلیدی یک صفحه را به صورت ماشینی تفسیر کنند. در میان فرمت های مختلف پیاده سازی داده های ساختاریافته، JSON-LD (JavaScript Object Notation for Linked Data) به دلیل سادگی، انعطاف پذیری و ترجیح گوگل، به انتخابی محبوب و استاندارد تبدیل شده است. این راهنمای جامع، شما را از مفاهیم پایه تا پیاده سازی پیشرفته و عیب یابی JSON-LD همراهی خواهد کرد.

۱. داده های ساختاریافته (Structured Data) چیست و چرا اهمیت دارد؟

داده های ساختاریافته در واقع یک زبان مشترک بین وب سایت شما و موتورهای جستجو هستند. این داده ها به شما امکان می دهند اطلاعات موجود در صفحات وب خود را به گونه ای سازمان یافته و استاندارد قالب بندی کنید که برای نرم افزارهای ماشینی (مانند خزنده های موتور جستجو) به سادگی قابل درک و پردازش باشد. تصور کنید شما در حال توضیح محتوای یک صفحه به یک ربات هستید؛ داده های ساختاریافته همان واژگانی هستند که این ربات ها قادر به فهم آن ها هستند.

تعریف و هدف Structured Data

هدف اصلی داده های ساختاریافته این است که به موتورهای جستجو کمک کنند تا زمینه و معنای محتوای شما را بهتر درک کنند. این درک عمیق تر، زمینه را برای نمایش اطلاعات غنی تر و جذاب تر در صفحات نتایج جستجو (SERP) فراهم می آورد که با عنوان Rich Results (قبلاً Rich Snippets) شناخته می شوند. به عنوان مثال، اگر شما یک دستور پخت غذا را در وب سایت خود منتشر کرده اید، با استفاده از داده های ساختاریافته می توانید به گوگل بگویید که این صفحه حاوی نام غذا، زمان پخت، مواد لازم، و امتیاز کاربران است. این اطلاعات سپس می توانند به صورت مستقیم در نتایج جستجو به کاربر نمایش داده شوند.

مزایای کلیدی Structured Data برای سئو

پیاده سازی صحیح داده های ساختاریافته مزایای متعددی برای استراتژی سئوی شما به همراه دارد:

  • افزایش نرخ کلیک (CTR): نمایش Rich Results در SERP، محتوای شما را از سایر نتایج متمایز می کند. وقتی کاربران اطلاعات مفیدی مانند امتیاز ستاره ای، قیمت محصول یا زمان پخت را مستقیماً در نتایج جستجو مشاهده می کنند، احتمال کلیک کردن بر روی لینک شما به مراتب افزایش می یابد.
  • بهبود دیده شدن در SERP: Rich Results اغلب فضای بیشتری را در صفحه نتایج اشغال می کنند و به طور بصری جذاب تر هستند. این امر، وب سایت شما را بیشتر در معرض دید کاربران قرار می دهد.
  • درک بهتر موتورهای جستجو از محتوا: Structured Data به موتورهای جستجو کمک می کند تا ارتباطات معنایی بین موجودیت های مختلف در صفحه شما را درک کنند. این موضوع به خصوص در زمینه جستجوی مبتنی بر موجودیت (Entity Search) و ساخت Knowledge Graph اهمیت پیدا می کند.
  • آمادگی برای جستجوی صوتی و هوش مصنوعی: با تکامل جستجوی صوتی و دستیارهای هوشمند، داده های ساختاریافته نقش فزاینده ای در ارائه پاسخ های دقیق و سریع به پرسش های کاربران ایفا می کنند.
  • رقابت پذیری بیشتر: در بازاری که بسیاری از رقبا از Structured Data استفاده می کنند، عدم استفاده از آن می تواند به معنای از دست دادن مزیت رقابتی و دیده نشدن در برابر آن ها باشد.

۲. Schema.org: واژگان مشترک برای Structured Data

در ابتدای پیدایش داده های ساختاریافته، نبود یک زبان استاندارد و مشترک، موتورهای جستجو را با چالش مواجه می ساخت. هر موتور جستجو ممکن بود از واژگان و فرمت های خاص خود برای تفسیر اطلاعات استفاده کند. اینجاست که Schema.org وارد میدان شد.

Schema.org یک پروژه مشترک است که توسط غول های موتور جستجو شامل گوگل، مایکروسافت، یاهو، و یاندکس راه اندازی شده است. هدف اصلی این پروژه، ایجاد یک مجموعه استاندارد از واژگان یا شِمای (Schema) است که وب مسترها می توانند از آن ها برای نشانه گذاری محتوای خود استفاده کنند. این واژگان شامل انواع موجودیت ها (مانند Article، Product، Person، Organization) و خصوصیات مرتبط با آن ها (مانند headline، author، price، review) می شود.

هنگامی که شما از واژگان Schema.org در داده های ساختاریافته خود استفاده می کنید، در واقع به موتورهای جستجو می گویید: این مقاله است، عنوانش این است، نویسنده اش فلان شخص است و عکسش هم این است. این استانداردسازی به موتورهای جستجو اجازه می دهد تا بدون ابهام، اطلاعات را درک و پردازش کنند و در نتیجه، محتوای شما را به شکلی مؤثرتر در نتایج جستجو به نمایش بگذارند.

انواع پرکاربرد اسکیما و کاربرد آن ها

Schema.org هزاران نوع اسکیما برای موجودیت ها و خصوصیات مختلف ارائه می دهد. در اینجا به برخی از پرکاربردترین آن ها اشاره می کنیم که برای سئو از اهمیت ویژه ای برخوردارند:

نوع اسکیما (Type) کاربرد اصلی نمونه اطلاعات قابل نشانه گذاری
Article محتوای نوشتاری مانند مقالات خبری، وبلاگ ها، گزارش ها عنوان، نویسنده، تاریخ انتشار، تصویر اصلی، خلاصه
Product محصولات قابل خرید (در فروشگاه های آنلاین) نام محصول، قیمت، واحد پول، موجودی، امتیاز کاربران، تصویر محصول، توضیحات
LocalBusiness اطلاعات کسب وکارهای محلی نام، آدرس، شماره تلفن، ساعات کاری، وب سایت، دسته بندی کسب وکار
FAQPage صفحاتی حاوی پرسش های متداول و پاسخ های آن ها متن سوال، متن پاسخ (هر جفت سوال و پاسخ به صورت مجزا)
HowTo راهنماهای گام به گام برای انجام یک کار نام راهنما، مراحل انجام کار، ابزارها، مواد لازم، زمان مورد نیاز
Review بررسی یا نقد یک محصول، سرویس، کتاب و غیره امتیاز (عددی و ستاره ای)، نام نقدکننده، تاریخ نقد، متن نقد
BreadcrumbList مسیر پیمایش کاربر در وب سایت (به صورت نان ریزه ها) ترتیب و نام هر لینک در مسیر نان ریزه
Recipe دستورالعمل های آشپزی نام غذا، مواد لازم، مراحل پخت، زمان آماده سازی، کالری، امتیاز کاربران
Event رویدادها، کنفرانس ها، کنسرت ها نام رویداد، تاریخ و زمان شروع و پایان، مکان، برگزارکننده

انتخاب صحیح نوع اسکیما بر اساس محتوای صفحه شما، اولین گام در پیاده سازی مؤثر داده های ساختاریافته است.

۳. JSON-LD چیست؟ رویکرد بهینه گوگل به Structured Data

در کنار Schema.org که واژگان را فراهم می کند، نیاز به یک فرمت یا گرامر برای نوشتن این واژگان وجود دارد. JSON-LD (JavaScript Object Notation for Linked Data) یکی از این فرمت ها است که توسط گوگل به شدت توصیه می شود.

تعریف دقیق JSON-LD

JSON-LD یک فرمت نشانه گذاری سبک وزن است که برای داده های لینک شده (Linked Data) طراحی شده است. از ساختار زبان برنامه نویسی جاوا اسکریپت بهره می برد و به همین دلیل، خواندن و نوشتن آن برای انسان و ماشین بسیار ساده است. JSON-LD به شما امکان می دهد تا موجودیت ها و روابط بین آن ها را در یک سند HTML بدون تأثیر بر کدهای HTML موجود، توصیف کنید. این داده ها معمولاً درون تگ <script type=application/ld+json> در بخش <head> یا <body> صفحه وب قرار می گیرند.

مقایسه JSON-LD با Microdata و RDFa

پیش از JSON-LD، دو فرمت اصلی دیگر برای پیاده سازی داده های ساختاریافته وجود داشت:

  • Microdata: این فرمت با افزودن خصوصیات و تگ های HTML به صورت مستقیم به عناصر موجود در صفحه عمل می کند. به عنوان مثال، شما می توانستید خصوصیات یک محصول (مانند قیمت یا نام) را مستقیماً به تگ های <span> یا <div> مربوط به آن محصول اضافه کنید.
  • RDFa (Resource Description Framework in Attributes): این فرمت نیز شبیه به Microdata عمل می کند و خصوصیات معنایی را از طریق صفت ها (attributes) به تگ های HTML اضافه می کند.

با این حال، گوگل JSON-LD را به این دلایل ترجیح می دهد:

  • سادگی و سهولت پیاده سازی: JSON-LD به صورت یک بلوک کد مجزا در صفحه قرار می گیرد و با ساختار HTML تداخل ندارد. این موضوع، مدیریت و به روزرسانی آن را بسیار آسان تر از Microdata یا RDFa می کند که نیاز به تغییر در ساختار HTML دارند.
  • انعطاف پذیری بالا: JSON-LD می تواند در هر جای صفحه HTML (<head> یا <body>) قرار گیرد، اگرچه قرار دادن آن در <head> معمولاً توصیه می شود. این انعطاف به توسعه دهندگان آزادی عمل بیشتری می دهد.
  • عدم تداخل با رندرینگ صفحه: از آنجا که JSON-LD به صورت یک بلوک کد مجزا است، تغییرات آن به ندرت بر رندرینگ (نمایش) بصری صفحه تأثیر می گذارد. در مقابل، تغییرات در Microdata یا RDFa که در میان کدهای HTML پراکنده هستند، می توانند به راحتی منجر به مشکلات نمایش شوند.
  • قابلیت تعریف موجودیت های متعدد: JSON-LD با استفاده از ساختارهایی مانند @graph امکان تعریف و ارتباط دادن چندین موجودیت مستقل را در یک بلوک کد فراهم می کند، که برای ساخت Knowledge Graph و درک روابط پیچیده بین موجودیت ها بسیار قدرتمند است.

محل قرارگیری کد JSON-LD در HTML صفحه

کدهای JSON-LD معمولاً در بخش <head> سند HTML قرار می گیرند، هرچند می توانند در <body> نیز باشند. بهترین روش این است که آنها را داخل تگ <script type=application/ld+json></script> قرار دهید.


<!DOCTYPE html>
<html lang=fa>
<head>
  <meta charset=UTF-8>
  <meta name=viewport content=width=device-width, initial-scale=1.0>
  <title>عنوان صفحه</title>
  <script type=application/ld+json>
  {
    @context: https://schema.org,
    @type: Article,
    headline: پیاده سازی داده های ساختاریافته با JSON-LD,
    author: {
      @type: Person,
      name: نام نویسنده
    },
    datePublished: 2023-10-26T08:00:00+00:00
  }
  </script>
</head>
<body>
  <!-- محتوای صفحه -->
</body>
</html>

۴. عناصر اصلی سینتکس JSON-LD و ساختار آن

JSON-LD از یک ساختار مبتنی بر اشیاء و آرایه ها در فرمت JSON پیروی می کند. برای نوشتن کدهای JSON-LD، درک صحیح از عناصر اصلی و قواعد نگارشی آن ضروری است.

@context: معرفی namespace Schema.org

این خصوصیت اولین و حیاتی ترین عنصر در هر بلوک کد JSON-LD است. @context به موتورهای جستجو می گوید که واژگان مورد استفاده در این کد از کجا آمده اند. در بیشتر موارد، مقدار آن باید https://schema.org باشد تا اطمینان حاصل شود که موتورهای جستجو از استاندارد Schema.org برای تفسیر داده های شما استفاده می کنند.


{
  @context: https://schema.org,
  @type: Article
}

@type: تعیین نوع اسکیما

خصوصیت @type مشخص می کند که موجودیت مورد نظر شما از چه نوعی است. مقدار این خصوصیت باید یکی از انواع Schema.org باشد (مثلاً Article, Product, Organization, LocalBusiness). این خصوصیت، محتوای صفحه را دسته بندی می کند.


{
  @context: https://schema.org,
  @type: Organization,
  name: نام شرکت شما
}

@id: شناسایی یکتای اشیاء

خصوصیت @id یک شناسه ی یکتا برای موجودیت تعریف شده در JSON-LD فراهم می کند. این شناسه به موتورهای جستجو کمک می کند تا موجودیت های مختلف را در سراسر وب سایت شما یا حتی در وب به هم مرتبط کنند. استفاده از URL صفحه به عنوان @id یک روش رایج و توصیه شده است.


{
  @context: https://schema.org,
  @type: Article,
  @id: https://example.com/مقاله-من/#article,
  headline: عنوان مقاله
}

خصوصیات (Properties): فیلدهای اطلاعاتی

خصوصیات، جزئیاتی هستند که شما برای توصیف نوع اسکیمای خود ارائه می دهید. هر نوع اسکیما مجموعه ای از خصوصیات مجاز خود را دارد (مثلاً Article دارای خصوصیات headline، author، datePublished و image است). مقادیر این خصوصیات می توانند از انواع مختلفی مانند متن، عدد، تاریخ، URL یا حتی موجودیت های Schema.org دیگر باشند (که به آن Nested Types می گویند).


{
  @context: https://schema.org,
  @type: Product,
  name: گوشی هوشمند مدل X,
  image: https://example.com/images/phone-x.jpg,
  description: یک گوشی هوشمند با ویژگی های منحصر به فرد.,
  sku: PHONE-X-2023,
  brand: {
    @type: Brand,
    name: برند معتبر
  }
}

قواعد نگارشی JSON-LD

JSON-LD به شدت به قواعد نگارشی JSON پایبند است. رعایت دقیق این قواعد برای جلوگیری از خطاهای سینتکسی ضروری است:

آکولادها {}

آکولادها برای تعریف اشیاء JSON استفاده می شوند. هر بلوک JSON-LD با یک آکولاد باز شروع و با یک آکولاد بسته به پایان می رسد. هر موجودیت یا آبجکت در Schema.org نیز با آکولادها تعریف می شود.


{  // شروع آبجکت اصلی
  @context: https://schema.org,
  @type: WebSite
}  // پایان آبجکت اصلی

براکت ها []

براکت ها برای تعریف آرایه ها استفاده می شوند. اگر یک خصوصیت می تواند چندین مقدار داشته باشد (مانند چندین تصویر برای یک محصول، یا چندین آدرس ایمیل برای یک سازمان)، آن مقادیر در یک آرایه قرار می گیرند.


{
  @context: https://schema.org,
  @type: Organization,
  name: شرکت فناوری پیشرو,
  sameAs: [
    https://www.facebook.com/yourcompany,
    https://twitter.com/yourcompany,
    https://www.linkedin.com/company/yourcompany
  ]
}

کاما ,

کاما به عنوان جداکننده جفت های کلید-مقدار (Key-Value Pair) در یک شیء JSON استفاده می شود. فراموش نکنید که بعد از آخرین جفت کلید-مقدار در یک شیء، کاما نباید قرار داده شود. این یکی از رایج ترین خطاهای سینتکسی است.


{
  @context: https://schema.org,
  @type: Article,
  headline: عنوان مقاله,  // اینجا کاما دارد
  datePublished: 2023-10-26T08:00:00+00:00 // اینجا کاما ندارد چون آخرین آیتم است
}

دو نقطه :

دو نقطه کلید را از مقدار آن جدا می کند. سمت چپ دو نقطه، نام خصوصیت (کلید) و سمت راست آن، مقدار خصوصیت است.


{
  @context: https://schema.org,
  @type: Person,
  name: علی احمدی,   // name کلید و علی احمدی مقدار آن است
  jobTitle: متخصص سئو
}

کوتیشن

تمام نام های خصوصیات (کلیدها) و مقادیر متنی باید درون علامت کوتیشن دوتایی () قرار گیرند. مقادیر عددی، بولی (true/false) و null نیازی به کوتیشن ندارند.


{
  @context: https://schema.org,
  @type: Product,
  name: لپ تاپ مدل Pro,
  price: 1200,             // مقدار عددی بدون کوتیشن
  offers: {
    @type: Offer,
    availability: https://schema.org/InStock
  }
}

۵. پیاده سازی عملی JSON-LD: از ابزار تا کدنویسی دستی

اکنون که با مفاهیم و سینتکس JSON-LD آشنا شدید، زمان آن رسیده است که به جنبه های عملی پیاده سازی بپردازیم.

استفاده از ابزارهای تولید کننده آنلاین (برای مبتدیان)

برای شروع و تولید سریع کدهای JSON-LD، به خصوص برای اسکیمای های رایج و ساده، ابزارهای آنلاین بسیاری وجود دارند که به شما کمک می کنند بدون نیاز به کدنویسی دستی، JSON-LD مورد نیازتان را تولید کنید. این ابزارها برای مبتدیان و برای ایجاد اسکیمای پایه بسیار مفید هستند.

یکی از ابزارهای محبوب و کاربردی، Merkle’s Schema Markup Generator است. این ابزار به شما امکان می دهد نوع اسکیمای مورد نظر خود را انتخاب کرده (مثلاً Organization، Product، Article) و با پر کردن فیلدهای مربوطه، کد JSON-LD را به صورت خودکار تولید کنید.

مراحل گام به گام (مثال: اسکیما Organization):

  1. به وب سایت Merkle’s Schema Markup Generator مراجعه کنید.
  2. از منوی کشویی Select Schema.org Markup, گزینه Organization را انتخاب کنید.
  3. فیلدهایی مانند نام سازمان، URL، لوگو، شماره تلفن، و آدرس شبکه های اجتماعی را پر کنید.
  4. با پر کردن هر فیلد، کد JSON-LD در سمت راست صفحه به صورت لحظه ای تولید می شود.
  5. پس از اتمام، کد تولید شده را کپی کرده و در بخش <head> صفحه وب سایت خود قرار دهید.

این روش برای سرعت بخشیدن به فرآیند و کاهش خطاهای سینتکسی اولیه بسیار مناسب است، اما برای پیاده سازی های پیچیده تر و سفارشی سازی های عمیق، نیاز به کدنویسی دستی خواهید داشت.

کدنویسی دستی JSON-LD: از پایه تا پیشرفته

برای کنترل کامل بر داده های ساختاریافته و پیاده سازی سناریوهای پیچیده تر، کدنویسی دستی ضروری است.

انتخاب ویرایشگر متن

استفاده از یک ویرایشگر متن قدرتمند که قابلیت تشخیص سینتکس JSON را دارد، فرآیند کدنویسی را بسیار آسان تر می کند. ویرایشگرهایی مانند Visual Studio Code (VS Code) یا Sublime Text به صورت خودکار خطاها و مشکلات سینتکسی را برجسته می کنند (قابلیت Linting) که در عیب یابی اولیه بسیار کمک کننده است.

تنظیم سینتکس JSON در Sublime Text:

پس از باز کردن فایل HTML یا JS در Sublime Text، به مسیر View > Syntax > Javascript > JSON بروید و JSON را انتخاب کنید. این کار باعث می شود ویرایشگر، خطاهای سینتکسی JSON را به شما نشان دهد.

پیاده سازی اسکیمای Article (مثال پایه)

برای شروع، یک مثال از اسکیمای Article را بررسی می کنیم. این اسکیما برای مقالات وبلاگ، صفحات خبری و محتوای مشابه کاربرد دارد.


<script type=application/ld+json>
{
  @context: https://schema.org,
  @type: Article,
  headline: راهنمای جامع پیاده سازی JSON-LD برای سئو,
  image: [
    https://example.com/images/json-ld-guide-1.jpg,
    https://example.com/images/json-ld-guide-2.jpg
  ],
  datePublished: 2023-10-26T08:00:00+00:00,
  dateModified: 2023-10-26T10:30:00+00:00,
  author: {
    @type: Person,
    name: سئوکار نمونه
  },
  publisher: {
    @type: Organization,
    name: نام وبسایت شما,
    logo: {
      @type: ImageObject,
      url: https://example.com/images/logo.png
    }
  },
  description: این مقاله یک راهنمای کامل برای پیاده سازی داده های ساختاریافته JSON-LD است...,
  mainEntityOfPage: {
    @type: WebPage,
    @id: https://example.com/json-ld-guide
  }
}
</script>

در این مثال:

  • @context و @type نوع محتوا را مشخص می کنند.
  • headline عنوان مقاله است.
  • image یک آرایه است که می تواند شامل چندین URL تصویر باشد.
  • datePublished و dateModified تاریخ های انتشار و آخرین ویرایش را نشان می دهند.
  • author و publisher خودشان موجودیت های پیچیده تری هستند (Person و Organization) که داخل Article به صورت تودرتو تعریف شده اند (Nested Types).
  • description خلاصه مقاله و mainEntityOfPage URL اصلی صفحه را مشخص می کند.

افزودن خصوصیات ساده و پیچیده (Nested Types)

در مثال بالا، author و publisher نمونه هایی از خصوصیات پیچیده یا Nested Types هستند. این بدان معناست که مقدار یک خصوصیت، به جای یک مقدار ساده (مانند متن یا عدد)، یک موجودیت Schema.org دیگر است که خودش دارای خصوصیات منحصر به فرد است.

برای مثال، خصوصیت address در اسکیمای LocalBusiness اغلب از نوع PostalAddress است که خودش شامل خصوصیات streetAddress، addressLocality (شهر)، addressRegion (استان) و postalCode می شود.


<script type=application/ld+json>
{
  @context: https://schema.org,
  @type: LocalBusiness,
  name: کافه شمس,
  address: {
    @type: PostalAddress,
    streetAddress: خیابان آزادی، پلاک ۱۰,
    addressLocality: تهران,
    addressRegion: تهران,
    postalCode: 12345,
    addressCountry: ایران
  },
  telephone: +98211234567
}
</script>

این ساختار تودرتو، قدرت JSON-LD را در نمایش روابط پیچیده و غنی سازی اطلاعات نشان می دهد.

ساخت آرایه های پیچیده (Complex Arrays)

گاهی اوقات، شما نیاز دارید که یک خصوصیت، لیستی از موجودیت های پیچیده را شامل شود. مثال image در اسکیمای Article یک آرایه ساده بود که شامل URLهای متنی بود. اما می توان آرایه هایی از اشیاء کامل Schema.org را نیز ایجاد کرد.

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


<script type=application/ld+json>
{
  @context: https://schema.org,
  @type: Product,
  name: کتاب راهنمای برنامه نویسی پایتون,
  offers: [
    {
      @type: Offer,
      priceCurrency: IRR,
      price: 250000,
      itemCondition: https://schema.org/NewCondition,
      availability: https://schema.org/InStock,
      seller: {
        @type: Organization,
        name: فروشگاه آنلاین کتاب
      }
    },
    {
      @type: Offer,
      priceCurrency: IRR,
      price: 220000,
      itemCondition: https://schema.org/UsedCondition,
      availability: https://schema.org/InStock,
      seller: {
        @type: Organization,
        name: کتابفروشی دست دوم
      }
    }
  ]
}
</script>

در این مثال، خصوصیت offers یک آرایه است که هر عنصر آن یک شیء از نوع Offer است و جزئیات مربوط به یک پیشنهاد خاص (قیمت، وضعیت، فروشنده) را ارائه می دهد.

استفاده از @graph برای تعریف موجودیت های مرتبط

قابلیت @graph یکی از قدرتمندترین و پیشرفته ترین ویژگی های JSON-LD است که به شما اجازه می دهد چندین موجودیت مستقل (مانند یک سازمان، یک وب سایت، یک صفحه وب، و یک مقاله) را در یک بلوک کد واحد تعریف کرده و سپس ارتباطات معنایی بین آن ها را مشخص کنید. این روش به ویژه توسط افزونه های سئو مانند Yoast SEO به صورت گسترده استفاده می شود و به موتورهای جستجو کمک می کند تا یک گراف دانش (Knowledge Graph) کامل تر و دقیق تر از برند و محتوای شما بسازند.

با @graph، شما می توانید چندین شیء JSON-LD را در یک آرایه قرار دهید و سپس با استفاده از خصوصیت @id یکتای هر شیء، آن ها را به یکدیگر پیوند دهید. این کار، درک موتور جستجو از نحوه ارتباط این موجودیت ها با یکدیگر را بهبود می بخشد.


<script type=application/ld+json>
{
  @context: https://schema.org,
  @graph: [
    {
      // موجودیت 1: سازمان (Your Company)
      @type: Organization,
      @id: https://yourwebsite.com/#organization,
      name: نام شرکت شما,
      url: https://yourwebsite.com/,
      logo: {
        @type: ImageObject,
        @id: https://yourwebsite.com/#logo,
        url: https://yourwebsite.com/images/company-logo.png,
        caption: لوگوی شرکت شما
      },
      sameAs: [
        https://www.facebook.com/yourcompany,
        https://twitter.com/yourcompany
      ]
    },
    {
      // موجودیت 2: وب سایت (Your Website)
      @type: WebSite,
      @id: https://yourwebsite.com/#website,
      url: https://yourwebsite.com/,
      name: نام وبسایت شما,
      publisher: { @id: https://yourwebsite.com/#organization }
    },
    {
      // موجودیت 3: صفحه وب (Specific WebPage)
      @type: WebPage,
      @id: https://yourwebsite.com/your-article-url/#webpage,
      url: https://yourwebsite.com/your-article-url/,
      name: عنوان صفحه وب شما,
      isPartOf: { @id: https://yourwebsite.com/#website },
      primaryImageOfPage: {
        @type: ImageObject,
        @id: https://yourwebsite.com/your-article-url/#primaryimage,
        url: https://yourwebsite.com/images/article-hero.jpg,
        width: 1200,
        height: 675
      },
      description: خلاصه ای از محتوای صفحه شما.
    },
    {
      // موجودیت 4: مقاله (Article)
      @type: Article,
      @id: https://yourwebsite.com/your-article-url/#article,
      isPartOf: { @id: https://yourwebsite.com/your-article-url/#webpage },
      author: {
        @type: Person,
        @id: https://yourwebsite.com/about/#author,
        name: نام نویسنده
      },
      headline: عنوان مقاله شما,
      datePublished: 2023-10-26T08:00:00+00:00,
      dateModified: 2023-10-26T10:30:00+00:00,
      publisher: { @id: https://yourwebsite.com/#organization },
      image: { @id: https://yourwebsite.com/your-article-url/#primaryimage }
    },
    {
      // موجودیت 5: شخص (Author Person)
      @type: Person,
      @id: https://yourwebsite.com/about/#author,
      name: نام نویسنده,
      description: بیوگرافی کوتاه نویسنده.,
      sameAs: [
        https://linkedin.com/in/author-profile,
        https://twitter.com/author-twitter
      ]
    }
  ]
}
</script>

در این مثال پیشرفته:

  • ما پنج موجودیت (Organization, WebSite, WebPage, Article, Person) را در یک آرایه @graph تعریف کرده ایم.
  • هر موجودیت دارای یک @id یکتا است (مانند https://yourwebsite.com/#organization).
  • موجودیت ها با استفاده از @id به یکدیگر مرتبط شده اند:
    • WebSite به Organization به عنوان publisher مرتبط است.
    • WebPage به WebSite به عنوان isPartOf (بخشی از) مرتبط است.
    • Article به WebPage به عنوان isPartOf و به Person به عنوان author مرتبط است.

این رویکرد، درک جامع و دقیقی از ساختار و روابط محتوای شما به موتورهای جستجو می دهد و به ساختن یک گراف دانش قوی برای کسب وکار و محتوای شما کمک شایانی می کند.

استفاده از @graph در JSON-LD نه تنها ساختار یافته تر کردن اطلاعات شما را امکان پذیر می سازد، بلکه به موتورهای جستجو در درک عمیق تر روابط بین موجودیت های وب سایت شما یاری می رساند، که این خود به بهبود قابل توجهی در نمایش Rich Results و افزایش اعتبار شما منجر می شود.

۶. تست، عیب یابی و اعتبارسنجی JSON-LD

پس از پیاده سازی کدهای JSON-LD، مرحله حیاتی بعدی، اطمینان از صحت و عملکرد بدون خطای آن ها است. یک اشتباه کوچک سینتکسی می تواند مانع از درک صحیح داده ها توسط موتورهای جستجو شود.

ابزار Rich Results Test گوگل

گوگل ابزار Rich Results Test را به عنوان ابزار اصلی برای اعتبارسنجی داده های ساختاریافته معرفی کرده است. این ابزار جایگزین Structured Data Testing Tool شده و قابلیت های بهتری برای نمایش Rich Resultsهای احتمالی دارد.

نحوه استفاده و تفسیر نتایج:

  1. به آدرس https://search.google.com/test/rich-results بروید.
  2. می توانید URL صفحه ای که Structured Data را در آن پیاده سازی کرده اید وارد کنید یا کد JSON-LD خود را به صورت مستقیم در بخش Code کپی و جایگذاری نمایید.
  3. پس از اجرای تست، ابزار به شما نشان می دهد که آیا صفحه شما می تواند Rich Results خاصی را نمایش دهد یا خیر.
  4. اگر خطایی وجود داشته باشد، به شما نوع خطا و خط کد مربوطه را نشان می دهد. خطاهای قرمز رنگ نشان دهنده مشکلات بحرانی هستند که مانع نمایش Rich Results می شوند، در حالی که هشدارهای زرد رنگ به بهبودهای احتمالی اشاره دارند.
  5. با کلیک بر روی هر خطا یا هشدار، جزئیات بیشتری نمایش داده شده و شما را به بخش مربوطه در کد یا صفحه راهنمای گوگل هدایت می کند.

ابزارهای داخلی ویرایشگرهای متن

ویرایشگرهای متن پیشرفته مانند VS Code و Sublime Text (پس از تنظیم سینتکس JSON) قابلیت linting دارند که به صورت لحظه ای خطاهای سینتکسی JSON را در حین کدنویسی شناسایی و برجسته می کنند. این ویژگی به شما کمک می کند تا خطاهای رایج مانند کاماهای فراموش شده، آکولادهای نامتوازن یا نقل قول های نادرست را به سرعت شناسایی و رفع کنید.

معمولاً خطاها به سه روش در ویرایشگرها گزارش می شوند:

  1. هایلایت شدن خود خطای سینتکسی.
  2. مشخص شدن خطی که خطا در آن رخ داده است.
  3. اشاره به خط قبلی یا بعدی که به دلیل نبود یک عنصر (مانند کاما) خطا ایجاد شده است.

برای مثال، اگر کاما پس از آخرین خصوصیت یک شیء را فراموش کنید، ویرایشگر ممکن است خط بعدی را به عنوان نقطه شروع خطا نشان دهد.

نکات کلیدی برای پیاده سازی موفق و جلوگیری از خطاها

  • دقت در سینتکس: رعایت دقیق استفاده از کاماها، آکولادها، براکت ها و نقل قول ها حیاتی است. یک اشتباه کوچک می تواند کل کد JSON-LD را نامعتبر کند.
  • استفاده از مقادیر صحیح: اطمینان حاصل کنید که مقادیر وارد شده برای هر خصوصیت، با نوع داده مورد انتظار (Expected Type) در Schema.org مطابقت دارد (مثلاً برای خصوصیت price باید یک عدد وارد کنید نه متن).
  • به روزرسانی کد: استاندارد Schema.org و راهنماهای گوگل به صورت دوره ای به روزرسانی می شوند. کدهای JSON-LD خود را به صورت منظم بازبینی کنید تا از همگام بودن آن ها با آخرین دستورالعمل ها اطمینان حاصل کنید.
  • تنها استفاده از Schemaهای مرتبط: از نشانه گذاری بی رویه و نامربوط خودداری کنید. فقط اطلاعاتی را نشانه گذاری کنید که به صورت بصری در صفحه قابل مشاهده هستند و مستقیماً با محتوای صفحه مرتبط هستند. نشانه گذاری اطلاعات نامربوط یا پنهان می تواند به جریمه شدن توسط گوگل منجر شود.
  • تطابق محتوای نشانه گذاری شده با محتوای بصری: اطمینان حاصل کنید که اطلاعاتی که در JSON-LD نشانه گذاری می کنید، دقیقاً همان اطلاعاتی باشند که کاربر در ظاهر صفحه مشاهده می کند. این اصل بسیار مهم است و عدم رعایت آن می تواند منجر به سوءتفاهم موتورهای جستجو و حتی جریمه شود.

با رعایت این نکات و استفاده منظم از ابزارهای اعتبارسنجی، می توانید از پیاده سازی موفق و بدون خطای داده های ساختاریافته JSON-LD خود اطمینان حاصل کنید.

۷. آینده JSON-LD و Structured Data در سئو

داده های ساختاریافته و JSON-LD تنها ابزاری برای بهبود Rich Results نیستند؛ آن ها سنگ بنای تکامل جستجوی مدرن و تعامل با هوش مصنوعی محسوب می شوند.

تاثیر بر جستجوی صوتی و هوش مصنوعی

با افزایش محبوبیت دستیارهای صوتی مانند Google Assistant، Siri و Alexa، نحوه تعامل کاربران با موتورهای جستجو در حال تغییر است. کاربران به جای تایپ، سوالات خود را به صورت طبیعی و محاوره ای مطرح می کنند. داده های ساختاریافته به موتورهای جستجو کمک می کنند تا این سوالات را بهتر درک کرده و پاسخ های دقیق و خلاصه تری را از میان محتوای وب سایت ها استخراج و ارائه دهند. مثلاً اگر از گوگل بپرسید ساعات کاری کافه شمس چیست؟ و کافه شما JSON-LD LocalBusiness را پیاده سازی کرده باشد، گوگل می تواند مستقیماً ساعات کاری را به شما بگوید. این یعنی JSON-LD به ابزاری کلیدی برای جواب دهی مستقیم (Direct Answers) تبدیل شده است.

نقش در Knowledge Graph و Entity Search

گوگل به طور فزاینده ای از جستجوی مبتنی بر موجودیت (Entity Search) استفاده می کند. این بدان معناست که به جای تمرکز صرف بر کلمات کلیدی، گوگل به موجودیت ها (اشخاص، مکان ها، اشیاء، مفاهیم) و روابط بین آن ها اهمیت می دهد. Knowledge Graph گوگل پایگاه داده ای از این موجودیت ها و روابطشان است. JSON-LD، به ویژه با استفاده از قابلیت @graph، به شما اجازه می دهد تا موجودیت های مرتبط با برند، محصولات و محتوای خود را به وضوح تعریف کنید و روابطشان را مشخص سازید. این امر به گوگل کمک می کند تا یک تصویر کامل تر و دقیق تر از کسب وکار شما در Knowledge Graph خود بسازد، که در نهایت به افزایش اعتبار (Authoritativeness) و اعتماد (Trustworthiness) وب سایت شما منجر می شود.

تحولات آتی و چشم انداز

انتظار می رود نقش داده های ساختاریافته در آینده سئو پررنگ تر شود. با پیشرفت هوش مصنوعی و مدل های زبان بزرگ، توانایی موتورهای جستجو در درک و پردازش اطلاعات معنایی نیز افزایش می یابد. JSON-LD به عنوان یک استاندارد منعطف و قدرتمند، در قلب این تحولات قرار دارد. از جمله تحولات آتی می توان به موارد زیر اشاره کرد:

  • ظهور انواع اسکیمای جدید برای سناریوهای کاربردی تر و پیچیده تر.
  • توسعه ابزارهای پیشرفته تر برای تولید، اعتبارسنجی و نظارت بر Structured Data.
  • افزایش وابستگی ویژگی های پیشرفته SERP به داده های ساختاریافته، مانند جستجوهای بصری و نتایج شخصی سازی شده.

لذا، تسلط بر پیاده سازی JSON-LD نه تنها یک مهارت فنی مهم است، بلکه یک سرمایه گذاری برای آینده حضور آنلاین شما محسوب می شود.

نتیجه گیری

در دنیای سئو که همواره در حال تغییر و تحول است، پیاده سازی داده های ساختاریافته با JSON-LD به عنوان یک ابزار قدرتمند و ضروری برای هر وب سایتی که به دنبال دیده شدن و بهبود عملکرد در موتورهای جستجو است، ظاهر می شود. این راهنمای جامع تلاش کرد تا شما را از مفاهیم بنیادین Structured Data و Schema.org گرفته تا جزئیات سینتکس JSON-LD، روش های کدنویسی دستی (از جمله قابلیت های پیشرفته ای مانند @graph) و ابزارهای عیب یابی، همراهی کند.

با استفاده از JSON-LD، شما نه تنها به موتورهای جستجو در درک بهتر محتوایتان کمک می کنید، بلکه مسیر را برای نمایش جذاب تر وب سایتتان در نتایج جستجو (Rich Results)، افزایش نرخ کلیک و ساخت یک حضور آنلاین قدرتمندتر هموار می سازید. اهمیت آن در عصر جستجوی صوتی، هوش مصنوعی و گراف دانش، بیش از پیش روشن است.

اکنون که دانش و ابزارهای لازم را در اختیار دارید، زمان آن است که دست به کار شوید. پیاده سازی JSON-LD را آغاز کنید، کدهای خود را با ابزارهای گوگل تست و اعتبارسنجی کنید و از مزایای بی شمار آن برای بهبود سئوی وب سایت خود بهره مند شوید. این یک سرمایه گذاری ارزشمند است که بازدهی آن در بلندمدت برای شما قابل مشاهده خواهد بود.

دکمه بازگشت به بالا