Professional Documents
Culture Documents
سئو در React
خالصه ای کوتاه از رندر در React
Reactیک App Shell Modelرا پیادهسازی میکند ،به این معنی
که اکثریت قریب به اتفاق محتوا ،اگر نه همه ،به طور پیشفرض رندر
سمت مشتری ( )CSRخواهند بود CSR .به این معنی است که
HTMLعمدتًا حاوی کتابخانه React JSاست نه اینکه سروری که
کل محتوای صفحه را در پاسخ HTTPاولیه از سرور (منبع )HTML
ارسال کند .همچنین شامل جاوا اسکریپت متفرقه حاوی دادههای
JSONیا پیوندهایی به فایلهای JSاست که حاوی اجزای React
هستند .با بررسی منبع HTMLمی توانید به سرعت متوجه شوید که
یک سایت در سمت مشتری ارائه شده است.
اگر خطوط زیادی از HTMLرا در آنجا نمی بینید ،برنامه احتماًال رندر
سمت مشتری است .با این حال ،وقتی عنصر را با کلیک راست و
انتخاب «( »Inspect elementیا )F12میتوانید بررسی کنید...
انواع رندر در React
وبسایتهایی که با استفاده از Reactایجاد میشوند ،با رویکرد
سنتیتر برای گذاشتن کارهای سنگین رندر محتوا بر روی سرور با
استفاده از زبانهایی مانند PHPکه رندر سمت سرور ( )SSRنامیده
میشود ،متفاوت است.
SSG
قبل از ،SSRتوسعهدهندگان آن را حتی سادهتر نگه داشتند .آنها
اسناد HTMLایستا را ایجاد میکردند که تغییر نمیکرد ،آنها را روی
سرور میزبانی میکردند و بالفاصله آنها را ارسال میکردند .سرور
نیازی به رندر کردن چیزی نداشت و مرورگر غالبًا برای ارائه بسیار کمی
داشتSPA .ها (از جمله آنهایی که از Reactاستفاده می کنند)
اکنون به این رویکرد ثابت بازمی گردند .آنها اکنون قبل از اینکه
مرورگر URLرا درخواست کند ،جاوا اسکریپت را از قبل به HTML
ارائه میکنند .این رویکرد ،تولید سایت استاتیک ( )SSGنامیده می
شود که به عنوان رندر استاتیک نیز شناخته می شود.
تفاوت SSRو SSG
در عمل SSR ،و SSGمشابه هستند .تفاوت اصلی این است که
رندر با SSRزمانی اتفاق میافتد که مرورگر در زمان ساخت با SSG
یک URLرا در مقابل یک چارچوب پیشفرم محتوایی درخواست
میکند (زمانی که توسعهدهندگان کد جدید را مستقر میکنند یا یک
سرپرست وب محتوای سایت را تغییر میدهد) SSR .میتواند پویاتر
باشد اما به دلیل تأخیر بیشتر ،در حالی که سرور محتوا را قبل از
ارسال آن به مرورگر کاربر ،ارائه میکند SSG .سریعتر است ،زیرا
محتوا قبًال ارائه شده است ،به این معنی که میتوان آن را فورًا به
کاربر ارائه کرد (به معنی TTFBسریعتر).
چگونه گوگل صفحات را پردازش می کند؟
برای درک اینکه چرا رویکرد رندر سمت مشتری پیشفرض React
باعث ایجاد مشکالت سئو میشود ،ابتدا باید بدانید که Google
چگونه صفحات را خزیده ،پردازش میکند و فهرستبندی میکند.
ما میتوانیم اصول اولیه نحوه عملکرد این کار را در مراحل زیر خالصه
کنیم:
زمان بارگذاری
رندر سمت کالینت باعث بهروزرسانی تمام صفحه نمیشود ،به
این معنی که کتابخانه فقط یک بار نیاز به بارگیری دارد.
الگوریتم «تفاوت» Reactفقط HTMLرا در DOMتغییر
وضعیت میدهد و در نتیجه مرورگر فقط محتوایی را که تغییر
کرده است دوباره ارائه میکند.
.1از کدهای وضعیت به درستی استفاده کنید – یک مشکل رایج در
اکثر SPAها این است که کدهای وضعیت را به درستی گزارش
نمی دهند .این به این دلیل است که سرور صفحه را بارگیری
نمیکند—مرورگر در حال بارگیری است .معموًال مشکالتی را در
موارد زیر مشاهده خواهید کرد:
به طور کلی ،گوگل پس از هش چیزی را نخواهد دید .همه این صفحات
به صورت httpsدیده می شوند:
راه حل
SPAها با مسیریابی سمت مشتری باید History APIرا برای تغییر
صفحات پیاده سازی کنند .میتوانید این کار را با React Routerو
Next.jsنسبتًا آسان انجام دهید.
.2در صورت لزوم از پیوندهای < >a hrefاستفاده کنید – یک اشتباه
رایج در SPAها استفاده از < >divیا < >buttonبرای تغییر URL
است .این یک مشکل با خود Reactنیست ،بلکه نحوه استفاده از
کتابخانه است .انجام این کار باعث ایجاد مشکل در موتورهای جستجو
میشود .همانطور که قبًال ذکر شد ،وقتی Googleیک URLرا
پردازش میکند ،به دنبال نشانیهای اینترنتی اضافی برای خزیدن در
عناصر < >a hrefمیگردد .اگر عنصر < >a hrefوجود نداشته باشد،
Google URLها را نمیخزد و رتبه صفحه را پاس نمیکند.
راه حل
راه حل این است که پیوندهای < >a hrefبه URLهایی را که
میخواهید Googleآنها را کشف کند ،اضافه کنید .بررسی اینکه آیا
به یک URLبه درستی پیوند داده شدهاید آسان است .عنصری را که
به صورت داخلی پیوند میدهد بررسی کنید و HTMLرا بررسی کنید
تا مطمئن شوید پیوندهای < >a hrefرا درج کردهاید.
.2از بارگذاری کند HTMLضروری خودداری کنید –برای سایتهایی
که با Reactتوسعه یافتهاند ،وقتی کاربر روی یک عنصر کلیک
میکند یا ماوس را نگه میدارد ،معموًال محتوا را به DOMتزریق
میکنند -صرفًا به این دلیل که کتابخانه انجام این کار را آسان
میکند .این ذاتا بد نیست ،اما محتوای اضافه شده به DOMاز این
طریق توسط موتورهای جستجو دیده نخواهد شد .اگر محتوای
تزریقشده حاوی محتوای متنی مهم یا پیوندهای داخلی باشد ،ممکن
است تأثیر منفی داشته باشد:
Accordions
Modals
Tabs
Mega menus
Hamburger menus
Canonicalization
Structured data
XML sitemaps
Mobile-first
Website structure
HTTPS
Title tags
Semantic HTML
جمع بندی و کالم اخر!
متأسفانه ،کار با برنامه های Reactبه لیست طوالنی از مشکالتی که
یک سئو فنی باید بررسی کند اضافه می کند .اما به لطف
چارچوبهایی مانند ،Next.jsکار یک سئو کار را بسیار سادهتر از آنچه
در تاریخ بوده است ،میکند .امیدوارم این پست به شما کمک کرده
باشد تا مالحظات دیگری را که باید به عنوان SEOهنگام کار با
برنامههای Reactرعایت کنید ،بهتر درک کنید.
ممنون که تا اینجا همراهی کردی رفیق
خوشحال میشم نظرت رو درباره پست
کامنت کنی