CodeShot

رندر سمت کلاینت (CSR) در مقابل رندر سمت سرور (SSR)

در CSR مرورگر یک فایل HTML تقریباً خالی دریافت می‌کند و جاوااسکریپت کل رابط کاربری را در خود مرورگر می‌سازد، در حالی که در SSR سرور HTML کامل و آماده هر صفحه را از قبل رندر کرده و به مرورگر می‌فرستد و جاوااسکریپت بعداً برای تعاملی‌شدن صفحه (Hydration) بارگذاری می‌شود.

ویژگیرندر سمت کلاینت (CSR)رندر سمت سرور (SSR)
محل ساخت HTMLمرورگرسرور
سئوضعیف‌تر (بدون تنظیم خاص)قوی
زمان نمایش اولیه محتواکندترسریع‌تر
بار روی سرورکمبیشتر

کِی از رندر سمت کلاینت (CSR) استفاده کنیم؟

وقتی برنامه یک SPA پیچیده و درون‌سازمانی (Dashboard، پنل مدیریت) است که سئو اهمیت کمی دارد و بار اولیه روی سرور اهمیتی ندارد.

کِی از رندر سمت سرور (SSR) استفاده کنیم؟

وقتی سئو و سرعت نمایش اولیه محتوا (مثل فروشگاه یا وبلاگ) حیاتی است و می‌خواهید موتورهای جستجو محتوای کامل صفحه را ببینند.

مثال رندر سمت کلاینت (CSR)

// CSR: مرورگر ابتدا یک div خالی می‌گیرد
// و React بعداً محتوا را می‌سازد
ReactDOM.createRoot(document.getElementById("root"))
  .render(<App />);

مثال رندر سمت سرور (SSR)

// SSR (مثلاً در Next.js): HTML کامل
// از سرور می‌آید، سپس Hydrate می‌شود
export async function getServerSideProps() {
  return { props: { data: await fetchData() } };
}

اشتباه رایج

اشتباه رایج استفاده از CSR خالص برای صفحات عمومی و وابسته به سئو مثل صفحه محصول فروشگاه است؛ موتورهای جستجو و شبکه‌های اجتماعی که پیش‌نمایش لینک می‌سازند، ممکن است محتوای رندرشده با جاوااسکریپت را کامل نبینند.

جمع‌بندی

برای اپلیکیشن‌های داخلی و پیچیده بدون نیاز به سئو از CSR و برای صفحات عمومی وابسته به سئو و سرعت بار اولیه از SSR استفاده کنید.