استفاده از رجکس (Regex) در سرچ کنسول گوگل، قابلیتهای تحلیلی بسیار دقیقی در اختیار ما میگذارد. اما این ابزار قدرتمند، بدون چالش نیست. عدم آشنایی با محدودیتها و خطاهای رایج در رجکس، بهخصوص تفاوت موتور RE2 گوگل با سایر ابزارها، میتواند به سادگی منجر به تحلیلهای ناقص و از دست رفتن دادههای حیاتی شود. درک این تفاوتها، بهویژه حساسیت پیشفرض به حروف (Case Sensitivity)، اولین قدم برای اطمینان از صحت گزارشها است.
جدول عیبیابی سریع: خطاهای رایج Case Sensitivity در رجکس
این جدول به شما کمک میکند تا رایجترین اشتباهات مربوط به حساسیت حروف در GSC را به سرعت شناسایی و رفع کنید.
| سناریوی تحلیل (هدف) | الگوی اشتباه (ناقص) | الگوی صحیح (جامع) | دلیل (چرا؟) |
| یافتن کوئری برند | vazir | (?i)vazir | الگوی اشتباه، «Vazir» یا «VAZIR» را پیدا نمیکند. |
| حذف کوئریهای برند | vazir (در Doesn’t Match) | (?i)vazir (در Doesn’t Match) | الگوی اشتباه، «Vazir» را حذف نکرده و در نتایج Non-Brand باقی میگذارد. |
| ترکیب چند کلمه | (seo|sem) | (?i)(seo|sem) | الگوی اشتباه، «SEO» یا «SEM» را نادیده میگیرد. |
| قرار دادن فلگ | vazir(?i) | (?i)vazir | فلگ (?i) فقط زمانی کار میکند که در ابتدای عبارت باشد. |
| تست در ابزار دیگر | استفاده از حالت PCRE | استفاده از حالت Go (RE2) | موتور GSC از RE2 پشتیبانی میکند که با PCRE تفاوت دارد. |
آیا رجکس در سرچ کنسول به حروف بزرگ و کوچک حساس است؟
پاسخ کوتاه و مستقیم: بله، کاملاً حساس است
بله. عبارات باقاعده (Regex) در گوگل سرچ کنسول بهطور کامل به حروف بزرگ و کوچک (Case-Sensitive) حساس هستند.
برای دریافت آموزش رایگان سرچ کنسول کلیک کنید: آموزش رایگان سرچ کنسول
این یعنی از نظر موتور رجکس سرچ کنسول، عبارت «SEO» با عبارت «seo» یا «Seo» تفاوت دارد و نتایج یکسانی برنمیگرداند. اگر فیلتر خود را فقط روی «seo» تنظیم کنید، کوئریهایی مانند «SEO» را که کاربران با حروف بزرگ جستجو کردهاند، از دست خواهید داد.
چرا این حساسیت (Case Sensitivity) اهمیت دارد؟
این حساسیت، یک باگ یا مشکل فنی نیست؛ بلکه یک ویژگی استاندارد برای افزایش دقت فیلترها است. اهمیت این موضوع در چند بخش مشخص میشود:
- دقت در گزارشگیری: اگر حساسیت به حروف را نادیده بگیرید، بخش زیادی از دادهها را از دست میدهید. برای مثال، اگر فقط به دنبال «Vazir SEO» بگردید، کوئری «vazir seo» نمایش داده نمیشود و گزارش شما ناقص خواهد بود.
- بررسی کوئریهای برند (Branded Queries): نامهای تجاری و کلمات مخفف (مانند SEO، SEM یا نام برند شما) اغلب به اشکال مختلف (بزرگ، کوچک یا ترکیبی) جستجو میشوند. برای تحلیل کامل عملکرد برند، باید تمام این اشکال را پوشش دهید.
- جداسازی دقیقتر: گاهی اوقات، شما عمداً میخواهید بین دو عبارت تمایز قائل شوید (مثلاً بین “apple” به عنوان میوه و “Apple” به عنوان برند). حساسیت به حروف این امکان را فراهم میکند، هرچند در سرچ کنسول کاربرد کمتری دارد.
آشنایی با موتور RE2: استاندارد رجکس گوگل و دلیل این حساسیت
دلیل فنی این حساسیت، استفاده گوگل از یک موتور رجکس خاص به نام RE2 است. این موتور، استاندارد داخلی گوگل برای پردازش عبارات باقاعده بوده و در ابزارهایی مانند سرچ کنسول، گوگل آنالیتیکس و گوگل دیتا استودیو (لوکر استودیو) استفاده میشود.
برخلاف برخی موتورهای رجکس دیگر (مانند PCRE)، موتور RE2 بهطور پیشفرض (Default) حساس به حروف بزرگ و کوچک طراحی شده است.
چگونه این حساسیت را در سرچ کنسول نادیده بگیریم؟
برای اینکه فیلتر رجکس شما به حروف بزرگ و کوچک حساس نباشد و همه اشکال یک کلمه را پیدا کند، باید از پرچم (Flag) مخصوصی در ابتدای عبارت خود استفاده کنید:
(?i)
این قطعه کد کوچک به موتور RE2 دستور میدهد که ادامه عبارت را بدون در نظر گرفتن بزرگی یا کوچکی حروف (Case-Insensitive) بررسی کند.
- مثال اشتباه (فقط حروف کوچک): seo
- نتیجه: فقط کوئری «seo» را پیدا میکند.
- مثال صحیح (نادیده گرفتن حروف): (?i)seo
- نتیجه: کوئریهای «seo»، «SEO»، «Seo»، «sEo» و… را پیدا میکند.
بهعنوان یک قانون کلی، همیشه به یاد داشته باشید که رجکس در سرچ کنسول ذاتاً حساس به حروف است. برای جلوگیری از خطای محاسباتی و ناقص بودن گزارشها، توصیه میکنم همیشه فیلترهای خود را با (?i) شروع کنید، مگر اینکه دلیل فنی مشخصی برای تفکیک حروف بزرگ و کوچک داشته باشید.
چگونه حساسیت به حروف را در رجکس سرچ کنسول غیرفعال کنیم؟
همانطور که اشاره شد، حساسیت به حروف (Case Sensitivity) در سرچ کنسول یک ویژگی استاندارد موتور RE2 است. اگر این موضوع مدیریت نشود، گزارشهای شما ناقص خواهد بود. برای مثال، اگر فقط brand را فیلتر کنید، کوئری Brand را از دست میده Sد.
خوشبختانه، راهحل بسیار سادهای برای غیرفعال کردن این حساسیت وجود دارد.
راهحل طلایی: استفاده از فلگ (?i) در ابتدای عبارت
سادهترین، استانداردترین و بهینهترین روش برای نادیده گرفتن حروف بزرگ و کوچک، استفاده از یک “فلگ” (Flag) یا دستور اصلاحی به نام (?i) است.
این دستور باید همیشه در ابتدای عبارت رجکس شما قرار گیرد.
وقتی موتور رجکس RE2 این عبارت را در ابتدا میبیند، متوجه میشود که باید تمام الگویی که بعد از آن میآید را بهصورت Case-Insensitive (غیر حساس به حروف) پردازش کند. این کار، شما را از تعریف کردن تمام حالتهای ممکن بینیاز میکند.
مثال کاربردی: فیلتر کردن کوئری برند (مثال: Brand و brand) با (?i)
فرض کنید میخواهیم تمام کوئریهایی را که شامل نام برند “Vazir” هستند، استخراج کنیم. کاربران ممکن است این نام را به اشکال مختلفی جستجو کنند:
- vazir
- Vazir
- VAZIR
- Vazir Seo
- vazir seo
۱. روش اشتباه (حساس به حروف):
- فیلتر: vazir
- نتیجه: فقط کوئریهایی مانند «vazir» یا «vazir seo» را برمیگرداند. کوئری «Vazir» یا «VAZIR» نمایش داده نمیشود.
۲. روش صحیح (غیر حساس به حروف):
- فیلتر: (?i)vazir
- نتیجه: تمام کوئریهای «vazir»، «Vazir»، «VAZIR»، «Vazir Seo»، «vazir seo» و هر ترکیب دیگری از این حروف را به درستی برمیگرداند.
روش جایگزین (و طولانیتر): استفاده از اپراتور | (OR)
یک روش دیگر (که اصلاً توصیه نمیشود)، لیست کردن تمام حالتهای ممکن با استفاده از اپراتور | (به معنای “یا” / OR) است.
- مثال: (vazir|Vazir|VAZIR)
چرا این روش ناکارآمد است؟
- پیچیدگی: نوشتن عبارت بسیار طولانی و مدیریت آن سخت است.
- احتمال خطا: شما بهراحتی ممکن است یک حالت (مانند vAzIR) را فراموش کنید و گزارش شما ناقص بماند.
استفاده از (?i) هم خواناتر است و هم تضمین میکند که تمام ترکیبات ممکن پوشش داده میشوند.
برای اطمینان از صحت کامل گزارشها در سرچ کنسول، همیشه عبارات رجکس خود را با فلگ (?i) شروع کنید، مگر اینکه دلیل فنی مشخصی برای تفکیک حروف بزرگ و کوچک داشته باشید.
آموزش گام به گام استفاده از (?i) در گزارش Performance
استفاده از فلگ (Flag) (?i) پیچیده نیست، اما باید دقیقاً در جای درست به کار برود تا گزارشهای شما کامل و بدون خطا باشند. این راهنما به شما نشان میدهد چطور این کار را برای فیلتر کردن کوئریها و URLها انجام دهید.
فیلتر کردن کوئریها (Queries) بدون نگرانی از بزرگی حروف
این اصلیترین و رایجترین کاربرد (?i) در سرچ کنسول است.
- وارد گزارش Performance (عملکرد) در سرچ کنسول شوید.
- روی دکمه + New (جدید) کلیک کنید و گزینه Query… (عبارت جستجو) را انتخاب نمایید.
- در منوی کشویی که بهطور پیشفرض روی Contains (شامل) تنظیم شده، گزینه Custom (Regex) (سفارشی – رجکس) را انتخاب کنید.
- در کادر الگو (Pattern)، عبارت خود را حتماً با (?i) شروع کنید.
مثال:
فرض کنید میخواهیم تمام کوئریهای مربوط به برند “Vazir” را پیدا کنیم (شامل Vazir, vazir, VAZIR و…).
- الگوی صحیح: (?i)vazir
- الگوی اشتباه (ناقص): vazir (این الگو، Vazir یا VAZIR را پیدا نمیکند)
پس از وارد کردن (?i)vazir و زدن دکمه Apply (اعمال)، گزارش شما شامل تمام اشکال نوشتاری آن کلمه خواهد بود.
فیلتر کردن صفحات (Pages) و URLها
همین اصل دقیقاً برای فیلتر کردن URLها هم کاربرد دارد. اگرچه بهترین اقدام (Best Practice) استفاده از حروف کوچک در URLها است، اما گاهی اوقات پارامترها، تگها یا ساختارهای قدیمیتر سایت ممکن است شامل حروف بزرگ باشند.
- دوباره روی + New (جدید) کلیک کنید و این بار Page… (صفحه) را انتخاب کنید.
- حالت فیلتر را روی Custom (Regex) تنظیم نمایید.
مثال:
فرض کنید میخواهید تمام مقالات بلاگ که در URL آنها کلمه Blog یا blog وجود دارد را پیدا کنید.
- الگوی صحیح: (?i)/blog/
این کار تضمین میکند که هیچ صفحهای به دلیل تفاوت در بزرگی یا کوچکی حروف از گزارش شما جا نماند.
ترکیب (?i) با سایر دستورات رجکس
(?i) یک “تنظیمکننده” (Modifier) است و بهراحتی با سایر دستورات استاندارد رجکس (مانند |، ^ یا $) ترکیب میشود.
نکته کلیدی: (?i) باید همیشه در ابتدای کل عبارت قرار گیرد تا بر تمام الگوهای بعدی تأثیر بگذارد.
مثال ۱: ترکیب با “یا” (اپراتور |)
اگر بخواهید کوئریهایی را پیدا کنید که شامل “seo” یا “vazir” هستند (بدون حساسیت به حروف):
- الگو: (?i)(seo|vazir)
- این الگو، seo, SEO, vazir, Vazir و… را پوشش میدهد.
مثال ۲: ترکیب با “شروع دقیق” (اپراتور ^)
اگر بخواهید کوئریهایی را پیدا کنید که دقیقاً با کلمه “seo” شروع میشوند (و به حروف حساس نباشند):
- الگو: (?i)^seo
- این الگو، SEO Tips و seo analysis را پیدا میکند، اما best seo را نه.
استفاده صحیح از (?i) در ابتدای عبارات، دقت تحلیلهای شما در سرچ کنسول را به شکل قابل توجهی افزایش میدهد.
مثالهای عملی: 5 سناریوی پرتکرar در مدیریت Case Sensitivity
سناریو ۱: جداسازی کوئریهای برند از غیربرند
این یکی از مهمترین کاربردهاست. شما باید بدانید کاربران دقیقاً چطور نام برند شما را جستجو میکنند.
- سناریو: میخواهید تمام کوئریهای شامل برند “Vazir” را پیدا کنید.
- فیلتر اشتباه (ناقص): vazir
- مشکل: این فیلتر، کوئریهای «Vazir» یا «VAZIR» را که توسط کاربران تایپ شده، نادیده میگیرد و گزارش شما ناقص خواهد بود.
- فیلتر صحیح (جامع): (?i)vazir
- نتیجه: این الگو تمام حالات ممکن (Vazir, vazir, VAZIR, vAzIr و…) را پوشش میدهد و دید کاملی از جستجوهای برند به شما میدهد.
سناریو ۲: تحلیل کوئریهای سوالی (چگونه، چطور، آیا)
کاربران هنگام جستجوی سوالات، کلمات کلیدی را به اشکال مختلف تایپ میکنند، بهخصوص کلمات انگلیسی که در سوالات فارسی ترکیب میشوند.
- سناریو: میخواهید کوئریهای سوالی را پیدا کنید که درباره “SEO” پرسیده شدهاند.
- فیلتر: (?i)(چگونه|چطور|آیا).*seo
- تحلیل: این الگو، هم «چگونه seo یاد بگیریم؟» و هم «چطور SEO را شروع کنیم؟» (با حروف بزرگ) را پیدا میکند.
- اهمیت: اگر (?i) را استفاده نکنید، کوئری دوم (که بسیار رایج است) از دست میرود و شما فرصتهای تولید محتوای سوالی را به درستی تشخیص نمیدهید.
سناریو ۳: فیلتر کردن URLهای حاوی پارامترهای خاص
اگرچه URLها بهتر است همیشه با حروف کوچک باشند، اما پارامترهای داینامیک (مانند UTMها یا فیلترهای فروشگاهی) ممکن است بهصورت خودکار یا دستی با حروف بزرگ ایجاد شوند.
- سناریو: میخواهید تمام بازدیدهای ورودی از کمپین Google در UTM را بررسی کنید.
- فیلتر Page (Regex): (?i)utm_source=google
- تحلیل: این کار تضمین میکند که هر دو حالت …&utm_source=google و …&utm_source=Google در گزارش شما لحاظ شوند و بتوانید عملکرد کمپین را کامل بسنجید.
سناریو ۴: بررسی تفاوت تایپ کاربر (مثال: “سئو” در برابر “SEO“)
این سناریو یک نکته مهم دارد. (?i) فقط بر حروف انگلیسی (A-Z) تأثیر میگذارد، نه بر تفاوت نوشتاری فارسی و انگلیسی.
- سناریو: میخواهید تمام کوئریهای مرتبط با “سئو” (فارسی) و “SEO” (انگلیسی) را پیدا کنید.
- فیلتر (?i)seo: این فیلتر فقط “seo” و “SEO” (انگلیسی) را پیدا میکند.
- فیلتر صحیح (ترکیبی): (?i)(seo|سئو)
- تحلیل: در اینجا ما از اپراتور “یا” (|) برای پوشش دادن دو کلمه متفاوت (فارسی و انگلیسی) استفاده کردهایم و همزمان با (?i)، حالتهای مختلف کلمه انگلیسی (seo, SEO, Seo) را نیز پوشش دادهایم.
سناریو ۵: استفاده در فیلتر “Doesn’t Match Regex“
قدرت (?i) فقط برای شامل شدن (Includes) نیست، بلکه برای حذف کردن (Excludes) دقیق دادهها نیز حیاتی است.
- سناریو: میخواهید تمام کوئریها بهجز کوئریهای برند “Vazir” را ببینید (تحلیل کوئریهای Non-Brand).
- فیلتر: Query > Doesn’t match regex
- الگوی اشتباه (خطرناک): vazir
- مشکل: این الگو فقط «vazir» را حذف میکند. کوئریهای «Vazir» یا «VAZIR» همچنان در گزارش شما باقی میمانند و تحلیل شما از کوئریهای غیربرند اشتباه خواهد بود.
- الگوی صحیح: (?i)vazir
- نتیجه: این الگو تمام اشکال نوشتاری برند شما را بهطور کامل از گزارش حذف میکند و دادههای خالص Non-Brand را در اختیار شما قرار میدهد.
اشتباهات رایج و تلههای پنهان هنگام کار با رجکس GSC
فراموش کردن (?i) و از دست دادن بخشی از دادهها
این رایجترین و در عین حال پرهزینهترین اشتباه است. حساسیت به حروف (Case-Sensitivity) در سرچ کنسول یک ویژگی پیشفرض است، نه یک باگ.
اگر برای فیلتر کردن کوئری برند (مثلاً vazir) از فلگ (?i) در ابتدای عبارت خود استفاده نکنید، تمام دادههای مربوط به جستجوهایی که کاربران بهصورت «Vazir» یا «VAZIR» تایپ کردهاند را از دست میدهید.
این اشتباه باعث میشود گزارش شما ناقص، غیرقابل اعتماد و برای تصمیمگیریهای استراتژیک، بیفایده باشد.
قرار دادن (?i) در انتهای عبارت (که کار نمیکند!)
فلگ (?i) یک دستور اصلاحی (Modifier) است که باید فقط در ابتدای عبارت قرار گیرد تا بر کل الگوی بعد از خود تأثیر بگذارد.
برخی کاربران به اشتباه این دستور را در انتهای الگو قرار میدهند (مثلاً vazir(?i)). این کار هیچ تأثیری ندارد. موتور RE2 این فلگ را در انتها تشخیص نمیدهد و الگو همچنان حساس به حروف (Case-Sensitive) باقی میماند.
- صحیح: (?i)vazir
- غلط: vazir(?i)
تفاوت عملکرد رجکس در سرچ کنسول با ابزارهای دیگر (مثل Regex101)
بسیاری از متخصصان، الگوهای خود را ابتدا در ابزارهای آنلاین مانند Regex101 تست میکنند. تلهی اصلی اینجاست:
ابزارهای آنلاین اغلب بهطور پیشفرض از موتور PCRE (مورد استفاده در PHP) یا موتورهای پایتون و جاوااسکریپت استفاده میکنند. در حالی که سرچ کنسول، گوگل آنالیتیکس و لوکر استودیو همگی از موتور RE2 گوگل استفاده میکنند.
این دو موتور تفاوتهای اساسی در سینتکس دارند. الگویی که در حالت PCRE کاملاً درست کار میکند، ممکن است در RE2 (موتور سرچ کنسول) نامعتبر باشد یا اصلاً کار نکند.
راهحل: اگر از Regex101 استفاده میکنید، حتماً از منوی سمت چپ، طعم (Flavor) رجکس را روی Go (RE2) تنظیم کنید تا محیط تست شما با سرچ کنسول یکسان باشد.
محدودیتهای سینتکس RE2 که باید بشناسید
موتور RE2 برای اولویت دادن به سرعت و جلوگیری از پردازشهای سنگین، برخی قابلیتهای پیشرفته رجکس را که در موتورهای دیگر رایج هستند، پشتیبانی نمیکند.
مهمترین محدودیتی که باید بشناسید، عدم پشتیبانی از موارد زیر است:
- Lookarounds: دستورات Lookahead (مانند (?=…)) و Lookbehind (مانند (?<=…)) در RE2 کار نمیکنند. این بزرگترین تفاوت با PCRE است.
- Backreferences: استفاده از ارجاعات به گروههای قبلی (Backreferences) نیز در RE2 بسیار محدود است یا پشتیبانی نمیشود.
این محدودیتها به این معنی است که شما باید الگوهای خود را سادهتر و مستقیمتر بنویسید و از دستورات پیچیدهای که در سایر زبانهای برنامهنویسی استفاده کردهاید، پرهیز کنید.
تسلط بر Case Sensitivity برای تحلیل دقیقتر در سرچ کنسول
واقعیت این است که گوگل سرچ کنسول (GSC) در بخش فیلترهای رجکس، بهطور پیشفرض به حروف بزرگ و کوچک حساس است. این یک قانون فنی بر اساس موتور RE2 گوگل است، نه یک باگ یا مشکل.
اگر این ویژگی را نادیده بگیرید، بخش قابل توجهی از دادههای خود را از دست خواهید داد. برای مثال، اگر به سادگی کوئری «seo» را فیلتر کنید، تمام جستجوهای ارزشمندی که بهصورت «SEO» یا «Seo» انجام شدهاند، در گزارش شما نمایش داده نمیشوند. این موضوع، بهخصوص در تحلیل کوئریهای برند (Branded Queries) حیاتی است.
راهحل قطعی و استاندارد
برای جلوگیری از این خطای تحلیلی و اطمینان از جامع بودن گزارش، راهحل بسیار ساده است:
همیشه، هر عبارت رجکسی را که در سرچ کنسول مینویسید، با فلگ (?i) شروع کنید.
این دستور کوچک که در ابتدای الگو قرار میگیرد، به موتور RE2 میگوید که کل عبارت بعدی را بدون توجه به بزرگی یا کوچکی حروف بررسی کند.
کاربردهای عملی این تسلط:
- تحلیل کامل برند: با استفاده از (?i)brandname، تمام اشکال نوشتاری برند خود (brandname, BrandName, BRANDNAME) را پوشش میدهید.
- حذف دقیق دادهها: هنگام استفاده از فیلتر Doesn’t match regex، استفاده از (?i) تضمین میکند که تمام اشکال یک کلمه (مثلاً برند) به درستی حذف شوند تا دادههای غیربرند (Non-Brand) خالص به دست آید.
- بررسی URLها و پارامترها: اطمینان حاصل میکنید که هیچ صفحهای به دلیل تفاوتهای جزئی در حروف پارامترهای URL (مانند utm_source=Google در برابر utm_source=google) از دست نرود.
اشتباهی که باید از آن اجتناب کنید:
هرگز (?i) را در انتهای عبارت قرار ندهید؛ این دستور تنها زمانی معتبر است که در ابتدای الگو باشد.
در نهایت، تسلط بر این مفهوم ساده اما کلیدی، اولین گام برای استفاده حرفهای از رجکس در سرچ کنسول و استخراج دادههایی است که واقعاً میتوانید به آنها اعتماد کنید.
جمعبندی
تسلط بر عبارات باقاعده در سرچ کنسول، یک مهارت فنی کلیدی برای تحلیل دادههای سئو است. مهمترین نکتهای که در این میان باید به خاطر سپرد، حساسیت ذاتی موتور RE2 گوگل به حروف بزرگ و کوچک است.
استفاده همیشگی از فلگ (?i) در ابتدای الگوها، یک اقدام ساده و استاندارد است که دقت گزارشهای شما را تضمین میکند. این کار مانع از دست رفتن دادههای ارزشمند شده و اطمینان میدهد که تحلیل شما از کوئریهای برند و غیربرند، کامل و قابل اتکا است.