چطور خطای “Duplicate, Google chose different canonical than user” در سرچ کنسول را رفع کنیم؟

احتمالاً شما هم توی سرچ کنسول گوگل با خطای “Duplicate, Google chose different canonical than user” روبرو شدید و براتون سوال شده که معنیش چیه. این خطا یعنی گوگل یک URL دیگه‌ای رو به جای اون صفحه‌ای که شما به عنوان نسخه اصلی معرفی کردید، برای ایندکس انتخاب کرده. این اتفاق زمانی میفته که گوگل دو یا چند محتوای خیلی مشابه یا کاملاً یکسان رو در سایت شما پیدا می‌کنه.

این مشکل رو می‌تونید توی گزارش Page Indexing در سرچ کنسول ببینید. یه چیزی شبیه به این تصویر:

خطای "Duplicate, Google chose a different canonical than user" در گزارش ایندکس صفحات سرچ کنسول

برای مثال، وقتی یکی از صفحاتی که این مشکل را داشت بررسی کردم، دیدم که محتوای آن هنوز برای هیچ‌کدام از زبان‌های دیگر ترجمه نشده بود و همچنان انگلیسی بود. به همین خاطر حدس می‌زنم که صفحات بیشتری با این وضعیت داشته باشیم. یک تأخیر کوچک در فرآیند ترجمه محتوای ما باعث بروز این مشکل شده.

نمونه‌ای از صفحه‌ای که گوگل برای آن کنونیکال متفاوتی انتخاب کرده است

حالا بیایید ببینیم اصلاً چه چیزی باعث این خطا می‌شه و چطور می‌تونیم حلش کنیم.

چه چیزی باعث خطای “duplicate, Google chose different canonical than user” می‌شود؟

چند دلیل مختلف وجود داره که ممکنه باعث بشه یک صفحه با این خطا علامت‌گذاری بشه.

محتوای تکراری یا خیلی مشابه

طبق گفته گری ایلیس (Gary Illyes) از گوگل، ۶۰٪ از کل وب محتوای تکراریه.

گوگل نمی‌خواد همه نسخه‌های یک صفحه رو در ایندکس خودش ذخیره کنه. به جاش، یک نسخه اصلی از صفحه رو ذخیره می‌کنه و بقیه نسخه‌های جایگزین رو به اون ارجاع می‌ده.

تگ کنونیکال (Canonical Link Element) فقط یکی از حدوداً ۲۰ سیگنالیه که گوگل برای تشخیص نسخه اصلی (Canonicalization) استفاده می‌کنه. در واقع این تگ فقط یک راهنمایی یا سرنخ (hint) برای گوگله و سیگنال‌های دیگه می‌تونن به گوگل بگن که یک صفحه متفاوت باید به عنوان نسخه اصلی ایندکس و به کاربرها نمایش داده بشه.

در نهایت، تمام سیگنال‌ها به نفع یک نسخه ایندکس‌شده جمع‌بندی می‌شن و خیلی از صفحات دیگه به عنوان تکراری علامت می‌خورن. اگر URL کنونیکالی که برای این صفحات مشخص شده با انتخاب گوگل یکی نباشه، شما خطای “duplicate, Google chose different canonical than user” رو می‌بینید. معمولاً این موضوع مشکل بزرگی نیست و روی رتبه شما تأثیر منفی نمیذاره، اما خب ممکنه اون صفحه‌ای نباشه که شما دوست داشتید در نتایج جستجو نمایش داده بشه.

گاهی اوقات برای یک محتوای یکسان، چندین URL مختلف وجود داره که باعث مشکل محتوای تکراری می‌شه. این اتفاق می‌تونه به خاطر تفاوت در حروف بزرگ و کوچک، وجود یا عدم وجود اسلش (/) در انتهای آدرس، شناسه‌ها (ID)، پارامترهای URL و… باشه. مثلاً همه این آدرس‌ها ممکنه وجود داشته باشن:

  • domain.com/Abc
  • domain.com/abc
  • domain.com/123
  • domain.com/?id=123

یک مورد دیگه که ممکنه با این خطا مواجه بشید، در فروشگاه‌های اینترنتیه که محصولات با تنوع بالا (مثلاً رنگ‌ها یا سایزهای مختلف) دارن، اما محتوای صفحاتشون تفاوت چندانی با هم نداره. ممکنه هر کدوم از این صفحات محصول، تگ کنونیکال به خودشون داشته باشن، اما گوگل در نهایت فقط یکی از این نسخه‌ها رو ایندکس کنه.

اگر می‌خواید فقط یک نسخه ایندکس بشه، باید برای اون نسخه اصلی یک تگ کنونیکال به خودش (self-referencing) تعریف کنید و برای بقیه نسخه‌ها یا تگ کنونیکال به نسخه اصلی بزنید، یا اون‌ها رو به نسخه اصلی ریدایرکت کنید.

