اسکیما مارکاپ: راهنمای کامل داده ساختاریافته برای سایت‌های ایرانی

تیم جریان۱۵ شهریور ۱۴۰۵
اسکیما مارکاپ: راهنمای کامل داده ساختاریافته برای سایت‌های ایرانی
فهرست مطالب
  1. چرا اسکیما مهم است — و چه کاری نمی‌کند؟
  2. JSON-LD، Microdata یا RDFa؟
  3. نقشه انواع اسکیما بر اساس نوع صفحه
  4. اسکیمای Organization و WebSite
  5. اسکیمای Article برای مقاله‌ها
  6. اسکیمای FAQPage و HowTo
  7. اسکیمای Product و Review برای فروشگاه‌ها
  8. اسکیمای LocalBusiness برای کسب‌وکارهای ایرانی
  9. BreadcrumbList: کم‌هزینه‌ترین برد
  10. گراف اسکیما: وصل‌کردن قطعات با @id
  11. مسائل خاص سایت‌های فارسی
  12. پیاده‌سازی در وردپرس
  13. تست، اعتبارسنجی و رفع خطا
  14. اسکیما و موتورهای پاسخ‌گو (GEO)
  15. اشتباهات رایج
  16. چک‌لیست نهایی اسکیما مارکاپ
  17. پرسش‌های متداول شما درباره اسکیما مارکاپ
  18. جمع‌بندی و قدم بعدی

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

گوگل متن صفحه شما را می‌خواند، اما آن را «نمی‌فهمد» — دست‌کم نه به آن قطعیتی که برای ساختن یک کارت قیمت یا ستاره امتیاز لازم است. اسکیما مارکاپ همان لایه‌ی ترجمه است: شما به‌جای اینکه امیدوار باشید موتور جستجو حدس درستی بزند، صریح می‌گویید این صفحه چیست و اجزایش چه معنایی دارند. در پروژه‌هایی که تیم جریان دیجیتال آنالیز می‌کند، نبود یا اشتباه بودن داده ساختاریافته یکی از سه مشکل تکراری اول است — و برخلاف خیلی از کارهای سئوی فنی، اصلاحش چند ساعت وقت می‌برد نه چند ماه.

این مقاله ادامه‌ی مستقیم راهنمای سئو تکنیکال است و همان چیزی را که آنجا در حد یک جدول معرفی کردیم، اینجا با کد اجرایی بررسی میکنیم

چرا اسکیما مهم است — و چه کاری نمی‌کند؟

باید از همان اول یک سوءتفاهم رایج را کنار بگذاریم: اسکیما مارکاپ فاکتور رتبه‌بندی مستقیم نیست. افزودن JSON-LD به صفحه، به‌خودی‌خود شما را از رتبه ۱۲ به رتبه ۳ نمی‌برد. هر مقاله‌ای که وعده‌ی «جهش رتبه با اسکیما» می‌دهد، دارد چیزی می‌فروشد.

کاری که اسکیما واقعاً می‌کند این است:

1: نمایش غنی‌تر در نتایج. ستاره‌های امتیاز، قیمت و موجودی، تاریخ رویداد، زمان پخت غذا، آکاردئون پرسش‌های متداول — همه‌ی این‌ها فقط با داده ساختاریافته ممکن‌اند. نتیجه‌ی مستقیمش افزایش نرخ کلیک است، و نرخ کلیک بالاتر یعنی ترافیک بیشتر از همان رتبه‌ی فعلی.

2: واجد شرایط شدن برای فرمت‌های خاص. بعضی جایگاه‌ها اصلاً بدون اسکیما در دسترس نیستند: کاروسل دستور پخت، لیست شغل‌ها، نتایج رویداد، ماژول محصول در تب Shopping. اینجا اسکیما شرط ورود است، نه امتیاز اضافه.

3: فهم موجودیت (Entity). وقتی با Organization و sameAs به گوگل می‌گویید «جریان دیجیتال» دقیقاً کدام کسب‌وکار است و در چه شبکه‌هایی حضور دارد، دارید هویت برندتان را در گراف دانش گوگل تثبیت می‌کنید. این اثر آهسته اما ماندگار است.

4: خوانده‌شدن توسط موتورهای پاسخ‌گو. ChatGPT، Perplexity و AI Overviews گوگل، محتوای ساختاریافته را راحت‌تر تجزیه و نقل‌قول می‌کنند. در بخش اسکیما و GEO به این برمی‌گردیم.

و یک هشدار: از سال ۲۰۲۳ به بعد گوگل چند نوع ریچ ریزالت را محدود یا حذف کرده است — از جمله نمایش FAQ که حالا عملاً فقط برای سایت‌های دولتی و پزشکی معتبر نشان داده می‌شود، و HowTo که از نتایج دسکتاپ برداشته شد. اسکیمای این‌ها را همچنان بنویسید (برای فهم ماشینی ارزش دارد) اما انتظار نمایش بصری نداشته باشید.

JSON-LD، Microdata یا RDFa؟

سه قالب برای نوشتن داده ساختاریافته وجود دارد. انتخاب امروز واقعاً یکی است:

قالب

نحوه نوشتن

توصیه گوگل

نگهداری

JSON-LD

بلوک <script> جدا از HTML

رسماً توصیه‌شده

ساده — مستقل از قالب

Microdata

صفت‌های itemprop داخل تگ‌های HTML

پشتیبانی می‌شود

سخت — با هر تغییر قالب می‌شکند

RDFa

صفت‌های property داخل HTML

پشتیبانی می‌شود

سخت

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

بلوک JSON-LD را در <head> یا انتهای <body> بگذارید — گوگل هر دو را می‌خواند. اگر با جاوااسکریپت تزریق می‌کنید، مطمئن شوید در HTML رندرشده حاضر است؛ گوگل جاوااسکریپت را اجرا می‌کند اما این کار را در نوبت دوم خزش انجام می‌دهد و ماه‌ها تأخیر ممکن است.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "اسکیما مارکاپ: راهنمای کامل داده ساختاریافته"
}
</script>

نقشه انواع اسکیما بر اساس نوع صفحه

schema.org بیش از ۸۰۰ نوع دارد. عملاً به کمتر از ده تا نیاز دارید. این جدول تصمیم را برای یک سایت خدماتی یا فروشگاهی ایرانی جمع می‌کند:

نوع صفحه

اسکیمای ضروری

اسکیمای اختیاری اما مفید

صفحه اصلی

Organization + WebSite

SearchAction، LocalBusiness

مقاله بلاگ

Article + BreadcrumbList

FAQPage، ImageObject، Person (نویسنده)

صفحه خدمت

Service + BreadcrumbList

Offer، AggregateRating

صفحه محصول

Product + Offer + BreadcrumbList

AggregateRating، Review

صفحه تماس

ContactPage + LocalBusiness

PostalAddress، OpeningHoursSpecification

نمونه‌کار

Article یا CreativeWork

Review مشتری

صفحه پرسش‌های متداول

FAQPage

—

صفحه درباره ما

AboutPage + Organization

Person برای اعضای تیم

قاعده‌ی ساده: هر صفحه دقیقاً یک نوع «اصلی» دارد به‌علاوه‌ی BreadcrumbList. اگر روی یک صفحه هم‌زمان Product و Article و Service نوشته‌اید، احتمالاً چیزی را اشتباه فهمیده‌اید.

اسکیمای Organization و WebSite

این دو نوع، پایه‌ی هویت سایت شما هستند و روی صفحه اصلی می‌نشینند. Organization می‌گوید شما چه کسی هستید، WebSite می‌گوید این دامنه چیست.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://jaryandigital.com/#organization",
  "name": "جریان دیجیتال",
  "alternateName": "Jaryan Digital",
  "url": "https://jaryandigital.com/",
  "logo": {
    "@type": "ImageObject",
    "url": "https://jaryandigital.com/img/logo-jaryan.png",
    "width": 512,
    "height": 512
  },
  "description": "توسعه افزونه اختصاصی وردپرس و سئوی فنی",
  "email": "info@jaryandigital.com",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "تهران",
    "addressCountry": "IR"
  },
  "sameAs": [
    "https://www.instagram.com/jaryandigital",
    "https://www.linkedin.com/company/jaryandigital"
  ]
}

نکته‌ی sameAs را جدی بگیرید. این آرایه به گوگل می‌گوید کدام پروفایل‌های شبکه‌های اجتماعی متعلق به همین موجودیت است — و همان چیزی است که کمک می‌کند برند شما در گراف دانش تثبیت شود. فقط پروفایل‌های واقعی و فعال را بیاورید، نه هر لینکی که دارید.

WebSite معمولاً کوتاه است، اما یک قابلیت مهم دارد: SearchAction که جعبه‌ی جستجوی سایت شما را مستقیم در نتایج گوگل قرار می‌دهد.

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "@id": "https://jaryandigital.com/#website",
  "url": "https://jaryandigital.com/",
  "name": "جریان دیجیتال",
  "inLanguage": "fa-IR",
  "publisher": { "@id": "https://jaryandigital.com/#organization" },
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://jaryandigital.com/?s={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}

اسکیمای Article برای مقاله‌ها

برای هر مقاله بلاگ این اسکیما را بنویسید. سه نوع نزدیک وجود دارد: Article (عمومی)، BlogPosting (زیرمجموعه‌ی Article) و NewsArticle (فقط برای خبر). Article انتخاب امنی برای محتوای آموزشی و راهنماست.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "اسکیما مارکاپ: راهنمای کامل داده ساختاریافته برای سایت‌های ایرانی",
  "description": "اسکیما مارکاپ چیست، کدام نوع‌ها ریچ ریزالت می‌گیرند و چطور JSON-LD را در وردپرس درست پیاده کنیم.",
  "image": ["https://jaryandigital.com/img/schema-markup-jsonld-jaryan.webp"],
  "datePublished": "2026-09-08T09:00:00+03:30",
  "dateModified": "2026-09-08T09:00:00+03:30",
  "inLanguage": "fa-IR",
  "author": {
    "@type": "Organization",
    "name": "تیم جریان",
    "url": "https://jaryandigital.com/about"
  },
  "publisher": { "@id": "https://jaryandigital.com/#organization" },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://jaryandigital.com/blog/schema-markup-guide"
  }
}

چند اشتباه پرتکرار در همین بلوک ساده:

headline باید با <h1> واقعی صفحه یکی باشد. اگر متفاوت است، سیگنال متناقض داده‌اید. گوگل سقف ۱۱۰ کاراکتری هم توصیه می‌کند.

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

author را جدی بگیرید. نویسنده‌ی مشخص با صفحه‌ی نویسنده و بیوگرافی واقعی، مستقیماً به E-E-A-T مربوط است. اگر نویسنده فرد است از Person استفاده کنید و آن را به یک صفحه‌ی /author/... وصل کنید — نه یک رشته‌ی متنی خالی.

اسکیمای FAQPage و HowTo

FAQPage برای صفحه یا بخشی از صفحه است که واقعاً پرسش و پاسخ دارد. شرطش این است که همان پرسش و پاسخ‌ها برای کاربر هم روی صفحه قابل مشاهده باشند؛ نوشتن سؤال‌های نامرئی فقط در JSON-LD نقض دستورالعمل گوگل است و می‌تواند به اقدام دستی (Manual Action) منجر شود.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "آیا اسکیما مارکاپ رتبه سایت را بالا می‌برد؟",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "اسکیما فاکتور رتبه‌بندی مستقیم نیست، اما با فعال‌کردن ریچ ریزالت نرخ کلیک را بالا می‌برد و به فهم بهتر محتوا توسط موتور جستجو کمک می‌کند."
      }
    },
    {
      "@type": "Question",
      "name": "چند نوع اسکیما در یک صفحه مجاز است؟",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "محدودیت عددی وجود ندارد، اما هر نوع باید واقعاً محتوای همان صفحه را توصیف کند. معمولاً یک نوع اصلی به‌همراه BreadcrumbList کافی است."
      }
    }
  ]
}

درباره‌ی HowTo: گوگل نمایش این نوع را در نتایج جستجو متوقف کرده است. همچنان برای مقاله‌های آموزشی مرحله‌به‌مرحله نوشتنش ضرری ندارد و به تجزیه‌ی ماشینی کمک می‌کند، اما آن را در برنامه‌ی سئوتان به‌عنوان منبع ترافیک حساب نکنید.

اسکیمای Product و Review برای فروشگاه‌ها

اگر ووکامرس دارید، این پرارزش‌ترین اسکیمای سایت شماست — چون ستاره، قیمت و موجودی مستقیماً روی نرخ کلیک اثر می‌گذارند.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "افزونه مدیریت سفارش اختصاصی",
  "image": ["https://example.com/img/product-1200.webp"],
  "description": "توضیح واقعی و منحصربه‌فرد محصول",
  "sku": "JD-PLG-001",
  "brand": { "@type": "Brand", "name": "جریان دیجیتال" },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/product/order-manager",
    "priceCurrency": "IRR",
    "price": "12000000",
    "priceValidUntil": "2027-03-20",
    "availability": "https://schema.org/InStock",
    "seller": { "@id": "https://jaryandigital.com/#organization" }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "38"
  }
}

قواعدی که رعایت‌نکردنشان معمولاً به اخطار در سرچ کنسول ختم می‌شود:

price باید عدد خالص باشد، بدون جداکننده‌ی هزارگان و بدون کلمه‌ی «تومان». واحد را در priceCurrency بنویسید.

priceCurrency باید کد سه‌حرفی ISO 4217 باشد. برای ریال ایران IRR است. «تومان» کد ISO ندارد؛ اگر قیمت‌ها را به تومان نمایش می‌دهید، در اسکیما عدد را در ۱۰ ضرب کنید و IRR بنویسید، یا اگر فروش بین‌المللی دارید قیمت معادل را با ارز مربوطه بیاورید. عدد اسکیما و عدد نمایشی صفحه باید از نظر ارزش یکی باشند.

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

availability مقدارهای استاندارد دارد: InStock، OutOfStock، PreOrder، BackOrder. مقدار دلخواه ننویسید.

اسکیمای LocalBusiness برای کسب‌وکارهای ایرانی

اگر دفتر، فروشگاه یا کلینیک فیزیکی دارید، LocalBusiness (یا زیرنوع دقیق‌ترش مثل Dentist، Restaurant، ProfessionalService) را روی صفحه تماس یا صفحه اصلی بنویسید.

{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "جریان دیجیتال",
  "image": "https://jaryandigital.com/img/office.webp",
  "telephone": "+98-21-XXXXXXXX",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "خیابان نمونه، پلاک 12",
    "addressLocality": "تهران",
    "addressRegion": "تهران",
    "postalCode": "1234567890",
    "addressCountry": "IR"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": 35.7219, "longitude": 51.3347 },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Saturday","Sunday","Monday","Tuesday","Wednesday"],
    "opens": "09:00",
    "closes": "17:00"
  }],
  "priceRange": "$$"
}

دو نکته‌ی ایرانی. اول، هفته‌ی کاری: روزهای کاری ایران شنبه تا چهارشنبه است و پنجشنبه اغلب نیمه‌وقت. schema.org نام روزها را فقط به انگلیسی می‌پذیرد، پس Saturday تا Wednesday بنویسید — نه ترجمه‌ی فارسی. دوم، شماره تلفن: قالب بین‌المللی E.164 با پیش‌شماره +98 بنویسید و شماره را با ارقام لاتین وارد کنید، نه با ارقام فارسی.

BreadcrumbList: کم‌هزینه‌ترین برد

مسیر راهنما تقریباً تنها اسکیمایی است که هنوز تقریباً همیشه در نتایج نمایش داده می‌شود — آدرس خام URL زیر عنوان را جایگزین می‌کند با مسیری خوانا. پیاده‌سازی‌اش هم ده دقیقه کار است.

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "خانه", "item": "https://jaryandigital.com/" },
    { "@type": "ListItem", "position": 2, "name": "بلاگ", "item": "https://jaryandigital.com/blog" },
    { "@type": "ListItem", "position": 3, "name": "اسکیما مارکاپ" }
  ]
}

آخرین آیتم (صفحه‌ی جاری) نباید item داشته باشد. ترتیب position باید از ۱ شروع شود و پشت سر هم باشد. و مسیر اسکیما باید با مسیر واقعی مسیر راهنمای صفحه یکی باشد.

گراف اسکیما: وصل‌کردن قطعات با @id

تا اینجا هر بلوک را جدا نوشتیم. کار حرفه‌ای‌تر این است که همه را در یک گراف واحد به هم وصل کنید تا موتور جستجو بفهمد این‌ها اجزای یک موجودیت واحدند، نه چند شیء بی‌ربط.

کلیدش @id است: به هر موجودیت یک شناسه‌ی یکتا (معمولاً یک URL با فرگمنت) می‌دهید و بعد در جاهای دیگر فقط به همان شناسه ارجاع می‌دهید.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://jaryandigital.com/#organization",
      "name": "جریان دیجیتال"
    },
    {
      "@type": "WebSite",
      "@id": "https://jaryandigital.com/#website",
      "url": "https://jaryandigital.com/",
      "publisher": { "@id": "https://jaryandigital.com/#organization" }
    },
    {
      "@type": "WebPage",
      "@id": "https://jaryandigital.com/blog/schema-markup-guide#webpage",
      "url": "https://jaryandigital.com/blog/schema-markup-guide",
      "isPartOf": { "@id": "https://jaryandigital.com/#website" }
    },
    {
      "@type": "Article",
      "@id": "https://jaryandigital.com/blog/schema-markup-guide#article",
      "isPartOf": { "@id": "https://jaryandigital.com/blog/schema-markup-guide#webpage" },
      "publisher": { "@id": "https://jaryandigital.com/#organization" },
      "headline": "اسکیما مارکاپ: راهنمای کامل داده ساختاریافته برای سایت‌های ایرانی"
    }
  ]
}

مزیت این ساختار فقط تمیزی نیست: اطلاعات سازمان را یک‌بار تعریف می‌کنید و در همه‌ی صفحه‌ها به همان ارجاع می‌دهید، پس تناقض داده بین صفحه‌ها از بین می‌رود. افزونه‌های خوب وردپرس (مثل Rank Math و Yoast در نسخه‌های جدید) دقیقاً همین کار را می‌کنند.

مسائل خاص سایت‌های فارسی

اینجا جایی است که اکثر راهنماهای ترجمه‌شده ساکت‌اند، و دقیقاً همان‌جایی که سایت‌های ایرانی خطا می‌گیرند.

تاریخ باید میلادی و ISO 8601 باشد. فیلدهای datePublished، dateModified، priceValidUntil و مانند آن‌ها فقط قالب YYYY-MM-DD یا YYYY-MM-DDThh:mm:ss+03:30 را می‌پذیرند. نوشتن «۱۷ شهریور ۱۴۰۵» یا حتی 1405-06-17 خطای اعتبارسنجی می‌دهد. تاریخ جلالی را برای کاربر نمایش بدهید و معادل میلادی را در اسکیما بگذارید. افزونه‌های تاریخ شمسی وردپرس گاهی تاریخ خروجی اسکیما را هم شمسی می‌کنند — این را حتماً در سورس صفحه چک کنید.

ارقام فارسی در اسکیما نامعتبرند. "price": "۱۲۰۰۰۰۰۰" یا "reviewCount": "۳۸" پارس نمی‌شود. هر مقدار عددی باید با ارقام لاتین نوشته شود. این باگ در سایت‌هایی که خروجی اسکیما را از همان فیلدی می‌گیرند که به کاربر نمایش می‌دهند، بسیار شایع است.

منطقه زمانی +03:30. ایران نیم‌ساعت آفست دارد. اگر زمان را بدون آفست بنویسید، به‌عنوان UTC تفسیر می‌شود و تاریخ انتشار محتوای شما تا چند ساعت جابه‌جا می‌شود — که برای محتوای خبری و رویداد اهمیت دارد.

واحد پول. همان‌طور که گفتیم، «تومان» کد ISO ندارد. IRR بنویسید و عدد را متناسب با آن تنظیم کنید.

زبان را اعلام کنید. "inLanguage": "fa-IR" را در WebSite، WebPage و Article بگذارید. این به گوگل کمک می‌کند صفحه را در نتایج فارسی درست دسته‌بندی کند و برای سایت‌های چندزبانه ضروری است.

URL در اسکیما باید همان URL کانونیکال باشد. اگر آدرس‌های سایت شما فارسی‌اند و در مرورگر percent-encode می‌شوند، در اسکیما هم همان نسخه‌ی encode‌شده را بنویسید تا با کانونیکال یکی باشد. توصیه‌ی ما — همان‌طور که در راهنمای سئو تکنیکال توضیح داده‌ایم — استفاده از اسلاگ انگلیسی است تا اصلاً درگیر این موضوع نشوید.

پیاده‌سازی در وردپرس

سه راه دارید و انتخاب بین‌شان به میزان سفارشی‌سازی مورد نیازتان بستگی دارد.

روش

مناسب برای

مزیت

محدودیت

افزونه سئو (Rank Math / Yoast)

۸۰٪ سایت‌ها

راه‌اندازی سریع، گراف آماده

انواع خاص و فیلدهای سفارشی محدود

افزونه اختصاصی اسکیما

سایت‌های با نیاز خاص

کنترل کامل بر انواع

افزونه اضافه، احتمال تداخل

کد در قالب یا افزونه سفارشی

پروژه‌های حرفه‌ای

دقیقاً همان چیزی که می‌خواهید

نیاز به توسعه‌دهنده

اگر با افزونه پیش می‌روید، یک نکته‌ی مهم: هرگز دو منبع اسکیما را هم‌زمان فعال نگذارید. ترکیب Rank Math با یک افزونه‌ی اسکیمای جداگانه یا با اسکیمای داخلی قالب، معمولاً به دو بلوک Article متناقض روی یک صفحه ختم می‌شود. گوگل در این حالت ممکن است هر دو را نادیده بگیرد. سورس صفحه را جستجو کنید و مطمئن شوید فقط یک بلوک application/ld+json برای هر نوع دارید.

برای تولید اسکیمای سفارشی با کد، الگوی زیر تمیزترین راه است:

add_action( 'wp_head', function () {
    if ( ! is_singular( 'post' ) ) {
        return;
    }

    $schema = [
        '@context'      => 'https://schema.org',
        '@type'         => 'Article',
        'headline'      => wp_strip_all_tags( get_the_title() ),
        'datePublished' => get_the_date( 'c' ),
        'dateModified'  => get_the_modified_date( 'c' ),
        'inLanguage'    => 'fa-IR',
        'author'        => [
            '@type' => 'Organization',
            'name'  => 'تیم جریان',
        ],
        'mainEntityOfPage' => [
            '@type' => 'WebPage',
            '@id'   => get_permalink(),
        ],
    ];

    echo '<script type="application/ld+json">'
        . wp_json_encode( $schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES )
        . '</script>';
}, 20 );

دو پرچم JSON_UNESCAPED_UNICODE و JSON_UNESCAPED_SLASHES را حذف نکنید. بدون اولی، متن فارسی به یا... تبدیل می‌شود که فنی معتبر است اما دیباگش کابوس. و get_the_date('c') خروجی ISO 8601 با آفست درست می‌دهد — دقیقاً همان چیزی که در بخش قبل گفتیم.

اگر سایتتان نیاز به اسکیمای پیچیده‌ای دارد که هیچ افزونه‌ای پوشش نمی‌دهد — مثلاً محصولات با ساختار قیمت‌گذاری خاص یا انواع محتوای سفارشی — توسعه افزونه اختصاصی وردپرس دقیقاً برای همین موارد است.

تست، اعتبارسنجی و رفع خطا

اسکیمای تست‌نشده یعنی اسکیمای شکسته. سه ابزار را به این ترتیب استفاده کنید:

ابزار

چه چیزی را می‌گوید

هزینه

Rich Results Test گوگل

آیا صفحه واجد شرایط ریچ ریزالت است

رایگان

Schema Markup Validator

اعتبار نحوی کل اسکیما بر اساس schema.org

رایگان

گزارش‌های Enhancements در Search Console

خطاها روی کل سایت، در مقیاس واقعی

رایگان

تفاوت دوتای اول را بدانید: Rich Results Test فقط انواعی را بررسی می‌کند که گوگل برایشان ریچ ریزالت دارد و بقیه را نادیده می‌گیرد؛ اگر می‌خواهید کل ساختار را از نظر نحوی بسنجید، Validator رسمی schema.org کار درست است.

خطاهای Search Console دو دسته‌اند و تفاوتشان مهم است. Error یعنی این آیتم اصلاً واجد شرایط نیست و باید فوراً رفع شود. Warning یعنی فیلدی توصیه‌شده جا افتاده؛ آیتم کار می‌کند اما ناقص است. اول همه‌ی Errorها را ببندید، بعد سراغ Warningها بروید.

یک عادت عملی: بعد از هر تغییر در قالب یا افزونه‌ی سئو، سه صفحه‌ی نمونه (یک مقاله، یک صفحه خدمت، یک محصول) را دستی در Rich Results Test بزنید. تغییرات قالب، شایع‌ترین دلیل شکستن ناگهانی اسکیمای کل سایت است.

اسکیما و موتورهای پاسخ‌گو (GEO)

بخش قابل‌توجهی از ترافیک آینده از موتورهای پاسخ‌گو می‌آید: AI Overviews گوگل، ChatGPT، Perplexity. این‌ها مثل موتور جستجوی کلاسیک لینک آبی نشان نمی‌دهند؛ پاسخ می‌سازند و به چند منبع ارجاع می‌دهند. سؤال کلیدی این است که شما جزو آن چند منبع باشید.

اسکیما اینجا نقش غیرمستقیم اما واقعی دارد. مدل زبانی، صفحه‌ای را که ساختار روشنی دارد راحت‌تر تجزیه می‌کند: وقتی Question و Answer صریح مشخص شده‌اند، وقتی datePublished می‌گوید این محتوا تازه است، وقتی author و publisher نشان می‌دهند پشت این متن یک موجودیت مشخص ایستاده. این‌ها همان سیگنال‌هایی‌اند که تصمیم به نقل‌قول را آسان می‌کنند.

در کنار اسکیما، این کارها بیشترین اثر را روی نقل‌قول‌شدن دارند:

هر بخش را با یک پاسخ مستقل و کوتاه (۴۰ تا ۶۰ کلمه) شروع کنید که بدون خواندن بقیه‌ی صفحه معنا بدهد. مدل‌های زبانی همین بلوک‌ها را برمی‌دارند.

نام موجودیت‌ها را ثابت بنویسید. اگر جایی «جریان دیجیتال» و جایی «جریان» و جایی «Jaryan» بنویسید، سه موجودیت جدا ساخته‌اید.

عدد و تاریخ و منبع بیاورید. محتوای مبهم و کلی نقل‌قول نمی‌شود.

