Google Search Central

راهنمای جامع سئو برای موتورهای جستجو

خانه> خزیدن و نمایه‌سازی> جاوااسکریپت> محتوای داینامیک

رندر پویا به عنوان یک راه حل

در برخی از وب‌سایت‌ها، جاوا اسکریپت محتوای اضافی را در یک صفحه زمانی که در مرورگر اجرا می‌شود تولید می‌کند. این پردازش سمت مشتری نامیده می شود. در حالی که جستجوی گوگل جاوا اسکریپت را اجرا می کند، ویژگی های جاوا اسکریپت با محدودیت در جستجوی Google وجود دارد و برخی از صفحات ممکن است با مشکلاتی مواجه شوند که محتوا در HTML ارائه شده نشان داده نمی شود. سایر موتورهای جستجو ممکن است انتخاب کنند جاوا اسکریپت را نادیده بگیرید و محتوای تولید شده توسط جاوا اسکریپت را نخواهید دید.

رندر پویا یک راه حل برای وب سایت هایی است که محتوای تولید شده با جاوا اسکریپت در دسترس موتورهای جستجو نیست. یک سرور رندر پویا، ربات هایی را شناسایی می کند که ممکن است با محتوای تولید شده توسط جاوا اسکریپت مشکل داشته باشند و نسخه ارائه شده توسط سرور را ارائه می دهد. بدون جاوا اسکریپت به این ربات ها در حالی که نسخه ارائه شده توسط مشتری از محتوا را به کاربران نشان می دهد.

رندر پویا یک راه حل است و یک راه حل توصیه نمی شود، زیرا پیچیدگی ها و نیازهای منابع اضافی را ایجاد می کند.

رندر پویا یک راه حل برای محتوای قابل نمایه سازی و ایجاد شده توسط جاوا اسکریپت عمومی است که به سرعت تغییر می کند یا محتوایی که از ویژگی های جاوا اسکریپت استفاده می کند که توسط خزنده ها پشتیبانی نمی شود به شما اهمیت می دهید همه سایت ها نیازی به استفاده از رندر پویا ندارند و همانطور که در این مقاله در مورد رندر در وب توضیح داده شده است، راه حل های بهتری نسبت به رندر پویا وجود دارد.

رندر پویا به وب سرور شما نیاز دارد تا خزنده ها را شناسایی کند (به عنوان مثال، با بررسی عامل کاربر). درخواست‌های خزنده‌ها به یک رندر هدایت می‌شوند، درخواست‌های کاربران ارائه می‌شوند به طور معمول در صورت نیاز، رندر پویا نسخه ای از محتوا را ارائه می دهد که مناسب است برای خزنده، برای مثال، ممکن است یک نسخه HTML ایستا را ارائه دهد. می توانید انتخاب کنید که فعال شود رندر پویا برای همه صفحات یا بر اساس هر صفحه.

نموداری که نحوه عملکرد رندر پویا را نشان می دهد. نمودار سرویس دهنده سرور را نشان می دهد
              محتوای اولیه HTML و جاوا اسکریپت به طور مستقیم به مرورگر. در مقابل، نمودار
              سروری را نشان می دهد که HTML و جاوا اسکریپت اولیه را به یک رندر ارائه می دهد که آن را تبدیل می کند
              HTML اولیه و جاوا اسکریپت به HTML ایستا. پس از تبدیل محتوا،
              رندر HTML ایستا را به خزنده ارائه می دهد.

ربات گوگل معمولاً رندر پویا را به عنوان رندر در نظر نمی گیرد پوشش. تا زمانی که رندر پویا شما محتوای مشابهی تولید می کند، Googlebot رندر پویا را به عنوان پنهان کاری مشاهده نخواهد کرد.

