بهینهسازی سایتهای SSR
ویدیو تشخیص داینامیک رندرینگ از SSR در سایت های جاوااسکریپتی محسن طاووسی
این مفهوم در مقابل Client-Side Rendering (CSR) قرار میگیرد که در آن رندر کردن محتوا توسط مرورگر کاربر انجام میشود. در SSR، سرور پیش از ارسال صفحه به مرورگر، محتوای HTML را به صورت کامل تولید میکند و به کاربر ارسال مینماید. در این مقاله، به طور کامل بررسی میکنیم که SSR چیست؟، چرا در برنامه نویسی اهمیت دارد و چه کاربردهایی دارد. استفاده از جاوا اسکریپت بهویژه در حجمهای زیاد، میتواند منجر به افزایش قابل توجه زمان بارگذاری صفحات شود. این مشکل زمانی بیشتر احساس میشود که بخشهای عمدهای از محتوای صفحه، از طریق جاوا اسکریپت بارگذاری شوند. افزایش زمان بارگذاری بهطور مستقیم بر تجربه کاربری و در نتیجه بر رتبهبندی سئو تأثیر میگذارد.
اگر فقط به دنبال بهبود SEO چند صفحه بازاریابی (مثلا /، /about، /contact و غیره) هستید، احتمالا SSG به جای SSR مناسبتر است. SSG همچنین برای وبسایتهای محتوا-محور مثل سایتهای مستندات یا وبلاگها عالی است. در واقع، وبسایتی که در حال مطالعه آن هستید، به صورت استاتیک با استفاده از VitePress که یک ژنراتور سایت استاتیک Vueمحور است، تولید شده است. تصور کنید به یک وب سایت می روید و به جای دیدن همه مطالب، فقط یک صفحه خالی می بینید. این مفید نخواهد بود، درست است؟ رندر مطمئن می شود که تمام محتوایی که باید ببینید، مانند تصاویر، متن یا ویدیوها، در واقع هنگام بازدید از یک وب سایت نشان داده می شود.
با این کار بار پردازشی را از روی سرور کم شده و در نتیجهی آن سرعت وبسایت ها دیگر بستگی به سیستم کاربران دارد. رندر سمت کلاینت به بهترین وجه در برنامه های کاربردی وب با ویژگی ها و صفحات پیچیده بزرگ استفاده می شود. CSR برای برنامه هایی که خواستار به روز رسانی بلادرنگ و محتوای پویا هستند مناسب است. کتابخانه ها و فریم ورک های محبوب جاوا اسکریپت مانند React، Vue JS و Angular اجرای کارآمد CSR را امکان پذیر می کنند. نرخ رها شدن سبد خرید یک معیار مهم برای وبسایتهای فروشگاهی است که باید آن را ردیابی کنند، زیرا نرخ رها شدن بالا میتواند نشاندهنده تجربه کاربری ضعیف یا مشکل در قیف فروش باشد.
در آشنایی با ssr در سئو می خواهیم به شما بگوییم که ssr چقدر می تواند برای رندر کردن جاوا اسکریپت و سرعت آن کمک کننده باشد. اگر این اتفاق بیفتد نه تنها شما از گوگل رتبه بهتری دریافت می کنید، بلکه Crawl Budget شما هم بالا تر می رود. حال بیایید چند مزیت دیگر Server Side Rendering را هم برای شما بازگویی کنیم. در آشنایی با ssr در سئو باید به این موضوع اشاره شود که رندرینگ یک صفحه وب از راه های متفاوتی انجام می شود. یکی از این راه ها رندرینگ کلاینت ساید(همان فرانت اند) است که به آن CSR هم می گویند.
هم چنین Layout را import کرده ایم که به طور پیش فرض در اپلیکیشن وجود دارد. این کامپوننت یک عنوان را می پذیرد و این مقدار را به عنوان بخشی از داده های متای صفحه شما پیکربندی می کند. در نهایت ، تابع AboutPage را export کرده ایم که JSX حاوی محتوای صفحه جدید را برمی گرداند. این فولدر شامل فایل هایی است که متناظر با مسیرها (routes)ی وب سایت ایجاد شده و نمایش داده می شوند. Vite از پشتیبانی درونی برای رندرینگ سرور ساید Vue برخوردار است، اما عمداً low-level است. اگر میخواهید مستقیماً از Vite استفاده کنید، vite-plugin-ssr را که یک افزونه کامیونیتی است و جزئیات چالشبرانگیز بسیاری را برای شما مخفی میکند، بررسی کنید.
بهینهسازی صفحه محصول به منظور افزایش نرخ تبدیل از بازدید یا نصب به دانلود، منجر به بهبود جایگاه اپلیکیشن در نتایج جستجو میشود. ترکیب استراتژیهای حفظ کاربر با تلاشهای بهینهسازی نرخ تبدیل، نتایج مطلوبتری را به همراه خواهد داشت. در بدترین سناریو، زمان بارگذاری رندر سمت کلاینت طولانی است و حتی میتواند بر تجربه کاربر تأثیر منفی بگذارد. هنگامی که یک سایت دارای تعداد زیادی المان های پویا و دائماً در حال تغییر است، رندر سمت سرور به توسعه دهندگان اجازه می دهد تا این المانها را به خوبی با کاربر نهایی به اشتراک بگذارند. مشابه رباتهای موتور جستجو، خزندههای شبکههای اجتماعی با ایندکس کردن محتوای جاوا اسکریپت نیز مشکل دارند.
به عنوان مثال میتوانید از SSG برای صفحات اصلی و «درباره ما»، از ISR برای صفحات پرسش و پاسخ یا از CSR برای اپلیکیشنهای وب استفاده کنید. امیدوارم این مقاله توانسته باشد به شما در درک مفاهیم اساسی متد رندرینگ کمک کرده باشد. گاهی اوقات پس از اصلاح شدن محتوای سایت، کاربران همچنان محتوای قدیمی را مشاهده میکنند و نسخهی جدید سایت در دسترس آنها قرار نمیگیرد. سایتهای استاتیک با بهینهسازی موتورهای جستجو (SEO) سازگاری دارند. اینجوری بهترین حالت رو برای هر بخش سایتت داری و کاربرها هم تجربه خوبی دارن.
هنگامی که یک صفحه در سرور رندر می شود (HTML آن ساختار پیدا میکند)، تمام کارهای سنگین بارگذاری صفحه انجام می شود. به همین دلیل، وقتی پاسخ به مرورگر مشتری می رسد، کار زیادی برای نمایش صفحه برای مرورگر باقی نمی ماند. در این شرایط برای تعامل کاربران با سایت، کد به تکههای قابل مدیریت تقسیم میشود که میتوان آنها را بر اساس نیاز درخواست کرد. اما Isomorphic React و سایر فناوریهایی که برای دستیابی به این هدف استفاده میشوند، بسیار پیچیده هستند و برای برنامهریزی عملکرد صحیح این سایتها، نیاز به دانش فنی زیادی است. SSR یا Server-Side Rendering، یکی از مفاهیم مهم در توسعه وب است که بهخصوص در بهبود تجربه کاربری و بهینهسازی عملکرد وبسایتها استفاده میشود.
این کار به شما کمک میکند تا جلوی انتشار و استفادههای غیرمجاز از محصولات خود را بگیرید و به درآمد بیشتری دست یابید. اگر به دنیای برنامه نویسی علاقه دارید یا کودکان و نوجوانانی را میشناسید که به فناوری و کامپیوتر علاقهمندند، موسسه پل استار فرصتی بینظیر برای شروع یادگیری است. پلاستار با ارائه دورههای تخصصی و مقالات جذاب رایگان در حوزه برنامه نویسی، محیطی آموزشی و سرگرمکننده برای یادگیری فراهم کرده است. از آموزش برنامه نویسی کودکان و نوجوانان تا معرفی ابزارهای کاربردی، همهچیز برای علاقهمندان به فناوری در دسترس است. در این مطلب در مورد تاثیر داینامیک رندرینگ بر سئوی سایت مطالب مفیدی بیان کردیم.
از آنجا که بهروزرسانیهای پویا وجود ندارد، هوکهای چرخه حیات مانند mountedonMounted یا updatedonUpdated در طول SSR اجرا نمیشوند و فقط در کلاینت اجرا میشوند. تنها هوکهایی که در طول SSR فراخوانی میشوند beforeCreate و created هستند. همچنین میتوانید یک پروژه نمونه Vue + Vite SSR با پیکربندی دستی را اینجا پیدا کنید که میتواند به عنوان پایهای برای ساختن روی آن باشد. توجه داشته باشید این فقط در صورتی توصیه میشود که با SSR / ابزارهای بیلد تجربه داشته باشید و واقعاً کنترل کامل روی معماری سطح بالاتر میخواهید. پس در جریان باشید که تو کامپوننت های SSR دیگه خبری از هوک های پرکاربرد مثل useEffect یا useState و .. استفاده از SSR ممکنه کمی پیچیده باشه، مخصوصاً اگه با تکنولوژیهای جدید آشنا نباشی.
این فایل و وابستگیهایش بین سرور و کلاینت به اشتراک گذاشته میشوند - آنها را کد یونیورسال مینامیم. چند نکته وجود دارد که هنگام نوشتن کد یونیورسال باید به آنها توجه کنید که در ادامه بحث میکنیم. در این مقاله میخواهیم با برخی از این مفاهیم آشنا شویم؛ پس به نوبت تمام آنها را بررسی خواهیم کرد. نه به خودی خود، ولی باید حواست باشه که داده های ناامن به مرورگر نفرستی. مثلاً اگه از دادههایی استفاده میکنی که کاربر وارد میکنه، باید حتماً اونها رو اعتبارسنجی و پاکسازی کنی تا حملات XSS اتفاق نیفته. قبل از اینکه بریم سراغ SSR در ری اکت جازه بدید مدل های مختلف رندرینگ در ری اکت و Next.js رو باهمدیگه یاد بگیریم و بدونیم به جز SSR چه مدل های رندر دیگه ای تو ری اکت و Next.js داریم ..
قرار نیست وقتی در CSR فعالیت می کنید (مثل React , Angular)، تمامی سایت ها را با این روش پیاده سازی کنید. بسته به هدفی که از طراحی سایت دارید باید یکی از روش هایی که معرفی کردیم را انتخاب کنید. حتما به این موضوع توجه داشته باشید که سئو سایت امری مهم برای یک سایت تازه راه اندازی شده است. شاید این فرایند (Static Site Generation) مزایای زیادی مخصوصا در زمینه SEO داشته باشد. اما استفاده از آن فقط زمانی عقلانی است که شما تغییرات کمی در سایت خود دارید. حتی اگر با بازسازی صفحات وب سایت خود مشکلی ندارید، میتوانید یک وبلاگ با SSG راه انداری نمایید.
یا دکودرهای (رمزگشا) مخصوصشان نوشته شده است، یا سورس شما را دارای باگ میکند یا محدود به نگارش PHP خاصی میکند که بسیار وقتگیر و دوبارهکاری به بار میآید. ضمن اینکه غالبا هزینههای بسیار بالایی برای تهیه آنها نیاز است و همچنین امنیت کامل را برای شما تامین نمیکنند. در این مطلب از وب سایت آژانس تبلیغات میانبر به بیان تاثیر داینامیک رندرینگ بر سئو خواهیم پرداخت اما قبل از این مطلب باید با مفاهیم CSR و SSR آشنا شده و تفاوت آن ها را بدانید. ممنون از این محتوای کاملچطور میشه متوجه شد یک سایت از سیستم رندرینگ ssr و یا csr استفاده میکند. در وبسایت هایی که به سئو (SEO) متکی نیستند یا به اصطلاح وب اپ (WebApp) ها از این فرایند استفاده می شود.
حالا که با نحوه پیادهسازی SSR آشنا شدیم، بیایید ببینیم این تکنیک چه تأثیری میتونه روی وبسایتت بذاره. یکی از بزرگترین مزایای SSR اینه که زمان رسیدن به محتوا رو به شدت کاهش میده. یعنی وقتی کاربر وارد سایتت میشه، بهجای اینکه منتظر بمونه تا جاوااسکریپت و CSSها لود بشن، بلافاصله محتوای صفحه رو میبینه. این موضوع بهخصوص برای سایتهایی که محتوای دینامیک زیادی دارن یا برای سایتهای فروشگاهی که سرعت نمایش محصولات خیلی مهمه، اهمیت داره. SSR کمک میکنه که کاربر وقتی وارد سایت میشه، بدون هیچ معطلی و مستقیم به محتوایی که میخواد دسترسی پیدا کنه. این حس که سایت فوراً به نیازهای کاربر پاسخ میده، باعث میشه کاربر حس کنه که تو بهش اهمیت میدی و احتمالاً بیشتر از سایتت استفاده کنه و حتی خرید هم بکنه.
اگرچه استفاده از SSR چالشهایی نیز به همراه دارد، اما در بسیاری از پروژهها، مزایای آن بر معایبش برتری دارد. سایت هایی که کدنویسی بک اند آن ها با جاوا اسکریپت نوشته شده است، از روش CSR برای رندرینگ استفاده میکنند. از آن جایی که گوگل فایل های جاوا اسکریپت را کراول نمیکند، یک سایت CSR ایندکس نخواهد شد. این بدان معنی است که اگر برنامه شما SSR باشد، محتوا از سرور واکشی و به مرورگر منتقل می شود تا به کاربر نمایش داده شود. اپلیکیشن هایی که SSR در آن ها فعال شده است، برنامه های رندر شده در سمت سرور نامیده می شوند.
در این روش، صفحات وب از قبل روی سرور تولید میشن و به صورت فایلهای استاتیک ذخیره میشن. این یعنی وقتی کاربر وارد سایتت میشه، سرور فقط اون فایل استاتیک رو به مرورگر ارسال میکنه. این روش برای سایتهایی که محتوای ثابت دارن، مثل وبلاگها یا سایتهای خبری، عالیه. فرض کن داری یه وبلاگ شخصی راهاندازی میکنی و محتوای صفحات زیاد تغییر نمیکنه. با SSG میتونی صفحات رو از قبل تولید کنی و سرعت بارگذاری رو به شدت افزایش بدی.
با این حال، تفاوتهای قابل توجهی در عملکرد و الگوریتمهای رتبهبندی آنها وجود دارد. بهینهسازی فروشگاههای اپلیکیشن (ASO) و بهینهسازی موتور جستجو (SEO) هر دو با هدف افزایش دیدپذیری و جذب مخاطب هدف در فضای دیجیتال فعالیت میکنند. با این حال، این دو حوزه از نظر تمرکز و عوامل رتبهبندی تفاوتهای قابل توجهی دارند. استراتژی ASO موثر، منجر به افزایش پایدار دانلودهای ارگانیک میشود. با بهینهسازی کلمات کلیدی و سایر عوامل مرتبط، اپلیکیشن در نتایج جستجو برای کلمات کلیدی مرتبط بالاتر ظاهر خواهد شد. رندر سمت سرور با اجازه دادن به سرور برای پیش واکشی و پیش نمایش داده های لازم قبل از ارسال آن به کلاینت، این مشکل را برطرف می کند.
در خصوص مدت زمان اولیه بارگیری ابن نکته را یادآوری کنیم که SSR سرعت بیشتری دارد. زیرا فقط فایل هایی که برای نمایش آن صفحه نیاز است لود می شوند و فایل های Js که برای تعامل کاربر با سایت مورد نیاز است در آخر لود می شوند. مدت زمانی است که پس از درخواست کاربر برای لود صفحه، طول می کشد تا آن صفحه به صورت کامل لود شود. در واقع این مفهوم مهمی برای تجربه کاربری ویا UX سایت شما می باشد. از آنجایی که در CSR و SSR دو سناریوی متفاوت اتفاق میفتد، پس مدت زمان آنها متفاوت است.
یا در شرایطی که هر کاربر محتوای منحصر به فردی دارد که در بارگذاری اولیه نشان داده شده است. چارچوبهایی مانند Next JS اجرای SSR را با قابلیتهای رندر سرور داخلی ساده میکنند. علت اینکه سئو فرندلی نیست برنامه های تحت وب که از این روش استفاده می کنند دارای معایبی هستند. بسیاری از رباتها برای جمعآوری اطلاعات به فایل HTML منبع نگاه میکنند و اگر فایل ریشه خالی باشد، رباتها نمیتوانند به درستی کار کنند. این مشکلات احتمالی را در هنگام تلاش برای بهینه سازی یک وب سایت برای موتورهای جستجو یا ربات های توییتر ایجاد می کند.
ابزارهایی مانند Gatsby و Nuxt JS اجرای SSG را ساده می کنند و عملکرد و امنیت مطلوب را تضمین می کنند. شکل زیر نشان دهنده ی فلوی عملکرد این فریم ورک هستش وقتی که شما یک درخواست به سمت سرور ارسال می کنید و یا به وسیله nuxt-link در اپلیکیشن navigate (از روتی به روت دیگه منتقل شدن ) می کنید. مثلاً اگه سایتت خیلی نیاز به تعامل کاربری داره و SEO هم اولویتت نیست، شاید بهتر باشه از روشهای دیگه مثل CSR استفاده کنی. پیادهسازی SSR نسبت به روشهای دیگه مثل Client Side Rendering یه کم پیچیدهتره. این یعنی اگه تجربه زیادی تو توسعه وب نداری، ممکنه برات چالشبرانگیز باشه. نیاز به پیکربندی و تنظیمات خاصی داری که باید با دقت انجامشون بدی تا همه چیز درست کار کنه.
React.js یه کتابخونه جاوااسکریپته که اجازه میده کامپوننتهای رابط کاربری قابلاستفاده مجدد بسازی. وقتی میخوای اپلیکیشنهای بزرگی بسازی که نیاز به مقیاسپذیری بالا دارن، React یه انتخاب خیلی خوبه. برای SSR توی دنیای React.js، معمولاً از فریمورک Next.js استفاده میکنن. Next.js باعث میشه که بتونی اپلیکیشنت رو به صورت سروری رندر کنی و همزمان از قابلیتهای مدرن React هم بهرهمند بشی. علاوه بر این، بازیهای موبایل اغلب دارای چرخه عمر کوتاهتری نسبت به اپلیکیشنهای دیگر هستند، که این امر اهمیت سرعت و چابکی در استراتژی ASO را افزایش میدهد. همچنین، جوامع بازیکنان فعال و پرشور، فرصتهای منحصر به فردی را برای تعامل و بازخورد ایجاد میکنند که میتواند به بهبود ASO کمک کند.
First Input Delay سومین معیار Core Web Vitals است، FID یک مقدار مبتنی بر زمان است که در میلی ثانیه اندازه گیری می شود. این مقدار نشان می دهد که چقدر طول می کشد تا مرورگر به اولین تعامل کاربر پاسخ دهد. در رندر سمت سرور، مرورگر محتوای ثابت را سریعتر نمایش میدهد (که منجر به LCP بهتری میشود)، اما برای تعامل کاربر، به زمان بیشتری نیاز است. در نتیجه، صفحه برای تعامل آماده به نظر می رسد در حالی که در پس زمینه کد همچنان در حال پردازش است. یکی از مشکلات اصلی سایتهایی که از CSR استفاده میکنند، این است که محتوا ابتدا باید توسط مرورگر پردازش و رندر شود، سپس موتور جستجو آن را ایندکس میکند.
وب سایت ممکن است استفاده کند SSR برای ارسال یک صفحه “آماده برای خوردن” یا CSR جایی که مرورگر شما برای ایجاد صفحه کمی «آشپزی» می کند. از آنجایی که مرورگر باید صفحه را با استفاده از جاوا اسکریپت «پخت» کند، CSR زمانی که صفحه را برای اولین بار بارگذاری میکنید میتواند کمی کندتر باشد. اما هنگامی که صفحه بارگذاری می شود، پیمایش به قسمت های مختلف سایت اغلب سریع تر است. مانند کنار هم قرار دادن قطعات یک پازل برای ایجاد یک تصویر کامل فکر کنید. در توسعه وب، رندر فرآیند ایجاد صفحه کامل HTML با تمام متن ها، تصاویر، دکمه ها و لینک هایی است که یک وب سایت را می سازد.
اگر نرخ تغییرات محتوای وب سایت شما بالا نیست این روش مناسب بوده و عملکرد و سرعت وب سایت شما بسیار خوب خواهد بود. همانطور که در تصویر مشاهده می کنید، اسکریپت ها از memory cache و disk cache لود می شوند. رندر سمت سرور به معنای تولید HTML برای یک صفحه وب در سمت سرور است. اگه میخوای توی توسعه وب از SSR استفاده کنی و وبسایتت رو سریعتر و کاربرپسندتر کنی، این فریمورکها و ابزارهایی که گفتیم، میتونن کمکت کنن تا پروژههات رو بهینهتر بسازی. با استفاده از این ابزارها، میتونی مطمئن باشی که سایتت هم از نظر سئو و هم از نظر تجربه کاربری یه سر و گردن از رقبا بالاتر خواهد بود.
https://seohacker.academy/product/seo-course-gray-hat-mastering/