دسترسی خزنده‌های هوش مصنوعی را در robots.txt باز بگذارید. اگر GPTBot و PerplexityBot و ClaudeBot بلاک باشند، هر چقدر هم اسکیما بنویسید دیده نمی‌شوید.

اشتباهات رایج

اسکیما برای محتوایی که روی صفحه نیست. شایع‌ترین و پرخطرترین خطا. نوشتن FAQ در JSON-LD بدون نمایش همان سؤال‌ها به کاربر، یا امتیاز محصولی که هیچ نظری برایش ثبت نشده. این نقض صریح دستورالعمل گوگل است.

دو بلوک اسکیمای متناقض. افزونه سئو + اسکیمای قالب. سورس را چک کنید.

تاریخ شمسی یا ارقام فارسی. خطای اعتبارسنجی قطعی.

کپی کردن نمونه کد بدون تغییر مقادیر. بلوک‌هایی که هنوز example.com یا نام برند مقاله‌ی مرجع در آن‌ها مانده، در سایت‌های ایرانی کم نیست.

اسکیمای Organization روی همه صفحات با @id متفاوت. یعنی برای گوگل، شما در هر صفحه یک شرکت جدا هستید. @id باید ثابت باشد.

نادیده‌گرفتن اخطارهای Search Console. خطاهای اسکیما به‌خودی‌خود برطرف نمی‌شوند و انباشته می‌شوند.

اسکیمای Product روی صفحه دسته‌بندی. صفحه‌ی لیست محصولات، خودش یک محصول نیست. اگر می‌خواهید ساختار لیست را اعلام کنید از ItemList استفاده کنید.

چک‌لیست نهایی اسکیما مارکاپ

پایه

  • قالب JSON-LD استفاده شده، نه Microdata.

  • فقط یک منبع تولید اسکیما در سایت فعال است.

  • بلوک اسکیما در HTML اولیه (نه فقط بعد از اجرای جاوااسکریپت) حاضر است.

  • Organization و WebSite روی صفحه اصلی پیاده شده‌اند.

  • @id سازمان در همه صفحات یکسان است.

در سطح صفحه

  • هر صفحه یک نوع اصلی به‌علاوه BreadcrumbList دارد.

  • headline اسکیما با <h1> صفحه یکی است.

  • mainEntityOfPage به URL کانونیکال همان صفحه اشاره می‌کند.

  • تصویر اسکیما وجود دارد و قابل دسترسی است.

  • inLanguage روی fa-IR تنظیم شده است.

داده فارسی

  • همه تاریخ‌ها میلادی و ISO 8601 هستند.

  • آفست +03:30 روی زمان‌ها اعمال شده است.

  • همه مقادیر عددی با ارقام لاتین نوشته شده‌اند.

  • priceCurrency کد معتبر ISO (IRR) است.

  • شماره تلفن در قالب +98... است.

فروشگاه

  • Product شامل sku، brand و offers است.

  • availability یکی از مقادیر استاندارد schema.org است.

  • aggregateRating فقط وقتی هست که نظرات واقعی روی صفحه دیده می‌شوند.

  • قیمت اسکیما با قیمت نمایشی صفحه یکی است.

اعتبارسنجی

  • صفحه در Rich Results Test بدون خطا تأیید شده است.

  • ساختار کامل در Schema Markup Validator بررسی شده است.

  • گزارش Enhancements سرچ کنسول بدون Error است.

  • بعد از هر تغییر قالب، سه صفحه نمونه دوباره تست شده‌اند.

پرسش‌های متداول شما درباره اسکیما مارکاپ

اسکیما مارکاپ رتبه سایت را بالا می‌برد؟

مستقیم نه. اسکیما فاکتور رتبه‌بندی نیست. اما با فعال‌کردن ریچ ریزالت — ستاره، قیمت، مسیر راهنما — نرخ کلیک شما از همان رتبه‌ی فعلی بالا می‌رود، و برای بعضی فرمت‌های نتایج اصلاً شرط ورود است. تأثیر واقعی‌اش را در نرخ کلیک سرچ کنسول ببینید، نه در جابه‌جایی رتبه.

JSON-LD بهتر است یا Microdata؟ JSON-LD. هم گوگل رسماً توصیه‌اش می‌کند و هم نگهداری‌اش به‌مراتب ساده‌تر است، چون از HTML ظاهری جدا می‌ماند و با تغییر قالب نمی‌شکند. Microdata فقط در پروژه‌های قدیمی که بازنویسی‌شان صرف نمی‌کند باقی می‌ماند.

می‌توانم چند نوع اسکیما را در یک صفحه بگذارم؟

بله، و در بیشتر موارد باید. مثلاً یک مقاله معمولاً Article و BreadcrumbList و در صورت وجود بخش پرسش و پاسخ، FAQPage دارد. شرط این است که هر نوع واقعاً محتوای همان صفحه را توصیف کند؛ افزودن نوع‌های بی‌ربط کمکی نمی‌کند.

تاریخ را در اسکیما شمسی بنویسم یا میلادی؟

حتماً میلادی و در قالب ISO 8601 مثل 2026-09-08. تاریخ شمسی خطای اعتبارسنجی می‌دهد. برای کاربر تاریخ جلالی را نمایش بدهید و معادل میلادی را فقط در JSON-LD بگذارید. آفست ایران +03:30 را هم فراموش نکنید.

واحد پول تومان را چطور در اسکیما بنویسم؟

«تومان» کد ISO 4217 ندارد، پس در priceCurrency قابل استفاده نیست. از IRR استفاده کنید و مقدار عددی را متناسب با ریال بنویسید (تومان ضربدر ۱۰). مهم است که ارزش عدد اسکیما با آنچه کاربر روی صفحه می‌بیند یکی باشد.

چرا با وجود پیاده‌سازی درست، ریچ ریزالت نمی‌گیرم؟

واجد شرایط بودن با نمایش گرفتن یکی نیست. گوگل تصمیم نهایی را خودش می‌گیرد و به کیفیت صفحه، اعتبار سایت و نوع جستجو بستگی دارد. ضمناً بعضی انواع مثل FAQ و HowTo از سال ۲۰۲۳ عملاً از نتایج حذف شده‌اند، پس نبود نمایش لزوماً به معنی خطای شما نیست.

افزونه Rank Math کافی است یا باید کد سفارشی بنویسم؟

برای اکثر سایت‌ها Rank Math یا Yoast کافی است و گراف استانداردی هم تولید می‌کند. کد سفارشی وقتی لازم می‌شود که نوع محتوای سفارشی دارید، ساختار قیمت‌گذاری غیرمعمول دارید، یا می‌خواهید فیلدهایی را پر کنید که افزونه پوشش نمی‌دهد.

اسکیما روی دیده‌شدن در ChatGPT و Perplexity اثر دارد؟

اثر غیرمستقیم دارد. این موتورها محتوای ساختاریافته را راحت‌تر تجزیه و نقل‌قول می‌کنند و سیگنال‌هایی مثل نویسنده، ناشر و تاریخ انتشار به اعتمادپذیری محتوا کمک می‌کند. اما شرط اول این است که خزنده‌های آن‌ها در robots.txt بلاک نشده باشند.

جمع‌بندی و قدم بعدی

اسکیما مارکاپ یکی از معدود کارهای سئوی فنی است که ورودی مشخص و خروجی قابل‌اندازه‌گیری دارد: چند ساعت کار، و بعد نتایجی که با مسیر راهنما، ستاره یا قیمت نمایش داده می‌شوند. کلیدش هم پیچیدگی نیست — درست بودن است. یک Article تمیز و معتبر، از یک گراف پیچیده‌ی پر از خطا خیلی بیشتر می‌ارزد.

اگر می‌خواهید از یک نقطه شروع کنید، این ترتیب را پیشنهاد می‌کنیم: اول Organization و WebSite روی صفحه اصلی، بعد BreadcrumbList روی همه صفحات، بعد Article روی مقاله‌ها و Product روی محصولات. هر مرحله را قبل از رفتن به بعدی در Rich Results Test تأیید کنید.

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

قدم بعدی طبیعی بعد از اسکیما، رسیدگی به سرعت است: راهنمای Core Web Vitals و سئو تصاویر دو حوزه‌ای‌اند که بیشترین اثر را روی تجربه‌ی کاربر می‌گذارند، و همه‌ی این‌ها در راهنمای جامع سئو تکنیکال کنار هم قرار می‌گیرند. اگر می‌خواهید بدانید وضعیت فعلی داده ساختاریافته‌ی سایتتان چیست و کدام فرصت‌ها را از دست می‌دهید، تیم جریان دیجیتال آنالیز سئوی فنی سایت شما را انجام می‌دهد و گزارش اقدامات اولویت‌بندی‌شده تحویل می‌دهد. برای مشاوره رایگان با ما تماس بگیرید.

نظرات کاربران

هنوز نظری ثبت نشده است. اولین نفری باشید که نظر می‌دهد.

ثبت نظر

نشانی ایمیل و شماره‌ی شما لازم نیست. نظرها پس از بررسی و تأیید منتشر می‌شوند.