آخرین بهروزرسانی:
وقتی یک دستیار هوش مصنوعی به سؤالی جواب میدهد و به منبعی ارجاع میدهد، پیش از آن صفحهها را خوانده و فهمیده است. HTML صفحه برای انسان ساخته شده: منو، تبلیغ، فوتر و متن اصلی کنار هم. دادهی ساختیافته همان اطلاعات کلیدی را در قالبی میگذارد که ماشین بدون حدس بخواند.
از اول صادق باشیم: هیچ موتور جستجو یا دستیاری نگفته که اسکیما شما را در پاسخهایش نقل میکند. کاری که اسکیما قطعاً میکند کمکردن ابهام است. این مقاله دربارهی همین است: چه چیزی را، چطور و با چه انتظاری علامتگذاری کنید.
اسکیما چیست و به چه کاری میآید؟#
اسکیما (Schema) واژهنامهی مشترکی است که موتورهای جستجو برای توصیف محتوای صفحه به زبان ماشین ساختهاند. با آن میگویید «این صفحه یک مقاله است، نویسندهاش فلانی است و این تاریخ بهروز شده». رایجترین قالب نوشتنش JSON-LD است: یک تکه JSON داخل تگ script که کاربر نمیبیند.
آنچه اسکیما میکند:
- نوع صفحه را روشن میکند: مقاله، محصول، کسبوکار محلی.
- موجودیتها را به هم وصل میکند: این نویسنده، این سازمان، این محصول.
- تاریخ انتشار و بهروزرسانی را بیابهام میگوید؛ برای پرسشهایی که تازگی مهم است، این اطلاعات به کار میآید.
- صفحه را برای نتیجههای ویژهی جستجو، مثل قیمت و امتیاز محصول، واجد شرایط میکند؛ نمایشش با خود موتور جستجوست.
آنچه نمیکند: متن ضعیف را قابل نقل نمیکند، رتبه را مستقیم بالا نمیبرد و نمایش ویژه را تضمین نمیکند.
اگر هنوز پایهها را انجام ندادهاید، یعنی راهدادن خزندهها و متنی که بدون جاوااسکریپت خوانده شود، اول سئو برای موتورهای هوش مصنوعی را ببینید. اسکیما لایهی بعدی است.
کدام نوع اسکیما برای کدام صفحه؟#
برای هر صفحه یک نوع اصلی که با محتوای آن بخواند؛ بیشتر سایتها با همین هفت نوع کارشان راه میافتد.
| صفحه | نوع اسکیما | فیلدهایی که حتماً درست باشند |
|---|---|---|
| صفحهی اصلی | Organization و WebSite | نام، لوگو، نشانی سایت، راههای تماس |
| مقاله | Article یا BlogPosting | عنوان، نویسنده، تاریخ انتشار و بهروزرسانی، تصویر |
| محصول | Product همراه Offer | نام، قیمت، واحد پول، موجودی |
| کسبوکار محلی | LocalBusiness | نشانی، تلفن، ساعت کار |
| مسیر صفحه | BreadcrumbList | ترتیب و نشانی هر سطح |
| نویسنده | Person | نام، صفحهی نویسنده |
| پرسشوپاسخ | FAQPage | فقط پرسشهایی که در صفحه دیده میشوند |
قاعدهی اصلی: اسکیما باید با صفحه بخواند#
هر چیزی که در اسکیما هست باید در خود صفحه هم دیده شود. این قاعده را نقض کنید، اسکیما بهجای کمک، بیاعتمادی میسازد:
- پرسشی که در صفحه نیست، در
FAQPageهم نباشد. - قیمت و موجودی در
Offerبا قیمت نمایشدادهشده یکی باشد. اسکیمای دستی با هر تغییر قیمت کهنه میشود. - امتیاز و نظر (
AggregateRating) فقط وقتی که نظرها واقعی و روی همان صفحه قابلدیدن باشند. امتیاز ساختگی خلاف راهنمای گوگل است و میتواند به اقدام دستی برسد. dateModifiedرا فقط وقتی عوض کنید که محتوا واقعاً تغییر کرده است.- نویسنده آدم واقعی با صفحهی نویسنده باشد، نه نام ساختگی.
یک اسکیمای مقالهی کامل چه شکلی است؟#
یک شیء JSON با نوع، عنوان، دو تاریخ، نویسنده، ناشر، تصویر و نشانی اصلی صفحه:
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "عنوان مقاله",
"datePublished": "2025-01-10T09:00:00+03:30",
"dateModified": "2025-03-02T14:20:00+03:30",
"author": {
"@type": "Person",
"name": "نام نویسنده",
"url": "https://example.com/author/name/"
},
"publisher": {
"@type": "Organization",
"name": "نام سایت",
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" }
},
"image": "https://example.com/cover.webp",
"mainEntityOfPage": "https://example.com/article/"
}از هوش مصنوعی هم میشود برای ساختن این JSON کمک گرفت: متن صفحه را بدهید و بخواهید فقط از دادههای موجود در آن JSON-LD بسازد و چیزی اضافه نکند. خروجی را همیشه اعتبارسنجی کنید؛ روش گرفتن JSON قابلاعتماد از مدل در گرفتن خروجی ساختیافته (JSON) از هوش مصنوعی آمده است.
اسکیما را در وردپرس چطور اضافه کنیم؟#
اول ببینید افزونهی سئو یا قالب چه چیزی میسازد؛ فقط نوعهایی را که ندارید، با یک افزونهی کوچک اضافه کنید.
سورس یک صفحه را در مرورگر باز کنید و application/ld+json را جستجو کنید. دو بلوک Article از دو منبع با دادههای متفاوت ماشین را گیج میکند. اگر افزونهی سئو نوعی را میسازد، همان را کامل کنید و نسخهی دوم نسازید.
برای نوعی که هیچجا ساخته نمیشود، یک افزونهی کوچک کافی است (ساختارش در ساخت افزونهی وردپرس از صفر):
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
add_action( 'wp_head', 'dg_schema_blogposting' );
function dg_schema_blogposting(): void {
if ( ! is_singular( 'post' ) ) {
return;
}
$post = get_queried_object();
$data = [
'@context' => 'https://schema.org',
'@type' => 'BlogPosting',
'headline' => wp_strip_all_tags( get_the_title( $post ) ),
'datePublished' => get_the_date( DATE_W3C, $post ),
'dateModified' => get_the_modified_date( DATE_W3C, $post ),
'author' => [
'@type' => 'Person',
'name' => get_the_author_meta( 'display_name', $post->post_author ),
'url' => get_author_posts_url( $post->post_author ),
],
'mainEntityOfPage' => get_permalink( $post ),
];
$image = get_the_post_thumbnail_url( $post, 'full' );
if ( $image ) {
$data['image'] = $image;
}
$flags = JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_HEX_TAG;
echo '<script type="application/ld+json">' . wp_json_encode( $data, $flags ) . '</script>' . "\n";
}نکتهی امنیتی این کد در پرچم JSON_HEX_TAG است: علامتهای < و > را کدگذاری میکند تا متنی مثل </script> در عنوان یا نام نویسنده نتواند از بلوک بیرون بزند. esc_html اینجا جای درستی نیست، چون JSON را خراب میکند؛ escape درست برای این بافت همین کدگذاری JSON است.
اسکیما را چطور آزمایش کنیم؟#
با دو ابزار رسمی برای یک صفحه و سرچ کنسول برای کل سایت؛ بعد هم با آزمایش مستقیم در دستیارها.
- آزمون نتیجههای ویژهی گوگل (Rich Results Test): نشانی صفحه را بدهید؛ میگوید کدام نوعها را میشناسد و خطا یا هشدار دارد یا نه.
- اعتبارسنج Schema.org (Schema Markup Validator): برای نوعهایی که گوگل نتیجهی ویژه برایشان ندارد، درستی ساختار را اینجا ببینید.
- سرچ کنسول: گزارشهای مربوط به دادهی ساختیافته خطاها را در کل سایت نشان میدهند، نه فقط یک صفحه.
- آزمایش مستقیم: بعد از چند هفته، پرسشهایی را که صفحه جواب میدهد از چند دستیار بپرسید و ارجاعها را یادداشت کنید.
اسکیما جای سئوی فنی پایه را نمیگیرد؛ canonical درست و نقشهی سایت را در سئوی فنی وردپرس ببینید.
دادهی ساختیافته به کجا میرود؟#
بهسمت اهمیت بیشتر دادهی دقیق و قابلراستیآزمایی. موتورهای جستجو و سیستمهای هوش مصنوعی برای کنار هم گذاشتن اطلاعات، به موجودیتهای روشن تکیه میکنند: این سازمان، این نویسنده، این محصول با این قیمت. در عوض، نوعهای نتیجهی ویژه میآیند و میروند و گوگل بعضی را محدود یا حذف کرده است.
برای آماده شدن:
- نوعهای پایه (سازمان، مقاله، محصول، نویسنده) را درست و کامل نگه دارید، نه دنبال هر نوع تازه بدوید.
- یک منبع واحد برای اطلاعات کسبوکار داشته باشید تا نام، نشانی و تلفن در همهجا یکی باشد.
- هر بار که قالب یا افزونهی سئو را عوض میکنید، اسکیما را دوباره آزمایش کنید.
خلاصه#
- اسکیما ابهام را کم میکند؛ نقلشدن در پاسخهای هوش مصنوعی را تضمین نمیکند.
- برای هر صفحه یک نوع اصلی، همخوان با محتوای قابلدیدن.
- پیش از افزودن، ببینید افزونهی سئو و قالب چه میسازند تا اسکیمای تکراری نسازید.
- در کد وردپرس، JSON را با
wp_json_encodeو پرچمJSON_HEX_TAGچاپ کنید. - با آزمون نتیجههای ویژه، اعتبارسنج Schema.org و سرچ کنسول آزمایش کنید.