وقتی در حال تنظیم رندر پویا هستید، سایت شما ممکن است صفحات خطا تولید کند. Googlebot این کار را نمی کند این صفحات خطا را به عنوان پنهان کاری در نظر بگیرید و خطا را مانند هر صفحه خطای دیگری در نظر بگیرید.

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

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

  1. نصب و پیکربندی یک رندر پویا (به عنوان مثال، Puppeteer، Rendertron، یا prerender.io) تا محتوای خود را به HTML ایستا تبدیل کنید که' مصرف آن برای خزنده ها آسان تر است.
  2. عوامل کاربری را که می خواهید HTML استاتیک شما را دریافت کنند انتخاب کنید و به آن مراجعه کنید جزئیات پیکربندی خاص در مورد نحوه به روز رسانی یا افزودن عوامل کاربر. در اینجا یک مثال از a لیستی از عوامل کاربر رایج در میان افزار Rendertron:
    export const botUserAgents = [
     
    'googlebot',
     
    'bingbot',
     
    'linkedinbot',
     
    'mediapartners-google',
    ];
  3. اگر پیش‌رندر سرعت سرور شما را کند می‌کند یا تعداد زیادی پیش‌رندر مشاهده می‌کنید درخواست، پیاده سازی حافظه پنهان برای محتوای از پیش رندر شده را در نظر بگیرید، یا تأیید اینکه درخواست ها وجود دارند از خزنده های قانونی.
  4. تعیین کنید که آیا عوامل کاربر به محتوای دسکتاپ یا تلفن همراه نیاز دارند. استفاده کنید سرویس پویا برای ارائه نسخه دسکتاپ یا موبایل مناسب در اینجا مثالی از نحوه انجام آن آورده شده است یک پیکربندی می تواند تعیین کند که آیا یک عامل کاربر به محتوای دسکتاپ یا تلفن همراه نیاز دارد:
    isPrerenderedUA = userAgent.matches(botUserAgents)
    isMobileUA
    = userAgent.matches(['mobile', 'android'])


    if (!isPrerenderedUA) {
    } else {
      servePreRendered
    (isMobileUA)
    }
  5. سرور خود را پیکربندی کنید تا HTML ایستا را به خزنده هایی که انتخاب کرده اید تحویل دهد. آنجا راه های مختلفی وجود دارد که می توانید بسته به فناوری خود این کار را انجام دهید. در اینجا چند نمونه هستند:
    • درخواست‌های پراکسی از خزنده‌ها به رندر پویا می‌آیند.
    • به عنوان بخشی از فرآیند استقرار خود، از قبل رندر بگیرید و سرور خود را به حالت ایستا بپردازید HTML به خزنده ها.
    • رندر پویا را در کد سرور سفارشی خود بسازید.
    • محتوای ثابت را از یک سرویس پیش از ارائه به خزنده ها ارائه دهید.
    • از یک میان افزار برای سرور خود استفاده کنید (به عنوان مثال، میان افزار رندرترون).

پس از اتمام اجرای رندر پویا، تأیید کنید که همه چیز همانطور که انتظار می رود با بررسی یک URL با آزمایش های زیر کار می کند:

  1. محتوای موبایل و دسکتاپ خود را با ابزار بازرسی URL به مطمئن شوید که محتوای دسکتاپ و موبایل نیز در صفحه رندر شده (صفحه رندر شده) قابل مشاهده است چگونه گوگل صفحه شما را می بیند).

    موفقیت: محتوای دسک‌تاپ و موبایل مطابقت دارند چیزی که انتظار دارید کاربر ببیند.

    دوباره امتحان کنید: اگر محتوایی را می بینید با آنچه انتظار دارید مطابقت ندارد، بخش عیب یابی را ببینید.

  2. اگر از داده های ساخت یافته استفاده می کنید، آزمایش کنید که داده های ساخت یافته شما به درستی با آزمون نتایج غنی.

    موفقیت: داده های ساخت یافته ظاهر می شوند همانطور که انتظار دارید.

    دوباره امتحان کنید: اگر داده‌های ساختار یافته است آنطور که انتظار دارید ظاهر نمی شود، بخش عیب یابی را ببینید.

اگر محتوای شما خطاهایی را در قسمت نشان می دهد ابزار بازرسی URL یا اگر در نتایج جستجوی Google ظاهر نمی شود، سعی کنید رایج ترین مشکلات را حل کنید. اگر هنوز با مشکلاتی مواجه هستید، یک موضوع جدید در انجمن راهنمای جستجوی مرکزی Google پست کنید.

چه چیزی باعث این مشکل شد: رندر شما ممکن است به اشتباه پیکربندی شده باشد یا برنامه وب شما ممکن است با رندر شما ناسازگار باشد راه حل. گاهی اوقات مهلت زمانی می تواند باعث شود که محتوا به درستی ارائه نشود.

رفع مشکل: به مستندات مراجعه کنید برای راه حل رندر خاص شما برای رفع اشکال تنظیم رندر پویا شما.

چه چیزی باعث این مشکل شد: استفاده از هدلس مرورگر برای رندر صفحات در صورت تقاضا اغلب باعث زمان پاسخگویی بالا می شود که می تواند باعث خزنده ها شود تا درخواست را لغو کنید و محتوای خود را ایندکس نکنید. زمان پاسخگویی بالا نیز می تواند منجر شود خزنده ها سرعت خزیدن خود را هنگام خزیدن و نمایه سازی محتوای شما کاهش می دهند.

مشکل را برطرف کنید

  1. یک کش برای HTML از پیش رندر شده تنظیم کنید یا یک نسخه HTML ایستا از محتوای خود ایجاد کنید به عنوان بخشی از فرآیند ساخت شما
  2. مطمئن شوید که حافظه پنهان را در پیکربندی خود فعال کرده اید (به عنوان مثال، با اشاره خزنده ها به حافظه پنهان شما).
  3. بررسی کنید که خزنده ها با استفاده از ابزارهای آزمایشی مانند آزمون نتایج غنی یا تست صفحه وب (با یک کاربر سفارشی رشته عامل از لیست نمایندگان کاربر Google Crawler). درخواست‌های شما نباید به پایان برسد.

چه چیزی باعث این مشکل شد: Shadow DOM از بقیه صفحه جدا شده است. راه حل های رندر (مانند Rendertron) نمی توانند محتوای داخل سایه ایزوله DOM را ببینند. برای اطلاعات بیشتر به بهترین شیوه ها برای اجزای وب مراجعه کنید.

مشکل را برطرف کنید

  1. پلی‌پرهای webcomponents.js را برای عناصر سفارشی بارگیری کنید و DOM را سایه بزنید.
  2. از آزمون نتایج غنی یا ابزار بازرسی URL برای بررسی اینکه آیا محتوا در HTML ارائه شده راه حل رندر شما ظاهر می شود یا خیر.

چه چیزی باعث این مشکل شد: از دست دادن عامل کاربر داده های ساختاریافته، یا شامل نکردن تگ های اسکریپت JSON-LD در خروجی می تواند باعث شود خطاهای داده های ساخت یافته

مشکل را برطرف کنید

  1. از آزمون نتایج غنی برای اطمینان از وجود داده های ساخت یافته در صفحه. سپس پیکربندی کنید عامل کاربر برای آزمایش محتوای از پیش رندر شده با Googlebot دسکتاپ یا تلفن همراه.
  2. اطمینان حاصل کنید که تگ های اسکریپت JSON-LD در HTML ارائه شده به صورت پویا از شما گنجانده شده است محتوا. برای اطلاعات بیشتر به مستندات راه حل رندر خود مراجعه کنید.
منبع اطلاعات این صفحه راهنمای رسمی گوگل برای اصول سئو، صفحه می‌باشد. این محتوا توسط گوگل تهیه شده و تحت مجوز Creative Commons Attribution 4.0 منتشر شده است و با همین مجوز توسط من ترجمه و منتشر می‌شود.
Last updated UTC.
Last updated in Google UTC.