جلوگیری از ایندکس شدن صفحات فیلتر سایت، Noindex کردن فیلتر ووکامرس
کد جلوگیری از ایندکس صفحات فیلتر در افزونه رنک مث و یوست سئو

یکی از مشکلات رایج فروشگاههای ووکامرسی ایندکس شدن خودکار صفحاتی با پارامترهای فیلتر است. این صفحات اغلب شامل نتایج خالی یا محتوای تکراری هستند و نهتنها ارزشی برای سئو ندارند بلکه باعث هدر رفتن بودجه خزش (Crawl Budget) نیز میشوند.
ووکامرس بهصورت پیشفرض پارامترهایی مانند filter_، min_price، orderby و… را به URL محصولات اضافه میکند و اگر این صفحات مدیریت نشوند تعداد زیادی از آنها در نتایج گوگل ایندکس میشوند.
برای حل این مسئله افزونه سئوی Rank Math این امکان را میدهد که با چند خط کدنویسی ساده نمایش این نوع صفحات را از موتورهای جستجو مخفی کنید. کافی است قطعه کد زیر را در فایل functions.php قالب خود قرار دهید تا صفحات حاوی پارامترهای فیلتر noindex شوند و از ایندکس خارج گردند.
این کار نه تنها باعث افزایش کیفیت صفحات ایندکسشده میشود بلکه تمرکز گوگل را به سمت محصولات اصلی فروشگاه شما هدایت میکند.
کد جلوگیری از ایندکس صفحات فیلتر در افزونه رنک مث
اگر از افزونه رنک مث استفاده می کنید کد زیرا را به فایل Functions.php سایت خود اضافه کنید.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | add_filter('rank_math/frontend/robots', function( $robots ) {     $params_to_check = [         'add-to-cart',         'min_price',         'max_price',         'orderby',         'per_row',         'per_page',         'shop_view',         'stock_status'     ];     foreach ($_GET as $param => $value) {         if (in_array($param, $params_to_check) || strpos($param, 'filter_') === 0) {             $robots['index'] = 'noindex';             $robots['follow'] = 'nofollow';             break;         }     }     return $robots; }); | 
این کد باعث خواهد شد تا صفحاتی که در ارائه params_to_check هستند از ایندکس خارج شوند و اگر پرامتری دارید که در لیست ارائه شده توسط ما نیست می توانید آن را اضافه کنید.
کد جلوگیری از ایندکس صفحات فیلتر در افزونه yoast SEO
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function aidin_noindex_for_filtered_pages_yoast() {     if ( function_exists('wpseo_robots') ) {         $params_to_check = [             'add-to-cart',             'min_price',             'max_price',             'orderby',             'per_row',             'per_page',             'shop_view',             'stock_status'         ];         foreach ($_GET as $param => $value) {             if (in_array($param, $params_to_check) || strpos($param, 'filter_') === 0) {                 add_filter( 'wpseo_robots', function( $robots ) {                     return 'noindex, nofollow';                 });                 break;             }         }     } } add_action('template_redirect', 'aidin_noindex_for_filtered_pages_yoast'); | 
جمع بندی
اگر فروشگاه اینترنتی شما با ووکامرس ساخته شده باید بدانید که یکی از مهمترین بخشهای سئوی تکنیکال مدیریت صحیح صفحات قابل ایندکس توسط گوگل است. ووکامرس بهصورت پیشفرض هنگام استفاده از فیلترهایی مانند قیمت، موجودی، رنگ و دستهبندی، آدرسهایی با پارامترهای خاص تولید میکند. این URLها ممکن است هزاران صفحهی تکراری یا بیمحتوا را در سایت شما ایجاد کرده و در نتایج جستجو ایندکس شوند.
ایندکس شدن چنین صفحاتی به ظاهر بیضرر است اما در عمل میتواند عواقب جدی برای سئوی سایت شما به همراه داشته باشد:
- مصرف نادرست بودجه خزش (Crawl Budget) گوگل
- کاهش تمرکز گوگل روی صفحات اصلی و محصولات واقعی
- افت کیفیت نتایج سایت شما در موتورهای جستجو
- افزایش نرخ پرش و کاهش نرخ کلیک (CTR)
برای رفع این مشکل میتوان با استفاده از افزونههای سئو مانند Rank Math یا Yoast SEO و افزودن چند خط کد به قالب مانع ایندکس شدن این صفحات شد. کدی که در این مقاله معرفی شد بهصورت خودکار URLهایی که حاوی پارامترهای غیرضروری هستند را به صورت noindex, nofollow علامتگذاری میکند. این کار به موتورهای جستجو اعلام میکند که نیازی به بررسی و ایندکس این صفحات نیست.
✅ اگر به بهبود رتبه سایت خود در گوگل اهمیت میدهید و میخواهید فروشگاهتان حرفهایتر عمل کند پیادهسازی این راهکار ساده اما مؤثر را دستکم نگیرید.
 
					
 
						




ممنون ازشما
موفق باشی رفیق
سلام وقت شما بخیر جناب مهندس
ببخشید یک سوال داشتم خدمتتون برای بهینه سازی بودجه خزش سایت برای این قسمت های که با فیلتر های ووکامرس یا حتی سایر پلاگین ها به وجود میاد بهتر نیست از طریق فایل robot.txt جلوی خزش این قسمت های بی فایده گرفته شود و عوض آن دیگر نخواد در فایل فانکشن چایلدتم قالب کد اضافی قرار ندیم یا اینکه روشی که شما فرمودید بهتر است انجام شود یا هر دو با هم انجام شود؟
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /wp-content/plugins/
Disallow: /wp-content/uploads/wc-logs/
Disallow: /wp-content/uploads/woocommerce_transient_files/
Disallow: /wp-content/uploads/woocommerce_uploads/
Disallow: */feed/
Disallow: /rss
Disallow: /search/
Disallow: /*?s=*
Disallow: /?s=
Disallow: /page/*/?s=
Disallow: /my-account/
Disallow: /cart/
Disallow: /*?add-to-cart=*
Disallow: /checkout/*
Disallow: /*?add_to_wishlist=*
Disallow: /wishlist
Disallow: /compare
Disallow: /*?per_page=*
Disallow: /*?orderby=
Disallow: /*?orderby=price-desc
Disallow: /*?orderby=popularity
Disallow: /*?orderby=rating
Disallow: /*?orderby=price
Disallow: /*?orderby=date
Disallow: /*?filter_brand
سلام وقت شما هم بخیر 🌹
سوال خیلی خوبی مطرح کردید.
بین استفاده از robots.txt و روش noindex در قالب، یک تفاوت اساسی وجود داره:
وقتی در robots.txt آدرسی رو Disallow میکنیم، موتور جستجو اون صفحه رو نمیخونه اما ممکنه همچنان URL رو در نتایج نشون بده (بدون محتوا). بنابراین تضمینی برای حذف شدن کامل از ایندکس نیست.
اما وقتی روی صفحه دستور noindex اعمال بشه، موتور جستجو بعد از خزش متوجه میشه که اون صفحه نباید ایندکس بشه و به مرور از نتایج حذف میشه.
به همین دلیل، برای مدیریت صفحات فیلتر ووکامرس، روش noindex داخل کد مطمئنتر و توصیهشدهتر هست.
البته استفاده همزمان از robots.txt برای بعضی مسیرهای غیرضروری (مثل لاگها، سبد خرید، اکانت کاربری و …) هم کار خوبیه و جلوی خزش اضافه رو میگیره.
پس بهترین حالت ترکیبیه:
مسیرهای سیستمی و بیارزش → Disallow در robots.txt
صفحات فیلتر و پارامترهای پویا → noindex با کد (یا از طریق افزونههای سئو).
اینطوری هم کرال باجت هدر نمیره، هم مطمئن میشیم URLهای فیلتر اصلاً ایندکس نمیشن.
موفق باشید 🌺
کاربردی بود ممنون