تقسيم كلمات سيرش كونسول بـRegex: البراند والأسئلة والأسعار

26 دقيقة تقريبًا

لحد الدرس اللي فات، كنا بنتعلم إزاي Regex يقرأ شكل الـQuery: عرفنا نبحث عن أكتر من احتمال (سعر|تكلفة|ثمن)، وعرفنا نتحكم في البداية والنهاية ^كيف، وعرفنا نحدد طول الـQuery ^\S+(\s+\S+){6,}$. النهاردة بقى هنبدأ نستخدم الحاجات دي في شغل SEO فعلي. هنقول: أنا قدامي آلاف الـQueries، إزاي أقسمهم لمجموعات تساعدني أفهم الأداء؟ وده اللي بنسميه Segmentation.

يعني إيه Segment أصلًا؟

افترض إن عندك 20 ألف Query في Search Console. مش منطقي تتعامل معاهم كلهم ككتلة واحدة. أحيانًا عايز تشوف: Brand Queries، Non-brand Queries، Queries على شكل أسئلة، Queries مرتبطة بالسعر، Queries فيها مقارنة، Queries مرتبطة بالشراء، Queries طويلة، Queries فيها موديلات أو أرقام. كل مجموعة من دول Segment — جزء من البيانات جمعناه لأنه يشترك في صفة معينة. Regex هنا دوره يساعدنا نبني المجموعة، بعدها يبدأ تحليل الـSEO.

القاعدة
Segment مش معناه Intent مؤكد. لو عملت (سعر|تكلفة|ثمن|شراء) وسميتهم Commercial Queries، Regex فقط قال "الـQuery دي فيها سعر" أو "فيها شراء". أنت كمتخصص SEO قررت إن وجود الكلمات دي مؤشر. Regex يعمل Pattern-based segmentation، مش Semantic Classification.

نبدأ بأهم Segment: Brand Queries

افترض عندنا براند افتراضي اسمه Tech Zone، والناس بتبحث عنه بأشكال مختلفة. لو استخدمنا tech zone بس، هنفقد techzone و«تك زون». فممكن نبدأ:

Matches regex(tech zone|techzone|تك زون|تيك زون)
  • tech zone
  • tech zone laptop
  • techzone offers
  • تك زون
  • تيك زون مصر
  • best laptop egypt
  • سعر macbook

لو النتيجة طلعت كده، عندنا Brand Segment أولي — ركز في كلمة أولي، لأننا لسه محتاجين نراجع البيانات ونشوف هل فيه Variations نسيناها. طريقة العمل الصح: اسم البراند المعروف ← Pattern أولي ← راجع Queries الفعلية ← اكتشف Variations جديدة ← عدّل Pattern ← اختبر من جديد.

طيب Non-brand؟

هنا في حاجة جميلة جدًا. إحنا مش محتاجين Regex جديد. نفس الـPattern بالظبط، لكن بدل Matches regex نستخدم Doesn't match regex: استبعد أي Query تحتوي أحد أشكال البراند.

(tech zone|techzone|تك زون|تيك زون)Doesn't match regex
  • tech zone
  • tech zone laptop
  • techzone offers
  • تك زون
  • تيك زون مصر
  • best laptop egypt
  • سعر macbook

وده مقارنة مهمة جدًا في SEO: ممكن تكتشف إن Brand عنده Clicks وCTR وPosition قوي، لكن Non-brand عنده Impressions مرتفعة وCTR منخفض وPosition متوسط — ساعتها الصورة مختلفة تمامًا عن إنك تبص على الأرقام الإجمالية فقط.

خد بالك
خلي بالك من خطأ مهم: لو Brand Regex ناقص (نسينا مثلًا «تيك زون»)، وبعدين استخدمناه مع Doesn't match regex، Query «تيك زون اسعار» هتدخل عندنا ضمن Non-brand مع إنها Brand Query. يعني خطأ صغير في Brand Pattern هيبوظ الاتنين — Brand Segment وNon-brand Segment — في نفس الوقت. جودة الـSegment تعتمد على جودة القاعدة اللي بنيتها.

Segment تاني مهم: Queries على شكل أسئلة

عايز أعرف المستخدمين بيسألوا الموقع عن إيه؟ ممكن نبدأ بمجموعة كلمات سؤال: كيف، هل، لماذا، متى، أين، كم. لو كتبنا (كيف|هل|لماذا|متى|أين|كم) ده معناه الكلمة موجودة في أي مكان. لكن لو هدفنا Queries التي تبدأ بسؤال، نستخدم اللي اتعلمناه:

توقّع النتيجة

عايز الـQueries اللي تبدأ بواحدة من كلمات السؤال دي. كام واحدة من الستة هتتطابق؟

^(كيف|هل|لماذا|متى|أين|كم)
  • كيف اختار لابتوب
  • هل macbook مناسب للعمل
  • لماذا اللابتوب يسخن
  • كم سعر macbook
  • أفضل لابتوب للعمل
  • لابتوب كيف اختاره

هل كده طلعنا كل الأسئلة؟ لا. المستخدم ممكن يكتب "ما أفضل لابتوب للعمل" أو "ايه افضل لابتوب للتصميم". Pattern الأولي مش كامل — وده مش عيب في Regex، إحنا وصفنا مجموعة محددة من الأنماط. ممكن نوسعه بعد مراجعة البيانات: ^(كيف|هل|لماذا|متى|أين|كم|ما|ايه). نفس العقلية: Pattern أولي ← راجع النتائج ← اكتشف اللي فاتك ← وسّع Pattern.

Segment المقارنات

عندنا: مقارنة macbook و windows، macbook مقابل dell، الفرق بين macbook air و pro، macbook ولا windows، أفضل macbook للعمل، سعر macbook. ممكن نبدأ:

(مقارنة|مقابل|الفرق بين|ولا)
  • مقارنة macbook و windows
  • macbook مقابل dell
  • الفرق بين macbook air و pro
  • macbook ولا windows
  • أفضل macbook للعمل
  • سعر macbook

وده Segment مفيد جدًا لمواقع التجارة الإلكترونية وSaaS والخدمات — أي مجال المستخدم فيه بيختار بين بديلين. لكن هنا تبدأ مشكلة الـFalse Positives:

(مقارنة|مقابل|الفرق بين|ولا)
  • هل السعر شامل الضريبة ولا لا

دي False Positive: نتيجة طابقت الـPattern لكن مش مناسبة للـSegment اللي إحنا بنبنيه. كل ما توسّع Regex علشان ما تفوّتش نتائج، ممكن تبدأ تدخل نتائج زيادة. وعكسه صحيح.

القاعدة
مفيش Regex سحري اسمه Comparison Intent. مفيش Pattern يعرف نية المستخدم بشكل كامل — إحنا بنبني Proxy: مجموعة إشارات (مقارنة، مقابل، الفرق بين، ولا، vs، versus)، وبعدين نراجع النتائج. كل إضافة لازم يكون ليها سبب، مش نزود كلمات لمجرد إن Regex يبقى شكله أكبر.

Segment الكلمات المرتبطة بالسعر، وSegment الشراء

(سعر|اسعار|أسعار|تكلفة|ثمن|بكام|price) Segment بنستخدمه علشان نجاوب أسئلة زي: أي صفحات بتظهر على Queries مرتبطة بالسعر؟ هل المستخدم اللي بيسأل عن السعر عنده CTR أعلى؟ لاحظ الفرق: إحنا مش بنقول "عملت Regex للسعر وخلاص"، إحنا بنقول "بنيت Segment، وعايز أستخدمه للإجابة عن سؤال".

هل نضيف "سعر" لـSegment الشراء (شراء|اشتري|تقسيط|خصم|عرض|للبيع)؟ على حسب السؤال اللي إحنا بنحاول نجاوبه. لو بنعمل Segment واسع اسمه Commercial Modifiers ممكن يدخل. لكن لو بنحاول نحدد Queries أقرب لعملية الشراء نفسها، الأفضل نفصلهم — Price Segment لوحده، Purchase Segment لوحده.

خد بالك
متجمعش حاجات مختلفة لمجرد إنها قريبة. لو حطيت سعر ومقارنة وشراء وسؤال معلوماتي كلهم في Regex واحد وبصيت على CTR، الرقم معناه إيه؟ مش واضح، لأنك خلطت أربع نوايا مختلفة في Segment واحد. Segmentation الجيد مش "أقدر أجمع كام كلمة في Regex؟"، لكن "إيه المجموعة اللي لما أقارن Metrics بتاعتها هتديني معلومة مفيدة؟"

بدل ما تقول "عايز أعمل Price Regex"، قول "هل Queries المرتبطة بالسعر بتحقق CTR مختلف عن باقي Queries؟" ساعتها تعرف ليه بتبني المجموعة.

الرمز ? يعني الجزء السابق اختياري

افترض إن اسم البراند SEO Lab، والناس بتكتب seo lab وseolab. الفرق بينهم مسافة واحدة — هل لازم أكتب الشكلين كاملين؟ مش بالضرورة. لو كتبت ? بعد Character أو جزء، معناه: الجزء السابق ممكن يظهر مرة، أو ما يظهرش.

seo ?lab
  • seo lab
  • seolab
  • seo labs
  • best seo lab
خد بالك
هل ? معناها «أي حاجة اختيارية»؟ لا — دي غلطة شائعة. ? بتأثر على الجزء اللي قبلها مباشرة. في seo ?lab اللي اختياري هو المسافة، مش lab. اقرأها: seo + مسافة اختيارية + lab. لو الناس بتكتب أكتر من مسافة (seo lab)، الـPattern الحالي مش هيغطيها — لكن متسبقش المشكلة، عدّل لما البيانات تقول إنك محتاج.

بناء Segment خطوة خطوة

عندك موقع اسمه Laptop House، وQueries فيها: laptop house، laptophouse، لاب توب هاوس، سعر لابتوب، أفضل لابتوب للبرمجة، laptop house offers، مقارنة lenovo و dell، كم سعر lenovo، هل lenovo جيد، شراء lenovo. عايزين نعمل شوية Segments.

أولًا: Brand

نلاحظ Variations: laptop house، laptophouse، لاب توب هاوس. ممكن نكتب (laptop ?house|لاب توب هاوس) — لاحظ laptop ?house تغطي laptop house وlaptophouse بنفس الوقت.

ثانيًا: Non-brand

نستخدم نفس Pattern، لكن بدل Matches regex نستخدم Doesn't match regex.

ثالثًا: Questions

^(كيف|هل|لماذا|كم|متى|أين|ما) — من بياناتنا هيظهر كم سعر lenovo وهل lenovo جيد.

رابعًا: Comparison

(مقارنة|مقابل|الفرق بين|ولا|vs) — من بياناتنا: مقارنة lenovo و dell.

خامسًا: Purchase

(شراء|اشتري|تقسيط|خصم|عرض|للبيع) — هيظهر شراء lenovo. لكن laptop house offers ممكن ما تظهرش لو Pattern العربي فقط أو لو كتبنا «عرض» من غير offers. لو موقعك عربي لكن مستخدميه بيستخدموا عربي وإنجليزي، لازم الـPattern يعكس البيانات الفعلية، مش اللغة اللي أنت متوقع المستخدم يكتب بيها.

إيه أهم خطوة بعد ما تعمل Segment؟

راجع Samples، مش الأرقام الأول. لو عملت Comparison Segment، بص على مجموعة من الـQueries اللي ظهرت واسأل: هل دي فعلًا المجموعة اللي كنت أقصدها؟ لو نعم، بعدين ابص على Metrics. لو لا، أصلح الـPattern.

طريقة مراجعة أي Segment
  1. 1إيه اللي ظهر صح؟ — دي النتائج المطلوبة
  2. 2إيه اللي ظهر غلط؟ — دي False Positives
  3. 3إيه اللي كان المفروض يظهر ومظهرش؟ — دي False Negatives
  4. 4إيه التعديل الأصغر اللي يصلح المشكلة؟ — عدّل الجزء اللي سبب المشكلة، مش تهد كل Regex

مثال False Negative: Pattern السعر (سعر|أسعار|تكلفة|ثمن) ولقيت macbook بكام مش داخلة — نضيف «بكام». مثال False Positive: Comparison Pattern ولقيت «هل الشحن مجاني ولا لا» داخلة — ساعتها تراجع هل «ولا» مفيدة فعلًا، أو تشيلها وتقبل إنك هتفقد بعض الحالات، أو تعملها تحليل منفصل. وده قرار تحليلي، مفيش Pattern واحد صح لكل موقع.

ملحوظة
عقلية الـPrecision مقابل Coverage: Pattern واسع هيجيب معظم الحالات اللي أنت عايزها، لكن كمان هيجيب Noise. Pattern ضيق جدًا النتائج فيه دقيقة، لكن ممكن يفوّت حالات. لو بتعمل اكتشاف أولي، ممكن تبدأ أوسع. لو هتبني تقرير أرقام دقيق لإدارة الشركة، يبقى لازم تراجع Segment أكتر.

متقارنش Segments غير متساوية وتطلع باستنتاج سريع. لو لقيت Brand CTR = 28% وNon-brand CTR = 3%، متقولش "الموقع ممتاز في Brand وسيئ في Non-brand" قبل ما تشوف Average Position وحجم البيانات ونوع الصفحات والفترة الزمنية. طبيعي جدًا إن Brand Queries يكون عندها CTR أعلى — الشخص أصلًا بيدور عليك. Regex ساعدنا نطلع المجموعة، لكن تفسير الفرق لسه محتاج SEO judgment.

وأخيرًا: عندك Question Segment ^(كيف|هل|لماذا|كم|متى|أين|ما) وعندك Long-tail Segment من 7 كلمات أو أكثر ^\S+(\s+\S+){6,}$. الاتنين مش بيجاوبوا نفس السؤال — ممكن Query تكون طويلة ومش سؤال، وممكن تكون سؤال وقصيرة. متتعاملش معاهم كأنهم نفس Segment.

جرّب بنفسك

عندك براند اسمه Digital Nest، والناس بتكتب: digital nest، digitalnest، ديجيتال نست، ديجتال نست. اكتب Brand Regex يغطي الأربع صيغ.

  • digital nest
  • digitalnest
  • ديجيتال نست
  • ديجتال نست
جرّب بنفسك

باستخدام نفس الـPattern اللي فوق، إزاي تطلع Non-brand؟

  • digital nest
  • أفضل لابتوب للعمل

الإجابة مش Regex جديد — استخدم "Doesn't match regex" بدل "Matches regex" بنفس الـPattern بالظبط.

جرّب بنفسك

عندك: كيف اختار استضافة، هل الاستضافة مهمة للسيو، أفضل استضافة للمواقع، كم سعر الاستضافة، استضافة كيف اختارها، لماذا الموقع بطيء. مطلوب: Queries التي تبدأ بكيف أو هل أو كم أو لماذا.

  • كيف اختار استضافة
  • هل الاستضافة مهمة للسيو
  • أفضل استضافة للمواقع
  • كم سعر الاستضافة
  • استضافة كيف اختارها
  • لماذا الموقع بطيء
جرّب بنفسك

عندك: مقارنة wordpress و shopify، wordpress مقابل shopify، الفرق بين wordpress و shopify، wordpress ولا shopify، سعر wordpress، هل wordpress مجاني ولا لا. ابدأ بـPattern للمقارنة، وشوف المشكلة اللي هتظهر لو استخدمت «ولا».

  • مقارنة wordpress و shopify
  • wordpress مقابل shopify
  • الفرق بين wordpress و shopify
  • wordpress ولا shopify
  • سعر wordpress
  • هل wordpress مجاني ولا لا

مفيش إجابة واحدة صحيحة هنا — المهم تشرح قرارك: هتسيب «ولا»، تشيلها، ولا تراجع نتائجها بشكل منفصل؟

الاختبار التطبيقي

عندك موقع اسمه Phone Hub، والناس بتكتب البراند: phone hub، phonehub، فون هب، فون هاب، phone hub offers.

تحدّي Regex

Brand Regex لـ Phone Hub

ابني Brand Regex يغطي كل الصيغ اللي المستخدمين بيكتبوا بيها اسم البراند، ويستبعد أي Query تانية.

لازم يظهر
  • · phone hub
  • · phonehub
  • · فون هب
  • · فون هاب
  • · phone hub offers
لازم ما يظهرش
  • · سعر iphone 17
  • · شراء iphone 17
  • · كيف اختار iphone مناسب

بعد ما بنيت الـBrand Regex، نفس الـPattern بيديك Non-brand بـDoesn't match regex، وبيديك Question Segment وComparison Segment وPrice Segment منفصلين — كل واحد بيجاوب سؤال مختلف. اختر Segment واحد من اللي بنيتهم، واكتب سؤال SEO حقيقي هتستخدمه للإجابة عليه — مش "أشوف الكلمات"، لكن مثل: هل المستخدمين اللي بيبحثوا عن السعر بيصلوا لصفحات المنتجات ولا للمقالات؟

اختبار الفهم الحقيقي

أنا مش عايزك تخرج من الدرس حافظ (سعر|اسعار|تكلفة|ثمن) — أي حد يقدر يعمل Copy وPaste. عايز لما تدخل موقع جديد، والبراند مختلف، واللغة مختلفة، تعرف: حدد السؤال ← راجع البيانات ← حدد الـModifiers أو الشكل المشترك ← ابني Pattern أولي ← راجع النتائج ← اكتشف اللي ناقص واللي داخل بالغلط ← حسّن Segment ← حلل Metrics.

قبل الدرس التالي

لحد هنا استخدمنا Regex مع العربي، لكن بطريقة بسيطة. كتبنا مثلًا (سعر|اسعار|أسعار) واضطرينا نحط "اسعار" و"أسعار" كاحتمالين منفصلين. في الدرس التالي هنركز بالكامل على النقطة دي: إزاي نتعامل مع اختلافات كتابة الحروف العربية، والحروف الاختيارية، وCharacter Classes، وليه \b اللي بتشوفه في شروحات Regex الإنجليزية ممكن يسبب لك مشكلة مع العربي.

أحسنت، وصلت إلى نهاية الدرس.