مقالات

آموزش جامع افزودن اسکیمای قیمت (Offers)، موجودی و SKU؛ تسلط بر ریچ اسنیپت‌های محصول

آموزش جامع افزودن اسکیمای قیمت (Offers)، موجودی و SKU؛ تسلط بر ریچ اسنیپت‌های محصول

در فضای رقابتی فروشگاه‌های اینترنتی، موفقیت فقط به داشتن محصول باکیفیت محدود نمی‌شود؛ بلکه به نحوه معرفی فنی آن به موتورهای جستجو بستگی دارد. زمانی که گوگل صفحه شما را بررسی می‌کند، به دنبال نشانه‌هایی است که ماهیت تجاری آن را تایید کند. استفاده صحیح از اسکیما (Schema) و داده‌های ساختاریافته محصولات، دقیقاً همان زبانی است که صفحه شما را از یک متن ساده وبلاگی، به یک “موجودیت” (Entity) قابل خرید و شفاف برای ربات‌ها تبدیل می‌کند. در این راهنما، ما از مفاهیم پایه‌ای تا کدنویسی پیشرفته JSON-LD را با رویکردی اجرایی بررسی می‌کنیم تا بتوانید با فعال‌سازی ویژگی‌هایی مثل قیمت و موجودی در نتایج جستجو، نرخ کلیک (CTR) و ورودی هدفمند سایت را افزایش دهید.

جدول کاربردی (چک‌لیست سریع ویژگی‌های فنی)

ویژگی (Property) نقش در سئو اشتباه رایج در پیاده‌سازی
Price (قیمت) نمایش قیمت در نتایج جستجو استفاده از کاما یا واحد پول در مقدار عددی (مثلاً 150,000).
Availability (موجودی) نمایش وضعیت موجود/ناموجود نوشتن متن فارسی “موجود است” به جای استفاده از URL استاندارد InStock.
SKU (شناسه) تشخیص یکتایی محصول و اتصال به مرچنت خالی گذاشتن فیلد یا استفاده از شناسه‌های تکراری برای محصولات مختلف.
priceValidUntil نمایش اعتبار تخفیف و پیشنهاد ویژه عدم درج تاریخ انقضا برای قیمت‌های حراجی که باعث گمراهی کاربر می‌شود.
Review نمایش ستاره‌های امتیازدهی درج دستی امتیاز ۵ ستاره بدون وجود سیستم واقعی ثبت نظر (خطر جریمه دستی).

چرا اسکیمای محصول (Product Schema) برای سئو فروشگاهی حیاتی است؟

وقتی ربات‌های گوگل صفحه محصول شما را کرال می‌کنند، به دنبال سیگنال‌هایی هستند که ماهیت صفحه را تایید کند. بدون اسکیما، گوگل باید حدس بزند که عدد درج شده در صفحه “قیمت” است یا صرفاً یک عدد تصادفی.

اسکیمای محصول این ابهام را از بین می‌برد. با پیاده‌سازی استاندارد Product در قالب JSON-LD، ما مستقیماً به موتور جستجو اعلام می‌کنیم که این صفحه حاوی یک کالای مشخص با ویژگی‌های فنی، قیمتی و تجاری است. این کار دو خروجی حیاتی دارد:

  1. درک معنایی (Semantic Understanding): گوگل متوجه می‌شود که سایت شما یک فروشگاه (eCommerce) است، نه یک سایت خبری یا وبلاگ. این موضوع به رتبه‌بندی بهتر در کوئری‌های با قصد خرید (Transactional Intent) کمک می‌کند.
  2. نتایج غنی (Rich Results): تنها با داشتن اسکیما است که شانس نمایش ستاره‌های امتیازدهی، قیمت، وضعیت موجودی و تصویر بندانگشتی محصول را در صفحه نتایج جستجو (SERP) پیدا می‌کنید.

تاثیر نمایش قیمت و موجودی در نتایج گوگل بر نرخ کلیک (CTR)

در فضای رقابتی فروشگاه‌های اینترنتی، جذب کلیک فقط به رتبه یک بودن محدود نمی‌شود؛ بلکه به میزان “جلب توجه” و “اعتمادسازی” در نگاه اول بستگی دارد. نمایش قیمت و وضعیت موجودی (In Stock) مستقیماً روی رفتار کاربر تاثیر می‌گذارد.

  • شفافیت قبل از کلیک: وقتی کاربر قیمت را در همان صفحه نتایج می‌بیند، اگر روی لینک شما کلیک کند، یک کاربر “واجد شرایط” (Qualified Lead) است. او قیمت را دیده و با آن مشکلی نداشته؛ بنابراین احتمال خرید او بالاتر است.
  • تمایز بصری: در یک لیست ۱۰ تایی از نتایج جستجو، چشمان کاربر ناخودآگاه به سمت گزینه‌ای می‌رود که اطلاعات بیشتری دارد. وجود قیمت سبز رنگ یا عبارت “موجود در انبار”، فضای بیشتری از صفحه نتایج را اشغال کرده و نرخ کلیک (CTR) را به شکل ارگانیک افزایش می‌دهد.
  • سیگنال تازگی محتوا: گوگل به صفحاتی که داده‌های دقیق و به‌روز (مانند نوسان قیمت لحظه‌ای) را از طریق اسکیما مخابره می‌کنند، توجه ویژه‌ای دارد. این موضوع نشان‌دهنده زنده بودن و فعال بودن کسب‌وکار شماست.

درک تفاوت بین Offers، Availability و SKU در استاندارد Schema.org

بسیاری از مدیران سایت‌ها در پر کردن فیلدهای اسکیمای محصول دچار خطا می‌شوند. درک دقیق سه مفهوم کلیدی Offers، Availability و SKU برای جلوگیری از هشدارهای سرچ کنسول (GSC Warnings) و نمایش صحیح اطلاعات ضروری است.

در جدول زیر، این تفاوت‌ها را به صورت کاربردی تفکیک کرده‌ام:

ویژگی (Property) تعریف فنی کاربرد عملیاتی چرا مهم است؟
Offers بخشی از اسکیما که شرایط فروش را تعریف می‌کند. دربرگیرنده قیمت، واحد پول و تاریخ انقضای قیمت است. بدون بخش Offers، گوگل محصول شما را یک “کالای نمایشی” بدون قابلیت خرید در نظر می‌گیرد.
Availability وضعیت لحظه‌ای دسترسی به کالا. مقادیر استاندارد مثل InStock (موجود)، OutOfStock (ناموجود) یا PreOrder (پیش‌خرید). اگر کالا ناموجود باشد و کاربر وارد سایت شود، تجربه کاربری (UX) آسیب می‌بیند. گوگل این فیلد را مستقیماً در نتایج نمایش می‌دهد.
SKU شناسه منحصر‌به‌فرد کالا (Stock Keeping Unit). کدی که انبارداری و سیستم حسابداری شما برای شناسایی محصول استفاده می‌کند. کمک به گوگل برای تطبیق دقیق نسخه‌های مختلف یک محصول (مثلاً رنگ‌ها یا سایزهای مختلف) و جلوگیری از سردرگمی در ایندکس.

نکته اجرایی: مطمئن شوید که واحد پولی (priceCurrency) در بخش Offers با واحد پولی که در متن صفحه نمایش داده می‌شود، یکسان باشد (مثلاً IRT برای تومان). مغایرت در این بخش باعث می‌شود گوگل قیمت را در نتایج نشان ندهد.

تشریح فنی ویژگی‌های کلیدی در داده‌های ساختاریافته (Structured Data)

در استاندارد Schema.org، ما با یک ساختار درختی و سلسله‌مراتبی (Hierarchy) روبرو هستیم. وقتی تایپ اصلی صفحه را Product معرفی می‌کنیم، گوگل انتظار دارد ویژگی‌های (Properties) خاصی را درون این آبجکت ببیند. عدم رعایت فرمت دقیق این ویژگی‌ها (Data Types) نه تنها باعث هشدارهای سرچ کنسول می‌شود، بلکه می‌تواند باعث شود گوگل کل داده‌های آن محصول را نادیده بگیرد. دقت در “نوع داده” (عدد، رشته متنی، یا URL) در اینجا حرف اول را می‌زند.

تحلیل ویژگی Offers: ارز (currency) و قیمت (price)

ویژگی offers در واقع یک “آبجکت تو در تو” (Nested Object) از نوع Offer است که درون اسکیمای Product قرار می‌گیرد. این بخش مستقیماً شرایط تجاری محصول را تعریف می‌کند. دو رکن اصلی آن عبارتند از:

  1. ویژگی priceCurrency (ارز):
    • استاندارد فنی: این مقدار باید حتماً طبق استاندارد ISO 4217 باشد (مانند USD, EUR).
    • چالش رایج: در وب فارسی، استفاده از IRR (ریال) یا کد غیررسمی IRT (تومان) باید با دقت انجام شود. گوگل معمولاً IRR را بهتر درک می‌کند، اما عدد قیمت باید با آن همخوانی داشته باشد.
    • نکته سئو: اگر واحد پول سایت شما تومان است اما در اسکیما ریال می‌فرستید، حتماً عدد قیمت را هم در کد جیسون (JSON-LD) تبدیل کنید تا گوگل دچار خطای “قیمت غیرمنطقی” نشود.
  2. ویژگی price (قیمت):
    • استاندارد فنی: نوع داده در اینجا باید Number یا Text باشد، اما بدون جداکننده هزارگان (کاما) و بدون نماد واحد پول.
    • مثال صحیح: “price”: “150000”
    • مثال غلط: “price”: “150,000” یا “price”: “150000 تومان”
    • اهمیت: وجود کاراکترهای اضافی باعث می‌شود ربات نتواند مقدار عددی را پارس (Parse) کند و در نتیجه ریچ‌اسنیپت قیمت نمایش داده نخواهد شد.

مدیریت وضعیت موجودی (ItemAvailability): از InStock تا OutOfStock

گوگل برای درک وضعیت انبار، از متن فارسی “موجود است” یا “ناموجود” استفاده نمی‌کند؛ بلکه به دنبال مقادیر شمارشی (Enumeration) استاندارد در ویژگی availability می‌گردد. استفاده صحیح از این مقادیر، از نرخ پرش (Bounce Rate) ناشی از ورود کاربر به صفحه محصول ناموجود جلوگیری می‌کند.

مهم‌ترین مقادیر استاندارد عبارتند از:

  • https://schema.org/InStock: کالا آماده ارسال است. این بهترین وضعیت برای نمایش در نتایج جستجو است.
  • https://schema.org/OutOfStock: کالا تمام شده است.
    • نکته استراتژیک: وقتی این وضعیت را ست می‌کنید، گوگل همچنان صفحه را ایندکس نگه می‌دارد اما در نتایج ممکن است برچسب قیمتی را حذف کند یا وضعیت را به کاربر اعلام کند. این کار بسیار بهتر از حذف صفحه (404) است.
  • https://schema.org/PreOrder: برای محصولاتی که هنوز عرضه نشده‌اند اما قابل پیش‌خرید هستند. این گزینه برای کمپین‌های لانچ محصول (Product Launch) عالی است.

نکته فنی: این مقادیر باید دقیقاً به صورت URL کامل (همانطور که در بالا نوشتم) یا نام کوتاه (InStock) در کد درج شوند.

اهمیت ویژگی SKU و شناسه محصول در اتصال به Google Merchant Center

در فروشگاه‌های بزرگ، نام محصول ممکن است تکراری یا شبیه به هم باشد. ویژگی sku (Stock Keeping Unit) و شناسه‌های جهانی مثل gtin یا mpn اثر انگشت اختصاصی هر محصول هستند.

  • تطبیق داده‌ها (Data Reconciliation): گوگل از SKU استفاده می‌کند تا بفهمد آیا محصولی که در صفحه سایت شماست، همان محصولی است که احتمالاً در فید گوگل مرچنت (Google Merchant Center) یا سایر دیتابیس‌هایش وجود دارد یا خیر.
  • جلوگیری از کنیبالیزیشن (Cannibalization): اگر شما برای یک محصول با رنگ‌های مختلف، URLهای متفاوت دارید، داشتن SKU اختصاصی برای هر واریانت (Variant) به گوگل کمک می‌کند تا آن‌ها را به عنوان موجودیت‌های متمایز اما مرتبط شناسایی کند.
  • اعتبار فروشگاه: پر کردن فیلد SKU و GTIN (کد جهانی کالا) سیگنال قوی از E-E-A-T است. این نشان می‌دهد شما یک فروشنده معتبر هستید که کالای واقعی با شناسه قابل ردیابی می‌فروشید، نه یک کالای فیک یا نامشخص.

راهنمای گام‌به‌گام پیاده‌سازی اسکیمای قیمت و موجودی (کدنویسی JSON-LD)

بهترین روش برای پیاده‌سازی اسکیما، استفاده از فرمت JSON-LD است. این فرمت برخلاف روش‌های قدیمی (مثل Microdata)، کد را از بدنه HTML جدا می‌کند و باعث می‌شود نگهداری و ویرایش آن بسیار ساده‌تر باشد. ما این اسکریپت را معمولاً در <head> یا انتهای <body> صفحه محصول قرار می‌دهیم.

ساختار استاندارد اسکریپت JSON-LD برای یک محصول ساده

برای یک محصول معمولی که تنها یک قیمت و یک وضعیت موجودی دارد، ساختار زیر “استاندارد طلایی” محسوب می‌شود. در این کد، من روی ویژگی‌های offers تمرکز کرده‌ام که بحث اصلی ماست.

JSON

<script type=”application/ld+json”>

{

“@context”: “https://schema.org/”,

“@type”: “Product”,

“name”: “کفش ورزشی مدل رانینگ پرو”,

“image”: “https://example.com/photos/1×1/photo.jpg”,

“description”: “کفش ورزشی مناسب برای دویدن با کفی طبی و قابلیت گردش هوا.”,

“sku”: “RUN-PRO-123”,

“brand”: {

“@type”: “Brand”,

“name”: “Nike”

},

“offers”: {

“@type”: “Offer”,

“url”: “https://example.com/running-pro”,

“priceCurrency”: “IRR”,

“price”: “15000000”,

“availability”: “https://schema.org/InStock”,

“itemCondition”: “https://schema.org/NewCondition”

}

}

</script>

نکات حیاتی در این کد:

  • priceCurrency: همانطور که می‌بینید از IRR استفاده شده است. اگر واحد پول سایت تومان است، باید حتماً در سمت سرور (Backend) یک تابع تبدیل داشته باشید که قیمت تومان را ضرب در ۱۰ کرده و به عنوان ریال در این فیلد قرار دهد.
  • price: عدد 15000000 بدون هیچ کاما یا واحد پولی نوشته شده است. این تنها فرمتی است که گوگل می‌پذیرد.

نحوه مدیریت Offers برای محصولات متغیر (Variable Products) با قیمت‌های متفاوت

وقتی یک محصول دارای “تنوع” (Variation) است (مثلاً یک پیراهن در سایزهای مختلف با قیمت‌های متفاوت)، استفاده از یک Offer ساده اشتباه است. در اینجا ما دو راهکار داریم، اما بهترین روش برای صفحه اصلی محصول، استفاده از AggregateOffer است تا به گوگل بگوییم قیمت این محصول “از این مبلغ تا آن مبلغ” است.

این کار باعث می‌شود در نتایج جستجو هم شانس نمایش بازه قیمتی را داشته باشید.

JSON

<script type=”application/ld+json”>

{

“@context”: “https://schema.org/”,

“@type”: “Product”,

“name”: “پیراهن مردانه نخی”,

“description”: “پیراهن مردانه در رنگ‌ها و سایزهای متنوع.”,

“sku”: “SHIRT-VAR-001”,

“brand”: {

“@type”: “Brand”,

“name”: “H&M”

},

“offers”: {

“@type”: “AggregateOffer”,

“url”: “https://example.com/shirt-var”,

“priceCurrency”: “IRR”,

“lowPrice”: “5000000”,

“highPrice”: “7500000”,

“offerCount”: “5”,

“availability”: “https://schema.org/InStock”

}

}

</script>

تحلیل تخصصی:

  • AggregateOffer: به جای Offer معمولی، از نوع “تجمعی” استفاده کردیم.
  • lowPrice و highPrice: این دو فیلد حیاتی هستند. گوگل با دیدن این‌ها متوجه می‌شود که ارزان‌ترین و گران‌ترین نسخه این محصول چقدر است.
  • offerCount: تعداد کل تنوع‌های موجود را نشان می‌دهد (اختیاری اما مفید برای دقت بیشتر).

افزودن تاریخ انقضای قیمت (priceValidUntil) برای پیشنهادهای ویژه

اگر محصول شما در “فروش ویژه” یا “تخفیف زمان‌دار” است، حتماً باید از ویژگی priceValidUntil استفاده کنید. این ویژگی دو کاربرد اساسی دارد:

  1. اطلاع‌رسانی به گوگل: به ربات می‌گوید که قیمت فعلی (تخفیف‌خورده) فقط تا تاریخ مشخصی اعتبار دارد.
  2. جلوگیری از نارضایتی: اگر گوگل بداند قیمت منقضی شده، در کرال‌های بعدی سریع‌تر قیمت را به‌روز می‌کند تا کاربر با دیدن قیمت قدیمی در گوگل و قیمت جدید در سایت، شوکه نشود.

JSON

“offers”: {

“@type”: “Offer”,

“url”: “https://example.com/black-friday-deal”,

“priceCurrency”: “IRR”,

“price”: “9000000”,

“priceValidUntil”: “2024-12-30”,

“availability”: “https://schema.org/InStock”

}

نکته فرمت‌دهی: تاریخ باید دقیقاً با فرمت استاندارد YYYY-MM-DD (سال-ماه-روز) وارد شود. هر فرمت دیگری (مثل 1403/10/09) توسط گوگل نادیده گرفته می‌شود و ارور دریافت می‌کنید.

 

روش‌های افزودن اسکیما در سیستم‌های مدیریت محتوا (CMS)

همه سایت‌ها دسترسی مستقیم به کد منبع (Source Code) برای ویرایش دستی ندارند. در واقعیت، ما با سیستم‌های مدیریت محتوا (CMS) یا فروشگاه‌سازهایی طرف هستیم که باید زبان آن‌ها را بلد باشیم. انتخاب روش پیاده‌سازی به زیرساخت فنی سایت و سطح دسترسی شما بستگی دارد. هدف نهایی این است که داده‌ها به صورت “پویا” (Dynamic) و خودکار تولید شوند، نه اینکه برای هر محصول دستی کد بزنیم.

تنظیمات خودکار Offers و SKU در ووکامرس (WooCommerce)

ووکامرس به عنوان محبوب‌ترین پلتفرم فروشگاهی در وب فارسی، به صورت پیش‌فرض (Native) بخشی از اسکیمای محصول را تولید می‌کند، اما این تولید اغلب ناقص است و نیاز به تکمیل دارد.

برای اینکه داده‌های Offers و SKU که در بخش‌های قبل بررسی کردیم به درستی در خروجی جیسون ووکامرس قرار بگیرند، باید فیلدهای زیر در صفحه ویرایش محصول با دقت پر شوند:

  1. مدیریت SKU (شناسه محصول):
    • در تب “فهرست موجودی” (Inventory)، فیلد “شناسه محصول” (SKU) را خالی نگذارید. اگر این فیلد خالی بماند، ووکامرس معمولاً ID دیتابیس (مثلاً post_id) را جایگزین نمی‌کند و ارور “Missing field ‘sku'” در سرچ کنسول ایجاد می‌شود.
  2. مدیریت Offers (قیمت و موجودی):
    • در تب “همگانی” (General)، قیمت عادی و قیمت حراج را وارد کنید. ووکامرس خودکار priceValidUntil را بر اساس تنظیمات زمان‌بندی حراج پر می‌کند.
    • نکته حیاتی برای محصولات متغیر: اگر محصول شما دارای متغیر (مثلاً رنگ یا سایز) است، حتماً برای تک‌تک متغیرها در تب “تغییرات”، قیمت و موجودی جداگانه تعریف کنید. در غیر این صورت، گوگل نمی‌تواند بازه قیمتی (AggregateOffer) را تشخیص دهد و ممکن است قیمت را “صفر” یا نامعتبر بخواند.

معرفی بهترین افزونه‌های سئو برای مدیریت اسکیمای پیشرفته

گاهی تنظیمات پیش‌فرض CMS کافی نیست (مثلاً برای اضافه کردن GTIN، MPN یا برند). در این شرایط، استفاده از پلاگین‌های تخصصی سئو که قابلیت “Extend” کردن اسکیما را دارند، ضروری است. این ابزارها به ما کمک می‌کنند بدون کدنویسی هاردکد، داده‌ها را غنی‌تر کنیم.

  • Rank Math (رنک مث):
    • این افزونه کنترل بسیار خوبی روی اسکیما دارد. در بخش “Schema Generator”، می‌توانید نوع WooCommerce Product را انتخاب کنید و فیلدهای اختصاصی مثل Brand یا GTIN را به فیلدهای سفارشی (Custom Fields) ووکامرس متصل (Map) کنید.
  • Yoast SEO (یوست):
    • نسخه رایگان یوست اسکیمای پایه را خوب انجام می‌دهد، اما برای مدیریت دقیق فیلدها (مثل شناسه جهانی کالا) اغلب نیاز به افزونه جانبی “Yoast WooCommerce SEO” دارید.
  • Schema Pro:
    • اگر سایت شما ووکامرس نیست یا قالب خاصی دارید، این افزونه قدرتمندترین ابزار مستقل است. مزیت آن این است که می‌توانید قوانین (Rules) تعریف کنید؛ مثلاً بگویید “برای تمام محصولات دسته موبایل، فیلد برند را از تکسونامی ‘برند’ بخوان”.

هشدار فنی: هرگز دو افزونه سئو که قابلیت تولید اسکیما دارند را همزمان فعال نکنید (مثلاً یوست و رنک مث با هم). این کار باعث “تکرار داده‌ها” (Duplicate Structured Data) شده و گوگل را گیج می‌کند.

تزریق کد اسکیما از طریق Google Tag Manager (برای سایت‌های اختصاصی)

در سایت‌های اختصاصی (برنامه‌نویسی شده با Laravel, React, ASP) که دسترسی به تیم فنی زمان‌بر یا پرهزینه است، یا در سیستم‌هایی که افزونه‌پذیر نیستند، Google Tag Manager (GTM) نجات‌بخش است.

این روش برای متخصصان سئو که می‌خواهند بدون دخالت برنامه‌نویس، اسکیما را تست یا اجرا کنند، عالی است.

روش اجرا:

  1. ایجاد تگ HTML سفارشی: در GTM یک تگ از نوع Custom HTML می‌سازیم.
  2. استفاده از متغیرهای Data Layer: برخلاف کد استاتیک، اینجا باید مقادیر را پویا کنیم. به جای نوشتن قیمت 150000، از متغیر GTM استفاده می‌کنیم.
    • مثال: “price”: {{dlv – productPrice}}
  3. تریگر (Trigger): تگ را طوری تنظیم می‌کنیم که فقط در صفحاتی که Page Type آن‌ها برابر با Product است، فایر شود.

نکته بسیار مهم: تزریق اسکیما با GTM (که بر پایه جاوااسکریپت سمت کلاینت است) کمی ریسک دارد. اگر گوگل‌بات قبل از اجرای کامل جاوااسکریپت صفحه را رندر کند، ممکن است اسکیما را نبیند. اگرچه گوگل در رندر JS بسیار قوی شده است، اما همیشه پیاده‌سازی سمت سرور (Server-side) اولویت دارد و GTM باید راهکار دوم باشد.

رفع خطاهای رایج سرچ کنسول مربوط به اسکیمای محصول

گوگل سرچ کنسول دو بخش مجزا برای گزارش وضعیت محصولات دارد:

  1. Product Snippets: مربوط به نمایش عادی محصول در نتایج وب.
  2. Merchant Listings: مربوط به نمایش‌های پیشرفته‌تر و بخش شاپینگ (که اخیراً اهمیت بیشتری پیدا کرده است).

خطاهایی که در اینجا می‌بینید، معمولاً به دو دسته “Invalid” (قرمز – حیاتی) و “Valid with warnings” (زرد – قابل بهبود) تقسیم می‌شوند. خطاهای قرمز باعث می‌شوند اسکیما کلاً نادیده گرفته شود، پس اولویت مطلق با آن‌هاست .

حل خطای “Missing field: sku” و “Missing field: offers

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

  • خطای Missing field: sku:
    • علت: گوگل نمی‌تواند شناسه یکتای محصول را پیدا کند. این شناسه برای تطبیق محصول در دیتابیس گوگل ضروری است.
    • راهکار فنی: اگر از ووکامرس یا CMS آماده استفاده می‌کنید، فیلد SKU را در صفحه ویرایش محصول پر کنید. اگر کدنویسی اختصاصی است، مطمئن شوید که مقدار sku در جیسون خالی (Null) یا تکراری نباشد. هر محصول (حتی واریانت‌های رنگ و سایز) باید SKU منحصر‌به‌فرد داشته باشد.
  • خطای Missing field: offers:
    • علت: ساختار اسکیما ناقص است و بخش “پیشنهاد فروش” (قیمت و موجودی) تعریف نشده است.
    • راهکار فنی: این خطا یعنی آبجکت Product وجود دارد، اما آبجکت تو در تو (Nested) به نام offers درون آن نیست. بررسی کنید که آیا محصول ناموجود شده و سیستم شما به اشتباه کل بخش قیمت را از کد حذف کرده است؟ حتی اگر محصول ناموجود است، باید بخش offers باشد و وضعیت availability روی OutOfStock تنظیم شود. حذف کردن کل بخش offers اشتباه است.

عیب‌یابی عدم نمایش قیمت یا موجودی در Rich Results Test

گاهی اوقات ابزار “Rich Results Test” تیک سبز می‌دهد و می‌گوید “Item detected”، اما در پیش‌نمایش یا نتایج واقعی، قیمت نشان داده نمی‌شود. دلایل فنی این موضوع اغلب ظریف هستند:

  1. فرمت عدد قیمت (Syntax Error):

همانطور که قبلاً تاکید کردم، اگر قیمت به صورت 150,000 (با کاما) ارسال شود، گوگل آن را به عنوان عدد معتبر نمی‌شناسد و در نتیجه قیمت را در اسنیپت نشان نمی‌دهد . باید فرمت خام (150000) باشد.

2. تناقض داده‌ها (Data Mismatch):

اگر قیمت در اسکیما 100000 باشد اما در متن قابل مشاهده صفحه (Visible Content) کاربر عدد 150000 را ببیند، الگوریتم‌های گوگل به دلیل عدم اطمینان و برای جلوگیری از فریب کاربر، ریچ اسنیپت را نمایش نمی‌دهند .

3. مشکلات رندرینگ (Rendering Issues):

اگر اسکیما توسط جاوااسکریپت (JS) تزریق می‌شود و زمان اجرای آن طولانی است، ممکن است ربات گوگل در عبور اول (First Pass) کد را نبیند. همیشه سورس صفحه (View Source) را چک کنید، نه فقط Inspect Element را.

نکات امنیتی و جلوگیری از جریمه‌های Spammy Structured Data

گوگل یک جریمه دستی (Manual Action) مشخص برای سوءاستفاده از اسکیما دارد. اگر سعی کنید با داده‌های ساختاریافته گوگل را فریب دهید، کل سایت ممکن است از نتایج غنی محروم شود. رعایت اصول اعتماد و پرهیز از فریبکاری در اینجا حیاتی است .

خطوط قرمز گوگل:

  • اسکیمای نامرئی (Content Mismatch): هر اطلاعاتی که در اسکیما می‌گذارید (مثل نقد و بررسی یا قیمت) باید دقیقاً در صفحه برای کاربر هم قابل مشاهده باشد. پنهان کردن محتوای اسکیما با CSS (display: none) مصداق بارز اسپم است.
  • استفاده از اسکیمای محصول در صفحات لیست: اسکیمای Product فقط مختص صفحه تکی محصول است. در صفحات دسته‌بندی (Category Pages) یا لیست مقالات، نباید از اسکیمای Product استفاده کنید (مگر اینکه برای یک محصول خاص باشد). برای لیست‌ها باید از ItemList استفاده شود.
  • نقدهای جعلی (Fake Reviews): اگر خودتان دستی در کد اسکیما ستاره ۵ و نقد مثبت وارد کنید در حالی که هیچ سیستم ثبت نظری در سایت وجود ندارد، گوگل متوجه شده و سایت را جریمه می‌کند. این کار نقض آشکار اعتماد است .

 

نتیجه‌گیری

پیاده‌سازی اسکیمای محصول، یک اقدام فنی یک‌بار مصرف نیست؛ بلکه ایجاد زیرساختی دائمی برای تعامل هوشمند با گوگل است. با اجرای صحیح کدهای JSON-LD و مدیریت دقیق ویژگی‌هایی حیاتی مثل Offers و SKU، شما نه تنها جایگاه خود را در نتایج غنی (Rich Results) تثبیت می‌کنید، بلکه تجربه کاربری شفاف‌تری را قبل از ورود کاربر به سایت رقم می‌زنید.

به یاد داشته باشید که در سئو مدرن، دقت در داده‌ها و صداقت با کاربر (E-E-A-T)، مهم‌ترین فاکتور برای کسب اعتبار و رتبه پایدار است. اگر داده‌های شما دقیق، به‌روز و بدون خطا باشند، گوگل پاداش آن را با افزایش ورودی‌های “واجد شرایط” (Qualified Leads) خواهد داد.

author-avatar

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

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *