سلام! من سارا بحرانیام، کارشناس سئو از تیم «وزیر سئو». تا حالا شده حس کنی گوگل گیج شده و به جای اینکه صفحه اصلی و زیبای محصولت را در نتایج نشان دهد، یک صفحه بههمریخته یا نسخه چاپی آن را ایندکس کرده است؟ یا شاید نگران این هستی که با داشتن محصولات مشابه، قدرت سایتت بین صفحات مختلف تقسیم و نابود شود؟ نگران نباش، دوای درد تو «تگ کنونیکال» است.
در این مقاله قرار است یکی از حیاتیترین و البته فنیترین مباحث سئو را به زبان ساده یاد بگیریم. اگر ندانی چطور این تگ را مدیریت کنی، عملاً داری با دست خودت بودجه خزش سایتت را هدر میدهی. تسلط بر این موضوع، یکی از پایههای اصلی سئو تکنیکال داخلی در وردپرس و سایر سیستمهای مدیریت محتواست که مرز بین یک سایت حرفهای و آماتور را مشخص میکند. آمادهای تا یکبار برای همیشه پرونده محتوای تکراری را ببندیم؟ پس بزن بریم!
جدول کاربردی (Quick Facts)
| ویژگی | تگ کنونیکال (Canonical Tag) |
| وظیفه اصلی | معرفی «نسخه اصلی» محتوا به گوگل در میان صفحات مشابه. |
| محل قرارگیری | فقط در بخش <head> کد HTML سایت. |
| قدرت اجرایی | یک «سیگنال» قوی است (پیشنهاد به گوگل)، نه یک دستور اجباری. |
| مهمترین کاربرد | جلوگیری از همنوعخواری (Cannibalization) و تجمیع قدرت لینکها. |
| اشتباه رایج | استفاده همزمان با تگ noindex (این کار ممنوع است!). |
| وضعیت در وردپرس | افزونههایی مثل Yoast و RankMath خودکار آن را مدیریت میکنند. |
تگ کنونیکال (rel=”canonical”) چیست و چرا گوگل به آن وابسته است؟
بگذار خیالت را راحت کنم؛ تگ کنونیکال (Canonical Tag) یکی از قهرمانهای خاموش سئو است که اگر نباشد، گوگل در سایتت گیج میشود! به زبان خیلی ساده، تگ کنونیکال یک قطعه کد کوچک در بخش <head> سایت توست که به گوگل میگوید: «لطفاً بین تمام نسخههای مشابه این صفحه، فقط این یکی را به عنوان نسخه اصلی در نظر بگیر و رتبه بده.»
تصور کن تو یک پیراهن آبی را در سه قفسه مختلف فروشگاهت گذاشتهای. مشتری (کاربر) و انباردار (گوگل) گیج میشوند که کدام قفسه اصلی است؟ تگ کنونیکال مثل یک برچسب بزرگ روی دو قفسه فرعی است که میگوید: «جنس اصلی در قفسه شماره ۱ است، اینجا فقط نمایش اضافه داریم.»
چرا گوگل به شدت به این تگ وابسته است؟ گوگل منابع محدودی برای بررسی سایتها دارد (چیزی که به آن بودجه خزش یا Crawl Budget میگوییم). اگر سایت تو پر از صفحات تکراری باشد، رباتهای گوگل وقتشان را برای ایندکس کردن محتوای تکراری هدر میدهند و شاید اصلا وقت نکنند به صفحات مهم و جدیدت سر بزنند. علاوه بر این، گوگل میخواهد به کاربر بهترین و «جامعترین» نتیجه را نشان دهد. وقتی کنونیکال را درست تنظیم میکنی، به گوگل کمک میکنی تا دقیقترین نسخه را انتخاب کند و این یعنی احترام به وقت کاربر و منابع گوگل.
نکته طلایی: تگ کنونیکال فقط یک پیشنهاد به گوگل است، نه یک دستور قطعی! اما اگر درست اجرا شود، گوگل معمولاً به این پیشنهاد احترام میگذارد.
مفهوم سیگنالدهی به رباتها: تفاوت “نسخه اصلی” و “کپیها”
در دنیای سئو، ما با دو مفهوم “Master Copy” (نسخه اصلی) و “Duplicates” (کپیها) سروکار داریم. شاید برای تو که مدیر سایتی، صفحه example.com/shop با صفحه example.com/shop?sort=price یکی باشد، اما برای رباتهای گوگل اینها دو صفحه کاملاً متفاوت هستند!
اینجاست که بحث سیگنالدهی (Signaling) پیش میآید. وقتی از تگ کنونیکال استفاده میکنی، داری یک سیگنال قوی میفرستی که:
- صفحه اصلی (Canonical): این صفحهای است که میخواهم در نتایج گوگل دیده شود. تمام اعتبار باید اینجا جمع شود.
- صفحات کپی (Non-Canonical): این صفحات وجود دارند (مثلاً برای فیلتر کردن محصولات)، اما نباید جداگانه رتبه بگیرند.
اگر این سیگنال را نفرستی، گوگل خودش سعی میکند حدس بزند کدام صفحه اصلی است. و باور کن دوست نداری سرنوشت سئوی سایتت را به “حدس و گمان” الگوریتمها بسپاری! ممکن است گوگل صفحهای را انتخاب کند که توضیحات کامل ندارد یا اصلا آن صفحهای نیست که تو میخواهی بفروشی. پس با تعیین دستی کنونیکال، کنترل فرمان را خودت به دست میگیری.
جلوگیری از همنوعخواری (Cannibalization) و تجمیع قدرت صفحات (Link Equity)
یکی از بدترین اتفاقات در سئو، «همنوعخواری» یا Cannibalization است. این یعنی صفحات سایت خودت به جای رقابت با رقبای بیرونی، شروع کنند به جنگیدن با همدیگر برای یک کلمه کلیدی!
فرض کن یک مقاله جامع درباره “کفش چرم” نوشتی و یک صفحه محصول هم برای “کفش چرم” داری و محتوایشان شبیه هم است. بدون کنونیکال، این دو صفحه قدرت هم را خنثی میکنند و هیچکدام به رتبه ۱ نمیرسند. تگ کنونیکال به گوگل میگوید: «جنگ تمام! تمام قدرت را بده به صفحه محصول.»
جادوی تجمیع قدرت (Link Equity Consolidation): این بخش مورد علاقه من است! تصور کن ۳ سایت مختلف به ۳ نسخه متفاوت از یک صفحه در سایتت لینک دادهاند (مثلاً یکی به نسخه HTTP، یکی به HTTPS و یکی به نسخه موبایل). اگر کنونیکال نداشته باشی، این اعتبار بین ۳ صفحه تقسیم و ضعیف میشود. اما با کنونیکال، تمام این اعتبارات و بکلینکها مثل جویهایی که به یک رودخانه میریزند، جمع میشوند و به سمت «نسخه اصلی» سرازیر میشوند. نتیجه؟ نسخه اصلی با قدرتی چند برابر در نتایج گوگل ظاهر میشود. این یعنی ارزش افزوده واقعی و جلوگیری از هدر رفتن زحماتت.
تفاوت حیاتی تگ کنونیکال با ریدایرکت ۳۰۱ (301 Redirect)
خیلی از بچههایی که تازه وارد سئو شدن، این دوتا رو با هم اشتباه میگیرن. بذار یک بار برای همیشه تفاوتش رو برات روشن کنم چون انتخاب اشتباه میتونه فاجعه به بار بیاره.
تفاوت اصلی در «تجربه کاربر» است.
- ریدایرکت ۳۰۱ (انتقال کامل): وقتی از ریدایرکت ۳۰۱ استفاده میکنی، هم کاربر و هم ربات گوگل به زور به صفحه جدید منتقل میشوند. یعنی صفحه قدیم کلاً از دسترس خارج میشود.
- تگ کنونیکال (اشاره نرم): در اینجا، صفحه دوم هنوز باز میشود و کاربر میتواند آن را ببیند (مثلاً صفحهای که محصولات را از ارزان به گران مرتب کرده). اما به گوگل میگویی: «اگرچه کاربر این صفحه را میبیند، ولی تو آن را ایندکس نکن و اعتبارش را بده به صفحه اصلی.»
برای اینکه راحتتر تصمیم بگیری، از جدول زیر استفاده کن:
| ویژگی | تگ کنونیکال (rel=”canonical“) | ریدایرکت ۳۰۱ (301 Redirect) |
| کاربرد اصلی | مدیریت محتوای تکراری که باید در دسترس کاربر بماند. | حذف صفحات قدیمی یا انتقال دائم به آدرس جدید. |
| رفتار با کاربر | کاربر روی همان صفحه میماند و محتوا را میبیند. | کاربر بلافاصله به آدرس جدید پرتاب میشود. |
| رفتار با گوگل | این صفحه را نادیده بگیر، ولی اعتبارش را به اصلی بده. | این صفحه مرده است؛ آدرس جدید را جایگزین کن. |
| مثال رایج | صفحات فیلتر، نسخه چاپی مقالات، محصولات مشابه با رنگ متفاوت. | تغییر دامین، حذف محصول و ارجاع به مدل جدیدتر، رفع خطای 404. |
سناریوهای حیاتی استفاده از Canonical در فروشگاههای اینترنتی و سایتهای بزرگ
مدیریت یک فروشگاه اینترنتی بدون تگ کنونیکال، مثل مدیریت ترافیک تهران بدون چراغ راهنمایی است؛ هرجومرج مطلق! در سایتهای بزرگ، ما با هزاران صفحه روبهرو هستیم که شاید ظاهری متفاوت داشته باشند، اما «محتوای اصلی» (Main Content) یکسانی را ارائه میدهند.
گوگل در مواجهه با سایتهای بزرگ، سختگیرتر است. اگر سیستم کنونیکال سایت درست چیده نشده باشد، الگوریتمها ممکن است صفحات بیاهمیت (مثل صفحه فیلتر ارزانترین جورابها) را به جای صفحه اصلی دستهبندی ایندکس کنند. در ادامه، سه موقعیت خطرناک را بررسی میکنیم که اگر درست مدیریت شوند، سکوی پرتاب سئوی سایت تو خواهند بود.
مدیریت پارامترهای URL (فیلترها، مرتبسازی و جستجو در سایت)
این شایعترین مشکلی است که در ۹۰٪ فروشگاههای اینترنتی میبینم. وقتی کاربر در سایت تو از فیلترها استفاده میکند، URL تغییر میکند اما محتوا تغییر بنیادینی نمیکند.
فرض کن در صفحه «خرید موبایل» هستی:
- URL اصلی: com/mobile
- URL با فیلتر رنگ: com/mobile?color=black
- URL با مرتبسازی قیمت: com/mobile?sort=price_desc
چرا این خطرناک است؟ برای گوگل، اینها ۳ صفحه متفاوت هستند! اگر برای این پارامترها کنونیکال تعریف نکنی، گوگل فکر میکند تو ۳ صفحه با محتوای تکراری داری. این یعنی رقیق شدن اعتبار صفحه (Keyword Cannibalization).
راهکار متخصص: در تمام صفحاتی که دارای پارامتر (Parameter) هستند، باید تگ کنونیکال به URL تمیز و اصلی اشاره کند. یعنی در کدنویسی صفحه ?color=black، باید داشته باشیم: <link rel=”canonical” href=”https://example.com/mobile” />
نکته استراتژیک سارا: تنها استثنا زمانی است که فیلتر تو آنقدر جستجو دارد که میخواهی جداگانه سئو شود (مثلاً “خرید موبایل سامسونگ”). در این حالت، آن صفحه باید یک URL مستقل (Slug) داشته باشد، نه پارامتری، و کنونیکال آن باید به خودش اشاره کند (Self-referencing).
حل مشکل دسترسی به یک محصول از چندین دستهبندی مختلف (Breadcrumbs Issue)
این سناریو کمی پیچیده است اما اگر حلش کنی، معماری سایتت بیمه میشود. در بسیاری از CMSها، یک محصول میتواند در چند مسیر مختلف قرار بگیرد و URLهای متفاوتی تولید کند.
مثلاً یک «لپتاپ مکبوک» ممکن است با این دو آدرس باز شود:
- com/electronics/laptops/macbook-pro (مسیر دستهبندی لپتاپ)
- com/brands/apple/macbook-pro (مسیر برند اپل)
چالش کجاست؟ محتوای صفحه دقیقاً یکی است، اما آدرسها فرق دارند. اگر هر دو ایندکس شوند، اعتبار لینکهایی که به این محصول داده میشود بین دو آدرس تقسیم شده و هیچکدام به رتبه ۱ نمیرسند.
راه حل طلایی: تو باید یکی از این مسیرها را به عنوان «مسیر ارجح» انتخاب کنی (معمولاً مسیری که کوتاهتر است یا به دستهبندی اصلی محصول اشاره دارد). سپس در هر دو صفحه، تگ کنونیکال را دقیقاً به همان آدرس انتخابی تنظیم کنی. این کار باعث میشود حتی اگر کاربر از طریق منوی “برندها” وارد شد، گوگل بداند که اعتبار نهایی باید به URL دستهبندی اصلی واریز شود.
مدیریت نسخههای چاپی (Print Version) و نسخه موبایل جداگانه (m-dot)
شاید فکر کنی کسی دیگر صفحه را پرینت نمیگیرد، اما رباتهای گوگل هنوز این URLها را میبینند! بسیاری از سایتها به طور خودکار یک نسخه پرینتفرندلی تولید میکنند:
- com/article-name (نسخه وب)
- com/print/article-name (نسخه چاپی)
اگر حواست نباشد، گوگل نسخه چاپی را که معمولاً زشت و بدون استایل است، ایندکس میکند. راهکار: در نسخه چاپی، حتماً تگ کنونیکال را به نسخه اصلی مقاله در وب هدایت کن.
و اما نسخه موبایل (m. site): اگر سایت تو ریسپانسیو (Responsive) نیست و نسخه جداگانه موبایل داری (مثلاً m.example.com)، باید رابطه بین نسخه دسکتاپ و موبایل را به گوگل بفهمانی تا جریمه نشوی:
- در نسخه دسکتاپ: با تگ rel=”alternate” به گوگل بگو که نسخه موبایلی هم وجود دارد.
- در نسخه موبایل: با تگ rel=”canonical” به نسخه دسکتاپ اشاره کن.
این یعنی به گوگل میگوییم: «این نسخه موبایل است، اما برای محاسبه اعتبار و رتبهبندی، نسخه دسکتاپ را معیار اصلی قرار بده.»
قوانین طلایی پیادهسازی کنونیکال (بایدها و نبایدها)
پیادهسازی کنونیکال فقط “کپی-پیست” کردن یک خط کد نیست؛ یک استراتژی دقیق است. یک اشتباه کوچک در اینجا (مثلاً اشاره اشتباه به یک صفحه ۴۰۴) میتواند باعث شود گوگل کل آن صفحه را از نتایج حذف کند. پس بگذار ۳ قانون مقدس کنونیکال را با هم مرور کنیم که باید مثل اسم خودت حفظ باشی.
قانون Self-Referencing: چرا هر صفحه باید به خودش هم کنونیکال بزند؟
شاید بپرسی: «سارا، اگر یک صفحه نسخه کپی ندارد و خودش نسخه اصلی است، چه نیازی به تگ کنونیکال دارد؟» این یکی از رایجترین سوالات دانشجویان من است.
پاسخ اینجاست: هر صفحه، حتی اگر یونیکترین صفحه جهان باشد، باید یک تگ کنونیکال داشته باشد که به آدرس خودش اشاره کند. به این میگوییم Self-Referencing Canonical.
چرا این کار حیاتی است؟
- دفاع در برابر پارامترهای ناخواسته: گاهی لینکهایی در سطح وب به سایتت داده میشود که پارامترهای عجیب دارند (مثل utm_source برای کمپینها یا session_id). اگر صفحه تو به خودش اشاره نکند، گوگل ممکن است com/page?utm=google را به عنوان یک صفحه جدید ایندکس کند. اما با داشتن کنونیکالِ “ارجاع به خود”، به گوگل میگویی: «مهم نیست چه چیزی به انتهای آدرس من چسبیده، آدرس اصلی و تمیز من این است.»
- جلوگیری از سرقت محتوا (Scraping): اگر رباتهای کپیکار محتوای تو را بردارند و در سایت خودشان بگذارند، گاهی کد HTML را هم کپی میکنند. اگر تگ کنونیکال داشته باشی که به سایت تو اشاره میکند، حتی اگر آنها کپی کنند، اعتبار آن محتوا به سایت تو برمیگردد!
فرمول ساده: اگر در صفحه https://example.com/about هستی، باید در هدر آن کد زیر وجود داشته باشد: <link rel=”canonical” href=”https://example.com/about” />
استفاده از Cross-Domain Canonical برای محتوای بازنشر شده (Syndicated Content)
آیا تا حالا شده یک مقاله عالی در سایتت بنویسی و بخواهی آن را در «ویرگول»، «لینکدین» یا سایتهای خبری بزرگ (به عنوان رپورتاژ یا پست مهمان) بازنشر کنی؟ این کار عالی است، اما یک خطر بزرگ دارد: سایتهای بزرگ (مثل لینکدین) اعتبار دامنه (DA) خیلی بالاتری نسبت به تو دارند.
اگر گوگل ببیند یک محتوای یکسان هم در سایت توست و هم در لینکدین، به احتمال زیاد نسخه لینکدین را رتبه میدهد و سایت خودت را حذف میکند!
راه نجات: Cross-Domain Canonical وقتی محتوایت را در یک سایت دیگر منتشر میکنی، باید از آنها بخواهی (یا در تنظیماتشان وارد کنی) که تگ کنونیکال آن صفحه را به مقاله اصلی در سایت تو لینک دهند.
این کار چه سودی دارد؟
- کاربران آن سایت محتوای تو را میخوانند (برندینگ).
- گوگل میفهمد که “منبع اصلی” و “مالک معنوی” این محتوا سایت توست.
- تمام اعتبار و قدرت سئوی آن مقاله در سایت خارجی، مستقیماً به سایت تو منتقل میشود.
اهمیت استفاده از آدرسهای مطلق (Absolute URLs) به جای نسبی
این نکته فنی است که خیلی از توسعهدهندگان وب (Developers) نادیده میگیرند، چون دوست دارند کدنویسی تمیز و کوتاه داشته باشند. اما در سئو، “کوتاه بودن” همیشه خوب نیست.
ما دو نوع آدرسدهی در کدنویسی داریم:
- آدرس نسبی (Relative Path): /blog/seo-tips (بدون دامنه و پروتکل)
- آدرس مطلق (Absolute Path): https://example.com/blog/seo-tips (آدرس کامل)
چرا باید همیشه از آدرس مطلق استفاده کنی؟ اگر از آدرس نسبی استفاده کنی (مثلاً <link rel=”canonical” href=”/page-a” />) و کسی محتوای تو را در سایت خودش (bad-site.com) کپی کند، مرورگر و ربات گوگل آن آدرس نسبی را بر اساس دامنه آنها تفسیر میکنند (یعنی bad-site.com/page-a). نتیجه؟ تو ناخواسته به سایت سارق اعتبار دادهای!
اما وقتی از آدرس مطلق استفاده میکنی (https://…)، مهم نیست این کد در کجای اینترنت قرار بگیرد؛ همیشه و قاطعانه به سایت تو اشاره میکند. همچنین، استفاده از آدرس مطلق جلوی اشتباهات پروتکل (http در برابر https) و اشتباهات مربوط به www را میگیرد.
قانون: در تگ کنونیکال، همیشه، همیشه و همیشه از آدرس کامل (https + دامنه + مسیر) استفاده کن. هیچ عذری پذیرفته نیست!
اشتباهات مرگبار در کنونیکالسازی که سئو را نابود میکنند
تصور کن داری به یک راننده (گوگل) آدرس میدهی. اگر آدرس را اشتباه بدهی یا او را گیج کنی، او کلافه میشود و دیگر به حرفت گوش نمیدهد. اشتباهات کنونیکال دقیقاً همین کار را با گوگل میکنند: گیج کردن رباتها تا مرز نادیده گرفتن دستورات تو.
وقتی گوگل متوجه شود که تگهای کنونیکال سایتت غیرقابل اعتماد یا متناقض هستند، تصمیم میگیرد خودش فرمان را به دست بگیرد و انتخابهای تو را نادیده بگیرد. و باور کن، ما اصلاً نمیخواهیم کنترل سایت را به الگوریتمهای ماشینی بسپاریم.
زنجیره کنونیکال (Canonical Chains) و حلقههای بیپایان
این یکی از آن اشتباهاتی است که منابع سرور و بودجه خزش (Crawl Budget) تو را میبلعد. زنجیره کنونیکال چیست؟ فرض کن صفحه A میگوید: «من اصلی نیستم، برو سراغ صفحه B». بعد صفحه B میگوید: «من هم اصلی نیستم، برو سراغ صفحه C». این یعنی: A -> B -> C.
گوگل برای رسیدن به مقصد نهایی باید چند بار مسیرش را عوض کند. این کار باعث هدر رفتن وقت رباتها میشود و ریسک ایندکس نشدن صفحه C را بالا میبرد.
حلقه بیپایان (Infinite Loop): این حالت فاجعه است! صفحه A به B اشاره میکند و صفحه B دوباره به A اشاره میکند (A -> B -> A). در این وضعیت، گوگل در یک دور باطل گیر میافتد و در نهایت هر دو تگ را نادیده میگیرد و ممکن است هر دو صفحه را به عنوان دابلیکیت شناسایی کند.
قانون: همیشه مسیر مستقیم را انتخاب کن! اگر صفحه اصلی C است، صفحه A و صفحه B باید مستقیماً به C اشاره کنند، نه به یکدیگر.
اشاره به صفحات ۴۰۴ یا ریدایرکت شده در تگ کنونیکال
این اشتباه مثل این است که روی پاکت نامه آدرس مقصدی را بنویسی که سالهاست تخریب شده!
- اشاره به صفحه ۴۰۴ (Not Found): اگر در صفحه A تگ کنونیکال را به صفحهای بزنی که حذف شده (۴۰۴)، گوگل گیج میشود. تو داری میگویی «اعتبار این صفحه را بده به آن یکی»، ولی آن یکی وجود ندارد! نتیجه؟ گوگل صفحه A را هم ایندکس نمیکند یا کلاً سیگنال تو را نادیده میگیرد.
- اشاره به صفحه ریدایرکت شده (301): خیلیها این اشتباه را میکنند. مثلاً صفحه A را کنونیکال میکنند به صفحه B، در حالی که خود صفحه B ریدایرکت شده روی صفحه این کار هم یک زنجیره سیگنال (Signal Chain) ایجاد میکند. ربات گوگل اول تگ را میبیند، میرود سراغ B، بعد ریدایرکت میشود به C.
راهکار: همیشه قبل از تنظیم تگ کنونیکال، مطمئن شو که آدرس مقصد نهایی:
- باز میشود (کد وضعیت 200 OK).
- خودش به جای دیگری ریدایرکت نمیشود.
- خطای سرور (5xx) ندارد.
تضاد سیگنالها: استفاده همزمان از noindex و rel=canonical
اینجا جایی است که خیلیها گیر میکنند. بیاییم منطقش را بررسی کنیم:
- تگ noindex میگوید: «گوگل عزیز، لطفاً این صفحه را در نتایج جستجو نشان نده.»
- تگ rel=”canonical” میگوید: «گوگل عزیز، این صفحه نسخهای از صفحه X است، پس اعتبارش را به X منتقل کن.»
وقتی هر دو را همزمان در یک صفحه استفاده میکنی، داری دو دستور متناقض به گوگل میدهی. گوگل معمولاً در این دعوا، طرف noindex را میگیرد. یعنی صفحه را ایندکس نمیکند. اما مشکل بزرگتر اینجاست: وقتی صفحهای noindex میشود، به مرور زمان گوگل خزش (Crawl) آن را متوقف میکند و در نتیجه، آن تگ کنونیکالی که قرار بود اعتبار (Link Juice) را منتقل کند، دیگر دیده نمیشود.
نتیجه: اعتبار لینکهایی که به آن صفحه داده شده، به صفحه اصلی منتقل نمیشود و در فضا دود میشود!
توصیه تخصصی:
- اگر میخواهی اعتباری منتقل شود (مثلاً برای صفحات پارامتردار)، فقط از Canonical استفاده کن (خود به خود صفحه فرعی از نتایج حذف میشود).
- اگر میخواهی صفحه کلاً حذف شود و اعتباری هم ندارد (مثل صفحه تشکر از خرید)، فقط از noindex استفاده کن.
- هرگز این دو را با هم ترکیب نکن.
آموزش تنظیم تگ کنونیکال در وردپرس و کدنویسی دستی
اولین چیزی که باید بدانی این است که سیستمهای مدیریت محتوا (CMS) مدرن مثل وردپرس، به طور پیشفرض خیلی هوشمند هستند. وقتی یک صفحه جدید میسازی، آنها خودکار یک تگ Self-Referencing Canonical (که قبلاً در مورد اهمیتش گفتم) برای آن صفحه میسازند.
پس چالش اصلی کجاست؟ زمانی که تو میخواهی این رفتار پیشفرض را تغییر دهی؛ یعنی میخواهی به سیستم بگویی: «این صفحه را به عنوان اصلی در نظر نگیر، بلکه اعتبارش را به فلان صفحه دیگر منتقل کن.»
تنظیمات پیشرفته در افزونههای Rank Math و Yoast SEO
دو تا از غولهای سئوی وردپرس، یعنی Yoast SEO و Rank Math، این کار را مثل آب خوردن کردهاند. نکته مهم اینجاست که اگر فیلد کنونیکال را در این افزونهها خالی بگذاری، آنها به صورت پیشفرض آدرس همان صفحه را قرار میدهند (که درست هم هست). اما اگر میخواهی تغییرش دهی، مسیر زیر را دنبال کن:
۱. در افزونه Yoast SEO (یوست سئو): وقتی در صفحه ویرایش نوشته یا محصول هستی، اسکرول کن پایین تا به باکس تنظیمات Yoast برسی.
- روی تب «پیشرفته» (Advanced) کلیک کن.
- دنبال فیلدی بگرد به نام «نشانی کانونیکال» (Canonical URL).
- آدرس کامل (https://…) صفحهای که میخواهی به عنوان “نسخه اصلی” شناخته شود را اینجا پیست کن.
- صفحه را بهروزرسانی کن. تمام!
۲. در افزونه Rank Math (رنک مث): رنک مث هم مشابه یوست است، اما معمولاً تنظیماتش در سایدبار (نوار کناری) یا باکس متا قرار دارد.
- در صفحه ویرایش، روی آیکون کیف ابزار (که مربوط به تنظیمات پیشرفته است) کلیک کن. این بخش معمولاً با عنوان «Advanced» مشخص شده.
- فیلدی میبینی با عنوان «Canonical URL».
- آدرس مقصد را وارد کن.
نکته کنکوری : دقت کن که دقیقاً آدرس URL را کپی کنی. یک اسلش (/) اضافه یا کم، یا نوشتن http به جای https میتواند باعث شود گوگل سیگنال تو را نادیده بگیرد. همیشه کپی-پیست کن، تایپ نکن!
تزریق کد در بخش <head> برای سایتهای اختصاصی (HTML)
اگر سایتت وردپرسی نیست و از کدنویسی اختصاصی (مثل Laravel, Python, یا حتی HTML خام) استفاده میکنی، باید آستینها را بالا بزنی. تگ کنونیکال باید حتماً و قطعاً در بخش <head> سند HTML قرار بگیرد، نه در <body>.
ساختار استاندارد کد: کد زیر را باید در بین تگهای <head> و </head> قرار دهی:
<link rel=”canonical” href=”https://example.com/page-main-version” />
چکلیست مهم برای توسعهدهندگان (Developers):
- داینامیک بودن (Dynamic Generation): اگر برنامهنویس هستی، نباید این کد را دستی در هر صفحه بنویسی! باید متغیری تعریف کنی که به صورت خودکار URL فعلی (تمیز و بدون پارامتر) را در این تگ قرار دهد.
- مثال PHP:
<link rel=”canonical” href=”<?php echo $canonical_url; ?>” />
- آدرسهای مطلق (Absolute URLs): همانطور که در بخشهای قبل تاکید کردم، هرگز از آدرسهای نسبی مثل /products/shoes استفاده نکن. حتماً دامنه کامل را در متغیر بگنجان.
- یکتا بودن: مطمئن شو که در کدهای سایتت، اشتباهاً دو بار تگ کنونیکال چاپ نشود (یک بار توسط فریمورک و یک بار دستی). وجود دو تگ کنونیکال متفاوت در یک صفحه، باعث میشود گوگل هر دو را نادیده بگیرد.
عیبیابی و آنالیز وضعیت کنونیکالها با ابزارهای حرفهای
در دنیای سئو، “اعتماد کردن” خوب است، اما “بررسی کردن” ضروری است! ما ابزارهای قدرتمندی داریم که مثل دستگاه اشعه ایکس عمل میکنند و به ما نشان میدهند که رباتهای گوگل واقعاً چه برداشتی از تگهای کنونیکال ما دارند. دو ابزار اصلی ما در این اتاق جراحی، Google Search Console (برای دیدن نتایج واقعی) و Screaming Frog (برای شبیهسازی و پیشگیری) هستند. بیایید یاد بگیریم چطور گزارشهای پیچیده آنها را مثل روزنامه صبح بخوانیم.
استفاده از گزارش “Page Indexing” در گوگل سرچ کنسول (بخش Alternate page with proper canonical tag)
وقتی وارد بخش Pages در سرچ کنسول میشوی، در قسمت “Why pages aren’t indexed” (چرا صفحات ایندکس نشدهاند)، با گزینهای روبرو میشوی به نام: Alternate page with proper canonical tag (صفحه جایگزین با تگ کانونیکال مناسب).
بگذار خیالت را راحت کنم: این یک خطا نیست! در واقع، این یکی از بهترین پیامهایی است که میتوانی ببینی.
این پیام چه میگوید؟ گوگل دارد به تو میگوید: «من این صفحه را پیدا کردم، دیدم کپیِ یک صفحه دیگر است. تو هم در آن تگ کنونیکال گذاشته بودی و آدرس اصلی را معرفی کرده بودی. من هم حرفت را گوش کردم، این صفحه کپی را ایندکس نکردم و اعتبارش را به همان آدرسی که خواسته بودی دادم.»
وظیفه تو چیست؟
- روی این گزارش کلیک کن.
- چند URL را به صورت تصادفی بررسی کن.
- مطمئن شو صفحاتی که اینجا لیست شدهاند، واقعاً همانهایی هستند که نمیخواستی ایندکس شوند (مثل صفحات فیلتردار، پارامترهای تبلیغاتی و…).
- اگر صفحه مهمی را اینجا دیدی، یعنی اشتباهاً به آن تگ کنونیکال زدهای و باید سریعاً اصلاحش کنی.
شناسایی خطای “Duplicate without user-selected canonical”
اینجا وضعیت کمی نگرانکننده میشود. این پیام یعنی گوگل صفحات تکراری در سایتت پیدا کرده، اما تو هیچ تگ کنونیکالی برای آنها تعریف نکردهای!
در این وضعیت، گوگل مثل یک معلم خسته است که وقتی دانشآموز (تو) جواب را نمیگوید، خودش مجبور است حدس بزند. گوگل خودش تصمیم میگیرد کدام نسخه را “اصلی” و کدام را “کپی” در نظر بگیرد. و مشکل اینجاست: گوگل ممکن است اشتباه حدس بزند.
چرا این خطرناک است؟
- ممکن است گوگل نسخه چاپی یا نسخه PDF را به عنوان صفحه اصلی ایندکس کند و صفحه زیبای محصولت را حذف کند.
- اعتبار صفحات بین نسخههای مختلف پخش میشود (Cannibalization).
راهکار عملی:
- لیست URLهای این بخش را دانلود کن.
- بررسی کن که چرا این صفحات ایجاد شدهاند؟ (آیا پارامترهای URL هستند؟ یا محتوای تکراری در دستهبندیها؟).
- سریعاً برای تمام این صفحات، تگ کنونیکال تعریف کن (یا به خودشان، یا به صفحه اصلی مربوطه). با این کار، کنترل را از دست الگوریتم خارج میکنی و به دست خودت میگیری.
خزش سایت با Screaming Frog برای یافتن کنونیکالهای شکسته
سرچ کنسول به تو میگوید «چه اتفاقی افتاده است» (گذشته)، اما Screaming Frog به تو میگوید «چه چیزی در سایت وجود دارد» (حال). قبل از اینکه منتظر گزارش گوگل باشی، خودت با این ابزار سایت را اسکن کن.
بعد از اینکه سایت را کراول کردی، به تب Canonical برو. در اینجا باید دنبال “فاجعههای خاموش” بگردی:
- Canonicalised to 4XX: این یعنی تگ کنونیکال تو به صفحهای اشاره میکند که وجود ندارد (خطای ۴۰۴)! این بدترین حالت ممکن است؛ چون هم صفحه فعلی ایندکس نمیشود و هم مقصدی برای انتقال اعتبار وجود ندارد.
- Canonicalised to 5XX: اشاره به صفحهای که خطای سرور دارد.
- Non-Indexable Canonical: این خیلی رایج است. تو تگ کنونیکال زدهای به صفحه B، اما خود صفحه B نوایندکس (noindex) است! این یعنی بنبست. اعتبار به صفحه B میرسد و همانجا میمیرد.
توصیه حرفهای: در Screaming Frog، حتماً فیلتر را روی “Missing” بگذار. این لیست صفحاتی را به تو میدهد که اصلاً تگ کنونیکال ندارند. طبق قانون “Self-Referencing” که یاد گرفتیم، این لیست باید خالی باشد. اگر خالی نیست، یعنی کار ناتمام داری!
جمعبندی و نتیجهگیری
خب دوست من، خسته نباشی! در این مقاله یاد گرفتیم که تگ کنونیکال یک ابزار ساده اما قدرتمند است که به گوگل میگوید: «لطفاً اینجا را نگاه کن، اصل جنس اینجاست!». ما با هم سناریوهای پیچیده فروشگاههای اینترنتی را بررسی کردیم، تفاوتش با ریدایرکت ۳۰۱ را فهمیدیم و یاد گرفتیم چطور با یک خط کد ساده، از هدر رفتن اعتبار صفحات جلوگیری کنیم.
یادت باشد، سئو یعنی جزئیات. همین تنظیمات کوچک مثل “Self-Referencing Canonical” است که در درازمدت باعث میشود سایت تو در برابر رقبا قد علم کند. حالا نوبت توست؛ همین الان سرچ کنسول سایتت را باز کن و بخش Pages را چک کن. آیا خطای کنونیکال داری؟ اگر هنوز سوالی داری یا حس میکنی ساختار سایتت پیچیدهتر از این حرفهاست، من و تیم «وزیر سئو» اینجاییم تا بهت کمک کنیم. سوالت را همین پایین بپرس تا خودم پاسخ بدم. موفق باشی!
سوالات متداول (FAQ)
۱. آیا همه صفحات سایت نیاز به تگ کنونیکال دارند؟
بله، قطعاً! حتی اگر صفحهای کپی ندارد، باید یک تگ کنونیکال داشته باشد که به آدرس خودش اشاره کند (به این میگوییم Self-Referencing). این کار جلوی مشکلات ناشی از پارامترهای ناخواسته و سرقت محتوا را میگیرد.
۲. تفاوت تگ کنونیکال با ریدایرکت ۳۰۱ چیست؟
در ریدایرکت ۳۰۱، کاربر و گوگل هر دو به آدرس جدید منتقل میشوند و صفحه قدیم از دسترس خارج میشود. اما در تگ کنونیکال، صفحه فرعی همچنان برای کاربر قابل مشاهده است، اما گوگل آن را ایندکس نمیکند و اعتبارش را به صفحه اصلی میدهد.
۳. آیا میتوانم برای یک صفحه همزمان از noindex و canonical استفاده کنم؟
خیر، این یکی از بدترین اشتباهات است! این دو سیگنال متناقض هستند. اگر میخواهید اعتبار صفحه منتقل شود، فقط از Canonical استفاده کنید. اگر میخواهید صفحه کلاً از دید گوگل مخفی شود و اعتباری هم ندارد، از noindex استفاده کنید.
۴. اگر محتوای سایتم را در سایتهای دیگر (مثل ویرگول یا لینکدین) منتشر کنم، چه کنم؟
حتماً باید از ویژگی «Cross-Domain Canonical» استفاده کنید. یعنی در تنظیمات آن سایت خارجی، آدرس مقاله اصلی در سایت خودتان را به عنوان تگ کنونیکال وارد کنید تا گوگل بفهمد منبع اصلی شما هستید و رتبه سایتتان حفظ شود.