اگه تو هم مثل خیلی از متخصصهای سئو، هر بار که تو گوگل آنالیتیکس (GA4) یا سرچ کنسول (GSC) چشمت به گزینهی “Matches regex” میافته، سریع ازش رد میشی و سراغ همون فیلتر سادهی “Contains” میری، این مقاله دقیقاً برای تو نوشته شده.
خیلیها فکر میکنن Regex (عبارات منظم) یک دنیای پیچیده و ترسناک فقط مخصوص برنامهنویسهاست. اما واقعیت اینه که «Matches regex» قدرتمندترین ابزاریه که برای تحلیل دیتای سئو در اختیار داری.
من سارا بحرانیام و اینجام تا بهت ثابت کنم که تو هم میتونی به سادگی از این فیلتر استفاده کنی. تو این راهنمای جامع، ما همهچیز رو از صفر مطلق، یعنی تفاوتهای اولیهای مثل [فیلترهای “Matches” در برابر “Doesn’t Match”]، شروع میکنیم و قدم به قدم تا کاربردهای عملی و فوقالعاده حرفهای اون در GA4 و GSC پیش میریم.
آمادهای که تحلیل دیتات رو متحول کنی و به جوابهایی برسی که رقبات حتی نمیتونن صورت سوالش رو بپرسن؟ پس بزن بریم!
جدول کاربردی: مقایسه سریع انواع فیلترها
این جدول رو همیشه دم دستت داشته باش تا تفاوت اصلی فیلترهای رایج یادت نره:
| نوع فیلتر | کارکرد اصلی (به زبان ساده) | مثال در فیلتر Page سرچ کنسول |
|---|---|---|
| Contains | کلمهی تو در هر جای رشته باشه، پیداش میکنه. (ساده اما بیدقت) | blog هم /blog/ و هم /category/blog/ رو پیدا میکنه. |
| Exactly matches | رشته باید دقیقاً و کاملاً با عبارت تو برابر باشه. (دقیق اما بدون انعطاف) | blog فقط صفحهای با آدرس blog رو پیدا میکنه (نه /blog/). |
| Matches regex | دنبال یک الگو میگرده، نه یک کلمه ثابت. (دقیق و فوقالعاده منعطف) | ^/blog/ فقط صفحاتی که با /blog/ شروع میشن رو پیدا میکنه. |
فیلتر “Matches regex” (تطبیق با عبارت منظم) چیست؟
ببین، فیلتر “Matches regex” (یا گاهی “Matches regular expression”) یکی از پیشرفتهترین و قدرتمندترین ابزارهای فیلترینگه که تو ابزارهایی مثل گوگل آنالیتیکس (GA) و گوگل سرچ کنسول (GSC) باهاش برخورد میکنی.
کار این فیلتر اینه که به جای اینکه تو دنبال یک کلمه یا عبارت ساده و ثابت بگردی (مثلاً «سئو»)، بهت اجازه میده دنبال «الگوهای» پیچیده بگردی.
وقتی تو از فیلتر “Matches regex” استفاده میکنی، در واقع داری به ابزار میگی: «لطفاً در این دادهها بگرد و هر چیزی رو که با این الگوی خاص من تطابق داره، بهم نشون بده.» اون الگوی خاص، همون چیزیه که ما بهش میگیم Regex.
تعریف Regex (عبارات منظم) به زبان ساده
خب، حالا خود Regex (رِجِکْس) چیه؟
Regex مخفف Regular Expression یا «عبارت منظم» هست. بذار ساده بگم: Regex رو مثل یک زبان کدنویسی مینیاتوری برای جستجوی الگوها در نظر بگیر.
به جای اینکه فقط بتونی دنبال کلمه apple بگردی، با Regex میتونی بگی: «دنبال کلمهای بگرد که با a شروع میشه، وسطش p داره و به e ختم میشه.»
این زبان از یک سری کاراکترهای خاص (بهشون میگن metacharacters) استفاده میکنه تا این الگوها رو بسازه. فهمیدن چندتا از این کاراکترهای اصلی خیلی بهت کمک میکنه:
| (پایپ لاین): این کاراکتر معنی «یا» میده.
مثال: الگوی سئو|لینکسازی هم صفحاتی که کلمه «سئو» رو دارن پیدا میکنه و هم صفحاتی که «لینکسازی» رو دارن.
^ (کلاه): این کاراکتر معنی «شروع با» میده.
مثال: الگوی ^/blog فقط URLهایی رو پیدا میکنه که دقیقاً با /blog شروع میشن.
$ (دلار): این کاراکتر معنی «خاتمه با» میده.
مثال: الگوی .pdf$ فقط فایلهایی رو پیدا میکنه که به .pdf ختم میشن.
. (نقطه): یعنی «هر کاراکتری» (به جز خط جدید).
* (ستاره): یعنی «صفر یا چند بار» تکرار کاراکتر قبلی.
یادگیری Regex در ابتدا شاید کمی ترسناک به نظر برسه، اما وقتی چندتا از این الگوهای ساده رو یاد بگیری، قدرت تحلیل دیتات چند برابر میشه.
چرا “Matches regex” بسیار قدرتمندتر از فیلترهای ساده است؟
قدرت واقعی Regex جایی مشخص میشه که فیلترهای ساده کاملاً کم میارن. فیلترهای ساده معمولاً اینها هستن:
Exactly matches (تطابق دقیق)
Contains (شامل این عبارت باشد)
Starts with (شروع شود با)
Ends with (خاتمه یابد با)
حالا بیا یک سناریوی واقعی در گوگل سرچ کنسول رو با هم ببینیم:
فرض کن تو یک سایت فروشگاهی داری و میخوای عملکرد صفحات دستهبندی «موبایل» و «لپتاپ» رو با هم ببینی، اما نمیخوای صفحات «بلاگ» یا «محصولات» توی گزارشت بیان.
URLهای تو این شکلی هستن:
/category/mobile/
/category/laptop/
/product/mobile-iphone-15/
/blog/review-laptop-xyz/
استفاده از فیلتر ساده: اگر از فیلتر Contains: mobile استفاده کنی، صفحه محصول (/product/mobile-iphone-15/) هم توی نتایجت میاد. این چیزی نیست که تو میخوای. تو فقط دستهبندیها رو میخواستی.
استفاده از فیلتر قدرتمند “Matches regex”: تو به سادگی میتونی این الگو رو به سرچ کنسول بدی:
^/category/(mobile|laptop)/$
تحلیل این الگو:
^: URL باید با /category/ شروع بشه.
( …): یک گروه رو مشخص میکنه.
mobile|laptop: داخل این گروه، کلمه «mobile» یا «laptop» باید بیاد.
/: بعد از اون کلمه، باید یک اسلش (/) بیاد.
$: و URL باید همینجا خاتمه پیدا کنه (تا مطمئن بشیم صفحات محصولی مثل /category/mobile/iphone توی نتایج نمیان).
نتیجه: با یک دستور Regex، تو دقیقاً و فقط دو صفحه /category/mobile/ و /category/laptop/ رو فیلتر کردی.
به طور خلاصه، Regex به تو اجازه میده فیلترهایی با دقت، پیچیدگی و انعطافپذیری بسیار بالا بسازی که اجرای اونها با فیلترهای عادی یا غیرممکنه یا نیاز به چند مرحله فیلتر کردن جداگانه داره. این ابزار برای تمیز کردن دیتا و تحلیل در مقیاس بزرگ، یک برگ برنده واقعی حساب میشه.
تفاوت حیاتی: “Matches regex” در برابر “Contains” و “Exactly matches”
اینکه بدونی کی از کدوم فیلتر استفاده کنی، تفاوت بین یک گزارش دقیق و یک گزارش شلوغ و بهدردنخور رو مشخص میکنه. خیلی وقتها تو ابزارهایی مثل گوگل سرچ کنسول (GSC) یا گوگل آنالیتیکس (GA) تو این سه راهی گیر میکنی.
انتخاب اشتباه هر کدوم از اینها میتونه کل دیتایی که داری تحلیل میکنی رو بیاعتبار کنه. بیا ببینیم هرکدوم دقیقاً چیکار میکنن.
“Contains” (شامل بودن): جستجوی تحتاللفظی و ساده
فیلتر Contains (یعنی «شامل بودن») سادهترین، روراستترین و در عین حال «بیدقتترین» فیلتره.
وقتی از این فیلتر استفاده میکنی، در واقع داری به ابزار میگی: «هر ردیفی رو که این کلمه یا عبارت در هر کجای اون باشه، بهم نشون بده.»
مثال در سرچ کنسول (GSC): فرض کن تو قسمت Page فیلتر میکنی: Page Contains: /blog/
این فیلتر همه این موارد رو برات میاره:
/blog/ (صفحه اصلی بلاگ)
/blog/seo-tips/ (یک مقاله)
/category/how-to-start-a-blog/ (یک دستهبندی که کلمه ‘blog’ رو تو URL داره!)
عیب بزرگش چیه؟ اینه که دقیق نیست. تو شاید فقط دنبال مقالات بلاگت بودی، ولی اون داره یک صفحه دستهبندی رو هم بهت نشون میده، فقط چون کلمه blog توش وجود داشته.
“Exactly matches” (تطبیق دقیق): برابری کامل رشته
این فیلتر دقیقاً نقطه مقابل Contains هست. Exactly matches (یعنی «تطابق دقیق») دنبال برابری کامل و ۱۰۰ درصدی میگرده.
یعنی چیزی که تو وارد میکنی باید دقیقاً، کاراکتر به کاراکتر، با دیتای مورد نظر برابر باشه؛ نه یک کلمه کمتر و نه یک کلمه بیشتر.
مثال در سرچ کنسول (GSC): این بار فیلتر میکنی: Page Exactly matches: /blog/
این فیلتر فقط و فقط صفحه /blog/ رو برات میاره.
/blog/seo-tips/ رو نشون نمیده.
/category/how-to-start-a-blog/ رو نشون نمیده.
عیب بزرگش چیه؟ این فیلتر زمانی عالیه که تو دقیقاً دنبال یک URL خاص یا یک کوئری مشخص هستی. اما مشکلش اینه که اصلاً انعطاف نداره. اگه بخوای ۱۰ تا صفحه رو با هم ببینی، نمیتونی از این فیلتر استفاده کنی.
“Matches regex” (تطبیق با الگو): انعطافپذیری در جستجو
اینجا جاییه که Matches regex (یعنی «تطابق با عبارت منظم») وارد میشه تا بهترین ویژگیهای دو حالت قبل رو با هم ترکیب کنه: دقت «Exactly matches» و انعطاف «Contains».
همونطور که قبلاً گفتیم، Regex (رجکس) دنبال یک کلمه ثابت نمیگرده؛ دنبال یک الگو (Pattern) میگرده. تو بهش میگی قوانین تطابق چیه.
مثال در سرچ کنسول (GSC): حالا سناریوی اصلی ما: فرض کن میخوای فقط مقالات داخل بلاگت رو ببینی (یعنی همه URLهایی که با /blog/ شروع میشن)، ولی نمیخوای خودِ صفحه اصلی بلاگ (/blog/) تو نتایج باشه.
با Contains نمیشه (چون همهچی رو میاره).
با Exactly matches هم نمیشه (چون فقط یه دونه رو میاره).
راه حل با Regex: تو فیلتر Matches regex رو انتخاب میکنی و این الگو رو مینویسی: ^/blog/.+
تحلیل این الگو:
^: بهش میگی URL باید دقیقاً با /blog/ شروع بشه (این دقت رو از Exactly matches گرفتیم).
.: یعنی بعد از اون اسلش (/)، باید حداقل یک کاراکتر بیاد.
+: یعنی اون کاراکتر میتونه یک یا چند بار تکرار بشه (این انعطاف رو از Contains گرفتیم).
نتیجه: این الگو /blog/seo-tips/ رو پیدا میکنه، اما خودِ /blog/ رو (چون بعد از اسلش دوم، هیچ کاراکتری نیومده) فیلتر میکنه و نشون نمیده.
به طور خلاصه، Matches regex به تو این قدرت رو میده که فیلترهای فوقالعاده پیچیده، دقیق و در عین حال انعطافپذیری بسازی که با دو فیلتر دیگه اصلاً ممکن نیست.
تلهی رایج: “Matches regex” (تطبیق کامل) در برابر “Partially matches regex” (تطبیق نسبی)
بزرگترین اشتباهی که میتونی بکنی اینه که فکر کنی «Matches regex» تو همهی ابزارها یکسان عمل میکنه.
در ابزارهای قدیمیتر مثل یونیورسال آنالیتیکس (UA)، فیلتر Regex به صورت پیشفرض “تطبیق نسبی” (Partial Match) بود. یعنی کافی بود الگوی تو در بخشی از رشته وجود داشته باشه.
اما در ابزارهای جدیدتر مثل گوگل آنالیتیکس ۴ (GA4)، فیلتر «Matches regex» به صورت پیشفرض “تطبیق کامل” (Full Match) عمل میکنه.
این یعنی چی؟ یعنی در GA4، وقتی از «Matches regex» استفاده میکنی، الگوی تو باید بتونه کل رشته رو از اول تا آخر توصیف کنه، نه فقط یک تیکهش رو. همین تغییر ساده، منطق همهچیز رو عوض میکنه.
درک مفهوم “تطبیق کامل” (Full Match) در ابزارهایی مانند GA4
بیا با یک مثال واقعی از GA4 این موضوع رو باز کنیم.
فرض کن تو یک صفحهای با این آدرس (Page Path) داری: /blog/learning-seo/
حالا میخوای تمام صفحاتی که کلمه seo رو دارن، پیدا کنی.
سناریوی اشتباه (تفکر قدیمی UA): تو میری تو GA4، فیلتر Page Path رو روی Matches regex میذاری و توی باکس، الگوی seo رو وارد میکنی.
نتیجه؟ هیچ دیتایی پیدا نمیکنی!
چرا؟ چون GA4 داره این دو تا رو با هم مقایسه میکنه:
رشته کامل: /blog/learning-seo/
الگوی کامل تو: seo
و از خودش میپرسه: «آیا این دو تا دقیقاً با هم برابرن؟» معلومه که نه.
در منطق “تطبیق کامل”، تو باید الگویی بنویسی که بتونه کل رشتهی /blog/learning-seo/ رو پوشش بده.
چگونه با استفاده از .* فیلتر “Contains” را شبیهسازی کنیم؟
خب، حالا که فهمیدیم GA4 دنبال تطبیق کامله، چطور بهش بگیم «برام مهم نیست قبل و بعدش چیه، فقط کلمه seo توش باشه»؟ (یعنی همون کاری که فیلتر Contains انجام میده).
اینجا دو تا کاراکتر جادویی Regex به کمکت میان: نقطه (.) و ستاره (*).
. (نقطه): به معنی «هر کاراکتری» (حرف، عدد، خط تیره، اسلش، هرچی).
* (ستاره): به معنی «صفر یا چند بار» تکرار کاراکتر قبلی.
وقتی این دو تا رو کنار هم میذاری، .* (دات استار) ساخته میشه که قویترین ترکیب در Regex هست و معنیش اینه: «هر چیزی، به هر تعدادی (یا حتی هیچی)»
حالا برگردیم به مثالمون. برای اینکه بتونی فیلتر Contains: seo رو در GA4 شبیهسازی کنی، باید از این الگو در Matches regex استفاده کنی:
.*seo.*
تحلیل این الگو:
.* (اول): یعنی «برام مهم نیست قبل از کلمه seo چه کاراکترهایی (مثل /blog/learning-) وجود داره یا اصلاً چیزی هست یا نه.»
seo: یعنی «دقیقاً باید کلمه seo رو پیدا کنی.»
.* (دوم): یعنی «برام مهم نیست بعد از کلمه seo چه کاراکترهایی (مثل /) وجود داره یا اصلاً چیزی هست یا نه.»
وقتی این الگو رو به GA4 میدی، GA4 میتونه کل رشتهی /blog/learning-seo/ رو با الگوی تو تطبیق بده و این بار، نتیجه موفقیتآمیز خواهد بود و دیتات رو میبینی.
نکته کلیدی: یادت باشه، هر وقت در GA4 خواستی از Regex برای پیدا کردن یک کلمه در میان یک رشته استفاده کنی (شبیهسازی Contains)، باید حتماً اون کلمه رو بین دو تا .* قرار بدی.
کاربردهای عملی فیلتر Regex در گوگل آنالیتیکس (GA4)
گوگل آنالیتیکس (مخصوصاً GA4) جاییه که Regex (عبارات منظم) از یک ابزار ترسناک فنی، به بهترین دوستت برای تحلیل دیتا تبدیل میشه. وقتی فیلترهای عادی «Contains» یا «Exactly matches» کم میارن و نمیتونن جواب سوالهای پیچیدهی تو رو بدن، Regex وارد میدون میشه. بیا چندتا سناریوی واقعی رو ببینیم که چطور Regex زندگی ما رو سادهتر میکنه.
گروهبندی صفحات و دایرکتوریها (Page Path Grouping)
این یکی از روزمرهترین و مفیدترین کاربردهای Regex هست.
مشکل: فرض کن تو GA4 میخوای ببینی عملکرد کل بخش بلاگ سایتت چطور بوده. اگه ۱۰۰۰ تا مقاله تو بلاگ داشته باشی، که نمیتونی ۱۰۰۰ تا URL رو دونه دونه چک کنی. تو میخوای مجموع ترافیک، انگیجمنت و کانورژن کل دایرکتوری /blog/ رو ببینی.
راهحل با Regex: به جای فیلتر کردن تکتک URLها، خیلی ساده تو گزارش Pages، فیلتر Page path رو روی Matches regex میذاری و این الگو رو وارد میکنی:
^/blog/.*
این الگو چی میگه؟
^: میگه آدرس صفحه (Page path) باید دقیقاً با /blog/ شروع بشه.
.*: یعنی بعد از اون، هر چیزی (.) به هر تعدادی (*) میتونه بیاد (مثل seo-tips/ یا what-is-seo/).
کاربرد پیشرفتهتر: حالا فرض کن میخوای عملکرد بخش بلاگ (/blog/) رو با بخش محصولات (/products/) مقایسه کنی. کافیه از کاراکتر | (به معنی «یا») استفاده کنی:
^/(blog|products)/.*
این الگو به GA4 میگه: «هر صفحهای که یا با /blog/ شروع میشه یا با /products/ شروع میشه رو بهم نشون بده.» اینطوری میتونی گزارشهای خلاصهی فوقالعادهای بسازی.
فیلتر کردن و حذف ترافیک داخلی (Internal IP Filtering)
دادههای آنالیتیکس تو باید تمیز باشن. ترافیکی که از طرف کارمندهای خودت یا خودت وارد سایت میشه (ترافیک داخلی)، میتونه آمار رو خراب کنه (مثلاً نرخ تبدیل رو بیاره پایین یا Time on Page رو الکی بالا ببره).
مشکل: درسته که GA4 تو بخش ادمین (Admin > Data Streams > Define internal traffic) بهت اجازه میده IP رو فیلتر کنی، اما اونجا فقط میتونی IPها رو «دقیق» یا با «Starts with» فیلتر کنی. اگه شرکت تو از یک رنج IP پیچیده استفاده میکنه چی؟ مثلاً همه IPهای بین 192.168.1.1 تا 192.168.1.255؟
راهحل با Regex: تو میتونی با Regex یک رنج IP رو به راحتی تعریف کنی. مثلاً برای تعریف همه IPهای کلاس C توی اون رنج، میتونی از الگویی شبیه این استفاده کنی:
^192.168.1..*
این الگو چی میگه؟
^: باید با 192 شروع بشه.
.: دقت کن که ما اینجا از (بک اسلش) استفاده کردیم. چرا؟ چون خودِ نقطه (.) در Regex یک کاراکتر ویژه به معنی «هر کاراکتری» هست. وقتی میخوایم بهش بگیم منظورمون دقیقاً خودِ کاراکتر نقطه هست، باید قبلش بذاریم (به این کار میگن escaping).
.*: یعنی بعد از 192.168.1. هر چیزی میتونه بیاد.
اینطوری با یک خط الگو، کل ۲۵۵ تا IP اون رنج رو از آمارت حذف میکنی.
تحلیل دقیق کمپینها (Campaign Source/Medium)
اگه کمپینهای تبلیغاتی زیادی تو پلتفرمهای مختلف اجرا میکنی، حتماً با آشفتگی UTMها مواجه شدی.
مشکل: ممکنه ترافیک فیسبوک تو با چند تا Source مختلف وارد آنالیتیکس بشه:
facebook.com
m.facebook.com (ورژن موبایل)
fb (اگه جایی خلاصه استفاده کردی)
Facebook (با حرف بزرگ)
اگه بخوای عملکرد کل فیسبوک رو ببینی، باید ۴ تا گزارش جدا بگیری و با هم جمع کنی.
راهحل با Regex: تو میتونی تو گزارش Traffic Acquisition، روی دایمنشن Session source / medium فیلتر Matches regex بذاری و این الگو رو بزنی (یادت باشه GA4 تطبیق کامل میخواد، پس .* رو فراموش نکن):
.*(facebook|fb).*
این الگو چی میگه؟
.* (اول): قبلش هرچی بود مهم نیست.
(…|…): یک گروه که توش میگیم یا کلمه facebook یا کلمه fb باشه.
.* (دوم): بعدش هم هرچی بود مهم نیست.
با این کار، GA4 همهی اون ۴ ردیف مختلف رو یکجا جمع میکنه و بهت میگه کل ترافیک فیسبوک چقدر بوده. این برای گروهبندی کردن تمام شبکههای اجتماعی یا تمام کمپینهای ایمیلی عالیه.
ساخت سگمنتهای پیشرفته بر اساس رفتار کاربر
سگمنتها (Segments) در GA4 به تو اجازه میدن یک گروه خاص از کاربرها رو جدا کنی و فقط رفتار اونها رو تحلیل کنی. Regex این بخش رو فوقالعاده قدرتمند میکنه.
مشکل: فرض کن میخوای رفتار کاربرهایی رو تحلیل کنی که حداقل یک مقاله از بلاگ تو رو خوندن و بعدش به صفحه قیمتگذاری (/pricing/) هم سر زدن.
راهحل با Regex: تو میتونی یک سگمنت (Segment) بسازی که دو تا شرط «دنبال هم» (Sequentially) داشته باشه:
Step 1: Include Users when page_path matches regex ^/blog/.*
(is followed by)
Step 2: Include Users when page_path matches regex ^/pricing/$
این سگمنت چی کار میکنه؟ Regex به تو کمک کرد که در مرحله اول، به جای اضافه کردن ۱۰۰۰ تا مقاله بلاگ، فقط با یک الگو (^/blog/.*) به GA4 بگی «هرکدوم از صفحات بلاگ». بعد در مرحله دوم، کاربرهایی رو فیلتر کردی که دقیقاً به صفحه قیمتگذاری رفتن.
حالا تو یک سگمنت از کاربرهای داری که پتانسیل بالایی برای تبدیل شدن به مشتری دارن و میتونی رفتار، منابع ورودی و نرخ تبدیل این گروه خاص رو به دقت تحلیل کنی.
کاربردهای عملی فیلتر Regex در گوگل سرچ کنسول (GSC)
سرچ کنسول قلب تپندهی سئوی سایته و Regex به تو این قدرت رو میده که نبضش رو دقیقتر بگیری. با این فیلتر میتونی دیتای خام کوئریها (Queries) و صفحات (Pages) رو به اطلاعات استراتژیک تبدیل کنی. بیا چندتا از پرکاربردترینهاش رو با هم ببینیم.
یافتن تمام کوئریهای پرسشی (Questions)
مشکل چیه؟ تو میخوای بدونی کاربرها دقیقاً چه سوالهایی رو تو گوگل سرچ میکنن که سایت تو به عنوان جواب بهشون نمایش داده میشه (Impression میگیره). این کوئریها بهترین ایده برای تولید محتوای بلاگ، ساختن صفحات FAQ یا اضافه کردن به بخش «سوالات متداول» هستن.
راهحل با Regex: کافیه بری تو گزارش Performance، روی فیلتر Query کلیک کنی، Custom (regex) رو انتخاب کنی و این الگو رو وارد کنی:
^(چگونه|چطور|چیست|آیا|چرا|کجا|کی|کدام|بهترین)
این الگو چی میگه؟
^ (کلاه): این کاراکتر خیلی مهمه. به Regex میگه کوئری باید دقیقاً با یکی از این کلمات شروع بشه.
(…|…) (گروهبندی با پایپلاین): این گروه بهش میگه کلمهی اول میتونه «چگونه» یا «چطور» یا «چیست» یا… باشه.
نتیجه: تو یک لیست طلایی از تمام کوئریهای پرسشی که کاربرها جستجو کردن و به سایت تو رسیدن، در اختیار داری.
تحلیل کوئریهای برند (Brand) به همراه غلطهای املایی
مشکل چیه؟ تو میخوای بدونی چند نفر اسم برندت رو جستجو میکنن. اما کاربرها اسم برند تو رو به هزار شکل مختلف مینویسن. مثلاً برند «وزیر سئو» ممکنه اینطوری سرچ بشه:
وزیر سئو (با فاصله)
وزیرسئو (بدون فاصله)
vazir seo
vazirseo
اگه فقط “وزیر سئو” رو فیلتر کنی، کلی از دیتای برندت رو از دست میدی.
راهحل با Regex: دوباره تو فیلتر Query حالت Custom (regex) رو انتخاب کن:
وزیر ?سئو|vazir ?seo
این الگو چی میگه؟
وزیر ?سئو: جادوی اصلی اینجاست. ? (علامت سوال) به Regex میگه کاراکتری که دقیقاً قبل از اون اومده (یعنی «فاصله» یا Space) اختیاریه (Optional). یعنی میتونه باشه یا نباشه.
پس هم وزیر سئو (با فاصله) رو پیدا میکنه.
هم وزیرسئو (بدون فاصله) رو پیدا میکنه.
| (یا): و یا حالت انگلیسی رو هم چک کن.
vazir ?seo: که هم vazir seo و هم vazirseo رو پیدا میکنه.
نتیجه: تو یک گزارش کامل و دقیق از کل حجم جستجوی برندت، با همهی غلطهای املایی رایجش، به دست میاری.
دستهبندی و فیلتر کردن URLهای خاص (مثلاً محصولات یا مقالات)
مشکل چیه؟ گزارش Performance در حالت پیشفرض، عملکرد همهی صفحاتت رو با هم نشون میده. اما تو میخوای بدونی آیا مقالات بلاگت کلیکخور بهتری دارن یا صفحات محصولت؟
نکته کلیدی: این روش فقط زمانی جواب میده که ساختار URL سایتت (URL Structure) منطقی و تمیز باشه. (مثلاً همهی مقالات در /blog/ و همهی محصولات در /product/ باشن).
راهحل با Regex: این بار به جای فیلتر Query، باید بری سراغ فیلتر Page.
روی فیلتر Page کلیک کن.
Custom (regex) رو انتخاب کن.
الگوی فیلتر کردن مقالات بلاگ: /blog/
الگوی فیلتر کردن صفحات محصول: /product/
چرا به همین سادگی؟ چون (همونطور که گفتم) GSC تطبیق نسبی (Partial Match) انجام میده. به محض اینکه عبارت /blog/ رو در هر جای URL پیدا کنه، اون رو تو گزارش میاره.
کاربرد پیشرفتهتر (استفاده از تب Compare): حالا تو میتونی این دو تا رو با هم مقایسه کنی:
تو فیلتر Page، الگوی /blog/ رو بزن.
بالای صفحه، روی تب Compare کلیک کن.
گزینه Custom (regex) رو انتخاب کن و الگوی /product/ رو وارد کن.
نتیجه: سرچ کنسول یک نمودار مقایسهای قشنگ بهت میده که توش میتونی ببینی مقالات بلاگت (مثلاً خط آبی) در برابر صفحات محصولت (مثلاً خط نارنجی) چقدر کلیک، ایمپرشن و چه CTRی داشتن. این تحلیل برای استراتژی محتوا فوقالعاده ارزشمنده.
سایر کاربردهای فیلتر “Matches regex”
بذار چندتا مثال خارج از دنیای سئو بهت بزنم تا ببینی چطور میتونی از این ابزار قدرتمند در کارهای روزمرهت هم استفاده کنی.
فیلتر کردن ایمیلهای اسپم در CPanel یا Gmail
حتماً برات پیش اومده که روزانه کلی ایمیل اسپم و تبلیغاتی ناخواسته دریافت میکنی. خیلی از سرویسدهندههای ایمیل (مثل Gmail) و کنترل پنلهای هاستینگ (مثل CPanel) به تو اجازه میدن که با استفاده از Regex، فیلترهای خیلی هوشمند و دقیقی برای اسپمها بسازی.
مشکل: اسپمرها دائماً آدرس ایمیلشون رو عوض میکنن، اما معمولاً الگوی ثابتی دارن. مثلاً:
ایمیلهایی که از دامنههای عجیب و غریب مثل .xyz یا .loan یا .click میان.
ایمیلهایی که در عنوانشون (Subject) کلمات خاصی مثل “Viagra”، “Lottery” یا “Free Offer” دارن.
راهحل با Regex: تو میتونی تو بخش فیلترهای ایمیلت، یک قانون Regex تعریف کنی که بگی: «هر ایمیلی که از طرف (From) آدرسی میاد که به یکی از این دامنهها ختم میشه رو مستقیماً به سطل زباله (Trash) منتقل کن.»
الگوی نمونه برایCPanel: From:.*@.*.(xyz|loan|click)$
این الگو چی میگه؟
From:.*@: یعنی هر آدرسی که قبلش @ داره.
.*.: یعنی هر دامنهای که قبلش نقطه داره.
(xyz|loan|click): یعنی دامنه باید یکی از این سه مورد باشه.
$: و آدرس ایمیل باید به اینها ختم بشه.
با همین یک خط، تو خودت رو از شر هزاران ایمیل اسپم آینده خلاص میکنی.
جستجوی پیشرفته در لاگهای سرور (Log Analysis)
این یکی دیگه واقعاً قلب سئوی فنی (Technical SEO) هست. لاگهای سرور (Server Logs) فایلهای متنی غولپیکری هستن که تمام رخدادهای سرور تو رو ثبت میکنن؛ از جمله اینکه «گوگلبات» (Googlebot) کی اومده، کدوم صفحه رو دیده، و سرور تو چه جوابی (Status Code) بهش داده.
مشکل: این فایلها میلیونها خط دارن. پیدا کردن یک الگوی خاص تو این حجم از دیتا بدون Regex غیرممکنه.
راهحل با Regex: تو میتونی با ابزارهای تحلیل لاگ (مثل Screaming Frog Log File Analyser) یا حتی با دستورات خط فرمان، از Regex استفاده کنی تا دقیقاً بفهمی گوگلبات داره چیکار میکنه.
الگوی نمونه برای تحلیل لاگ: فرض کن میخوای تمام درخواستهای گوگلبات که منجر به خطای 404 (Not Found) شدن رو پیدا کنی.
Googlebot.* 404
این الگو چی میگه؟
Googlebot: دنبال خطهایی بگرد که توش کلمه Googlebot باشه.
.*: بعد از اون، هر تعداد کاراکتر دیگهای هم میتونه بیاد (مثل تاریخ، ساعت، نوع درخواست و…).
404: و در ادامهی همون خط، باید عبارت 404 (با فاصلههای دو طرفش، تا مطمئن بشیم خودِ استاتوس کده) وجود داشته باشه.
این الگو در چند ثانیه تمام URLهای 404 سایتت که گوگلبات دیده رو برات لیست میکنه تا بتونی سریعاً اونها رو ریدایرکت کنی.
اعتبارسنجی دادهها در Google Sheets
اینم یه کاربرد عالی برای ما سئوکارهایی که کلی دیتا تو گوگل شیت (Google Sheets) جمع میکنیم.
مشکل: فرض کن یک ستون برای «ایمیل» یا «آدرس URL» داری و میخوای مطمئن بشی که همکارانت یا خودت، دیتای اشتباهی تو اون ستون وارد نمیکنین (مثلاً به جای ایمیل، شماره تلفن وارد کنین).
راهحل با Regex: تو گوگل شیت میتونی از قابلیت Data Validation (اعتبارسنجی داده) بر پایهی Regex استفاده کنی.
الگوی نمونه برای اعتبارسنجی URL:
ستونی که میخوای توش URL وارد بشه (مثلاً ستون A) رو انتخاب کن.
برو به منوی Data > Data validation.
در بخش Criteria، گزینهی Custom formula is رو انتخاب کن.
این فرمول رو که تابع Regex داره وارد کن:
=REGEXMATCH(A1, “^https://”)
این فرمول چی میگه؟
=REGEXMATCH(A1, …): به گوگل شیت میگه «این الگو رو با محتوای سلول A1 تطبیق بده.»
“^https://”: الگوی ماست. ^ یعنی «باید با این شروع بشه». پس این فرمول میگه «محتوای این سلول باید حتماً با https:// شروع بشه.»
نتیجه: از این به بعد، اگه کسی تو اون ستون آدرسی بدون https (مثلاً http:// یا www.) وارد کنه، گوگل شیت خطا میده و دیتای تو تمیز و یکدست باقی میمونه.
الگوهای Regex پراستfاده برای شروع کار (Cheat Sheet)
یاد گرفتن Regex مثل یاد گرفتن الفبای یک زبان جدیده. تو لازم نیست کل دیکشنری رو حفظ کنی، فقط کافیه چندتا حرف و قانون پرکاربرد رو بلد باشی تا بتونی ۹۰ درصد کارهات رو راه بندازی. اینها مهمترینهاشون هستن:
| ( عملگر OR): برای تطبیق “این” یا “آن”
کاراکتر | (بهش میگن پایپلاین Pipe) سادهترین و پرکاربردترین عملگره. معنیش دقیقاً «یا» (OR) هست.
هر وقت خواستی به ابزار بگی دنبال «این کلمه» یا «اون کلمه» بگرد، از این استفاده میکنی.
مثال: تو سرچ کنسول میخوای هم کوئریهای مربوط به «خرید موبایل» و هم «قیمت لپتاپ» رو با هم ببینی.
الگو: خرید موبایل|قیمت لپ تاپ
این الگو هر کوئری که شامل «خرید موبایل» یا «قیمت لپ تاپ» باشه رو برات میاره.
^ (شروع) و $ (پایان): برای کنترل ابتدا و انتهای رشته
این دو تا کاراکتر به «لنگر» (Anchors) معروفن. کارشون اینه که به Regex بگن دقیقاً کجای رشته رو نگاه کنه.
^ (کلاه یا Caret): یعنی «شروع با…»
این الگو به Regex دستور میده که تطابق فقط باید از ابتدای رشته شروع بشه.
مثال: الگوی ^/blog/ فقط URLهایی رو پیدا میکنه که دقیقاً با /blog/ شروع میشن. (و مثلاً URLی مثل /category/blog/ رو پیدا نمیکنه).
$ (دلار یا Dollar): یعنی «خاتمه با…»
این الگو دستور میده که تطابق فقط باید در انتهای رشته باشه.
مثال: الگوی .pdf$ (یادته که . یعنی خودِ نقطه) فقط URLهایی رو پیدا میکنه که دقیقاً به .pdf ختم میشن.
ترکیب طلایی: اگه الگوت رو بین ^ و $ بذاری (مثلاً ^/blog/$)، یعنی داری میگی «کل رشته باید دقیقاً همین باشه» (نه یک کلمه کمتر نه بیشتر).
d (اعداد) و s (فاصله)
اینها به «کلاسهای کاراکتری» معروفن و میانبرهای خیلی مفیدی هستن.
d (بکاسلش d): مخفف Digit و به معنی «هر عدد تکی» (از ۰ تا ۹) هست.
مثال: فرض کن URL محصولاتت این شکلیه: /product/123 و /product/456.
الگو: ^/product/ddd$ (یعنی /product/ و بعدش دقیقاً ۳ تا عدد).
الگوی بهتر: ^/product/d+ (که + یعنی «یک یا چند بار»)؛ این الگو هم 123 و هم 12345 رو پیدا میکنه.
s (بکاسلش s): مخفف Whitespace و به معنی «هر نوع فاصله» (مثل Space، Tab یا خط جدید) هست.
مثال: برای پیدا کردن غلط املایی وزیر سئو و وزیرسئو، قبلاً از (فاصله + علامت سوال) استفاده کردیم. میتونستیم از وزیرs?سئو هم استفاده کنیم که s? یعنی «وجود فاصله اختیاریه».
() (گروهبندی) و [] (کلاس کاراکتر)
این دو تا خیلی مهمن اما اغلب با هم اشتباه گرفته میشن.
() (پرانتز): برای «گروهبندی» (Grouping) استفاده میشه.
یادت باشه گفتیم | (یا) وجود داره؟ پرانتز به ما کمک میکنه که بگیم اون «یا» دقیقاً برای کدوم بخش از الگوئه.
مثال: الگوی ^/blog/seo|link-building اشتباهه. این یعنی «دنبال چیزی بگرد که یا با /blog/seo شروع میشه یا کلمه link-building توش هست.»
الگوی درست: ^/blog/(seo|link-building)
این الگو میگه: «باید با /blog/ شروع بشه، و بعدش بلافاصله یا کلمه seo بیاد یا کلمه link-building.»
[] (براکت): برای «کلاس کاراکتر» (Character Class) استفاده میشه.
براکت یعنی «فقط یکی از کاراکترهای داخل من».
مثال: الگوی gr[ae]y هم کلمه gray (با a) و هم grey (با e) رو پیدا میکنه.
مثال کاربردی: [0-9] دقیقاً همون کار d رو میکنه (یعنی هر عددی بین ۰ تا ۹).
مثال پیشرفته: [a-zA-Z] یعنی «هر حرفی از الفبای انگلیسی، چه کوچیک (a-z) و چه بزرگ (A-Z)».
جمعبندی: چه زمانی باید از “Matches regex” استفاده کنیم؟
خب، حالا که الفبا رو یاد گرفتی، بذار خلاصه بهت بگم کی باید بری سراغ این فیلتر قدرتمند:
وقتی فیلترهای ساده کم میارن: هر وقت دیدی با Contains (شامل) یا Exactly matches (تطابق دقیق) نمیتونی به دیتای مورد نظرت برسی و گزارشت شلوغ میشه، اولین گزینه Regex هست.
وقتی میخوای چند چیز رو همزمان فیلتر کنی: به جای اینکه ۱۰ بار فیلتر جداگونه برای ۱۰ تا کوئری یا URL مختلف بزنی، همهشون رو با | (یا) به هم میچسبونی و با یک فیلتر کارت رو انجام میدی.
مثال: (موبایل|لپتاپ|تبلت)
وقتی دنبال یک «الگو» هستی، نه یک «کلمه» ثابت:
مثال: پیدا کردن همهی کوئریهای پرسشی(^چرا، ^چطور و…).
مثال: پیدا کردن همهی غلطهای املایی برندت (vazir ?seo).
مثال: پیدا کردن تمام صفحات محصول که کد عددی دارن (/product/d+).
وقتی به «دقت مکانی» نیاز داری: هر وقت برات مهم بود که کلمهی مورد نظرت دقیقاً اول رشته (^) باشه یا دقیقاً آخر رشته ($) بیاد، باید از Regex استفاده کنی.
یادگیری Regex یک سرمایهگذاریه. شاید اولش کمی گیجکننده باشه، اما به محض اینکه این چندتا الگو رو مسلط بشی، درِ یک دنیای جدید از تحلیل دیتای عمیق به روت باز میشه.
جمعبندی
همونطور که با هم دیدیم، «Matches regex» اصلاً اون غول ترسناکی نیست که به نظر میرسه. Regex در واقع «زبان» ما برای حرف زدن هوشمندانه با دیتاهاست.
از این به بعد، تو دیگه محکوم به استفاده از فیلترهای ساده و گزارشهای شلوغ و پر از نویز نیستی. تو ابزاری در اختیار داری که بهت اجازه میده:
کوئریهای پرسشی رو یکجا پیدا کنی.
تمام غلطهای املایی برندت رو با هم ببینی.
دیتای GA4 رو بر اساس الگوهای پیچیدهی رفتاری سگمنتبندی کنی.
و لاگهای سرورت رو برای پیدا کردن خطاهای 404 گوگلبات زیر و رو کنی.
یادت باشه، تفاوت یک تحلیلگر معمولی با یک متخصص سئوی حرفهای، در توانایی پرسیدن «سوالهای درست» از دیتاست. فیلتر Regex ابزار تو برای پرسیدن همون سوالهای هوشمندانه و دقیقه. پس همین امروز ازش استفاده کن و از کشف الگوهایی که تا امروز پنهان مونده بودن، لذت ببر.
سوالات متداول (FAQ)
۱. تفاوت اصلی Regex در گوگل آنالیتیکس ۴ (GA4) و سرچ کنسول (GSC) چیست؟
این مهمترین تلهایه که باید حواست بهش باشه.
در GA4: فیلتر Regex به صورت “تطبیق کامل” (Full Match) عمل میکنه. یعنی الگوی تو باید کل رشته رو توصیف کنه. اگه بخوای دنبال کلمهای در میان رشته بگردی (مثل Contains)، باید حتماً الگوت رو بین دو تا .* بذاری (مثلاً: .*seo.*).
در GSC: فیلتر Regex به صورت “تطبیق نسبی” (Partial Match) عمل میکنه. یعنی کافیه الگوی تو در هر بخشی از رشته وجود داشته باشه (دقیقاً مثل Contains عمل میکنه و کار باهاش سادهتره).
۲. آیا Regex به بزرگی و کوچکی حروف (Case-Sensitive) حساس است؟
در اکثر ابزارهای سئو مثل گوگل آنالیتیکس و گوگل سرچ کنسول، فیلتر Regex به صورت پیشفرض به بزرگی و کوچکی حروف حساس نیست. یعنی الگوی seo هم کلمهی seo و هم SEO رو پیدا میکنه. (البته در سیستمهای پیشرفتهتر، کدهایی برای فعال یا غیرفعال کردن این حساسیت وجود داره، اما برای کار ما، فرض بر عدم حساسیت است).
۳. چرا الگوی Regex من کار نمیکند؟
معمولاً دو دلیل رایج داره:
خطای سینتکس: رایجترین اشتباه، فراموش کردن (بک اسلش) برای کاراکترهای ویژه است. مثلاً اگه دنبال خودِ کاراکتر . میگردی، باید در الگو از . استفاده کنی.
فراموش کردن منطق GA4: اگه در GA4 هستی و الگوت کار نمیکنه، ۹۹٪ مواقع به این دلیله که یادت رفته از .* در اول و آخر الگوت استفاده کنی (چون GA4 دنبال تطبیق کامل میگرده).