اگر این صفحات بهدرستی مدیریت نشوند، گوگل آنها را در گزارشهای Google Search Console در دستهبندیهای کپی یا تکراری (مانند Duplicate without user-selected canonical یا Duplicate, Google chose different canonical than user) قرار میدهد. این اتفاق منجر به افت رتبهبندی، همنوعخواری کلیدواژهها (Keyword Cannibalization) و اتلاف منابع سرور میشود.
در این مقاله جامع، به بررسی عمیق تگ کانونیکال (rel="canonical")، نحوه کارکرد آن و تحلیل دقیق استراتژیهای رفع مشکل محتوای تکراری برای URLهای پیچیده همراه با پارامتر پرداخته خواهد شد.
تگ کانونیکال یک عنصر متاداده در بخش کد HTML یک صفحه وب است که به موتورهای جستجو اعلام میکند آدرس فعلی، نسخه فرعی یا همزادِ یک آدرس اصلی دیگر است یا خودش نسخه مرجع به شمار میرود.
فرمت فنی کد HTML
<link rel="canonical" href="https://website.com/tag/text1-text-2/" />
چرا تگ کانونیکال اهمیت حیاتی دارد؟
تجمعیسازی اعتبار لینکها (Link Equity Aggregation): اگر چندین URL به یک محتوای واحد اشاره کنند، اعتبار لینکهای ورودی (Backlinks) بین این آدرسها تقسیم میشود. تگ کانونیکال باعث میشود تمامی این اعتبارها به URL اصلی هدایت شوند.
آدرس نمونه ارائه شده را بررسی میکنیم:
[website.com/tag/text1-text-2?page=1&s=20]
(https://website.com/tag/text1-text-2?page=1&s=20)
این URL از سه بخش اصلی تشکیل شده است:
| بخش آدرس | نوع ساختار | کارکرد |
| /tag/text1-text-2 | Base URL (مسیر پایه) | صفحه آرشیو برچسب یا دسته اصلی |
| ?page=1 | Pagination Parameter | مشخصکننده شماره صفحه در لیست |
| &s=20 | View/Filter Parameter | مشخصکننده تعداد آیتمها در صفحه (Show 20 items) |
برای مواجهه با آدرسهای شامل پارامتر و صفحهبندی، بسته به معماری سایت و هدف کسبوکار، ۴ راهکار اصلی وجود دارد:
راهکار اول: تنظیم کانونیکال هوشمند (Smart Canonicalization)
این روش استانداردی است که اکثر متخصصان سئو برای صفحات پارامتردار غیرضروری پیشنهاد میکنند.
صفحات دارای پارامترهای ظاهری (?s=20, ?sort=price, ?color=red): اگر پارامتر ایجاد شده فقط نحوه نمایش را تغییر میدهد، آدرس کانونیکال باید به نسخه اصلی و پاک (Clean URL) اشاره کند.
URL جاری: website.com/tag/text1-text-2?page=1&s=20
تگ کانونیکال درون کد:
صفحات دارای صفحهبندی واقعی (?page=2, ?page=3): گوگل طبق مستندات رسمی خود اعلام کرده است که صفحات صفحهبندیشده (Pagination) محتوای یکسان نیستند زیرا آیتمهای متفاوتی را نشان میدهند. بنابراین، برای page=2 به بعد باید از Self-referencing Canonical (کانونیکال به خود) استفاده شود:
URL جاری: website.com/tag/text1-text-2?page=2
تگ کانونیکال درون کد:
راهکار دوم: استفاده از تگ noindex, follow
اگر سیستم مدیریت محتوای شما ترکیبات بیشمار و نامحدودی از پارامترها را ایجاد میکند (مثلاً ترکیب رنگ، سایز، برند، قیمت و تعداد)، کانونیکال کردن همه آنها ممکن است برای بودجه خزش کافی نباشد.
در این حالت میتوان برای صفحات دارای پارامترهای فرعی از متاتگ زیر استفاده کرد:
noindex: به گوگل دستور میدهد این آدرس خاص را در نتایج جستجو نمایش ندهد.
follow: به گوگل اجازه میدهد لینکهای موجود در این صفحه (مثل لینک مقاله یا محصول اصلی) را دنبال کند و اعتبار به آنها منتقل شود.
راهکار سوم: بهینهسازی ساختار URL و لینکسازی داخلی
یکی از دلایل اصلی ظاهر شدن این آدرسها در Search Console، لینکسازی نادرست داخلی در خود سایت است.
راهکار چهارم: تنظیمات URL Parameters در گوگل (رویکرد ابزارهای جایگزین)
در گذشته ابزاری تحت عنوان URL Parameters در گوگل سرچ کنسول وجود داشت که مستقیماً کارکرد هر پارامتر را تعیین میکرد. اگرچه گوگل این ابزار را بازنشسته کرده است، اما همچنان با استفاده از فایل robots.txt میتوان خزش پارامترهای زائد را محدود کرد.
robots.txt:
User-agent: Googlebot
Disallow: /*?*s=
Disallow: /*?*page=1$
نکته بسیار مهم: مسدود کردن آدرس در robots.txt مانع از انتقال اعتبار (Link Juice) میشود و همچنین جلوی خوانده شدن تگ کانونیکال توسط گوگل را میگیرد. بنابراین استفاده از کانونیکال یا noindex بر مسدودسازی با robots.txt ارجحیت دارد.
برای انتخاب بهترین استراتژی سئو در مواجهه با فرمتهای مختلف آدرس، جدول زیر بهعنوان راهنمای پیادهسازی کاربرد دارد:
| ساختار URL | وضعیت محتوا | تگ کانونیکال پیشنهادی | متاتگ Robots |
| [website.com/tag/text/](https://website.com/tag/text/) | صفحه اصلی آرشیو | کانونیکال به خود | index, follow |
| [website.com/tag/text/?page=1](https://website.com/tag/text/?page=1) | تکراری با صفحه اصلی | به [website.com/tag/text/](https://website.com/tag/text/) | index, follow |
| [website.com/tag/text/?page=2](https://website.com/tag/text/?page=2) | محتوای جدید (آیتمهای بعدی) | کانونیکال به خود (.../page=2) | index, follow |
| [website.com/tag/text/?s=20](https://website.com/tag/text/?s=20) | نمایش متفاوت (همان آیتمها) | به [website.com/tag/text/](https://website.com/tag/text/) | noindex, follow (اختیاری) |
| [website.com/tag/text/?sort=price](https://website.com/tag/text/?sort=price) | مرتبسازی قیمت | به [website.com/tag/text/](https://website.com/tag/text/) | noindex, follow |
پیادهسازی در وردپرس (WordPress)
اگر از افزونههای محبوب سئو مانند Yoast SEO یا Rank Math استفاده میکنید:
function custom_clean_url_redirect() {
if (isset($_GET['s']) && $_GET['s'] == '20') {
$clean_url = strtok($_SERVER["REQUEST_URI"], '?');
wp_redirect($clean_url, 301);
exit();
}
}
add_action('template_redirect', 'custom_clean_url_redirect');
تگ کانونیکال یکی از قدرتمندترین ابزارهای سئو تکنیکال برای هدایت رباتهای جستجو به سمت نسخه مرجع محتواست. در برخورد با آدرسهایی مانند:
[website.com/tag/text1-text-2?page=1&s=20](https://website.com/tag/text1-text-2?page=1&s=20):
صفحه اول با پارامتر (page=1 و s=20) باید تگ کانونیکال به آدرس اصلی بدون پارامتر ([website.com/tag/text1-text-2/](https://website.com/tag/text1-text-2/)) داشته باشد.
صفحات بعدی (page=2 به بعد) باید تگ کانونیکال به خود آن شماره صفحه داشته باشند.
در صورت ایجاد ترکیبهای بیشمار پارامتری توسط سیستم، استفاده از متاتگ noindex, follow بهترین راهکار برای حفظ بودجه خزش و جلوگیری از پیامدهای محتوای تکراری است.
0 نظر
هنوز نظری برای این مقاله ثبت نشده است.