قِس كثافة كلمتك المفتاحية
أداة تحسب عدد مرات تكرار كلمتك المفتاحية داخل نص مقال كامل، وتقارنه بعدد كلمات النص كله لتخرج نسبة مئوية واحدة، فتعرف إن كانت الكلمة غائبة تقريبًا عن المقال أم مكررة بكثافة تلفت نظر القارئ إلى حشو مصطنع أضعف من صياغة طبيعية للنص.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
لا توجد نسبة مثالية واحدة
تنتشر أرقام جاهزة مثل نسبة اثنين بالمئة كمعيار مثالي للكثافة، لكن لا دليل ثابت يربط نسبة محددة بترتيب أعلى في نتائج البحث فعليًا. الأهم فعليًا أن يقرأ النص بصياغة طبيعية تخدم القارئ أولًا، فتظهر الكلمة المفتاحية وصيغها القريبة في أماكنها المنطقية: العنوان والفقرة الأولى وبعض العناوين الفرعية، دون تكرارها آليًا في كل جملة حتى لو أفسد ذلك تدفق القراءة.
كثافة صفرية علامة إهمال أخطر من الحشو
مقال يذكر موضوعه الرئيسي مرة واحدة فقط في عنوانه ولا يكرره أبدًا داخل النص يفقد إشارة واضحة يحتاجها محرك البحث ليفهم موضوعه الفعلي، وهذا خطأ أشيع من الحشو الزائد في مقالات كثيرة مكتوبة بعناية أدبية لكن بلا وعي بكيفية قراءة محرك البحث للنص. تنبّه الأداة لهذه الحالة بوضوح حين تجد الكلمة المفتاحية غائبة تقريبًا رغم أن عنوان المقال يعدها موضوعه الرئيسي.
الصيغ القريبة تُحتسب أيضًا
لا تبحث الأداة عن تطابق حرفي واحد فقط، بل تحتسب أيضًا الصيغ القريبة لكلمتك المفتاحية: جمعها ومفردها، وصيغ الفعل والاسم منها إن وُجدت، لأن محرك البحث يفهم هذا التقارب اللغوي جيدًا ولا يحتاج تكرار الصيغة الحرفية نفسها في كل مرة. هذا يمنحك حرية أكبر في صياغة نص طبيعي متنوع بدل ترديد الكلمة نفسها حرفيًا في كل فقرة تقريبًا.
الوضع المجاني من المتصفح
الصق النص وكلمتك المفتاحية وستحصل على النتيجة فورًا داخل متصفحك مجانًا وبلا حدود، دون رفع أي نص إلى خادم خارجي مهما بلغ طول المقال. لفحص رابط مباشرة دون نسخ النص يدويًا، أو لأتمتة الفحص على دفعة مقالات قبل جدولة نشرها أسبوعيًا، يتوفر التنفيذ عبر الـAPI بسعر $0.002 للرابط الواحد، وهو سعر ثابت بصرف النظر عن طول المقال المفحوص.
حالات الاستخدام
كاتبة محتوى مستقلة تراجع مقالًا مدفوعًا
تتحقق نورة القحطاني من كثافة الكلمة المفتاحية في مقال كتبته لعميل قبل تسليمه، لتضمن أنها ذكرتها في أماكنها الصحيحة دون حشو.
متجر يراجع وصف منتج جديد
يقيس عبدالله المنصوري كثافة اسم منتج جديد داخل وصفه الطويل، بعد أن لاحظ أن الوصف السابق لم يذكر اسم المنتج إلا مرة واحدة فقط.
مدون يراجع مقالًا قديمًا ضعيف الظهور
يكتشف خالد العتيبي أن مقالًا قديمًا له لا يذكر كلمته المفتاحية الرئيسية إلا في العنوان فقط، فيعيد صياغة فقرتين لتضمينها طبيعيًا.
الأسئلة الشائعة
هل يغادر نص مقالي جهازي عند القياس؟
لا، القياس من المتصفح يجري محليًا ولا يُرسل النص إلى أي خادم.
ما النسبة المثالية لكثافة الكلمة المفتاحية؟
لا توجد نسبة رسمية معلنة من جوجل؛ المهم أن تظهر الكلمة بصياغة طبيعية في أماكنها المنطقية دون حشو ملحوظ.
هل تحتسب الأداة صيغ الجمع والمفرد معًا؟
نعم، تحتسب الصيغ القريبة لغويًا لا التطابق الحرفي وحده.
هل الاستخدام من المتصفح مجاني فعلًا؟
نعم، بلا حد أقصى لعدد المقالات ودون تسجيل حساب.
كم يكلّف فحص رابط مباشرة عبر الـAPI؟
$0.002 للرابط الواحد، تفتح الأداة الرابط وتحسب الكثافة تلقائيًا دون نسخ يدوي.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/seo/keyword-density \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/seo/keyword-density", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/keyword-density",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/keyword-density", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/keyword-density", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"url": "https://ejemplo.com"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.keyword_density",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |