در گذشته راه حل از بین بردن صفحات تکراری در موتور های جستجو، ریدایرکت (از نوع 301) کردن آن ها به یک آدرس ثابت بود، مثلا در مورد www در اول آدرس ها توصیه می شد آدرس سایت/وبلاگ را بر روی www یا بدون www قفل کنید . اما قابلیت نسبتا جدید تری که در این مقاله قصد دارم در مورد آن صحبت کنم، Canonical Url Tag است که خوشبختانه بر روی 3 موتور جستجوی google، yahoo و bing پشتیبانی می شود.
اما Canonical Url چیست؟
Canonical url در واقع آدرسی است که به صفحه ی مرجع خود اشاره می کند، این آدرس توسط تگ link در header صفحه ی تکراری قرار می گیرد(در تگ head)، همانند زیر:
{moscode lang="html4strict"}
{/moscode}
این تگ توسط خصوصیت rel=”canonical” برای موتور های جستجو متمایز می شود و زمانی که ربات موتور جستجو به صفحه ای می رسد که داری این تگ هست، با آن به عنوان یک صفحه ی کپی برخورد می کند و کلیه ی محتوا و رنک آن را به حساب آدرس ذکر شده قرار می دهد. برای درک بهتر به تصویر زیر توجه کنید:
همانطور که مشاهده می کنید پارامتر color=blue در آدرس بالا، یک صفحه ی تکراری ایجاد می کند که به وسیله ی canonical url tag ربات موتور جستجو به آدرس دوم هدایت می شود، در واقع چیزی شبیه به 301 ریدایرکت را نیز در اینجا نیز داریم اما فقط برای موتور های جستجو.
به صورت کلی سه تفاوت عمده بین این دو وجود دارد:
* 301 ریدایرکت کلیه ی ترافیک های یک صفحه، اعم از کاربر عادی و یا ربات ها را به صفحه ی مقصد هدایت می کند، در حالی که canonical url تنها برای موتور های جستجو است.
* در canonical url موتور جستجو تصمیم گیرنده ی این است که صفحه را ریدایرکت کند یا خیر و این مورد بر اساس برخی پارامتر ها مورد ارزیابی قرار می گیرد تا اگر اشتباها این تگ در صفحه ای قرار گرفت، از ریدایرکت آن جلوگیری شود. اما در 301 ریدایرکت ارزیابی خاصی بر روی آن صورت نمی گیرد و مستقیما ریدایرکت انجام می شود.
* 301 ریدایرکت به صورت cross domain عمل می کند، یعنی امکان ریدایرکت از یک دومین به دومین دیگر هم وجود دارد، در حالی که canonical تنها مربوط به همان دومین هست (بعلاوه ی ساب دومین های همان دومین).
اما برخی نکات رو هم از زبان خود سه موتور جستجو ی یاهو، گوگل و بینگ بخوانید:
from Google:
Is rel="canonical" a hint or a directive? It's a hint that we honor strongly. We'll take your preference into account, in conjunction with other signals, when calculating the most relevant page to display in search results.
Can I use a relative path to specify the canonical, such as ? Yes, relative paths are recognized as expected with the tag. Also, if you include a link in your document, relative paths will resolve according to the base URL.
Is it okay if the canonical is not an exact duplicate of the content? We allow slight differences, e.g., in the sort order of a table of products. We also recognize that we may crawl the canonical and the duplicate pages at different points in time, so we may occasionally see different versions of your content. All of that is okay with us.
What if the rel="canonical" returns a 404? We'll continue to index your content and use a heuristic to find a canonical, but we recommend that you specify existent URLs as canonicals.
What if the rel="canonical" hasn't yet been indexed? Like all public content on the web, we strive to discover and crawl a designated canonical URL quickly. As soon as we index it, we'll immediately reconsider the rel="canonical" hint.
Can rel="canonical" be a redirect? Yes, you can specify a URL that redirects as a canonical URL. Google will then process the redirect as usual and try to index it.
What if I have contradictory rel="canonical" designations? Our algorithm is lenient: We can follow canonical chains, but we strongly recommend that you update links to point to a single canonical page to ensure optimal canonicalization results.
from Yahoo!:
and from Live/MSN: