درود بر شما. من محمدصدرا حسینی هستم، کارشناس سئو در مجموعه وزیر سئو.
تسلط بر عبارات باقاعده (Regex) مرز میان تحلیلگر داده حرفهای و مبتدی را مشخص میکند. اما قدرت زیاد، ریسک خطای بالایی نیز به همراه دارد. یک الگوی (Pattern) نادرست میتواند کل تحلیل شما را بیاعتبار (Untrustworthy) کند و به اعتبار (Trustworthiness) دادههای شما آسیب جدی بزند.
درک اشتباهات رایج، مستقیماً به اصول E-E-A-T در تحلیل دادههای شما کمک میکند. در این راهنما، به عیبیابی فنی و نکات کلیدی میپردازیم که استفاده از فیلتر Regex در سرچ کنسول را برای شما از یک چالش فنی به یک مزیت استراتژیک تبدیل میکند.
جدول کاربردی: چکلیست عیبیابی سریع Regex
| خطای متداول (The Error) | دلیل فنی (چرا رخ میدهد؟) | راهحل عملیاتی (Actionable Solution) |
|---|---|---|
| عدم بازگشت داده برای seo | حساسیت به حروف (Case Sensitivity). گوگل سرچ کنسول seo را با SEO متفاوت میداند. | استفاده از اپراتور ` |
| فیلتر . تمام صفحات را برمیگرداند | کاراکتر . (نقطه) یک متاکاراکتر (Wildcard) به معنای «هر کاراکتری» است. | خنثیسازی (Escape) کاراکتر خاص با بکاسلش (): example.com |
| فیلتر /blog/ صفحه archive/blog/ را هم نشان میدهد | تطابق جزئی (Partial Match). رجکس به دنبال الگو در هر جای رشته میگردد. | استفاده از ^ (Anchor) برای تعریف نقطه شروع دقیق: ^/blog/ |
| فیلتر (blog.*) بیش از حد داده برمیگرداند | اپراتور حریص (Greedy Operator). * تلاش میکند بیشترین متن ممکن را مطابقت دهد. | استفاده از اپراتور تنبل (Lazy) *? برای مطابقت با کمترین متن ممکن: (blog.*?) |
خطای متداول (The Error)
دلیل فنی (چرا رخ میدهد؟)
راهحل عملیاتی (Actionable Solution)
عدم بازگشت داده برای seo
حساسیت به حروف (Case Sensitivity). گوگل سرچ کنسول seo را با SEO متفاوت میداند.
استفاده از اپراتور `
فیلتر .تمام صفحات را برمیگرداند
کاراکتر . (نقطه) یک متاکاراکتر (Wildcard) به معنای «هر کاراکتری» است.
خنثیسازی (Escape) کاراکتر خاص با بکاسلش (): example.com
فیلتر /blog/صفحه archive/blog/را هم نشان میدهد
تطابق جزئی (Partial Match). رجکس به دنبال الگو در هر جای رشته میگردد.
استفاده از ^ (Anchor) برای تعریف نقطه شروع دقیق: ^/blog/
فیلتر (blog.*)بیش از حد داده برمیگرداند
اپراتور حریص (Greedy Operator). * تلاش میکند بیشترین متن ممکن را مطابقت دهد.
استفاده از اپراتور تنبل (Lazy) *? برای مطابقت با کمترین متن ممکن: (blog.*?)
رجکس (Regex) چیست و چه کاربردی در تحلیل داده دارد؟
عبارات باقاعده (Regular Expressions) یا به اختصار Regex، یک زبان یا قاعده نوشتاری استاندارد برای تعریف الگوهای متنی (Text Patterns) است. به زبان ساده، رجکس به جای جستجوی یک کلمه ثابت (مانند “خرید”)، به شما امکان میدهد تا الگوی آن کلمه را جستجو کنید (مانند “هر کلمهای که با ‘خ’ شروع شود و به ‘د’ ختم شود”).
در تحلیل دادههای سئو، بهویژه در ابزارهایی مانند گوگل آنالیتیکس (Google Analytics) و گوگل سرچ کنسول (Google Search Console)، رجکس برای فیلتر کردن ابعاد (Dimensions) پیچیده مانند URLها، کوئریهای جستجو (Search Queries) یا عناوین صفحات به کار میرود.
مثال کاربردی:
فیلتر ساده: نمایش تمام صفحاتی که URL آنها حاوی /blog/ است.
فیلتر Regex: نمایش تمام صفحاتی که URL آنها حاوی /blog/ است و بعد از آن یک عدد ۴ رقمی (نشاندهنده سال) آمده باشد.
فراتر از فیلترهای ساده: چه زمانی به ترکیب فیلترها نیاز پیدا میکنیم؟
استفاده انحصاری از فیلترهای ساده (مانند Contains, Exactly matching, Starts with) اغلب ما را محدود میکند. از سوی دیگر، استفاده انحصاری از رجکس نیز میتواند گاهی بیش از حد پیچیده یا کند باشد، بهخصوص روی مجموعهدادههای (Datasets) بسیار بزرگ.
نقطه قوت استراتژیک، ترکیب هوشمندانه این دو رویکرد است.
ما زمانی به ترکیب فیلترها نیاز پیدا میکنیم که بخواهیم ابتدا مجموعه داده را به سرعت محدود کنیم و سپس یک الگوی پیچیده را در آن مجموعه محدود جستجو کنیم.
سناریوی عملی: فرض کنید میخواهید عملکرد تمام مقالات بلاگ خود را که در مورد “سئو” یا “بازاریابی محتوایی” هستند و در URL آنها کلمه “راهنما” یا “آموزش” وجود دارد، بررسی کنید.
فیلتر ساده (مرحله اول): ابتدا از یک فیلتر ساده Include Page path contains /blog/ استفاده میکنیم. این کار به سرعت میلیونها ردیف داده را حذف کرده و فقط صفحات بلاگ را نگه میدارد.
فیلتر Regex (مرحله دوم): سپس، روی همین دادههای فیلتر شده، یک فیلتر رجکس اعمال میکنیم:
Page path matches regex: (seo|bazaryabi-mohtavaei)
و Page path matches regex: (rahnama|amoozesh)
اگر تلاش میکردید این کار را تنها با یک فیلتر رجکس پیچیده از ابتدا انجام دهید، هم نوشتن آن دشوارتر بود و هم اجرای آن بر روی کل دادههای سایت کندتر انجام میشد. ترکیب این دو، بهینهترین مسیر برای دستیابی به دادههای دقیق است.
مزیتهای استراتژیک: از دادهکاوی عمیق تا سگمنتسازی دقیق مخاطب
ترکیب فیلترها یک تمرین فنی صِرف نیست، بلکه مستقیماً به اهداف کلان کسبوکار و سئو کمک میکند. این رویکرد ارزش افزودهای قابل توجهی نسبت به تحلیلهای سطحی ایجاد میکند.
۱. دادهکاوی عمیق (Deep Data Mining)
این تکنیک به شما اجازه میدهد تحلیلهای عمیقی انجام دهید که فراتر از اطلاعات بدیهی و واضح هستند. شما میتوانید الگوهای رفتاری بسیار خاصی را کشف کنید.
مثال: شناسایی کوئریهایی که همزمان شامل نام برند رقیب و یک ویژگی محصول (مثل “قیمت” یا “ارزان”) هستند، اما فقط برای کاربرانی که از موبایل وارد شدهاند. این سطح از دقت، فرصتهای بهینهسازی نرخ تبدیل (CRO) دقیقی را آشکار میسازد.
۲. سگمنتسازی دقیق مخاطب (Precise Audience Segmentation)
درک مخاطب، هسته اصلی سئو است. با ترکیب فیلترها، شما میتوانید مخاطبان خود را به بخشهای (Segments) بسیار دقیق تقسیم کنید.
مثال: شما میتوانید کاربرانی را که ابتدا از یک صفحه دستهبندی خاص (فیلتر ساده) بازدید کردهاند و سپس کوئریهایی با الگوی سوالی (مانند “چگونه”، “چرا”، “چیست” – فیلتر Regex) جستجو کردهاند، جدا کنید. این سگمنت، کاربرانی هستند که در میانه قیف فروش (Middle Funnel) قرار دارند و نیازمند محتوای آموزشی پشتیبان هستند.
۳. شناسایی شکافهای محتوایی (Content Gap Analysis)
این رویکرد به شما کمک میکند تا صفحاتی را بیابید که پتانسیل بالایی دارند اما عملکرد ضعیفی از خود نشان میدهند.
مثال: صفحاتی را فیلتر کنید که در URL آنها “محصول” وجود دارد (فیلتر ساده)، اما کوئریهایی که به آنها ترافیک میآورند، شامل الگوهای مقایسهای (مثل “مقایسه”، “یا”، “بهتر است” – فیلتر Regex) هستند. این سیگنال واضحی است که شما در آن صفحات به جداول مقایسهای یا محتوای مقایسهای نیاز دارید تا قصد کاربر (User Intent) را بهتر پوشش دهید.
آشنایی با محیط فیلتر GSC: فیلتر Query، Page، Country، و Device
پیش از ترکیب فیلترها، باید ابزارهای پایه را بشناسید. در گزارش عملکرد (Performance Report) سرچ کنسول، با کلیک بر روی دکمه «+ New» (جدید)، به ابزارهای فیلترینگ اصلی دسترسی پیدا میکنید.
این فیلترها که «ابعاد» (Dimensions) گزارش شما هستند، عبارتند از:
Query (جستجو): کلماتی که کاربران جستجو کردهاند.
Page (صفحه): آدرس صفحات سایت شما که در نتایج ظاهر شدهاند.
Country (کشور): موقعیت جغرافیایی کاربران.
Device (دستگاه): نوع دستگاه کاربر (دسکتاپ، موبایل، تبلت).
هر یک از این فیلترها به شما اجازه میدهند تا دادهها را بر اساس یک معیار استاندارد محدود کنید.
فعالسازی Regex: تفاوت “Custom (regex)” با “Contains”
هنگامی که یک نوع فیلتر (مثلاً “Query”) را انتخاب میکنید، یک منوی کشویی برای تعیین «شرط» (Condition) مشاهده میکنید. درک تفاوت دو گزینه زیر حیاتی است:
Contains (شامل):
این یک فیلتر استاندارد و ساده است.
این گزینه دقیقاً به دنبال رشته (String) متنی است که شما وارد میکنید.
مثال: فیلتر Query contains ‘seo’ فقط کوئریهایی مانند «آموزش seo» را پیدا میکند و «آموزش سئو» (با ی فارسی) را نادیده میگیرد. این فیلتر به بزرگی و کوچکی حروف حساس است (Case-Sensitive).
Custom (regex) (سفارشی (رجکس)):
این گزینه موتور قدرتمند Regex را فعال میکند.
به جای جستجوی یک رشته ثابت، به دنبال یک الگو (Pattern) میگردد.
مثال: فیلتر Query matches regex ‘seo|سئو’ هر دو کوئری «آموزش seo» و «آموزش سئو» را پیدا میکند. (کاراکتر | در Regex به معنای «یا» (OR) است).
نکته کلیدی: فیلترهای استاندارد (مثل Contains) برای سرعت و سادگی مناسب هستند. Regex برای دقت و الگوهای پیچیده به کار میرود.
سناریوی عملی ۱ (کوئری + دستگاه): یافتن کوئریهای سؤالی (شامل “چگونه” یا “چیست”) فقط در موبایل
این سناریو به شما کمک میکند تا «قصد کاربر» (User Intent) اطلاعاتی را در مهمترین دستگاه (موبایل) شناسایی کنید.
هدف: پیدا کردن فرصتهای تولید محتوای پاسخ-محور (Answer-Based Content) برای کاربران موبایل.
مراحل اجرا:
در گزارش Performance، روی «+ New» کلیک کنید.
فیلتر ۱ (استاندارد): «Device» (دستگاه) را انتخاب کنید.
گزینه «Mobile» (تلفن همراه) را انتخاب و «Apply» (اعمال) کنید.
اکنون تمام دادهها فقط مربوط به موبایل است.
دوباره روی «+ New» کلیک کنید.
فیلتر ۲ (Regex): «Query» (جستجو) را انتخاب کنید.
از منوی کشویی، «Custom (regex)» (سفارشی (رجکس)) را انتخاب کنید.
در کادر متن، الگوی زیر را وارد کنید: ^(چگونه|چیست|کدام|کجا|چرا)
«Apply» (اعمال) کنید.
تحلیل الگو (Pattern Breakdown):
^ : این متاکاراکتر (Metacharacter) تضمین میکند که کوئری حتماً با این کلمات شروع شود (نه اینکه کلمه در وسط جمله باشد).
( و ) : برای گروهبندی استفاده میشوند.
| : به معنای «یا» (OR) است.
نتیجه: شما اکنون لیستی از تمام جستجوهای سؤالی که فقط در موبایل انجام شدهاند را در اختیار دارید. این یک «برد سریع» (Quick Win) برای بهینهسازی محتوای موجود یا تولید محتوای جدید برای پاسخگویی به این سؤالات است.
سناریوی عملی ۲ (صفحه + کشور): بررسی عملکرد بلاگپستها (شامل /blog/) در یک کشور خاص
این سناریو برای تحلیل استراتژی سئوی بینالمللی (International SEO) یا تمرکز بر یک بازار جغرافیایی خاص بسیار کاربردی است.
هدف: سنجش عملکرد بخش بلاگ سایت در یک کشور هدف (مثلاً آلمان).
مراحل اجرا:
در گزارش Performance، روی «+ New» کلیک کنید.
فیلتر ۱ (استاندارد): «Country» (کشور) را انتخاب کنید.
کشور مورد نظر (مثلاً «Germany») را انتخاب و «Apply» کنید.
اکنون تمام دادهها فقط مربوط به آلمان است.
دوباره روی «+ New» کلیک کنید.
فیلتر ۲ (استاندارد): «Page» (صفحه) را انتخاب کنید.
از منوی کشویی، «Contains» (شامل) را انتخاب کنید.
مقدار /blog/ را وارد کنید (یا هر الگویی که نشاندهنده بخش بلاگ شماست، مانند /mag/).
«Apply» کنید.
نتیجه: شما اکنون عملکرد (Clicks, Impressions, CTR, Position) تمام مقالات بلاگ خود را فقط برای کاربران آلمانی مشاهده میکنید. این به شما کمک میکند بفهمید کدام محتواها در آن بازار خاص موفقتر بودهاند.
محدودیت کلیدی: چرا نمیتوان Regex را مستقیماً با فیلتر تاریخ (Date) در GSC ترکیب کرد؟
این یک محدودیت فنی مهم در سرچ کنسول است. فیلتر تاریخ (Date) یک «بُعد» (Dimension) مانند Query یا Page نیست که بتوان آن را در کنار سایر فیلترها قرار داد.
فیلتر تاریخ، در واقع محدوده زمانی کل گزارش (Report Timeframe) را تعیین میکند. شما ابتدا بازه زمانی (مثلاً ۳ ماه گذشته) را مشخص میکنید و سپس فیلترهای Regex یا استاندارد را بر روی دادههای همان بازه اعمال میکنید.
به عبارت دیگر، شما نمیتوانید یک فیلتر «Query matches regex …» را با یک فیلتر «Date is …» به صورت همزمان در پشته فیلترها (Filter Stack) ترکیب کنید.
راه حل (تجربی): نحوه استفاده از “Compare” تاریخ برای تحلیل دادههای فیلتر شده با Regex
اگرچه نمیتوانید تاریخ را فیلتر کنید، اما میتوانید دادههای فیلتر شده با Regex خود را در بازههای زمانی مختلف مقایسه کنید. این راه حل، قدرت تحلیل زمانی را به شما بازمیگرداند.
هدف: بررسی روند رشد یا افت کوئریهای سؤالی (سناریوی ۱) در ۳ ماه گذشته نسبت به ۳ ماه قبل از آن.
مراحل اجرا:
اعمال فیلترهای Regex: ابتدا فیلترهای مورد نظر خود را اعمال کنید (مثلاً Device is Mobile و Query matches regex ^(چگونه|چیست)).
شما اکنون دادههای فیلتر شده در بازه زمانی پیشفرض (مثلاً ۳ ماهه) را میبینید.
فعالسازی مقایسه: بر روی فیلتر «Date» (تاریخ) در بالای گزارش کلیک کنید.
به تب «Compare» (مقایسه) بروید.
گزینهای مانند «Compare last 3 months to previous period» (مقایسه ۳ ماه آخر با دوره قبل) را انتخاب کنید.
«Apply» کنید.
نتیجه: سرچ کنسول اکنون دادههای مربوط به کوئریهای سؤالی موبایل را برای دو بازه زمانی مجزا نمایش میدهد. شما میتوانید ببینید که آیا استراتژی محتوایی شما برای این بخش خاص از کاربران، منجر به رشد کلیک و ایمپرشن شده است یا خیر. این یک تحلیل بسیار عمیق و استراتژیک است.
تفاوت Regex در GA4 و Universal Analytics: آنچه باید بدانید
درک تفاوتهای اساسی بین نحوه عملکرد Regex در این دو نسخه، برای جلوگیری از خطا در تحلیل، حیاتی است:
محل استفاده: در Universal Analytics (UA)، ما میتوانستیم فیلترهای Regex را مستقیماً در جدول گزارشهای استاندارد (Standard Reports) اعمال کنیم. در GA4، این قابلیت به شکل گستردهتری به بخش Explore (اکتشافات) و ابزارهای ساخت Segment (سگمنت) و Audience (مخاطب) منتقل شده است. گزارشهای استاندارد (Reports) در GA4 فیلترهای سادهتری دارند.
نوع Regex (Syntax): GA4 به طور رسمی از سینتکس (قواعد نوشتاری) RE2 پشتیبانی میکند. این موضوع بسیار مهم است، زیرا RE2 تمام ویژگیهای Regex سنتی (مبتنی بر PCRE که در UA استفاده میشد) را ندارد. مهمترین تفاوت، عدم پشتیبانی از برخی قابلیتهای پیشرفته مانند «Negative Lookaheads» (الگوهای منفی پیشرو، مانند (?!…)) است.
شفافیت در تطبیق (Match Type): در GA4، هنگام ساخت فیلتر، شما باید به صراحت گزینه «matches regex» (مطابقت با رجکس) یا «does not match regex» (عدم مطابقت با رجکس) را انتخاب کنید. این کار شفافیت بیشتری نسبت به UA ایجاد میکند، که در آن گاهی تطبیق Regex به صورت پیشفرض یا ضمنی بود.
روش اول: ساخت سگمنت (Segment) با Regex و فیلترهای دموگرافیک
سگمنتها به شما اجازه میدهند تا زیرمجموعهای از کاربران (User Segment) یا سشنها (Session Segment) را برای تحلیل عمیقتر جداسازی کنید. ترکیب Regex با فیلترهای دموگرافیک (جمعیتشناختی) یک ابزار قدرتمند برای درک رفتار بخشهای خاصی از بازار است.
سناریو: فرض کنید میخواهید رفتار کاربرانی را تحلیل کنید که از شهر تهران (فیلتر دموگرافیک) هستند و از صفحات دستهبندی «موبایل» یا «لپتاپ» (فیلتر Regex) بازدید کردهاند.
مراحل اجرا (در بخش Explore):
یک گزارش (مانند Free Form) باز کنید و در ستون Variables، روی علامت «+» در بخش Segments کلیک کنید.
«User Segment» (سگمنت کاربر) را انتخاب کنید.
شرط اول (دموگرافیک – استاندارد): یک شرط جدید اضافه کنید. Demographics > City را جستجو و انتخاب کنید.
نوع شرط را exactly matches (دقیقاً مطابقت دارد) و مقدار را Tehran قرار دهید.
دکمه «AND» (و) را بزنید تا شرط دوم اضافه شود.
شرط دوم (صفحه – Regex):
یک گروه شرطی (Condition Group) جدید بر اساس Events > page_view اضافه کنید.
روی «Add parameter» (افزودن پارامتر) کلیک کنید > Page > page_path (یا page_location).
نوع شرط را به matches regex (مطابقت با رجکس) تغییر دهید.
الگو (Pattern) را وارد کنید: /category/(mobile|laptop)
سگمنت را نامگذاری کرده و ذخیره (Save and Apply) کنید.
نتیجه استراتژیک: اکنون تمام دادههای گزارش شما فقط به کاربرانی از تهران که این الگوهای URL را دیدهاند، محدود میشود. این تحلیل برای بهینهسازی نرخ تبدیل (CRO) منطقهای و هدفگذاری تبلیغات، فوقالعاده ارزشمند است.
روش دوم: استفاده از Regex در گزارشات اکتشافی (Explore Reports)
شما میتوانید بدون ساخت سگمنت دائمی، مستقیماً در خود گزارشهای اکتشافی (Explore Reports) از Regex برای فیلتر کردن دادههای جدول استفاده کنید. این روش برای تحلیلهای سریع و موقت ایدهآل است.
سناریو: میخواهید در یک گزارش «Free Form» (فرم آزاد)، فقط صفحاتی را ببینید که با /blog/ یا /mag/ شروع میشوند.
مراحل اجرا:
یک گزارش «Free Form» جدید بسازید.
بُعد (Dimension) «Page path and screen class» را به بخش «Rows» (ردیفها) بکشید.
متریک (Metric) «Active users» (کاربران فعال) را به بخش «Values» (مقادیر) بکشید.
در پایین ستون «Variables» (متغیرها)، بخش «Filters» (فیلترها) وجود دارد. روی آن کلیک کنید.
بُعد «Page path and screen class» را انتخاب کنید.
نوع شرط (Match Type) را به matches regex تغییر دهید.
الگو را وارد کنید: ^/(blog|mag)/
(کاراکتر ^ به معنای «شروع شدن با» است.)
دکمه «Apply» (اعمال) را بزنید.
نتیجه: جدول گزارش بلافاصله فیلتر میشود و فقط URLهایی را نشان میدهد که با الگوی Regex شما مطابقت دارند و نیازی به ساخت سگمنت جداگانه نیست.
سناریوی عملی ۳ (Regex + تاریخ + دستگاه): تحلیل ترافیک از منابع ارگانیک برای صفحات خاص در بازه زمانی مشخص روی دسکتاپ
این یک سناریوی تحلیل سئوی بسیار رایج و حیاتی است. در GA4، ما این کار را با ترکیب فیلتر تاریخ گزارش (که در بالای صفحه تنظیم میشود) و یک سگمنت چند-شرطی انجام میدهیم.
هدف: تحلیل عملکرد ترافیک ارگانیک گوگل، فقط برای کاربران دسکتاپ، فقط برای صفحات خدمات سئو (که URL آنها شامل /seo-services/ است)، در سه ماهه سوم سال.
مراحل اجرا:
فیلتر تاریخ (Date Filter):
ابتدا و پیش از هر کاری، در بالای رابط کاربری Explore، بازه زمانی گزارش (Report Date Range) را روی بازه مورد نظر (مثلاً ۱ جولای تا ۳۰ سپتامبر) تنظیم کنید. این فیلتر بر کل گزارش اعمال میشود.
ساخت سگمنت (Segment):
یک «Session Segment» (سگمنت سشن) جدید ایجاد کنید (زیرا منبع ترافیک یک ویژگی مبتنی بر سشن است).
شرط ۱ (دستگاه – استاندارد):
Device > Device category > exactly matches > desktop
شرط ۲ (ترافیک – استاندارد):
دکمه «AND» را بزنید.
Traffic Source > Session default channel group > exactly matches > Organic Search
(اختیاری: برای محدود کردن فقط به گوگل، میتوانید شرط Session source > exactly matches > google را نیز اضافه کنید.)
شرط ۳ (صفحه – Regex):
دکمه «AND» را بزنید.
یک گروه شرطی (Condition Group) جدید بر اساس Events اضافه کنید:
Events > page_view
پارامتر: Page > page_path
شرط: matches regex
الگو: ^/seo-services/ (به معنای تمام صفحاتی که با این عبارت شروع میشوند)
سگمنت را ذخیره و در گزارش خود (مثلاً یک Free Form report با ردیفهای Page path) اعمال کنید.
نتیجه استراتژیک: شما اکنون دادههای ایزوله و بسیار دقیقی در اختیار دارید. میتوانید ببینید کاربران دسکتاپ که از جستجوی ارگانیک آمدهاند، در صفحات خدمات شما چه رفتاری داشتهاند (مانند نرخ تبدیل، زمان ماندگاری و…). این تحلیل مستقیماً به بهینهسازی صفحات فرود (Landing Page Optimization) و بهبود تجربه کاربری (UX) برای آن بخش خاص از مخاطبان هدف کمک میکند.
عیبیابی (Experience): چرا فیلتر Regex من هیچ دادهای برنمیگرداند؟
این رایجترین مشکلی است که نشاندهنده کمبود تجربه (Experience) عملی است. وقتی فیلتر شما دادهای برنمیگرداند، معمولاً به دلیل یکی از خطاهای منطقی زیر است.
چکلیست عیبیابی سریع:
حساسیت به حروف (Case Sensitivity):
مشکل: این اولین و متداولترین دام است. گوگل سرچ کنسول (GSC) به طور کامل به بزرگی و کوچکی حروف حساس است. فیلتر seo کوئری SEO را پیدا نخواهد کرد.
راهحل (اقداممحور): همیشه از گروهبندی «یا» (OR) برای پوشش دادن هر دو حالت استفاده کنید.
مثال: به جای seo، بنویسید: (seo|SEO)
فرار نکردن از کاراکترهای خاص (Not Escaping Metacharacters):
مشکل: کاراکترهایی مانند . (نقطه)، ? (علامت سوال)، + (بعلاوه) و * (ستاره) در Regex معانی خاصی دارند. اگر به دنبال یک URL حاوی example.com باشید و از الگوی example.com استفاده کنید، Regex آن را به عنوان “example” و هر کاراکتری و “com” تفسیر میکند.
راهحل (اقداممحور): همیشه کاراکترهای خاص را با یک بکاسلش () خنثی (Escape) کنید.
مثال: برای example.com بنویسید: example.com
سوءتفاهم در تطابق کامل در مقابل تطابق جزئی (Full vs. Partial Match):
مشکل: یک تصور غلط رایج این است که matches regex باید کل رشته (String) را مطابقت دهد.
واقعیت: در GSC و GA4، فیلتر matches regex به صورت پیشفرض مانند «Contains» عمل میکند (تطابق جزئی).
خطای رایج: اگر الگوی شما ^blog (شروع با blog) باشد اما URL شما /fa/blog باشد، هیچ دادهای برگردانده نمیشود، زیرا URL با /fa/ شروع میشود نه blog.
بهینهسازی (Expertise): چه زمانی استفاده از “Matches regex” به “Contains” ارجحیت دارد؟
اینجاست که تخصص (Expertise) شما مشخص میشود. دانستن اینکه چه زمانی از ابزار قدرتمندتر استفاده کنید، کلید بهینهسازی زمان و دقت تحلیل است.
«Contains» (شامل) را انتخاب کنید اگر:
شما فقط به دنبال یک رشته (String) واحد و ثابت هستید (مثلاً تمام URLهایی که حاوی /blog/ هستند).
سرعت تحلیل برای شما اولویت دارد (فیلترهای ساده سریعتر پردازش میشوند).
«Matches regex» (مطابقت با رجکس) ارجحیت دارد اگر:
نیاز به شرط «یا» (OR) دارید:
این مهمترین مزیت است. شما نمیتوانید با «Contains» بگویید «این یا آن».
مثال: یافتن تمام کوئریهای برند در اشکال مختلف: (vazir seo|vazirseo|وزیر سئو|وزیرسئو)
موقعیت الگو اهمیت دارد (Anchoring):
شما میخواهید اطمینان حاصل کنید که الگو در ابتدا یا انتهای رشته قرار دارد.
مثال ^ (شروع): یافتن کوئریهایی که فقط با کلمات سؤالی شروع میشوند: ^(چگونه|چیست|کجا)
مثال $ (پایان): یافتن صفحاتی که به .pdf ختم میشوند: .pdf$
به دنبال الگوهای ساختاری هستید نه کلمات ثابت:
مثال: یافتن تمام URLهای محصول که شامل یک عدد ۵ رقمی (کد محصول) هستند: /[0-9]{5}/
ایجاد اعتماد (Trustworthiness): مراقب اپراتورهای حریص (Greedy Operators) در Regex باشید
دادههای شما باید قابل اعتماد (Trustworthy) باشند. یک اشتباه رایج در Regex که منجر به دادههای غیرقابل اعتماد میشود، عدم درک اپراتورهای «حریص» (Greedy) است.
اپراتور حریص (Greedy): اپراتورهایی مانند * (صفر یا بیشتر) و + (یکی یا بیشتر) به صورت پیشفرض «حریص» هستند. آنها تلاش میکنند تا بیشترین متن ممکن را مطابقت دهند.
اپراتور تنبل (Lazy): با افزودن ? به اپراتور حریص (مانند *? یا +?)، آن را «تنبل» میکنید. آنها تلاش میکنند تا کمترین متن ممکن را مطابK_I_K – – 0A
سناریوی خطرناک (دادههای غیرقابل اعتماد):
رشته (URL): /blog/seo/what-is-regex/
الگوی حریص (Greedy): /blog/(.*)/ (بگو: همه چیز را بین /blog/ و آخرین / مطابقت بده)
نتیجه: seo/what-is-regex (این ممکن است چیزی نباشد که شما میخواستید)
الگوی تنبل (Lazy): /blog/(.*?)/ (بگو: همه چیز را بین /blog/ و اولین / بعدی مطابقت بده)
نتیجه: seo (این احتمالاً همان چیزی است که به عنوان «دستهبندی» میخواستید)
درک این تفاوت تضمین میکند که شما دقیقاً همان بخشی از داده را که هدفگذاری کردهاید، استخراج میکنید و تحلیل شما قابل اعتماد باقی میماند.
بررسی تفاوتهای کوچک در سینتکس Regex بین GSC و GA4
اگرچه هر دو ابزار از موتور RE2 گوگل استفاده میکنند (که فاقد برخی ویژگیهای پیشرفته مانند Lookarounds است)، تفاوتهای ظریفی در پیادهسازی وجود دارد که نشاندهنده تخصص (Expertise) واقعی است:
حساسیت به حروف (Case Sensitivity):
GSC: کاملاً حساس است. seo با SEO مطابقت ندارد.
GA4: نیز به صورت پیشفرض حساس است. این یک تصور غلط رایج است که GA4 حساس نیست. در رابط کاربری Explore، فیلتر matches regex به حروف حساس است. شما باید برای هر دو حالت الگو بنویسید (مثلاً (seo|SEO)).
نوع تطابق (Match Type):
GSC و GA4: هر دو matches regex را به عنوان تطابق جزئی (Partial Match) در نظر میگیرند (مانند “Contains”).
نکته حرفهای: اگر به تطابق کامل (Full Match) نیاز دارید (یعنی کل رشته باید با الگوی شما یکی باشد)، باید الگوی خود را با ^ (شروع) و $ (پایان) محصور کنید.
مثال: برای یافتن صفحه /blog/ (و نه /blog/post-1)، باید از ^/blog/$ استفاده کنید.
کاراکترهای قابل دسترس:
به نظر میرسد GA4 در پذیرش برخی متاکاراکترهای پیچیدهتر، کمی محدودتر از GSC عمل میکند. همیشه توصیه میشود که الگوهای خود را تا حد امکان ساده و بر اساس سینتکس RE2 نگه دارید.
جمعبندی: از دادههای حریص تا بینش دقیق
استفاده از عبارات باقاعده (Regex) در ابزارهایی مانند GSC و GA4، صرفاً یک مهارت فنی نیست؛ بلکه یک الزام استراتژیک برای حفظ اعتبار (Trustworthiness) دادهها است. همانطور که بررسی کردیم، یک خطای کوچک در سینتکس – مانند نادیده گرفتن حساسیت به حروف یا استفاده از اپراتورهای «حریص» (Greedy) – میتواند منجر به تصمیمگیریهای اشتباه و پرهزینه شود.
تسلط بر این جزئیات، تضمین میکند که شما به جای «دادههای زیاد»، به «بینش دقیق» (Precise Insights) دست مییابید و تحلیلهای شما قابل اتکا و اقداممحور (Actionable) باقی میماند.