ریدایرکت های جاوا اسکریپت وقتی استفاده می شوند که URL درخواستی کاربر به طور دائم یا موقت در دسترس نیست. URL ارائه شده باید به عنوان جایگزین موقت یا دائمی دیده شود. معمولا بهترین روش، استفاده از ریدایرکت 301s، 302s یا 307s سمت سرور است. بیشتر سرورهایی که برنامههای جاوا اسکریپت (JS) را میزبانی میکنند، سرورهای Nginx هستند. پیکربندی این سرورها طوری هست که میتوان ریدایرکتهای سمت سرور را پیادهسازی کرد، که روش مورد پسند گوگل است.
وب سایت های هدلس در حال محبوب شدن هستند. اما همه ساختهای بدون هد امکان تغییر مسیر سمت سرور را ندارند، اینها تغییر مسیرهای جاوا اسکریپت هستند. در حالی که برخی از پلتفرمهای هدلس دارای مقرراتی برای پیکربندی تغییر مسیرها در سطح سرور یا برنامه هستند. یکی از مزایای حرکت به معماری هدلس این است که دیگر از یک مدل مونولیتی استفاده نمیکنید، بلکه یک مدل میکروسرویس را اجرا میکنید. به همین دلیل، توسعهدهندگان به دنبال کاهش وابستگیها و ایجاد انعطافپذیری در پشته هستند.
مدیریت تغییر مسیرها در قسمت جلو (به عنوان مثال Vue.JS) به این معنی است که می توانید CMS را با یک ملاحظه کمتر تغییر دهید. اینجاست که ما بهعنوان متخصصان سئو، وقتی مشتری به دنبال مهاجرت به معماری بدون سر یا هر شکل دیگری از پشته فناوری JAMstack است، باید قابلیتهای تغییر مسیر URL را مشخص کنیم و ایجاد کنیم. از نظر نحوه عملکرد ریدایرکت های جاوا اسکریپت، آنها معمولاً از طریق تابع window.location.replace پیاده سازی می شوند و برای کاربران به خوبی کار می کنند. اما اینکه چگونه موتورهای جستجو به خوبی آنها را تفسیر می کنند قابل بحث است.
فقط در صورتی از تغییر مسیرهای جاوا اسکریپت استفاده کنید که نمی توانید تغییر مسیر سمت سرور یا متا رفرش را انجام دهید. و با گنجاندن آنها، از اینکه آنها برای گوگل و از منظر سئو کار می کنند دوری می کند (به طور حکایتی، این قطعاً تفسیری است که بسیاری از توسعه دهندگان داشته اند). اما در مقابل، تا سال 2020، گری ایلیس از گوگل علناً اعلام کرد که تغییر مسیرهای جاوا اسکریپت «احتمالاً ایده خوبی نیست».
این در پاسخی مستقیم به رشتهای پیرامون بینالمللیسازی و تغییر مسیرها بود. با این وجود، این سؤال را ایجاد می کند که چرا آنها ممکن است ایده خوبی نباشند، به طور بالقوه تأیید می کند که اسناد Google در مورد استفاده از آنها به عنوان یک راه حل اولویت هشدار می دهد.
متداول ترین روش پیاده سازی تغییر مسیرهای جاوا اسکریپت از طریق window.location.replace است.
روش دیگر پیاده سازی از طریق window.location.href است، اما این می تواند باعث مشکلات کاربر شود.
با روش جایگزینی، زمانی که کاربر به عقب کلیک میکند، مرورگر صفحه قبلی را بارگیری میکند اما با روش href، مرورگر کاربر را بارگیری میکند و به همان صفحهای هدایت میکند که میخواست از آن خارج شود.
این باعث ایجاد یک حلقه و تله تغییر مسیر UX می شود که کاربر را به بستن برگه و داشتن تجربه منفی با وب سایت سوق می دهد. برای بسیاری از پلتفرم های هدلس، روش های از پیش ساخته شده ای برای مدیریت و اجرای تغییر مسیرها وجود دارد. مثلا در گتسبی، میتوانید gatsby-plugin-gatsby-cloud را نصب کنید و تغییر مسیرهای 1:1، تغییر مسیرهای حروف عام و تغییر مسیرهای “splat” را اجرا کنید. به طور مشابه، CMS های هدلس مانند Jekyll و Strapi با ماژول ها و پلاگین های از پیش ساخته شده برای تسهیل اجرای تغییر مسیرها ارائه می شوند.
مارتین اسپلیت در سال 2019 تاکید کرد که باید از جاوا اسکریپت “مسئولانه” استفاده کنید تا از “عقب ماندن محتوا” در روند گوگل جلوگیری کنید.
گری ایلیس هم در سال 2020 اظهار داشت که استفاده از تغییر مسیرهای JS احتمالاً ایده خوبی نیست.
در ژانویه 2020 گوگل تاکید کرد که پردازش ریدایرکت های جاوا اسکریپت نسبت به ریدایرکت های سمت سرور به زمان بیشتری نیاز دارد.
درسال 2021 هم، حامیان گوگل تاکید کردند که تا زمانی که گوگل میتواند ارزش صفحه را ببیند، نباید با جاوا اسکریپت مشکلی داشته باشید.
اسناد گوگل برای اولین بار درباره ریدایرکت های جاوا اسکریپت در ژوئن 2021 صحبت کرده اند. بنابراین از نظر “خط زمانی سئو” کلی، این موضوع کاملاً جدید است.
وقتی گوگل با ریدایرکت جاوا اسکریپت مواجه می شود:
این هزینه زمان و منابع بیشتری نیاز دارد در اصطلاح سئو به آن بودجه خزیدن می گویند. برای همین گوگل به شدت تغییر مسیرهای سمت سرور(301، 302، 307 سنتی) را به ریدایرکت های جاوا اسکریپت ترجیح می دهد. این موضوع اخیراً در ژوئن 2022 توسط گوگل در یک ویدیوی SEO Office Hours دوباره تأیید شده است.
با اشاره به مستندات جستجوی مرکزی گوگل و اجرای ریدایرکت های جاوا اسکریپت، این هشدار را در مورد استفاده از ریدایرکت های جاوا اسکریپت با موارد زیر گسترش می دهد:
در حالی که Google تلاش میکند هر URL را که Googlebot خزیده شده است، ارائه کند، ممکن است رندر به دلایل مختلف با شکست مواجه شود. این بدان معنی است که اگر تغییر مسیر جاوا اسکریپت را تنظیم کنید، اگر رندر محتوا با شکست مواجه شود، ممکن است Google هرگز آن را نبیند.
این با یکی دیگر از موارد مورد علاقه فنی سئو مرتبط است: رندر. به طور خاص، چه اتفاقی می تواند بیفتد اگر سرویس ارائه وب در اجرا و رندر جاوا اسکریپت برای تغییر مسیر ناکام باشد؟ اگر به دلایلی گوگل نتواند جاوا اسکریپت را اجرا یا ارائه کند، گوگل URL درخواست اولیه را بارگیری می کند.
بسته به تنظیمات شما، دو چیز ممکن است رخ دهد:
به یاد داشته باشید که گوگل بدون تابعیت است.
آخرین نکته، دست زدن به ارزش ویژه پیوند و توزیع رتبه صفحه / ارزش ویژه پیوند. تحقیقات در این مورد بیش از هفت سال قدمت دارد و از طریق Wayback Machine در دسترس است. اما منطق، تئوری و مطالعات قبلی نشان میدهد که رتبه صفحه در جاوا اسکریپت مانند تغییر مسیر سمت سرور (زمانی که گوگل فرصت پردازش آن را داشته باشد) در جاوا اسکریپت جریان دارد.