درود بر شما. من محمد صدرا حسینی هستم، کارشناس سئو در مجموعه وزیر سئو.
تحلیل دادههای سئو بدون ابزار دقیق، مانند رانندگی در مه غلیظ است. فیلترهای استاندارد در ابزارهایی مانند گوگل سرچ کنسول، اغلب ما را از درک عمیق رفتار کاربر باز میدارند و منجر به تحلیلهای سطحی میشوند.
برای درک واقعی «قصد کاربر» (User Intent) و دستیابی به تحلیل عمیق و اطلاعات جالب فراتر از واضح، ما به ابزاری قدرتمندتر به نام عبارات باقاعده یا رجکس (Regex) نیاز داریم. رجکس به شما اجازه میدهد تا الگوهای پیچیده جستجو را فیلتر کرده و دادهها را با دقتی جراحیگونه بخشبندی (Segment) کنید.
تسلط بر استفاده از فیلتر Regex در سرچ کنسول تنها نقطه شروع است. در این راهنمای جامع و نتیجهمحور، ما به صورت مرحلهبه-مرحله، از مبانی اولیه تا کاربردهای پیشرفته رجکس در GA4 و SQL، به شما نشان خواهیم داد که چگونه دادههای خام را به استراتژیهای عملی و قابل اجرای سئو تبدیل کنید.
جدول کاربردی (برگه تقلب متاکاراکترهای کلیدی)
این جدول خلاصهای از پرکاربردترین متاکاراکترهایی است که در طول این آموزش با آنها کار خواهیم کرد:
| متاکاراکتر | نام | عملکرد به زبان ساده (در فیلتر کوئری) |
|---|---|---|
| . | نقطه (Dot) | به معنای «هر کاراکتر منفردی» (حرف، عدد، فاصله). |
| ** | ** | پایپ (Pipe) |
| ^ | هشتک (Caret) | به معنای «شروع رشته». (الگو باید در ابتدای کوئri باشد) |
| $ | دلار (Dollar) | به معنای «پایان رشته». (الگو باید در انتهای کوئری باشد) |
| ? | علامت سوال | به معنای «صفر یا یکی» از کاراکتر قبلی (آن را اختیاری میکند). |
| * | ستاره (Asterisk) | به معنای «صفر یا بیشتر» از کاراکتر قبلی. |
| + | بعلاوه (Plus) | به معنای «یک یا بیشتر» از کاراکتر قبلی. |
| ( ) | پرانتز | برای «گروهبندی» عبارات جهت اعمال شروط | یا ? روی کل گروه. |
| [ ] | براکت | به معنای «هر یکی از کاراکترهای داخل». (مثال: [abc] یعنی a یا b یا c). |
| d | بکاسلش D | به معنای «هر کاراکتر عددی» (مخفف [0-9]). |
| ** | بکاسلش | کاراکتر گریز (Escape). معنای ویژه کاراکتر بعدی را خنثی میکند. (مثال: . یعنی خودِ نقطه). |
متاکاراکتر
نام
عملکرد به زبان ساده (در فیلتر کوئری)
.
نقطه (Dot)
به معنای «هر کاراکتر منفردی» (حرف، عدد، فاصله).
**
**
پایپ (Pipe)
^
هشتک (Caret)
به معنای «شروع رشته». (الگو باید در ابتدای کوئri باشد)
$
دلار (Dollar)
به معنای «پایان رشته». (الگو باید در انتهای کوئری باشد)
?
علامت سوال
به معنای «صفر یا یکی» از کاراکتر قبلی (آن را اختیاری میکند).
*
ستاره (Asterisk)
به معنای «صفر یا بیشتر» از کاراکتر قبلی.
+
بعلاوه (Plus)
به معنای «یک یا بیشتر» از کاراکتر قبلی.
( )
پرانتز
برای «گروهبندی» عبارات جهت اعمال شروط | یا ? روی کل گروه.
[ ]
براکت
به معنای «هر یکی از کاراکترهای داخل». (مثال: [abc] یعنی a یا b یا c).
d
بکاسلش D
به معنای «هر کاراکتر عددی» (مخفف [0-9]).
**
بکاسلش
کاراکتر گریز (Escape). معنای ویژه کاراکتر بعدی را خنثی میکند. (مثال: . یعنی خودِ نقطه).
رجکس (Regex) چیست و چرا باید از آن برای فیلتر کردن کوئریها استفاده کنیم؟
مفهوم عبارات باقاعده (Regular Expressions) به زبان ساده
عبارات باقاعده (Regex) یک زبان جستجوی الگو (Pattern Matching) است. به جای جستجوی یک کلمهی ثابت (مانند “خرید”)، رجکس به شما امکان میدهد «قوانین» یا «الگوهای» متن مورد نظر خود را تعریف کنید.
رجکس را مانند یک دستور «پیدا کن و جایگزین کن» (Find & Replace) بسیار پیشرفته در نظر بگیرید.
در فیلتر ساده، شما میگویید: «دقیقاً کلمه ‘قیمت’ را پیدا کن».
در فیلتر رجکس، شما میگویید: «هر عبارتی را که با کلمه ‘چگونه’ یا ‘چرا’ شروع میشود، سپس بین ۲ تا ۵ کلمه دارد و به علامت سوال ختم میشود، پیدا کن.»
این ابزار به شما قدرت میدهد تا کوئریهای بیشمار کاربران را نه بر اساس کلمات ثابت، بلکه بر اساس قصد کاربر (User Intent) دستهبندی کنید.
مزایای استفاده از رجکس در تحلیل دادهها (سرعت، دقت و انعطافپذیری)
استفاده از رجکس در تحلیل دادههای سئو، بهویژه در سرچ کنسول یا گوگل آنالیتیکس، مزایای عملی و مستقیمی را فراهم میکند که مستقیماً به ارائه تحلیل عمیق و اطلاعات جالب 1 منجر میشود:
۱. دقت بسیار بالا (Precision): شما دقیقاً همان چیزی را که به دنبالش هستید فیلتر میکنید. به جای صدها کوئری نامرتبط، فقط الگوهای مورد نظر (مثلاً کوئریهای سوالی، کوئریهای برند یا کوئریهای مقایسهای) را جدا میکنید.
۲. انعطافپذیری فوقالعاده (Flexibility): رجکس میتواند الگوهای بسیار پیچیدهای را مدیریت کند که با فیلترهای عادی غیرممکن است. (مثال: یافتن تمام کوئریهایی که شامل کلمات “قیمت” یا “خرید” هستند، اما شامل کلمه “رایگان” نیستند).
۳. صرفهجویی در زمان (Efficiency): به جای اجرای دهها فیلتر مختلف و ترکیب دستی نتایج، شما میتوانید یک عبارت رجکس واحد بنویسید که چندین شرط را همزمان بررسی کند. این فرآیند، تحلیل دادهها را به شدت تسریع میبخشد.
تفاوت فیلتر ساده (Contains/Equals) با فیلتر Regex
تفاوت اصلی در «سطح کنترل» شما بر روی دادهها است. فیلترهای ساده محدود هستند و فقط تطابقهای دقیق یا جزئی (Contains) را بررسی میکنند، در حالی که رجکس با بررسی الگوها، تقریباً نامحدود است.
برای درک بهتر این تفاوت، سناریوی «تحلیل کوئریهای برند» را در نظر بگیرید.
| ویژگی | فیلتر ساده (مثال: Contains “وزیر سئو”) | فیلتر با Regex |
|---|---|---|
| سناریو | فیلتر کوئریهای شامل «وزیر سئو» | فیلتر کوئریهای شامل «وزیر سئو» یا «vazir seo» (با/بدون فاصله) |
| عملکرد | فقط عباراتی که دقیقاً “وزیر سئو” را دارند نشان میدهد. | میتواند الگوهایی مانند vazirseo، vazir seo، «وزیرسئو» و «وزیر سئو» را همزمان پیدا کند. |
| محدودیت | کوئری «vazir seo» یا «آموزش وزیرسئو» را نادیده میگیرد. | بسیار انعطافپذیر است و تمام تنوعات نوشتاری برند را پوشش میدهد. |
| نتیجهگیری | دادههای ناقص و تحلیل غیردقیق. | پوشش جامع و کامل موضوع 2 و درک واقعی از جستجوهای برند. |
ویژگی
فیلتر ساده (مثال: Contains “وزیر سئو”)
فیلتر با Regex
سناریو
فیلتر کوئریهای شامل «وزیر سئو»
فیلتر کوئریهای شامل «وزیر سئو» یا «vazir seo» (با/بدون فاصله)
عملکرد
فقط عباراتی که دقیقاً “وزیر سئو” را دارند نشان میدهد.
میتواند الگوهایی مانند vazirseo، vazir seo، «وزیرسئو» و «وزیر سئو» را همزمان پیدا کند.
محدودیت
کوئری «vazir seo» یا «آموزش وزیرسئو» را نادیده میگیرد.
بسیار انعطافپذیر است و تمام تنوعات نوشتاری برند را پوشش میدهد.
نتیجهگیری
دادههای ناقص و تحلیل غیردقیق.
پوشش جامع و کامل موضوع 2 و درک واقعی از جستجوهای برند.
رجکس، ابزار تحلیلگر حرفهای
رجکس (Regex) یک مهارت فنی نیست، بلکه یک ابزار استراتژیک برای ارائه تحلیل عمیق 3 در سئو است. در حالی که فیلترهای ساده شما را در سطح نگه میدارند، رجکس به شما اجازه میدهد تا به عمق دادههای سرچ کنسول نفوذ کنید، الگوهای رفتاری کاربران را کشف نمایید و در نهایت، محتوایی تولید کنید که دقیقاً بر اساس نیاز مخاطبان 4444و نه صرفاً برای جذب بازدید از موتور جستجو 5555 طراحی شده است.
یادگیری رجکس شاید در ابتدا چالشبرانگیز به نظر برسد، اما «بُرد سریع» (Quick Win) آن در استخراج گزارشهای معنادار، این سرمایهگذاری زمانی را کاملاً توجیه میکند.
یادگیری الفبای رجکس: پرکاربردترین متاکاراکترها (Metacharacters) برای فیلتر کوئری
کاراکترهای اصلی: . (نقطه)، * (ستاره)، + (بعلاوه)، و ? (علامت سوال)
این چهار کاراکتر، هستهی اصلی «تعیین کُمیّت» (Quantifiers) و «انعطافپذیری» در رجکس هستند.
. (نقطه – The Dot): به معنای «هر کاراکتر منفردی». نقطه میتواند جایگزین هر حرف، عدد، فاصله (Space) یا نمادی شود.
مثال: الگوی س.و با «سئو»، «سبو» و «سگو» مطابقت دارد.
* (ستاره – The Asterisk): به معنای «صفر یا بیشتر» از کاراکتر یا گروه قبل از خود.
مثال: الگوی گوگل* با «گوگ» (صفر ‘ل’)، «گوگل» (یک ‘ل’) و «گوگللل» (چند ‘ل’) مطابقت دارد.
+ (بعلاوه – The Plus): به معنای «یک یا بیشتر» از کاراکتر یا گروه قبل از خود. این کاراکتر بسیار شبیه ستاره است، اما با این تفاوت کلیدی که حداقل یکبار باید وجود داشته باشد.
مثال: الگوی گوگل+ با «گوگل» (یک ‘ل’) و «گوگللل» (چند ‘ل’) مطابقت دارد، اما با «گوگ» (صفر ‘ل’) مطابقت ندارد.
? (علامت سوال – The Question Mark): به معنای «صفر یا یکی» از کاراکتر یا گروه قبل از خود. این کاراکتر، بخش قبل از خود را «اختیاری» (Optional) میکند.
مثال: الگوی seo? با «se» (صفر ‘o’) و «seo» (یک ‘o’) مطابقت دارد.
گروهبندی و انتخاب: ( ) (پرانتز) و | (پایپ)
این دو متاکاراکتر به شما اجازه میدهند الگوهای خود را ترکیب کرده و شرطهای «یا» (OR) را تعریف کنید.
( ) (پرانتز – Grouping): پرانتزها عبارات را «گروهبندی» میکنند. این کار دو هدف اصلی دارد:
اعمال کردن کاراکترهای کُمیّت (مانند *، + یا ?) روی کل گروه به جای یک کاراکتر.
مشخص کردن مرزها برای کاراکتر | (پایپ).
| (پایپ – The Pipe): به معنای «یا» (OR) منطقی است. موتور رجکس تلاش میکند عبارت سمت چپ یا عبارت سمت راست پایپ را پیدا کند.
مثال کاربردی: فرض کنید میخواهید کوئریهایی را پیدا کنید که شامل «خرید» یا «قیمت» هستند.
الگو: (خرید|قیمت)
این الگو با «خرید گوشی» و همچنین «قیمت گوشی» مطابقت دارد. اگر از پرانتز استفاده نمیکردیم (خرید|قیمت)، رجکس به دنبال «خرید» یا «قیمت» میگشت که تفاوت عملکردی ظریفی در الگوهای پیچیدهتر ایجاد میکند.
کلاسهای کاراکتری و لنگرها (Anchors): [ ]، ^ (هشتک)، و $ (دلار)
این ابزارها به شما امکان میدهند محدودههای دقیقتری برای جستجوی خود تعریف کنید.
[ ] (براکت – Character Class): به معنای «هر کاراکتر یکی از این لیست». شما مجموعهای از کاراکترهای مجاز را درون براکت تعریف میکنید.
مثال: الگوی [abc] فقط با ‘a’ یا ‘b’ یا ‘c’ مطابقت دارد.
مثال کاربردی (محدوده – Range): برای یافتن تمام اعداد، به جای نوشتن [0123456789]، از [0-9] استفاده میکنیم. برای حروف انگلیسی کوچک از [a-z] استفاده میشود.
^ (هشتک – The Caret/Anchor): به معنای «شروع رشته» (Start of String). این یک لنگر (Anchor) است و اطمینان حاصل میکند که الگو دقیقاً در ابتدای متن (مثلاً ابتدای کوئری) قرار دارد.
مثال: الگوی ^چگونه فقط با کوئریهایی مطابقت دارد که با کلمه «چگونه» شروع میشوند (مانند «چگونه سئو کنیم؟») و با «بهترین روش چگونه است» مطابقت ندارد.
$ (دلار – The Dollar/Anchor): به معنای «پایان رشته» (End of String). این لنگر اطمینان حاصل میکند که الگو دقیقاً در انتهای متن قرار دارد.
مثال: الگوی چیست؟$ فقط با کوئریهایی مطابقت دارد که دقیقاً به «چیست؟» ختم میشوند.
کاراکترهای Escape (گریز) و کاربرد آنها (مثال: . و ?)
یک سوال اساسی پیش میآید: اگر خود متاکاراکترها (مانند نقطه یا علامت سوال) معنای خاصی دارند، چگونه میتوانیم خودِ آن کاراکترها را جستجو کنیم؟
(بکاسلش – The Backslash / Escape Character): این کاراکتر «گریز» است. وظیفه آن این است که معنای ویژه متاکاراکترِ بعد از خود را خنثی کند و آن را به یک کاراکتر معمولی (Literal) تبدیل کند.
مثال ۱: شما میخواهید کوئریهایی را پیدا کنید که شامل آدرس سایت vazir.seo هستند.
الگوی vazir.seo اشتباه است، زیرا . (نقطه) به معنای «هر کاراکتری» است و با vaziraseo یا vazir-seo هم مطابقت پیدا میکند.
الگوی vazir.seo صحیح است. در اینجا . به معنای «کاراکترِ نقطه» است.
مثال ۲: شما میخواهید کوئریهای سوالی که به علامت سوال ختم میشوند را پیدا کنید.
الگوی ؟$ اشتباه است (اگر ? انگلیسی باشد)، زیرا ? به معنای «صفر یا یکی» است.
الگوی ?$ صحیح است. در اینجا ? به معنای «کاراکترِ علامت سوال» است.
تسلط بر این الفبای پایه، پیشنیاز تحلیلهای پیشرفته در سرچ کنسول است.
کاربرد اول: فیلتر پیشرفته کوئریها در گوگل سرچ کنسول (GSC)
چگونه فیلتر Regex را در گزارش Performance سرچ کنسول فعال کنیم؟
فعالسازی این قابلیت بسیار ساده و یک فرآیند مرحلهبه-مرحله است:
وارد گزارش Performance (عملکرد) در حساب کاربری سرچ کنسول خود شوید.
در بالای نمودار، روی دکمه + New (جدید) کلیک کرده و گزینه Query (کوئری) را انتخاب کنید.
در پنجره باز شده، یک فیلتر پیشفرض (مانند “Queries containing”) مشاهده میکنید. روی منوی کشویی آن کلیک کنید.
از لیست باز شده، گزینه Custom (Regex) یا «سفارشی (عبارت باقاعده)» را انتخاب نمایید.
اکنون کادر ورود متن آماده پذیرش الگوهای رجکس شما برای فیلتر کردن کوئریها است.
مثال عملی (تجربه محور): جداسازی کوئریهای برند از غیر برند (Brand vs. Non-Brand)
این یکی از حیاتیترین تحلیلها برای ارزیابی سلامت برند (Brand Health) و تفکیک عملکرد سئوی عمومی از جستجوی مستقیم برند شما است.
هدف: جداسازی تمام جستجوهایی که مستقیماً نام برند شما (با غلطهای املایی رایج یا اشکال نوشتاری مختلف) را هدف قرار دادهاند.
سناریو: فرض کنید برند شما «وزیر سئو» است و کاربران آن را به صورتهای «وزیرسئو»، «vazir seo» یا «vazirseo» نیز جستجو میکنند.
۱. فیلتر کوئریهای برند (Brand Queries):
نوع فیلتر: Custom (Regex)
الگوی رجکس: (وزیر سئو|وزیرسئو|vazir seo|vazirseo)
تحلیل: این الگو با استفاده از | (پایپ) و () (گروهبندی)، هر کوئری را که شامل یکی از این عبارات باشد، نمایش میدهد.
۲. فیلتر کوئریهای غیر برند (Non-Brand Queries):
نوع فیلتر: Doesn’t match regex (با عبارت باقاعده مطابقت ندارد)
الگوی رجکس: (وزیر سئو|وزیرسئو|vazir seo|vazirseo)
تحلیل: با انتخاب فیلتر «Doesn’t match»، شما تمام کوئریها را مشاهده میکنید مگر آنهایی که شامل اشکال مختلف نام برند شما باشند.
نتیجه استراتژیک (برد سریع): با این دو فیلتر، شما میتوانید نرخ کلیک (CTR) و ایمپرشن کوئریهای برند (که انتظار CTR بسیار بالا دارند) را با کوئریهای غیر برند (که نشاندهنده موفقیت شما در کسب جایگاه برای کلمات کلیدی عمومی است) مقایسه کنید.
مثال عملی: پیدا کردن کوئریهای سوالی (شامل “چگونه”، “کجا”، “چیست”)
هدف: شناسایی فرصتهای تولید محتوای اطلاعاتی (Informational Content) و پاسخگویی به سوالات مستقیم کاربران. این اقدام مستقیماً به پوشش جامع و کامل موضوع کمک میکند.
سناریو: شما میخواهید تمام جستجوهایی را که با کلمات پرسشی رایج فارسی شروع میشوند، پیدا کنید.
نوع فیلتر: Custom (Regex)
الگوی رجکس: ^(چگونه|چطور|کجا|کی|چیست|چرا|آیا|بهترین)
تحلیل:
^ (لنگر شروع): اطمینان حاصل میکند که کوئری باید با یکی از این کلمات شروع شود.
| (پایپ): به معنای «یا» است.
نتیجه استراتژیک: این گزارش، گنجینهای از ایدههای تولید محتوا برای بلاگ و بخش سوالات متداول (FAQ) است. این کوئریها دقیقاً همان چیزی هستند که مخاطب شما پس از خواندن آن احساس رضایت و یادگیری میکند.
مثال عملی: دستهبندی کوئریها بر اساس هدف کاربر (Informational vs. Transactional)
تحلیل «قصد کاربر» ستون فقرات سئو مدرن است. رجکس به ما اجازه میدهد این دستهبندی را که قبلاً ساعتها زمان میبرد، در چند ثانیه انجام دهیم.
۱. کوئریهای معاملاتی (Transactional Intent):
هدف: یافتن کاربرانی که آماده خرید یا اقدام هستند (قصد تجاری).
الگوی رجکس: (خرید|قیمت|سفارش|فروش|دانلود|تخفیف|هزینه)
تحلیل: این الگو کوئریهایی را پیدا میکند که در هر جای خود (چون از ^ استفاده نکردیم) شامل کلمات کلیدی با قصد خرید واضح هستند.
۲. کوئریهای اطلاعاتی (Informational Intent):
هدف: یافتن کاربرانی که در مرحله تحقیق هستند.
الگوی رجکس: (راهنمای|آموزش|بررسی|مقایسه|چیست|چگونه)
تحلیل: این الگو کلمات کلیدی رایج در جستجوهای تحقیقی را فیلتر میکند.
نتیجه استراتژیک: شما میتوانید بررسی کنید که آیا صفحات فرود (Landing Pages) شما با قصد کاربر مطابقت دارند یا خیر. (مثال: آیا کوئری “خرید گوشی” به صفحه محصول (Transactional) هدایت میشود یا به یک مقاله بلاگ (Informational)؟)
محدودیتهای رجکس در سرچ کنسول که باید بدانید (Trust)
استفاده از رجکس قدرتمند است، اما برای حفظ «اعتماد» (Trust) به تحلیلهای خود و اطمینان از اعتبار و مرجعیت دادهها، باید از محدودیتهای فنی GSC آگاه باشید:
نمونهبرداری (Sampling): در وبسایتهای بسیار بزرگ (با میلیونها ایمپرشن)، GSC ممکن است دادهها را به صورت نمونهبرداری شده (Sampled) نمایش دهد. فیلترهای رجکس پیچیده گاهی میتوانند این نمونهبرداری را تشدید کنند.
آستانه حریم خصوصی (Privacy Thresholding): گوگل کوئریهایی را که حجم جستجوی بسیار پایینی دارند (معمولاً کوئریهای بسیار طولانی یا شخصی) برای حفظ حریم خصوصی نمایش نمیدهد (Anonymized Queries). فیلتر رجکس شما نمیتواند این دادههای «پنهان» را بازیابی کند.
موتور رجکس پایه: موتور رجکس GSC نسبتاً پایه است. از دستورات بسیار پیچیده مانند «Lookaheads» یا «Lookbehinds» (که در ابزارهای تخصصیتر وجود دارد) پشتیبانی نمیکند. شما باید الگوهای خود را ساده و کارآمد نگه دارید.
نتیجهگیری عملی: به دادههای GSC (حتی با رجکس) به عنوان یک «نمای کلی» (Overview) بسیار دقیق و استراتژیک نگاه کنید، نه یک لیست کامل و صد در صدی از تمام جستجوهای انجام شده.
کاربرد دوم: استفاده از Regex در گزارشات و Explorations گوگل آنالیتیکس (GA4)
تفاوت Match Type و Regex در فیلترهای GA4
در گوگل آنالیتیکس ۴، هنگام ساختن فیلتر (Filter) یا سگمنت (Segment)، شما با چندین «نوع تطبیق» (Match Type) روبرو هستید. درک تفاوت آنها برای انتخاب ابزار صحیح، اساسی است:
| نوع تطبیق (Match Type) | عملکرد | محدودیت اصلی |
|---|---|---|
| Exactly matches (دقیقاً مطابقت دارد) | رشته باید ۱۰۰٪ یکسان باشد. | بسیار محدود و غیر منعطف. |
| Contains (شامل میشود) | رشته مورد نظر باید در بخشی از متن وجود داشته باشد. | اغلب بیش از حد گسترده (Broad) است و نتایج ناخواسته برمیگرداند. |
| Starts with (شروع میشود با) | متن باید با رشته مورد نظر شروع شود. | کاربردی، اما فاقد قابلیت تعریف الگوهای پیچیده. |
| Ends with (پایان مییابد با) | متن باید با رشته مورد نظر خاتمه یابد. | کاربردی، اما فاقد قابلیت تعریف الگوهای پیچیده. |
| Matches regex (مطابقت با عبارت باقاعده) | متن با الگوی تعریف شده توسط شما مطابقت دارد. | قدرتمندترین گزینه. امکان تعریف شروط “OR” (یا)، الگوها و محدودهها را میدهد. |
نوع تطبیق (Match Type)
عملکرد
محدودیت اصلی
Exactly matches (دقیقاً مطابقت دارد)
رشته باید ۱۰۰٪ یکسان باشد.
بسیار محدود و غیر منعطف.
Contains (شامل میشود)
رشته مورد نظر باید در بخشی از متن وجود داشته باشد.
اغلب بیش از حد گسترده (Broad) است و نتایج ناخواسته برمیگرداند.
Starts with (شروع میشود با)
متن باید با رشته مورد نظر شروع شود.
کاربردی، اما فاقد قابلیت تعریف الگوهای پیچیده.
Ends with (پایان مییابد با)
متن باید با رشته مورد نظر خاتمه یابد.
کاربردی، اما فاقد قابلیت تعریف الگوهای پیچیده.
Matches regex (مطابقت با عبارت باقاعده)
متن با الگوی تعریف شده توسط شما مطابقت دارد.
قدرتمندترین گزینه. امکان تعریف شروط “OR” (یا)، الگوها و محدودهها را میدهد.
نتیجهگیری عملی: فیلترهای ساده (مانند Contains) برای کارهای سریع مناسب هستند، اما برای هرگونه تحلیل جدی که نیازمند ترکیب چند شرط (مثلاً فیلتر کردن چند کمپین مختلف به صورت همزمان) باشد، Regex تنها راهحل حرفهای است.
ساخت سگمنتهای (Segments) پیشرفته با فیلتر رجکس
سگمنتها در GA4 به شما اجازه میدهند تا زیرمجموعهای از کاربران (User Segments) یا جلسات (Session Segments) را برای تحلیل جداگانه، ایزوله کنید. رجکس این قابلیت را به سطح بالاتری میبرد.
سناریوی استراتژیک: شما میخواهید رفتار کاربرانی را تحلیل کنید که از طریق کمپینهای پولی (Paid Channels) وارد شدهاند، اما فقط کمپینهای گوگل و فیسبوک، نه کمپینهای متفرقه.
چالش فیلتر ساده: با فیلتر ساده، شما باید چندین شرط “OR” تعریف کنید (Medium matches cpc OR Medium matches ppc OR Source matches facebook…). این فرآیند طولانی و مستعد خطا است.
راهحل با Regex (در سگمنت):
یک Session Segment (سگمنت جلسه) ایجاد کنید.
شرط را بر اساس دایمنشن (Dimension) Session source / medium تنظیم کنید.
نوع تطبیق را روی matches regex قرار دهید.
الگوی رجکس: (google / (cpc|ppc))|(facebook / cpc)
تحلیل: این الگو به GA4 میگوید: “جلساتی را پیدا کن که منبع/رسانه آنها google / cpc یا google / ppc یا facebook / cpc باشد.”
برد سریع (Quick Win): شما میتوانید به سرعت نرخ تبدیل (Conversion Rate) این سگمنت پیشرفته را با سگمنت «ترافیک ارگانیک» (Organic Traffic) مقایسه کنید.
مثال: فیلتر کردن Query Parameters و UTM های پیچیده از URLها
یکی از بزرگترین چالشها در GA4، پراکندگی دادههای صفحات (Pages) به دلیل وجود پارامترهای پرسوجو (Query Parameters) در URL است.
مشکل: این سه URL در گزارشهای GA4 به عنوان سه صفحه مجزا دیده میشوند، در حالی که همگی یک صفحه هستند:
example.com/page-a
example.com/page-a?utm_source=google
example.com/page-a?session_id=12345
هدف: تجمیع (Aggregate) دادههای این سه URL در یک ردیف واحد برای پوشش جامع و کامل موضوع 2 و تحلیل صحیح عملکرد صفحه page-a.
راهحل با Regex (در گزارشات Explorations):
در یک گزارش Exploration، دایمنشن Page path + query string را انتخاب کنید.
یک فیلتر (Filter) روی این دایمنشن اعمال کنید.
نوع تطبیق: matches regex
الگوی رجکس (برای یافتن فقط صفحه page-aبا تمام پارامترها): ^/page-a
تحلیل: الگوی ^/page-a (با استفاده از لنگر ^) به GA4 میگوید: “فقط صفحاتی را نشان بده که دقیقاً با /page-a شروع میشوند.” این الگو به صورت خودکار تمام URLهایی که با /page-a شروع میشوند (صرف نظر از پارامترهای UTM یا Session ID) را با هم جمع میکند.
نتیجه استراتژیک: این پاکسازی داده به شما اجازه میدهد تا عملکرد واقعی یک صفحه را، بدون نویز پارامترهای ردیابی، ارزیابی کنید.
ردیابی عبارات جستجوی داخلی سایت (Site Search) با Regex
قابلیت جستجوی داخلی (Internal Site Search) وبسایت شما، معدن طلایی درک «قصد کاربر» است. GA4 به صورت خودکار این جستجوها را ذیل رویداد (Event) view_search_results ردیابی میکند. رجکس به ما کمک میکند تا این دادهها را عمیقتر تحلیل کنیم.
هدف: ارائه تحلیل عمیق 3 از الگوهای جستجوی کاربران، فراتر از شمارش ساده کلمات.
سناریو: شما میخواهید تمام جستجوهایی را که کاربران برای «مدلهای خاص» محصولات انجام دادهاند (مانند کدهای SKU یا شماره مدلها) پیدا کنید، نه جستجوهای عمومی (مانند “موبایل”).
راهحل با Regex (در Explorations):
یک گزارش Exploration بسازید.
دایمنشن Search term (عبارت جستجو شده) را اضافه کنید.
یک فیلتر روی Search term اعمال کنید.
نوع تطبیق: matches regex
الگوی رجکس (برای یافتن SKUها): ^(sku|model|کد)-?[0-9]{4,}
تحلیل: این الگو به دنبال عباراتی میگردد که:
^ با sku یا model یا کد شروع شوند.
-? ممکن است یک خط تیره داشته باشند (یا نداشته باشند).
[0-9]{4,} و در ادامه حداقل ۴ عدد یا بیشتر داشته باشند.
برد سریع (Quick Win): این گزارش به شما نشان میدهد که کاربران دقیقاً به دنبال کدام محصولات هستند. اگر تعداد جستجو برای یک SKU خاص بالا باشد اما نرخ خروج (Exit Rate) از صفحه نتایج جستجو نیز بالا باشد، به این معناست که شما آن محصول را موجود ندارید یا صفحه نتایج جستجوی شما بهینه نیست.
کاربرد سوم: فیلتر کردن کوئریهای دیتابیس با Regex (SQL)
دستور REGEXP و RLIKE در MySQL
در MySQL، که زیرساخت بسیاری از سیستمهای مدیریت محتوای محبوب (CMS) مانند وردپرس را تشکیل میدهد، ما از اپراتور REGEXP یا مترادف آن RLIKE (مخفف REGEXP_LIKE) برای اجرای عبارات باقاعده استفاده میکنیم.
این دستور به شما امکان میدهد تا در شرط WHERE کوئری خود، به جای تطابق ساده، یک الگوی رجکس را بررسی کنید.
سناریو: فرض کنید میخواهید تمام نظرات (Comments) اسپم در وردپرس را که حاوی لینکهای مشکوک (مثلاً لینکهایی که با http شروع میشوند اما دامنه شما نیستند) را پیدا کنید.
کوئری SQL (مثال مفهومی):
SQL
SELECT *
FROM wp_comments
WHERE comment_content REGEXP ‘href=”http(s)?://(?!your-domain.com)’;
تحلیل:
REGEXP تطابق الگو را فعال میکند.
http(s)?:// به دنبال http:// یا https:// میگردد.
(?!your-domain.com) یک الگوی پیشرفته (Negative Lookahead) است که اطمینان حاصل میکند لینک مورد نظر، دامنه شما نباشد. این سطح از فیلترینگ با LIKE غیرممکن است.
استفاده از اپراتور ~ (تیلدا) در PostgreSQL
در دیتابیس PostgreSQL، که اغلب در اپلیکیشنهای سفارشی و بزرگتر استفاده میشود، سینتکس (Syntax) متفاوت و در عین حال بسیار قدرتمند است.
~ (تیلدا): برای تطبیق رجکس حساس به حروف بزرگ و کوچک (Case-Sensitive).
~* (تیلدا-ستاره): برای تطبیق رجکس غیر حساس به حروف (Case-Insensitive).
!~ و !~*: نسخههای منفی (Doesn’t Match) این اپراتورها.
سناریو: شما میخواهید از جدول لاگ جستجوی داخلی سایت، تمام عباراتی را که کاربران با کلمات پرسشی (مانند “چگونه” یا “چطور”) جستجو کردهاند، به صورت غیر حساس به حروف، استخراج کنید.
کوئری SQL:
SQL
SELECT search_term
FROM internal_search_logs
WHERE search_term ~* ‘^(چگونه|چطور|کجا)’;
تحلیل:
~* دستور تطابق رجکس غیر حساس به حروف را اجرا میکند.
^ اطمینان میدهد که کوئری باید با این کلمات شروع شود.
(چگونه|چطور|کجا) انتخاب “یا” بین این سه کلمه را فراهم میکند.
مثال تخصصی: استخراج کوئریهای حاوی الگوهای خاص از لاگ دیتابیس
این یک سناریوی بسیار کاربردی و نتیجهمحور برای متخصصان سئو در سایتهای فروشگاهی است.
هدف: شناسایی «شکافهای محصول» (Product Gaps) از طریق تحلیل لاگ جستجوی داخلی. ما میخواهیم بدانیم کاربران چه کدهای محصول (SKU) یا شماره مدلهایی را جستجو میکنند که در سایت ما موجود نیست.
سناریو: فرض کنید جدولی به نام site_search_logs دارید که شامل ستونهای query_text (عبارت جستجو شده) و result_count (تعداد نتایج بازگشتی) است.
چالش: کاربران ممکن است کدهای محصول را با الگوهای مختلفی جستجو کنند (مثلاً ABC-12345 یا XY_9876).
کوئری SQL (MySQL):
SQL
SELECT
query_text,
COUNT(query_text) AS total_failed_searches
FROM
site_search_logs
WHERE
result_count = 0
AND query_text REGEXP ‘^[A-Z]{2,4}[-_][0-9]{4,}$’
GROUP BY
query_text
ORDER BY
total_failed_searches DESC;
تحلیل استراتژیک:
WHERE result_count = 0: ما فقط جستجوهای ناموفق را میخواهیم.
REGEXP ‘^[A-Z]{2,4}[-_][0-9]{4,}$’: این الگو به دنبال عباراتی میگردد که:
^: از ابتدای رشته.
[A-Z]{2,4}: با ۲ تا ۴ حرف بزرگ (مانند کد برند) شروع شوند.
[-_]: یک خط تیره یا آندرلاین داشته باشند.
[0-9]{4,}: و با حداقل ۴ عدد (مانند شماره مدل) ادامه یابند.
نتیجه: خروجی این کوئری، اطلاعات یونیک و گزارش تحقیق است. این گزارش، لیستی دقیق از کدهای محصولی است که کاربران به دنبال آنها بودهاند اما شما آنها را ارائه نکردهاید. این داده مستقیماً به تیم بازرگانی و تامین محصول برای افزودن محصولات پرتقاضا کمک میکند.
الگوهای (Patterns) آماده و اشتباهات رایج در کار با رجکس (تجربه ما)
الگوی آماده: پیدا کردن کوئریهای با طول کلمه مشخص
هدف استراتژیک: تفکیک کوئریهای کوتاه (اغلب Broad یا Navigational) از کوئریهای بلند (اغلب Long-tail و Informational). این کار به شما کمک میکند فرصتهای پوشش جامع و کامل موضوع را شناسایی کنید.
راهکار: ما بر اساس شمارش «فاصله» (Space) بین کلمات، طول کوئری را مشخص میکنیم.
الگو (مثال: دقیقاً ۳ کلمه):
^S+s+S+s+S+$
الگو (مثال: بین ۴ تا ۶ کلمه):
^S+(s+S+){3,5}$
تحلیل الگو:
^ و $: به معنای شروع و پایان دقیق رشته هستند. (برای اطمینان از اینکه کل کوئری همین تعداد کلمه است).
S+: به معنای «هر کاراکتری که فاصله نیست» (یک کلمه کامل).
s+: به معنای «یک یا چند فاصله» (جداکننده کلمات).
{3,5}: به معنای تکرار الگوی «فاصله + کلمه» بین ۳ تا ۵ بار است (که با کلمه اول، مجموعاً ۴ تا ۶ کلمه میشود).
الگوی آماده: فیلتر کوئریهای شامل اعداد یا کدهای خاص
هدف استراتژیک: در سایتهای فروشگاهی، شناسایی جستجوی SKU یا شماره مدل؛ در سایتهای محتوایی، یافتن جستجوهای شامل سال (مانند «بهترینهای ۲۰۲۴»). این مستقیماً ارائه اطلاعات اصلی و دقیق را هدف میگیرد.
الگو (مثال: هر کوئری شامل عدد):
d
الگو (مثال: کوئری شامل یک عدد ۴ رقمی، مانند سال):
bd{4}b
الگو (مثال: کوئری شامل کد محصول مانند SKU-1234 یا 1234-ABC):
b([A-Za-z]+-?d{4,}|d+-?[A-Za-z]+)b
تحلیل الگو:
d: مخفف [0-9] (هر عدد).
b: به معنای «مرز کلمه» (Word Boundary). این اطمینان میدهد که عدد مورد نظر ما (مثلاً 2024) بخشی از یک کلمه دیگر (مانند A2024B) نیست.
d{4}: دقیقاً ۴ عدد پشت سر هم.
اشتباه رایج: فراموش کردن کاراکترهای escape (مانند . )
مشکل: متاکاراکترها (مانند .، ?، *، +) در رجکس معنای خاصی دارند. اگر هدف شما جستجوی خودِ این کاراکترها باشد (مثلاً نقطه در نام دامنه)، اما آنها را Escape نکنید، نتایج شما کاملاً نادرست و غیرقابل اعتماد خواهد بود.
مثال اشتباه:
قصد شما: فیلتر کردن کوئریهای شامل vazir.seo.
الگوی اشتباه: vazir.seo
نتیجه: این الگو با vazir-seo، vaziraseo، vazir/seo و هر کاراکتر دیگری به جای نقطه نیز مطابقت دارد، زیرا . به معنای «هر کاراکتری» است.
راهکار صحیح (استفاده از ):
الگوی صحیح: vazir.seo
تحلیل: بکاسلش () قبل از نقطه، معنای ویژه آن را خنثی (Escape) میکند و به موتور رجکس میگوید: «من دقیقاً خودِ کاراکتر نقطه را میخواهم». این اصل برای دقت در نگارش الگوها حیاتی است.
اشتباه رایج: پیچیدگی بیش از حد (Over-complication) در حالی که فیلتر ساده کافی است
مشکل: هدف استفاده از رجکس، ارائه تحلیل عمیقتر است، نه صرفاً استفاده از ابزار پیچیده. گاهی یک فیلتر ساده Contains یا Starts with کار را سریعتر و با همان دقت انجام میدهد.
اصل کلیدی: ابزار باید در خدمت استراتژی باشد، نه برعکس. (این مشابه پرهیز از تولید محتوا صرفاً برای موتور جستجو است ).
مثال (پیچیدگی غیر ضروری):
هدف: پیدا کردن تمام کوئریهای مربوط به «آموزش سئو».
الگوی رجکس غیر ضروری: (آموزش سئو|آموزش سئوی مقدماتی|آموزش seo)
راهکار ساده کافی (در سرچ کنسول): فیلتر Query contains “آموزش س”
چه زمانی رجکس ضروری است؟ زمانی که به شرطهای پیچیده «یا» (OR) در کنار شروط دیگر، یا «به جز» (Negative Match) نیاز دارید.
مثال: پیدا کردن «آموزش سئو» یا «دوره seo»، اما نه «آموزش سئو رایگان».
الگو: (آموزش سئو|دوره seo) (در فیلتر Matches Regex) و همزمان یک فیلتر Doesn’t contain “رایگان”.
نتیجهگیری عملی: همیشه از سادهترین ابزاری که شما را به هدفتان (درک نیاز مخاطب ) میرساند استفاده کنید. رجکس یک ابزار قدرتمند برای زمانی است که فیلترهای ساده شکست میخورند.
معرفی ابزارهای آنلاین برای تست و دیباگ کردن الگوهای Regex
Regex101: بهترین ابزار برای یادگیری و تست الگوها
Regex101 در حال حاضر استاندارد صنعتی و بهترین ابزار برای توسعه و اشکالزدایی عبارات باقاعده محسوب میشود. این ابزار فراتر از یک تستکننده ساده عمل کرده و به عنوان یک ابزار آموزشی (Pedagogical) فوقالعاده قدرتمند شناخته میشود.
ویژگیهای کلیدی و نتیجهمحور:
۱. پنل توضیح (Explanation): این بهترین ویژگی Regex101 است. شما هر الگویی که مینویسید، این ابزار آن را به زبان انگلیسی ساده، متاکاراکتر به متاکاراکتر، تجزیه و تحلیل میکند. این قابلیت برای درک اینکه چرا یک الگو کار میکند (یا نمیکند)، حیاتی است.
۲. انتخاب طعم (Flavor): موتورهای رجکس در زبانهای مختلف (مانند PHP, Python, JavaScript) تفاوتهای جزئی دارند. Regex101 به شما اجازه میدهد «طعم» (Flavor) دقیق مورد نیاز خود را انتخاب کنید (مثلاً PCRE2 برای PHP یا ECMAScript برای JavaScript که GA4 و GSC از آن استفاده میکنند) تا از سازگاری الگو اطمینان حاصل کنید.
۳. اطلاعات تطابق (Match Information): به صورت بصری و دقیق نشان میدهد که کدام بخش از متن شما توسط کدام بخش از الگوی شما مطابقت داده شده است.
۴. دیباگر (Debugger): به شما امکان میدهد اجرای الگو را به صورت مرحلهبه-مرحله دنبال کنید تا ببینید موتور رجکس دقیقاً چگونه متن شما را پردازش میکند.
Regexr: ابزاری دیگر با رابط کاربری قوی
Regexr یک ابزار آنلاین محبوب دیگر است که تمرکز ویژهای بر رابط کاربری (UI) بصری و سادگی استفاده دارد. این ابزار برای «بردهای سریع» (Quick Wins) و تستهای سادهتر بسیار عالی عمل میکند.
ویژگیهای کلیدی و نتیجهمحور:
۱. رابط کاربری تعاملی: رابط کاربری آن بسیار تمیز و تعاملی است. شما میتوانید به راحتی متن نمونه (Sample Text) و الگوی خود را وارد کنید و نتایج را به صورت آنی (Real-time) مشاهده نمایید.
۲. برگه تقلب داخلی (Cheat Sheet): یک برگه تقلب (Cheat Sheet) جامع و دستهبندی شده از تمام متاکاراکترها و دستورات رجکس مستقیماً در کنار ویرایشگر شما قرار دارد. این ویژگی فرآیند یادگیری و مراجعه را بسیار سریع میکند.
۳. الگوهای جامعه (Community Patterns): شما میتوانید الگوهایی که توسط سایر کاربران ایجاد و به اشتراک گذاشته شدهاند را جستجو و از آنها استفاده کنید.
۴. تاکید بصری (Visual Highlighting): تطابقها (Matches) و گروهها (Groups) را با رنگهای مختلف و واضح نشان میدهد که به درک بصری الگو کمک شایانی میکند.
نتیجهگیری عملی: سرمایهگذاری چند دقیقهای برای تست الگوی خود در Regex101 یا Regexr، میتواند ساعتها زمان شما را که ممکن بود صرف تحلیل دادههای اشتباه شود، ذخیره کند و دقت در نگارش و تحلیل شما را تضمین نماید.
جمعبندی (Conclusion)
در پایان، باید تاکید کرد که رجکس (Regex) صرفاً یک ابزار فنی برای توسعهدهندگان نیست؛ بلکه یک مزیت استراتژیک برای متخصصان سئو و تحلیلگران داده است.
تسلط بر عبارات باقاعده به شما امکان میدهد تا از تحلیلهای سطحی (مانند فیلتر ساده Contains) فراتر رفته و به عمق واقعی «قصد کاربر» (User Intent) نفوذ کنید. استفاده هوشمندانه از رجکس در GSC، GA4 و SQL به شما کمک میکند تا گزارشهای دقیقتری تهیه کرده، شکافهای محتوایی (Content Gaps) را به سرعت شناسایی نمایید و در نهایت، محتوایی تولید کنید که سیگنالهای E-E-A-T (تجربه، تخصص، اعتبار و اعتماد) را به بهترین شکل به موتور جستجو و کاربر منتقل میکند.
این دانش، مرز میان یک اپراتور ابزار و یک استراتژیست سئوی نتیجهمحور را مشخص میکند.