افحص طول وصف الميتا ضمن النطاق الموصى به 120–160 حرفًا
لا يتيح وصف الميتا سوى مساحة محدودة لبيان سبب زيارة صفحتكم. تحسب هذه الأداة أحرف المسودة، وتقارن العدد بالنطاق الموصى به 120–160، ثم توضح الأوصاف الأقصر من اللازم أو المعرضة للاقتطاع.
شغّل الأداة مجانًا
وهي تمنح الكتّاب والمحررين وفرق SEO فحصًا سريعًا ومتسقًا من دون إعادة صياغة المحتوى أو إطلاق أحكام ذاتية بشأن ترتيب البحث. يمكنكم تشغيلها هنا أو أتمتة الاختبار الحتمي نفسه بواسطة API.
تعرّفوا إلى ما تقيسه الأداة
الصقوا وصف الميتا نفسه الذي تعتزمون نشره. تحسب الأداة أحرف Unicode، ولذلك يُحسب رمز تعبيري ظاهر أو حرف خارج المستوى الأساسي المتعدد اللغات مرة واحدة بدل احتسابه وحدتي ترميز داخليتين. ثم تقارن العدد بالحد الأدنى الموصى به وهو 120 حرفًا والحد الأقصى وهو 160. تُصنّف النتيجة الواقعة ضمن هذا النطاق الشامل للحدين على أنها موصى بها. أما النتيجة الأقل فتُعد قصيرة، والنتيجة التي تتجاوز 160 فتُعد طويلة ويظهر معها تنبيه إلى خطر الاقتطاع. تبين الاستجابة أيضًا عدد الأحرف اللازمة لبلوغ الحد الأدنى أو عدد الأحرف الزائدة على الحد الأقصى. تسهّل هذه الفروق التحرير لأنها توضح مقدار التغيير المطلوب من دون تكرار العد يدويًا. لا تفحص الأداة HTML، ولا تجلب صفحة ويب، ولا تحكم على جودة الكتابة، ولا تضمن طريقة عرض المقتطف لدى محرك بحث بعينه. إنها تنفذ فحصًا واحدًا واضحًا لطول النص الذي تقدمونه.
استخدموا النطاق بوصفه مؤشرًا تحريريًا
يمثل النطاق 120–160 هدفًا عمليًا للكتابة، وليس ضمانًا لعرض كل حرف في كل نتيجة بحث. قد تنشئ محركات البحث مقتطفًا مختلفًا من محتوى الصفحة، وتغيّر المساحة الظاهرة وفق الجهاز أو عبارة البحث، وتقتطع النص بحسب عرضه المرئي لا بحسب عدد الأحرف وحده. تعاملوا مع النتيجة الطويلة بوصفها تحذيرًا مفيدًا من احتمال اختفاء الكلمات المهمة في النهاية. انقلوا أوضح فائدة أو موضوع أو دعوة إلى الإجراء نحو البداية قبل حذف التفاصيل الثانوية. وإذا كان الوصف قصيرًا، فأضيفوا معلومات محددة تساعد الباحث على تمييز الصفحة بدل حشوه بكلمات مفتاحية مكررة. وحتى الوصف الواقع ضمن النطاق يجب أن يكون دقيقًا وسهل القراءة ومتسقًا مع الصفحة. تفصل الأداة عمدًا بين القياس الموضوعي والحكم التحريري؛ فهي تخبركم بمدى مطابقة العدد للنطاق المختار، بينما يظل فريقكم مسؤولًا عن الصلة والنبرة والصدق وتقديم سبب طبيعي للنقر.
أنشئوا فحص نشر قابلًا للتكرار
لفحص صفحة واحدة، الصقوا المسودة النهائية وراجعوا حالتها قبل النشر. وفي مسار إنتاج المحتوى، أرسلوا كل وصف مقترح إلى API واحفظوا عدد الأحرف والحالة وقيمة خطر الاقتطاع إلى جانب الفحوص التحريرية. يمكنكم منع الإدخال الفارغ، وإعادة الأوصاف القصيرة إلى الكاتب، ووضع علامة على الأوصاف الطويلة للمراجعة من دون تغيير نصها تلقائيًا. ولأن الخوارزمية لا تجري اتصالات شبكية ولا تستخدم العشوائية أو بيانات تعتمد على الوقت، فإن الإدخال نفسه يعطي النتيجة نفسها في المتصفح أو عملية البناء أو التكامل المستمر. اجعلوا النص المرسل مطابقًا للقيمة الموضوعة في وسم meta؛ فالمسافات في البداية والنهاية تُحسب لأنها جزء من السلسلة، لكن الإدخال المؤلف من مسافات فقط يُرفض بوصفه فارغًا. أعيدوا الفحص بعد التوطين لأن عدد الأحرف يتغير بين اللغات. تقيس هذه القدرة أي نص Unicode، لكنها لا تترجم المحتوى ولا تستبدل الإرشادات التحريرية الخاصة بكل لغة.
حالات الاستخدام
راجعوا الصفحة قبل نشرها
افحصوا وصف الميتا النهائي واكتشفوا المسودة الفارغة أو القصيرة أو الطويلة قبل إتاحة الصفحة.
دققوا عملية ترحيل المحتوى
طبقوا قاعدة موحدة من 120–160 حرفًا عند نقل الأوصاف إلى CMS آخر أو بنية موقع جديدة.
أضيفوا فحص المحتوى إلى CI
استخدموا نتيجة API الحتمية لوضع علامة أثناء البناء على الأوصاف التي تحتاج إلى مراجعة تحريرية.
الأسئلة الشائعة
ما النطاق الذي توصي به الأداة؟
تعد الأداة النصوص من 120 إلى 160 حرفًا موصى بها، مع شمول الحدين.
هل تضمن النتيجة فوق 160 اقتطاع النص؟
لا. إنها تشير إلى خطر، لأن المقتطف الفعلي يتغير حسب عبارة البحث والجهاز والعرض المرئي ومحرك البحث.
كيف تُحسب الرموز التعبيرية؟
تحسب الخوارزمية نقاط ترميز Unicode، ولذلك يُعد الرمز الممثل بنقطة ترميز واحدة حرفًا واحدًا.
هل تدخل المسافات في العدد؟
نعم. تُحسب كل الأحرف المقدمة، ومنها المسافات الأولية والنهائية والداخلية. ويُرفض الإدخال المؤلف من مسافات فقط.
ما تكلفة استخدام API؟
تكلف كل مطالبة إلى API مقدار $0.002. ويمكن تشغيل الاختبار الحتمي نفسه مجانًا في المتصفح.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/seo/meta-description-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."}'const res = await fetch("https://api.kit.forhosting.com/seo/meta-description-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/meta-description-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/meta-description-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/meta-description-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Discover practical ways to improve your website performance, strengthen search visibility, and give every visitor a faster, clearer experience."
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.meta_description_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |