به فرایند انتقال یک URL به URL دیگر، ریدایرکت کردن یا هدایت مجدد می­‌گویند که در این مقاله آموزش سئو به آن می‌پردازیم.

ریدایرکت چیست؟

ریدایرکت راهی برای انتقال کاربران و موتورهای جستجو از URL که آن­ها درخواست کرده‌­اند به یک URL دیگر است. ریدایرکت ­هایی که معمولاً استفاده می­‌شوند ۳۰۱، ۳۰۲ و متا ریفرش است.

انواع ریدایرکت

  • ۳۰۱، انتقال دائمی که برای سئو پیشنهاد می­شود.
  • ۳۰۲، پیدا کردن / انتقال موقت
  • متا رفرش

۳۰۱ – انتقال دائمی

ریدایرکت ۳۰۱، ریدایرکتی دائمی است که از ۹۰ تا ۹۹ درصد لینک اکوییتی (قدرت رتبه‌­بندی) به صفحه هدایت شده عبور می‌­کند. ۳۰۱ به کد وضعیت HTTP برای این نوع از ریدایرکت مراجعه می­‌کند. در اکثر نمونه­‌ها ریدایرکت ۳۰۱ بهترین ریدایرکت برای استفاده در وب ­سایت است.

۳۰۲ پیدا کردن (HTTP 1.1) / انتقال موقت (HTTP 1.1)

برخی از کارکنان گوگل نشان می‌­گویند مواردی وجود دارد که کارایی ۳۰۱ها و ۳۰۲ها یکسان باشد، اما شواهد نشان می­‌دهد هنگامی که می­‌خواهید صفحه­‌ای را به صورت دائم به یک URL انتقال دهید، بهترین راهی که تمامی موتورهای جستجو و مرورگرها به آن اعتماد دارند، استفاده از ۳۰۱ است. اینترنت بر روی پروتکلی به نام پروتکل انتقال ابرمتن (HyperText Transfer Protocol – HTTP) اجرا می‌­شود که چگونگی کار کردن URLها را به آن­ها دیکته می‌­کند. این پروتکل دارای دو نسخه اصلی است ۱٫۰ و ۱٫۱ . در نسخه اول ۳۰۲ به کد وضعیت ” انتقال موقت ” رجوع می­کند. این در نسخه ۱٫۱ تغییر می­‌کند که به معنای ” پیدا کردن ” است.

انتقال موقت (فقط برای HTTP 1.1)

ریدایرکت ۳۰۷ در HTTP 1.1  جانشین ریدایرکت ۳۰۲ است. در حالی که ردیاب ها بزرگ در برخی موارد با آن مثل ۳۰۲ رفتار می­‌کنند، اما بهتر است از ۳۰۱ در همه موارد مورد نیاز استفاده کنیم. استثنای این امر زمانی است که محتوا به صورت موقت انتقال پیدا می­کند (مثلاً در زمان تعمیر) و سرور توسط موتورهای جستجو سازگار با ۱٫۱ شناخته شده است. از آنجایی که اساساً تعیین اینکه آیا موتورهای جستجو سازگاری یک صفحه را مشخص کرده­اند یا نه غیرممکن است، بهتر است از ریدایرکت ۳۰۲ برای محتوایی که قصد انتقال موقت آن را داریم استفاده کنیم.

متا رفرش

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

بهترین شیوه سئو

ریدایرکت کردن یک URL به URL دیگر شیوه‌­ای رایج است. هنگامی که این کار را انجام می­‌دهید، مشاهده بهترین شیوه­‌ها جهت حفظ ارزش سئو ضروری است. اولین نمونه رایج این موضوع با این سناریو اتفاق می­افتد : یک URL که نیاز به ریدایرکت دائمی به آدرسی دیگر دارد.
ریدایرکت از صفحه A به صفحه B

گزینه­‌های متعددی برای انجام این کار وجود دارند، اما به طور کلی، ریدایرکت ۳۰۱ هم برای کاربران و هم برای موتورهای جستجو از ارجحیت بیشتری برخوردار است. استفاده از ۳۰۱ هم به مرورگرها و هم به ربات ­های موتور جستجو نشان می­‌دهد که صفحه به طور دائم انتقال پیدا کرده است. این برای موتورهای جستجو نه تنها به معنای تغییر مکان صفحه است بلکه به معنای انتقال محتوا – یا یک نسخه بروز شده از محتوا – در URL جدید است. موتورهای جستجو ارزش لینک را از صفحه اصلی به URL جدید منتقل می‌­کنند، مانند :
redirect-google-301

آگاه باشید هنگامی که صفحه­‌ای را از یک URL به URL دیگری انتقال می‌­دهید، مدتی طول می­‌کشد تا موتورهای جستجو ۳۰۱ را پیدا کرده و آن را تشخیص دهند و به صفحه جدید همانند قبلی اعتماد کرده و آن را رتبه بندی کنند. اگر عنکبوت­‌های موتور جستجو به ندرت از صفحه وب مورد نظر بازدید کنند یا اگر URL جدید به درستی ایجاد نشده باشد، این فرایند طولانی‌­تر خواهد شد.

گزینه­‌های دیگر برای ریدایرکت کردن مثل ۳۰۲ها و متا رفرش‌­ها، جایگزین­‌های ضعیفی هستند که عموماً نمی‌­توانند از رتبه ­بندی­‌ها و معیارهای موتور جستجو مانند ۳۰۱ عبور ­کنند. تنها زمانی که این ریدایرکت­‌ها جایگزین­‌های خوبی هستند زمانی است که یک وب ­مستر از قصد نمی­خواهد هنگام انتقال از صفحه قدیمی به صفحه جدید از لینک اکوییتی عبور کند.

زمانی که یک سایت دامنه خود را کلاً تغییر می­‌دهد یا زمانی که محتوا از یک دامنه به دامنه دیگر انتقال پیدا می‌­کند، فرایند این انتقال پیچیده‌­تر می­شود. با توجه به سوءاستفاده های اسپم ها و سوء ظن موتورهای جستجو، گاهی ۳۰۱های موجود در بین دامنه‎­ ها زمان بیشتری را برای ردیابی شدن و دیده شدن نیاز دارند. برای کسب اطلاعات بیشتر در این زمینه به این مقاله رجوع کنید “ اینفوگراف چگونگی دستیابی به انتقال دامنه ای مطلوب برای سئو “.

ریدایرکت­‌های ۳۰۱ در آپاچی

مشکل :

هنگامی که اولین سایت خود seomoz.org را راه­‌اندازی کردیم، دامنه میزبان به جای دامنه خودمان www.socengine.com/seo/ بود. هنگامی که توسعه‌­دهندگان اصلی seomoz.org را به سرور اختصاصی خود انتقال دادند، می‌­خواستند تا همانند دامنه خود به آن دسترسی وجود داشته باشد تا مانند زیرشاخه­‌ای از socengine.com با آن رفتار شود. نیاز بود تا بازدیدکنندگان هر چیزی را که در www.socengine.com/seo/ به آن دسترسی داشتند به www.seomoz.org ریدایرکت شود. ریدایرکت کردن باید با تغییرات نام فایل و پوشه مطابقت پیدا می­‌کرد و از طریق ریدایرکت ۳۰۱ صورت می­گرفت تا مورد پسند موتورهای جستجو باشد. همچنین باید http://seomoz.org را برای اهداف ظریف و جلوگیری از خطاهای استانداردسازی فوروارد می­‌کردند.

راه حل :

ساده‌­ترین راه حل برای انجام این کار اضافه کردن ریدایرکت ۳۰۱ به کد PHP با استفاده از عملکرد هدر PHP است. بکار گرفتن قدرت ماژول mod_rewrite در آپاچی. گرچه توسعه دهندگان فهمیده‌­اند بدون اینکه نیاز به پیاده‌­سازی از طریق اسکریپت PHP باشد، می­توانند الگوهای خاصی را برای همه پوشه­‌ها تطبیق داده و آن­ها را به URL جدید ریدایرکت کنند.

نصب و راه‌­اندازی

وب سرور برای انجام این کار نیاز به نصب mod_rewit در آپاچی دارد. در صورتی که آپاچی را نصب کنید mod_rewrite نیز به طور پیش­فرض نصب می‌­شود. سرور اصلی SEOmoz نسخه لینوکس FreeBSD را توزیع می­‌کند و mod_rewrite به صورت پیش­فرض در آن وجود دارد. توسعه دهنده می­‌تواند برای بررسی اینکه آیا ماژول به درستی نصب شده است یا خیر خط زیر را به فایل پیکربندی آپاچی یا یک فایل قابل اجرای htaccess . اضافه کند :

RewriteEngine On

محتوا

ماژول mod_rewrite در محتوای هر سرور یا محتوای هر دایرکتوری عمل می­‌کند. محتوای هر سرور نیازمند این است که توسعه دهنده فایل پیکربندی آپاچی httpd.conf را ویرایش کند. محتوای دایرکتوری از فایل­‌های htaccess. موجود در هر پوشه‌­ای استفاده می­‌کند که یک کاربر بخواهد آن را پیکربندی کند. اگر وب­ مستر نتواند به httpd.conf دسترسی پیدا کند، از فایل­‌های htaccess. استفاده می­‌کند.

عبارات منظم (که با عنوان Regexes نیز شناخته می­‌شوند)

از سایت wikipedia.org :

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

برای ریدایرکت کردن URLها بر اساس نمونه­‌های موجود در این سند، مهم است که مفاهیم پایه­‌ای regexes را بفهمیم. در زیر لیستی از کارکترها و اوپراتورهایی که در regexes توصیفی در این سند استفاده می‌­شوند آورده شده است :

  • . Period : همه چیز را تطبیق می‌­دهد
  • * Asterisk : با صفر و بیشتر کارکترهای سابق تطبیق دارد.
  • علامت بعلاوه + : با یک یا بیشتر کارکترهای سابق تطبیق دارد.
  • پرانتز ( ) : قرار دادن یک مقدار در پرانتز چیزی که در یک متغیر تطبیق داده شده است را ذخیره کرده تا بعداً مورد استفاده قرار دهد، که به آن بک رفرنس (ارجاع به عقب – back-reference) می­گویند.
  • (مقدار ۱ | مقدار ۲) : قرار دادن دو یا بیشتر آن مقدار در پرانتز و جدا کردن آن­ها با کارکتر پایپ معادل این بیان است : ” مقدار ۱ یا مقدار ۲ را تطبیق دهم “.

ریدایرکت کردن فایل­‌ها و پوشه‌­های خاص از یک دامنه به دامنه دیگر

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

نمونه :

Redirect : http://www.socengine.com/seo/s… To : /somefile.php

راه حل:

اضافه کردن دستورالعمل زیر به فایل اجرایی در سرور socengine.com :

RedirectMatch 301 /seo/(.*) /$1

توضیحات

عبارت (.*)/seo/ به آپاچی می­گوید پوشه سئو را که توسط صفر یا هر کدام از کارکترهای دیگر دنبال شده است تطبیق دهد. قرار دادن .* در پرانتز به آپاچی می­گوید که رشته تطبیق داده شده را به عنوان بک رفرنس (back-reference) ذخیره کند. این بک رفرنس که در انتهای URL قرار داده شده است در اینجا به $۱ هدایت می‌­شود.

ریدایرکت کردن نام‌­های میزبانی استاندارد

توسعه‌­دهندگان اصلی Moz نیاز به ریدایرکت کردن هر درخواستی داشتند که با www.seomoz.org شروع می­‌شد، بنابراین برای مطمئن شدن از این موضوع از www استفاده کردند تا از خطاهای استانداردسازی رایج جلوگیری کنند.

Redirect : http://seomoz.org/  To http://www.seomoz.org/
Redirect : http://mail.seomoz.org/  To  http://www.seomoz.org
Redirect : http://seomoz.org/somefile.php  To  http://www.seomoz.org/somefile…

راه حل

این دستورالعمل­‌ها را اضافه کنید:

RewriteCond %{HTTP_HOST} *!^www*.seomoz\.org [NC]<br>

RewriteRule (.*) http://www.seomoz.org/$1 [L,R=301]

توضیحات

این دستورالعمل به آپاچی می­‌گوید که هاستی که بازدیدکننده به آن دسترسی دارد را امتحان کند و اگر معادل www.seomoz.org نیست آن را به www.seomoz.org ریدایرکت کند. علامت تعجب در جلوی www.seomoz.org مقایسه را خنثی کرده و می­گوید که اگر هاست www.seomoz.org نیست سپس RewriteRule را اجرا کن. در مثال ما RewriteRule آن­ها را به www.seomoz.org ریدایرکت می‌­کند و این در حالی است که از فایل دقیقی که در بک رفرنس قابل دسترسی است، محافظت می­‌کند.

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

چنیدن فایل که بر روی سرور قدیمی وجود داشتند حالا دیگر بر روی سرور جدید وجود ندارند. به جای نگه داشتن نام فایل­ها در ریدایرکت کردن (که موجب بروز خطای ۴۰۴ – صفحه یافت نشد – در سرور جدید می­‌شود)، باید فایل­های قدیمی را به URL ریشه دامنه جدید ریدایرکت کنیم.

Redirect : http://www.socengine.com/seo/s…

به : http://www.seomoz.org/

راه حل

این دستورالعمل را اضافه کنید :

RedirectMatch 301 /seo/someoldfile.php http://www.seomoz.org

توضیحات

همه پرانتزها را حذف کنید، همه درخواست­‌ها برای  /seo/someoldfile.php باید به URL ریشه http://www.seomoz.org ریدایرکت شوند.

ریدایرکت کردن رشته GET

برخی از اسکریپت­‌های PHP نام­‌های متفاوتی داشتند اما رشته GET همچنان با همان نام باقی مانده است. توسعه دهندگان Moz باید در حالی که از این رشته­‌های GET محافظت می­‌کنند، بازدیدکنندگان را به اسکریپت PHP جدید ریدایرکت کنند. رشته GET مجموعه­‌ای از کارکترها است که پس از نام فایل در URL می­آید و برای عبور داده به صفحه وب به کار می­‌رود. this=that&foo=bar? نمونه­‌ای از رشته GET در URL /myfile.php?this=that&foo=bar می‌­باشد.
ریدایرکت : http://www.socengine.com/seo/c…به : http://www.seomoz.org/artcat.p…

راه حل

این دستورالعمل را اضافه کنید :

RedirectMatch 301 /seo/categorydetail.php(.*) http://www.seomoz.org/artcat.php$1

توضیحات

بار دیگر عبارت (.*) به آپاچی می­‌گوید که صفر یا بیشتر هر کارکتری را تطبیق بده و آن را به عنوان بک رفرنس $۱ ذخیره کن. چون $۱ پس از /seo/categorydetail.php وجود دارد، رشته GET را به فایل PHP جدید ریدایرکت می­‌کند.

ریدایرکت کردن همراه با  تغییر پسوند فایل­‌ها

در سناریوی اصلی پوشه­‌ای از فایل­ها بر روی سرور قدیمی وجود داشت که HTML و PHP را ترکیب می‌­کرد. در سرور جدید همه فایل­‌ها PHP هستند و برای تغییر URLهای قدیمی به این پسوند جدید نیاز به ریدایرکت کردن منطق (logic) دارند.

Redirect : http://www.socengine.com/seo/g…
To : http://www.seomoz.org/articles…
Redirect : http://www.socengine.com/seo/g…
To : http://www.seomoz.org/articles…

راه حل

این دستورالعمل را اضافه کنید :

RedirectMatch 301 /seo/guide/(.*)\.(php|html) http://www.seomoz.org/articles/$1.php

توضیحات

(*.) صفر یا بیشتر از هرکارکتری را تطبیق داده و آن را به عنوان بک رفرنس $۱ ذخیره می­‌کند. (php|html).\ به آپاچی می­گوید دوره­ای را که با php یا html دنبال شده است تطبیق داده و آن را به عنوان بک رفرنس $۲ ذخیره کند (گرچه که این عبارت در این مثال استفاده نشده است). به دوره رها شده با بک اسلش \ توجه کنید. استفاده از آن برای این است که مطمئن شوید آپاچی دوره را به عنوان ” هر کارکتر ” معنی نمی­کند بلکه آن را به عنوان یک دوره واقعی در نظر می­‌گیرد. قرار دادن php و html در پرانتزها و جدا کردن آن­ها با کارکتر پایپ ” | ” به این معناست که فقط یکی از آن­ها را تطبیق بده. بنابراین اگر بگوییم ( php | html | css | js | jpg | gif )  ،  رجکس regex هر فایلی با پسوندهای  php، html ، css ، js ، jpg یا gif را تطبیق می‌­دهد.

نتیجه

توسعه‌­دهندگان اصلی Moz با مهار کردن قدرت mod_rewrite و استفاده از کمی جادوی عبارت منظم توانستند مجموعه‌­ای از قوانین ساده را برای ریدایرکت کردن صفحات وب وضع کنند و با استفاده از ریدایرکت­‌های ۳۰۱ این کار را طوری انجام دادند که مورد پسند موتورهای جستجو باشد.


به خواندن ادامه بده