اگر ۱۵ سال پیش کسی به من میگفت که بخشی از سئو، حرف زدن با گوگل به زبان کدهای نامرئی است، احتمالاً میخندیدم. اما حالا بعد از ۳۰۰ پروژه و ۲۰ همکاری بلندمدت، دادههای ساختاریافته (Structured Data) یکی از اصلیترین ابزارهای من است. آنها پل ارتباطی بین محتوای انسانیِ سایت و مغز ماشینی گوگل هستند. بدون این کدها، محتوای تو یک متن زیبا برای آدمها و یک معمای ناخوانا برای رباتهاست.
یک خاطره: چند سال پیش، یک فروشگاه اینترنتی لوازم ورزشی پیشم آمد. سایتش پر بود از محصولات با قیمت و موجودی دقیق، و دهها مقالهٔ آموزشی. اما در نتایج گوگل، لینکهایش ساده و بیروح بود. من یک هفته وقت گذاشتم و برای تکتک محصولاتش Schema vom «Product» با قیمت، موجودی و امتیاز، و برای مقالاتش «Article» و «FAQ» اضافه کردم. نتیجه؟ ظرف یک ماه، CTR (نرخ کلیک) از نتایج گوگل ۲۹٪ بالا رفت، و نرخ تبدیل هم دو برابر شد. فقط به خاطر ستارههای زرد، قیمتهای آبی، و باکس سوالات متداول که ناگهان در صفحه نتایج ظاهر شدند.
در این مقاله میخواهم به زبان ساده ولی فنی، هر آنچه را که دربارهٔ JSON-LD و ساختار داده در سئو یاد گرفتهام، با تو به اشتراک بگذارم. بدون کدنویسی پیچیده، ولی با دانشی که یک سئوکار ۱۵ ساله لازم دارد.
بخش اول: دادههای ساختاریافته اصلاً یعنی چه؟
تصور کن کتابخانهای بزرگ داری. قفسهها پر است از کتاب. کتابها عنوان دارند، نویسنده دارند، سال چاپ، ژانر. اما این اطلاعات، فقط روی جلد کتاب نوشته شده است. یک ربات که میخواهد کتابخانه را مرتب کند، نمیتواند اینها را بخواند مگر اینکه تو یک برچسب الکترونیکی با فرمت مشخص به هر کتاب بچسبانی.
دادههای ساختاریافته همان برچسبهای الکترونیکیاند که به محتوای سایت میچسبانی. به گوگل میگویی: «این یک محصول است با قیمت X و موجودی Y»، «این یک دستور پخت است با زمان آمادهسازی Z». گوگل با این برچسبها، نتایج جستجو را به Rich Snippet (نتایج غنی) تبدیل میکند: ستارههای نظرات، تصاویر بزرگ، قیمتها، و باکسهای پرسش و پاسخ.
گوگل سه فرمت اصلی را میفهمد: Microdata، RDFa و JSON-LD. از سال ۲۰۱۵ خود گوگل رسماً JSON-LD را به عنوان فرمت ترجیحی معرفی کرد. چون:
به صورت یک بلوک جداگانه در
<head>یا<body>قرار میگیرد و با HTML قاطی نمیشود.خواندن و نوشتنش برای انسان و ماشین ساده است.
بروزرسانی و مدیریتش در قالبهای سایت آسانتر است.
پس از این به بعد، هرجا گفتم «اسکیما» یا «کد ساختاریافته»، منظورم JSON-LD است.
بخش دوم: تأثیر مستقیم دادههای ساختاریافته بر سئو
خیلیها فکر میکنند Schema مستقیماً رتبه را بالا میبرد. این کاملاً درست نیست. گوگل گفته Schema یک فاکتور مستقیم رتبهبندی نیست، اما:
نرخ کلیک (CTR) را به شدت بالا میبرد. یک نتیجهٔ معمولی با یک نتیجهٔ دارای ستاره و قیمت، قابل مقایسه نیست. افزایش CTR یعنی سیگنال مثبت به گوگل و بهبود رتبه در بلندمدت.
در جستجوی صوتی و دستیارهای گوگل، محتوای تو را قابل استفاده میکند.
شانس حضور در باکسهای ویژه (Rich Results) را میدهد: باکس FAQ، باکس How-to، باکس ویدیو، چرخفلك محصولات و…
E-E-A-T (تجربه، تخصص، اقتدار، اعتماد) را تقویت میکند. وقتی گوگل دقیقاً میفهمد نویسندهٔ مقاله کیست و سازمان پشت سایت چیست، اعتمادش بیشتر میشود.
پس Schema مثل یک بلندگو برای محتوای توست. محتوا باید خودش خوب باشد، اما Schema باعث میشود صدایش رساتر به گوش گوگل و کاربر برسد.
بخش سوم: JSON-LD چطور نوشته میشود؟ یک کالبدشکافی ساده
ببین JSON-LD یک شیء JSON است که داخل تگ <script type="application/ld+json"> قرار میگیرد. مثلاً برای یک مقاله:
<script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Article", "headline": "راهنمای نهایی سئو", "author": { "@type": "Person", "name": "طاها نژادحسینی" }, "datePublished": "2024-05-10", "image": "https://tahaseo.com/image.jpg", "publisher": { "@type": "Organization", "name": "طاها سئو", "logo": { "@type": "ImageObject", "url": "https://tahaseo.com/logo.png" } }}</script>همهچیز با @context شروع میشود که میگوید از واژگان Schema.org استفاده میکنی. بعد @type نوع محتوا را مشخص میکند. بقیهٔ فیلدها، ویژگیهای آن نوع هستند. رمز موفقیت: فقط فیلدهایی را پر کن که گوگل برای آن Rich Result اجباری یا توصیهای کرده. فیلدهای اضافی بیهوده، کد را شلوغ میکند.
بخش چهارم: مهمترین انواع Schema که هر سئوکاری باید بشناسد
بر اساس تجربهٔ خودم، این اسکیماها را برای هر پروژه الویتبندی میکنم:
۱. سازمان (Organization) و کسبوکار محلی (LocalBusiness)
این پایهٔ هویت برند تو در گوگل است. در صفحهٔ اصلی یا «درباره ما» استفاده کن:
Organization: نام، لوگو، شبکههای اجتماعی، توضیحات.LocalBusiness(و انواعش مثلDentist,Restaurant): آدرس دقیق، تلفن، ساعت کار، مختصات جغرافیایی. این همان چیزی است که تو را در گوگل مپ و Local Pack معتبر میکند.
۲. محصول (Product) و پیشنهاد (Offer)
جانِ سئوی فروشگاهی. در صفحات محصولات:
name,image,description,sku.offersبا@type: Offer,price,priceCurrency(حتماًIRTبرای تومان)،availability(InStock,OutOfStock,PreOrder).اگر نظرات کاربران را داری:
aggregateRatingباratingValueوreviewCount. این همان ستارههای زرد را میسازد.
۳. مقاله (Article) و مقالهٔ خبری (NewsArticle)
برای وبلاگها و خبرگزاریها:
headline,author(حتماً لینک به صفحهٔ نویسنده با@type: Person)،datePublished,dateModified,image,publisher.NewsArticleبرای خبرگزاریها شانس حضور در Google News و Top Stories را میدهد.
۴. سوالات متداول (FAQ)
یکی از محبوبترین اسکیماهای من. در صفحات خدمات یا محصولات که سوالات رایج را جواب میدهی:
{ "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "آیا بوتاکس درد دارد؟", "acceptedAnswer": { "@type": "Answer", "text": "درد بسیار کمی دارد و از کرمهای بیحسی استفاده میشود." } }]}نتیجه: یک باکس کشویی زیر لینکت در گوگل که نرخ کلیک را منفجر میکند.
۵. دستورالعمل (HowTo)
برای مقالات آموزشی گامبهگام: «چطور لکهٔ چای را از فرش پاک کنیم». با step و image برای هر مرحله، میتوانی Rich Result تصویری بگیری.
۶. مسیر ناوبری (BreadcrumbList)
مسیر سلسلهمراتبی صفحه را با itemListElement مشخص کن. گوگل آن را به جای URL خام در نتایج نشان میدهد. ساده ولی حیاتی.
۷. ویدئو (VideoObject)
اگر در صفحاتت ویدئو داری، با این اسکیما گوگل میتواند پیشنمایش ویدئو را در نتایج نشان دهد. CTR فوقالعادهای دارد.
۸. پرسش و پاسخ (Q&A)
مشابه FAQ اما برای صفحاتی که کاربران در آنها سوال میپرسند و جواب میگیرند.
بخش پنجم: چطور JSON-LD را در وردپرس و سایتهای سفارشی پیاده کنیم؟
مسیر اول: افزونههای وردپرس
برای اکثر پروژهها، این سادهترین راه است:
Yoast SEO: بهطور خودکار Schema مقاله، نانویگیشن و سازمان را میسازد. نسخهٔ پریمیومش FAQ و How-to هم دارد.
Rank Math: قویترین افزونهٔ رایگان. پشتیبانی از بیش از ۲۰ نوع Schema با رابط کاربری بصری. برای هر پست یا برگه میتوانی نوع Schema را انتخاب کنی و فیلدها را پر کنی. پشتیبانی از Product، FAQ، HowTo، و… عالی است.
Schema Pro: افزونهای تخصصی که به صورت خودکار Schema را بر اساس قوانینی که تعریف میکنی، به صفحات اعمال میکند.
مسیر دوم: کدنویسی دستی (برای کنترل بیشتر)
من در پروژههای بزرگ، ترجیح میدهم Schema را خودم در قالب PHP بنویسم تا کاملاً سفارشی باشد. مثلاً در فوتر قالب یک تابع مینویسم که:
در صفحهٔ اصلی،
Organizationرا با لوگو از تنظیمات قالب پر کند.در برگهٔ محصولات، از دیتابیس قیمت و موجودی را بخواند و
Productبسازد.در برگهٔ پست وبلاگ، نام نویسنده و تاریخ انتشار را از متغیرهای وردپرس بگیرد و
Articleتولید کند.
این روش نیاز به دانش PHP دارد اما انعطافپذیریاش بینهایت است. یکبار برای یک سایت ۵۰ هزار صفحهای، با یک اسکریپت Python تمام URLها را کرال کردم و بر اساس الگوی URL، Schema مناسب را در هدر هر صفحه گنجاندم. بدون یک خط افزونهٔ اضافی.
مسیر سوم: Google Tag Manager (برای شرایط خاص)
اگر دسترسی به کد نداری، میتوانی JSON-LD را به عنوان یک تگ سفارشی HTML در GTM تزریق کنی. اما این روش برای سایتهای بزرگ ریسک دارد و گوگل ممکن است دیرتر آن را پردازش کند. من فقط به عنوان راهحل موقت توصیه میکنم.
بخش ششم: تست و اعتبارسنجی – جلوی فاجعه را بگیر
هیچوقت Schema را بدون تست، روی سایت زنده نبر. یک کامای اضافی میتواند کل کد را نامعتبر کند و گوگل همهٔ Rich Snippet هایت را حذف کند.
Google Rich Results Test: (ابزار رسمی). URL یا قطعه کد را بده. دقیقاً میگوید کدام Rich Result قابل نمایش است و کدام خطا داری. هر وقت اسکیمای جدید اضافه کردم، اول اینجا تست میکنم.
Schema Markup Validator: (قبلاً Structured Data Testing Tool). تمام انواع Schema را بررسی میکند، نه فقط آنهایی که Rich Result دارند.
Google Search Console: بخش «Enhancements» (مثل FAQ، Products، Breadcrumbs) را مرتب چک کن. اگر خطایی هست، آنجا میبینی و میتوانی با گزارش دقیق، مشکل را حل کنی.
یکبار برای یک فروشگاه، در Search Console دیدم که ۲۰۰۰ صفحه خطای price دارند. علت: Schema نوشته بود "price": "200,000" در حالی که گوگل فقط عدد بدون ویرگول میخواست (200000). با یک تغییر ساده در قالب، ناگهان ۲۰۰۰ محصول Rich Result گرفتند.
بخش هفتم: اشتباهات رایجی که حتی حرفهایها را گیر میاندازد
۱. فیلدهای اجباری را پر نکردن: مثلاً aggregateRating بدون reviewCount یا price بدون priceCurrency.
۲. استفاده از Schema نامرتبط: مثلاً Product برای یک مقاله وبلاگ. گوگل این را اسپم میبیند و ممکن است کل سایت را جریمه کند (Manual Action برای Structured Data Spam).
۳. تعارض بین چند Schema: یک صفحه چند بلوک JSON-LD با اطلاعات متناقض داشته باشد. همیشه یک بلوک واحد با @graph بسازید تا خواناتر و بدونConflict باشد.
۴. فراموش کردن بهروزرسانی: تاریخ dateModified یک مقاله را عوض نکردن. گوگل فکر میکند محتوایت قدیمی است.
۵. استفاده از URLهای نسبی به جای مطلق: در image و url حتماً URL کامل با https:// بده.
یک مطالعهٔ موردی: چطور یک کلینیک دندانپزشکی با Schema در پک لوکال گوگل ترکاند
پروژه: یک کلینیک دندانپزشکی در غرب تهران با ۳ شعبه.
وضعیت اولیه: پروفایل گوگل مای بیزینس ثبت شده بود، اما وبسایت هیچ Schema نداشت. در نتایج جستجو، لینک ساده بود.
اقدامات:
در صفحهٔ اصلی،
Dentist(زیرنوعLocalBusiness) با آدرس دقیق، تلفن، ساعت کار و لوگو اضافه کردیم.برای هر شعبه یک صفحهٔ فرود مجزا با Schema
Dentistمخصوص همان شعبه ساختیم.در صفحات خدمات («ایمپلنت»، «ارتودنسی»)،
FAQبا ۵ سوال پرتکرار پیاده کردیم.در صفحهٔ «درباره ما»،
Personبرای پزشک با نام، عکس، شماره نظام پزشکی و لینک به رزومه.برای صفحهٔ وبلاگ،
ArticleوBreadcrumbListتنظیم کردیم.
نتیجه بعد از ۳ ماه:باکس FAQ در ۸ کلمهٔ کلیدی پررقابت ظاهر شد.
CTR از ۲.۱٪ به ۴.۶٪ افزایش یافت.
کلیک مسیریابی از گوگل مپ ۶۵٪ رشد کرد (چون NAP در Schema با گوگل مپ هماهنگ بود).
رزرو نوبت از سایت ۴۰٪ بیشتر شد.
حرف آخر آن پروژه: هیچ محتوای جدیدی تولید نکردیم. فقط به گوگل یاد دادیم که این سایت واقعاً یک کلینیک دندانپزشکی است و اینها خدماتش. بقیهاش را خود گوگل انجام داد.
نتیجهگیری: دادههای ساختاریافته، لهجهٔ مادری گوگل
گوگل دارد روزبهروز باهوشتر میشود، اما هنوز چشم و گوشش همین کدهای ساختاریافته است. اگر با JSON-LD، به زبان مادری گوگل حرف بزنی، محتوایت را نه فقط ایندکس میکند، که به زیباترین شکل ممکن در ویترین جستجو به نمایش میگذارد. این کار نه سحر است، نه جادو. یک مهارت فنی است که یک سئوکار مدرن باید در انگشتانش داشته باشد.
من طاها هستم. ۱۵ سال است که با PHP و Python، برای سایتهای گوناگون Schema نویسی میکنم – از وبلاگهای کوچک وردپرسی تا فروشگاههای ۱۰۰ هزار صفحهای. اگر میخواهی محتوایت در نتایج گوگل مثل یک الماس بدرخشد و از رقبای بیاسکیما جلو بزنی، با طاها حرف بزن. یک جلسه بررسی ساختار داده میتواند نقشهٔ گنجی باشد که در سایتت پنهان کردهای و فقط باید به گوگل نشانش دهی.