نکته: در ابزارهای آنالیز سئو مثل Ahrefs Site Audit، می‌توانید گزارش دقیقی از صفحات تکراری (Duplicate) و وضعیت تگ‌های کنونیکال آن‌ها ببینید.

این مشکل برای وب‌سایت‌های بین‌المللی هم پیش میاد. بعضی وقت‌ها شرکت‌ها برای چند کشور که زبان یکسانی دارن، از محتوای مشابه یا یکسان استفاده می‌کنن. مثلاً ممکنه محتوای یکسانی برای صفحاتی که آمریکا، انگلیس و استرالیا رو هدف گرفتن، استفاده بشه. گوگل معمولاً یکی از این‌ها رو ایندکس می‌کنه، اما به لطف جادوی تگ‌های hreflang، می‌تونه در نتایج جستجو نسخه مناسب هر منطقه رو به کاربر نشون بده.

یا همون موردی که بالاتر گفتم؛ یعنی ما صفحه‌ای رو که برای یک زبان دیگه در نظر گرفته بودیم، با محتوای انگلیسی منتشر کردیم. این صفحات منتظر ترجمه بودن و به محض اینکه ترجمه بشن، مشکلشون هم حل می‌شه.

این نسخه‌های جایگزین معمولاً با همین خطای “duplicate, Google chose different canonical than user” در سرچ کنسول نمایش داده می‌شن. جالبه بدونید که گوگل توی گزارش‌های سرچ کنسول، ترافیک همه این نسخه‌ها رو فقط به حساب همون نسخه اصلی (کنونیکال) می‌ذاره، حتی اگه عملاً نسخه‌های جایگزین رو به کاربرها نشون بده.

نکته: تگ‌های hreflang به صورت جفتی کار می‌کنن تا یک «خوشه» (cluster) تشکیل بدن. ابزارهایی مثل Site Audit سایت ahrefs یک ابزار مصورسازی خوشه داره که به شما نشون می‌ده کدوم بخش‌ها مشکل دارن و فهمیدن و توضیح دادنش خیلی راحت‌تر از کار با فایل‌های اکسل معمولیه.

و البته گاهی هم خود گوگل اشتباه می‌کنه. مثلاً در مورد محتوای کپی‌شده (Syndicated content)، ممکنه گوگل به اشتباه نسخه‌ای که محتوا رو کپی کرده به عنوان نسخه اصلی انتخاب کنه، نه منبع اصلی رو!

این اتفاق برای محتوای دزدیده‌شده هم میفته. همین چند وقت پیش برای یکی از صفحات سایت Ahrefs این اتفاق افتاد. گوگل سایت دیگه‌ای رو برای محتوای اورجینال ما ایندکس کرده بود!

این مشکل ممکنه به مرور زمان خودبه‌خود حل بشه؛ در مورد این سایت فقط چند روز طول کشید. اگر شما مالک محتوایی هستید که در سایت دیگه‌ای استفاده شده، می‌تونید بر اساس قانون کپی‌رایت هزاره دیجیتال (DMCA) شکایت کنید. با استفاده از ابزار Copyright Removal گوگل می‌تونید درخواست حذف محتوای دارای کپی‌رایت رو ثبت کنید.

اشتباهات در تگ کنونیکال

مشابه اتفاقی که برای ریدایرکت‌ها میفته، تگ‌های کنونیکال هم می‌تونن دچار زنجیره (Chain) یا حلقه (Loop) بشن. صفحات اضافی در این فرآیند ممکنه با خطای “duplicate, Google chose different canonical than user” طبقه‌بندی بشن.

زنجیره کنونیکال یعنی مجموعه‌ای از URLها که تگ کنونیکال هر کدوم به URL بعدی در زنجیره اشاره می‌کنه.

شماتیک یک زنجیره کنونیکال

همچنین ممکنه با حلقه کنونیکال روبرو بشید؛ یعنی یکی از صفحات در زنجیره، به صفحه‌ای که قبلاً در مسیر بوده اشاره کنه. این یک حلقه بی‌نهایت درست می‌کنه.

شماتیک یک حلقه کنونیکال

می‌تونید این مشکلات رو در ابزارهایی مثل Site Audit سایت Ahrefs پیدا کنید. این ابزارها معمولاً این موارد رو زیر خطایی مثل “Non-canonical page specified as the canonical one” نشون می‌دن.

ممکنه به خاطر یه اشتباه ساده مثل تایپ یک کاراکتر اضافه توی تگ کنونیکال هم این خطا رو ببینید. شاید صفحه باز بشه، اما گوگل این تگ اشتباه رو نادیده می‌گیره و URL اصلی خودتون رو به عنوان کنونیکال انتخاب می‌کنه.

مشکلات رندرینگ (Rendering)

در وب‌سایت‌های جاوا اسکریپتی، مخصوصاً اون‌هایی که از مدل app shell استفاده می‌کنن، ممکنه کد HTML اولیه که به مرورگر فرستاده می‌شه، محتوا و کد خیلی کمی داشته باشه. در واقع، ممکنه همه صفحات سایت دقیقاً کد یکسانی رو نشون بدن، که حتی می‌تونه با کد سایت‌های دیگه هم یکی باشه.

اگر در ابزار آنالیز سایت خودتون تعداد زیادی صفحه تکراری در یک خوشه (cluster) می‌بینید، ممکنه مشکل شما همین باشه.

این مسئله گاهی باعث می‌شه صفحات به عنوان تکراری شناخته بشن و گوگل اصلاً سراغ رندر کردن کامل اون‌ها نره. بدتر از اون، ممکنه صفحه اشتباهی یا حتی سایت اشتباهی در نتایج جستجو نمایش داده بشه. این مشکل معمولاً به مرور زمان حل می‌شه اما می‌تونه دردسرساز باشه، مخصوصاً برای سایت‌های جدید.

چطور خطای “duplicate, Google chose different canonical than user” را برطرف کنیم؟

نحوه حل این مشکل بستگی به این داره که کدوم یکی از موارد بالا برای صفحه شما صدق می‌کنه.

۱. اگر محتوای شما واقعاً تکراری است، آن را منحصر به فرد کنید

اگر محتوای یکسان یا خیلی مشابهی دارید و می‌خواید همه اون صفحات ایندکس بشن، باید کمی وقت بذارید و اون‌ها رو از هم متمایز کنید. این مشکل معمولاً در سایت‌هایی که از محتوای تکراری زیاد (boilerplate) استفاده می‌کنن و محتوای منحصر به فرد کمی برای صفحاتشون دارن، رایجه.

بیشتر صفحاتی که در سایت ما این مشکل رو دارن، به خاطر تأخیر در فرآیند ترجمه است. ما گاهی صفحات رو برای زبان‌های دیگه قبل از اینکه کامل ترجمه بشن منتشر می‌کنیم که باعث می‌شه به عنوان تکراری شناخته بشن. به محض اینکه صفحات رو ترجمه می‌کنیم، این مشکلات هم برطرف می‌شن. صفحات ترجمه‌شده، تکراری محسوب نمی‌شن.

تصویر مربوط به رفع شدن خطاهای "duplicate, Google chose a different canonical than user" در سرچ کنسول

۲. اگر مشکل از تنظیمات کنونیکال است، آن‌ها را اصلاح کنید

برای هر نوع زنجیره یا حلقه کنونیکال، نسخه دلخواه و اصلی صفحه رو انتخاب کنید و مطمئن بشید که هم خود اون صفحه و هم بقیه نسخه‌ها، با تگ کنونیکال به همون نسخه اصلی اشاره می‌کنن.

حتی شاید بهتر باشه از سیگنال‌های قوی‌تری برای یکی‌کردن صفحات استفاده کنید، مثل ریدایرکت ۳۰۱ یا ۳۰۸.

اگر در تگ کنونیکال اشتباهی کرده بودید (مثلاً یک کاراکتر اضافه تایپ کردید) و گوگل اون رو نادیده گرفته، کافیه تگ کنونیکال رو اصلاح کنید تا به نسخه اصلی صفحه اشاره کنه.

۳. اگر مشکل از رندرینگ سایت است، از Pre-rendering یا SSR استفاده کنید

اگه مشکل شما از اینه که کد HTML اولیه همه صفحات سایتتون شبیه به همه، بهتره از راه‌حل‌هایی مثل Pre-rendering یا رندر سمت سرور (Server-Side Rendering – SSR) استفاده کنید. این تکنیک‌ها محتوای صفحه رو قبل از اینکه به دست کاربر یا ربات‌های موتور جستجو برسه، آماده (رندر) می‌کنن. با این کار، محتوای منحصر به فرد هر صفحه در کد اولیه قرار می‌گیره و این مشکل باید برطرف بشه. برای پیاده‌سازی این راه‌حل‌ها، حتماً با تیم فنی یا برنامه‌نویس سایتتون صحبت کنید.

حرف آخر

خطای “Duplicate, Google chose different canonical than user” معمولاً برای صفحات تکراری اتفاق میفته، اما نه همیشه. در بیشتر موارد، جای نگرانی نیست. معمولاً گوگل با این کار سعی داره ایندکس خودش رو تمیز و مرتب نگه داره و از شر نسخه‌های تکراری خلاص بشه، یا اینکه داره سعی می‌کنه اشتباهی که در سایت شما وجود داره رو به نوعی اصلاح کنه.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *