اکتبر سال ۲۰۱۵ گوگل اعلام کرد که دیگه اسکریپت آژاکس رو که سال ۲۰۰۹ ایجاد شده بود، به کارشناسان سئو پیشنهاد نمی کنه. مارک مونرو به این سوال که الان گوگل سایت Ajax رو ایندکس و کرال می کنه، جواب میده.

طراحان سایت و کارشناسان سئو به Ajax واسه ساخت نرم افزارهای تک صفحه ای یا همون SPA با فریم ورکای معروفی مانند Angular و React، علاقه زیادی دارن. اجرا Ajax خالص می تونه نرم افزار وب به درد بخور بودن رو جفت و جور کنه که بیشتر مثل یه نرم افزار دسکتاپ بکنه.
کلا با SPA، محتوای HTML در بروزر فچ-fetch- سایت بارگذاری نمی شه. Ajax از جاوا اسکریپت جهت رابطه با سرور وب استفاده می کنه تا HTMLی بسازه که صفحه رو منتقل کرده و با کاربر رابطه برقرار کنه. ( یه فوت وفن به نام Server-Side Rendering یا اسکریپت نویسی سمت سرور هست که درآن جاوا اسکریپت روی سرور اجرا می شه و درخواست صفحه با HTML منتقل شده، برگردونده می شه. با اینکه این روش هنوز روی همه SPAها پشتیبانی نمی شه و در پیشرفت وب، پیچیدگی بوجود میاره.)
یکی از مشکلات سایت Ajax ، سئو است. مدتیه گوگل محتوای جاوا اسکریپت رو کرال می کنه. در واقع، این آزمایشات گذشته ثابت کرده که گوگل توانایی کرال کردن لینک، داده های متا و محتوای گذاشته شده با جاوا اسکریپت رو داره. البته وب سایتایی که از قالب خالص SPA Ajax استفاده می کنن، در گذشته هم چالشایی با سئو داشتن. سال ۲۰۰۹، گوگل راه حلی واسه ساختن Ajax با توانایی کرال پیدا کرد. در اون روش یا باید URLهایی با ساختار بیریخت ایجاد می شد و یا با یه تگ Meta=”fragment” روی صفحه، URLها پاک سازی می شدن.

مشکلات

ساختار URL یا ساختار متا تگ به گوگل کمک می کنه تا نسخه از قبل منتقل شده پیج یا صفحه رو بگیره که جاوا اسکریپت رو اجرا کرده و HTML کاملی داره که قابل ایندکس و تجزیه از طرف گوگله. در این روش، الگوریتم عنکبوت-spider- یه کد منبع به طور کامل متفاوتی بوجود میاره (HTML در مقابل جاوا اسکریپت).
با در نظر گرفتن اینکه گوگل جاوا اسکریپت رو کرال می کنه، خیلی از وبسایتا عزمشونو جزم کردن تا اجازه بدن گوگل سایتهای SPA Ajaxشان رو کرال کنه. در کل این کار با موفقیت چندانی رو به رو نشد. در سال گذشته، وب سایتایی با مشکل Ajax Angular رو تماشاگر بودیم. گوگل موفقیت کمی در این باره داشته و حدود ۳۰ درصد از صفحات در کش گوگل به طور کامل منتقل شده بودن. هفتاد درصد دیگه خالی بودن.
یه سایت غدایی معروف با باور به اینکه گوگل از Angular پشتیبانی می کنه، به اون منتقل شد. این سایت حدود ۷۰ درصد از ترافیک اصلی خود رو از دست داد و هنوزم در حال بهبودی از اون سقوط ناگهانیه. در آخر هر دو سایت به راه حل Ajax پیشنهاد شده روی آوردن. و کمی بعد در چهاردهم اکتبر گوگل اعلام کرد: ما دیگه پروپوزال اسکریپت AJAX تولید شده در سال ۲۰۰۹ رو پیشنهاد نمی کنیم.

راه حل

می تونیم بگیم که هنوز از پروپوزال قدیمیشان استفاده می کنن. ( مقالاتی درباره اینکه دیگه اونو پشتیانی نمی کنن منتشر شده، اما غلطه- خیلی راحت دیگه اون روش رو پیشنهاد نمی کنن.) یه هفته بعد از اون اعلامیه یه مشتری که تازگیا سایتی رو راه انداخته بود ازم درخواست بازرسی سایت داشت. پس از بررسی فهمیدم این یه سایت Angularه و دوباره با اجرای SPA Ajax.
با آزمایش کردن کش و ایندکس گوگل، سایتهای ایندکس شده ای بدون محتوای کرال شده مشاهده کردیم. من به کار گیری اسنپ شاتای HTML یا روند افزایشی رو تکرار کردم.
سایت مورد بررسی با Angular که هنوز اسکریپت سمت سروری رو پشتیبانی نمی کنه ساخته شده بود. ( دوباره در این مورد هم سرور اول یه پیج رو منتقل می کنه تا HTML رو ارائه دهد)، پس به کار گیری روند افزایشی شاید پشتیبانی سختی داره و اسنپ شاتای HTML هنوز بهترین راه حل واسه اونا هستن.
مشتری ازم پرسید: ولی به چه دلیل؟ من هرجا خوندم میگه گوگل می تونه Ajax رو کرال کنه.  اینطوره؟ بیایید کمی عمیق تر به پیشنهاد جدید گوگل در مورد Ajax نگاه کنیم.

پیشنهادای جدید گوگل در مورد اسکریپت آژاکس

گوگل واسه توضیح اینکه به چه دلیل پیشنهاد قبلی رو خوب نمی دونن، می گن:
ما کلا قادر به انتقال و درک صفحات وب شما مانند بروزرهای مدرن هستیم. شاید حالا افراد زیادی بگن که می تونن بدون هیچ مشکلی Ajax رو کرال کنن. اما به این گفته گوگل دقت کنین:”ما کلا قادر به… هستیم” شما بر این پایه می تونین تجارت خود رو به اون بسپارین؟

مشکلی

اعلامیه دیگری در این رابطه هست:
از اونجایی که فرضیات پروپوزال ۲۰۰۹ ما دیگه معتبر نیس، ما پیروی از قوانین زیر رو پیشنهاد می کنیم:
progressive enhancement.
اونا در اعلامیه خود به زبون نمیارن اما این طور برداشت می شه که: “دیگه واسه کرال کردن جاوا اسکریپت روی ما حساب نکنین!”  جون مولز تایید کرد که گوگل هنوز با Ajax مشکل داره کمتر از دو هفته پس از اعلامیه گوگل(۲۷ اکتبر)، جون مولر در Hangout مرکزی وب مستر خود تایید کرد گوگل شک نداشته باشین هنوز با Ajax مشکل داره. اونا هنوزم با رندر یا منتقل کردن مشکل دارن و توقع دارن پیشرفت خوبی با گذشت زمان پیدا کنه. جون چند راه واسه کمک به مواجه نشدن با مشکل پیشنهاد می کنه. ایشون در آخر به کار گیری اسنپ شاتای HTML رو پیشنهاد می کنه تا وقتی که گوگل در Ajax بهتر شه.
حال، چه کنیم؟
• روش هدف دار رو به افزایش. اسکریپت سمت سروری چیزی لازم واسه این استراتژیه و هنوز به وسیله Angular پشتیبانی نمی شه. البته در بروزرسانی بعدی اون یعنی Angular 2.0 این پشتیبانی اتفاق میفته.
البته این روش هدف دار کار بیشتری نسبت به ساخت آسون اسنپ شاتا می بره. شما باید مطمئن شین که تک تک لینکای لازم رو منتقل کردین تا گوگل بتونه محتوای اضافه شده به وب رو ایندکس و کرال کنه.
• اسنپ شاتای HTML از قبل منتقل شده. اگه قبلا جایی شنیدین که گوگل دیگه از این روش پشتیبانی نمی کنه، نگران نباشین. اونا در آینده هم از ان پشتیبانی می کنن. فقط دیگه اونو نوصیه نمی کنن. این روش فایده داره، با اینکه کدنویسی از قبل رندر شده اسنپ شات کار کمی نیس. خبر خوب اینکه چندین فروشنده مانند prerender.io هست که با هزینه کمی این کار رو واسه شما انجام میدن. این شاید راحتترین استراتژیه.
این روش ایده آلی نیس. ایجاد کد منبع متفاوت واسه کرالرها در مقایسه با بروزرها (HTML در مقایسه با جاوا اسکریپت) می تونه مشکل بوجود آورد. مهمه که کش-cache- گوگل رو بررسی کنیم تا مطمئن شیم که به صفحات اشتباه خدمت رسانی نمی کنن. اگه از پلت فرمی استفاده می کنین که انتقال سمت سروری رو پشتیبانی نمی کنه، این روش هدف دار می تونه تنها راه حل واسه شما باشه.
بهتره به فکر امنیت باشین تا معذرت خواهی
حتی اگه مدرکی داشتم تا ثابت کنم گوگل سایتای Ajax رو کرال می کنه، بازم شک داشتم. منابع معتبر و زمان بیشتری نیازه تا به طور کامل صفحه ای رو انتقال داد. واسه سایتایی با صدها یا هزاران صفحه چه اتفاقی میفته؟ چیجوری بر بودجه کرال تاثیر میذاره؟ اندازه کرال ثابت باقی می مونه؟
قبل از پیشنهاد این روش، ترجیج میدم صبر کنم و دلایل قوی پیدا کنم که گوگل می تونه به طور ثابت نرم افزارهای تک صفحه ای بزرگ رو بدون هیچ تاثیر منفی بر اندازه کرال، ایندکس و رتبه گوگل کرال کنه.

منبع : Searchengineland