این یکی از چالشبرانگیزترین مباحث در سئو فنی (Technical SEO) مدرن است. واقعیت این است که اگرچه گوگل در رندر کردن جاوااسکریپت بسیار پیشرفت کرده، اما هنوز فاصله زیادی با درک محتوای HTML خالص دارد.
در ادامه، تحلیل دقیق این موضوع و راهکارهای اجرایی را بررسی میکنیم:
۱) آیا گوگل جاوااسکریپت را میفهمد؟
بله، اما با یک «هزینه» بزرگ. گوگلبات برای خواندن سایتهای JS محور، از یک نسخه بهروز کروم (Evergreen Chromium) استفاده میکند. اما مشکل اینجاست که رندر کردن JS به منابع پردازشی (CPU) بسیار زیادی نیاز دارد. به همین دلیل، گوگل بلافاصله پس از خزش، JS را اجرا نمیکند.
۲) موج دوم ایندکس (The Second Wave)
فرآیند ایندکس سایتهای SPA دو مرحلهای است:
- موج اول: گوگل کد HTML خام را میگیرد. در SPA، این کد تقریباً خالی است. گوگل متوجه میشود که سایت JS دارد و آن را در صف رندر (Rendering Queue) قرار میدهد.
- موج دوم: وقتی منابع پردازشی آزاد شد (که میتواند از چند ساعت تا چند هفته طول بکشد)، گوگل دوباره برمیگردد، JS را اجرا میکند و محتوای نهایی را میبیند.
نکته: اگر سایت شما بودجه خزش (Crawl Budget) کمی داشته باشد یا کد JS سنگین باشد، ممکن است محتوای شما هیچوقت به موج دوم نرسد یا ناقص ایندکس شود.
۳) تفاوت SSR و CSR در سئو
- CSR (Client-Side Rendering): تمام بار رندر روی مرورگر است. برای سئو خطرناک است چون گوگل باید منتظر اجرای فایلهای JS بماند.
- SSR (Server-Side Rendering): سرور قبل از ارسال پاسخ به کاربر/گوگل، صفحه را رندر کرده و HTML کامل را میفرستد. این بهترین حالت برای سئو است چون محتوا در همان «موج اول» ایندکس میشود.
۴) راهکارهای عملی (Vue.js / React)
اگر سایت شما محتوا-محور است (مثل مجله خبری یا فروشگاه)، SSR یک انتخاب نیست، بلکه یک اجبار است.
- استفاده از Nuxt.js (برای Vue) یا Next.js (برای React): این فریمورکها SSR را به صورت پیشفرض مدیریت میکنند و مشکل سئو را به کلی حل میکنند.
- Prerendering (مثل سرویسهای Prerender.io): برای سایتهایی که صفحات محدودی دارند (مثلاً زیر ۱۰۰۰ صفحه) و محتوای آنها مدام تغییر نمیکند، عالی است. این ابزارها یک نسخه Static HTML از صفحات شما تهیه میکنند و فقط به خزنده گوگل تحویل میدهند.
- Dynamic Rendering: تشخیص میدهید که کاربر “انسان” است یا “ربات”. اگر ربات بود، نسخه رندر شده را میفرستید و اگر انسان بود، همان SPA معمولی را لود میکنید. (البته گوگل ترجیح میدهد به سمت SSR بروید).
۵) اشتباهات مرگبار در سئوی SPA
- استفاده نکردن از تگ <a> با href: اگر برای جابهجایی بین صفحات فقط از onclick استفاده کنید، گوگل هیچکدام از صفحات داخلی شما را پیدا نخواهد کرد. گوگل فقط لینکهای استاندارد را دنبال میکند.
- سرعت اجرای JS: اگر اجرای اسکریپتهای شما بیش از ۵ ثانیه طول بکشد، گوگل احتمالاً رندر را متوقف کرده و صفحه را خالی ایندکس میکند.
- فایلهای بلوکه شده: مطمئن شوید فایلهای .js در robots.txt مسدود نشده باشند؛ وگرنه گوگل نمیتواند صفحه را رندر کند.

۶) چطور بفهمیم گوگل چه میبیند؟
بهترین ابزار، URL Inspection Tool در گوگل سرچ کنسول است.
بعد از وارد کردن آدرس، روی Test Live URL کلیک کنید و سپس View Tested Page را بزنید. در تب Screenshot میتوانید ببینید که آیا محتوا لود شده یا نه، و در تب HTML ببینید کدهایی که گوگل دریافت کرده چیست.
نتیجهگیری:
اگر سئو برای کسبوکارتان حیاتی است، تکیه بر «موج دوم ایندکس» ریسک بزرگی است. پیشنهاد من به شما به عنوان یک توسعهدهنده، مهاجرت به Nuxt.js برای پیادهسازی SSR است. این کار نه تنها سئو را تضمین میکند، بلکه سرعت بارگذاری اولیه (First Contentful Paint) را هم برای کاربران واقعی به شدت بهبود میدهد.