Google Search Central

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

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

مشکلات جاوا اسکریپت مربوط به جستجو را برطرف کنید

این راهنما به شما کمک می‌کند تا مشکلات جاوا اسکریپت را که ممکن است صفحه شما را مسدود کرده است شناسایی و برطرف کنید محتوای خاصی در صفحات دارای جاوا اسکریپت، از نمایش در جستجوی Google. در حالی که گوگل جاوا اسکریپت را اجرا می کند، تفاوت ها و محدودیت هایی وجود دارد که باید انجام دهید در هنگام طراحی صفحات و برنامه های خود برای تطبیق نحوه دسترسی خزنده ها و محتوای خود را ارائه دهید راهنمای ما در مورد اصول SEO JavaScript اطلاعات بیشتر در مورد اینکه چگونه می توانید سایت جاوا اسکریپت خود را برای جستجوی گوگل بهینه کنید.

Googlebot طوری طراحی شده است که شهروند خوبی در وب باشد. خزیدن آن است اولویت اصلی، در حالی که مطمئن شوید که تجربه بازدید کاربران از سایت را کاهش نمی دهد. Googlebot و مؤلفه خدمات رندر وب (WRS) آن به طور مداوم منابعی را تجزیه و تحلیل و شناسایی می کند به محتوای ضروری صفحه کمک نکنید و ممکن است چنین منابعی را دریافت نکنید. مثلا، گزارش و درخواست های خطا که به محتوای ضروری صفحه کمک نمی کند و موارد دیگر نوع مشابهی از درخواست ها برای استخراج محتوای ضروری صفحه استفاده نشده یا غیر ضروری هستند. سمت مشتری تجزیه و تحلیل ممکن است کامل یا دقیق ارائه نکند نمایش فعالیت Googlebot و WRS در سایت شما. استفاده کنید کنسول جستجو برای نظارت فعالیت و بازخورد Googlebot و WRS در سایت شما.

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

  1. برای آزمایش نحوه خزیدن و رندر Google URL، از آزمون نتایج غنی یا ابزار بازرسی URL در جستجو کنسول. می توانید منابع بارگذاری شده، خروجی کنسول جاوا اسکریپت و استثناها را مشاهده کنید DOM و اطلاعات بیشتر.

    به صورت اختیاری، ما همچنین توصیه می کنیم خطاهای جاوا اسکریپت را جمع آوری و بررسی کنید کاربران، از جمله Googlebot، در سایت شما برای شناسایی مشکلات احتمالی که ممکن است بر نحوه انجام آن تأثیر بگذارد محتوا ارائه می شود.

    در اینجا مثالی وجود دارد که نشان می‌دهد چگونه خطاهای جاوا اسکریپت را که در کنترل کننده خطای جهانی. توجه داشته باشید که برخی از انواع خطاهای جاوا اسکریپت، مانند خطای تجزیه، با این روش قابل ثبت نیستند.

    window.addEventListener('error', function(e) {
       
    var errorText = [
            e
    .message,
           
    'URL: ' + e.filename,
           
    'Line: ' + e.lineno + ', Column: ' + e.colno,
           
    'Stack: ' + (e.error && e.error.stack || '(no stack trace)')
       
    ].join('\n');

       
    // Example: log errors as visual output into the host page.
       
    // Note: you probably don't want to show such errors to users, or
       
    //       have the errors get indexed by Googlebot; however, it may
       
    //       be a useful feature while actively debugging the page.
       
    var DOM_ID = 'rendering-debug-pre';
       
    if (!document.getElementById(DOM_ID)) {
           
    var log = document.createElement('pre');
            log
    .id = DOM_ID;
            log
    .style.whiteSpace = 'pre-wrap';
            log
    .textContent = errorText;
           
    if (!document.body) document.body = document.createElement('body');
            document
    .body.insertBefore(log, document.body.firstChild);
       
    } else {
            document
    .getElementById(DOM_ID).textContent += '\n\n' + errorText;
       
    }

       
    // Example: log the error to remote service.
       
    // Note: you can log errors to a remote service, to understand
       
    //       and monitor the types of errors encountered by regular users,
       
    //       Googlebot, and other crawlers.
       
    var client = new XMLHttpRequest();
        client
    .open('POST', 'https://example.com/logError');
        client
    .setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');
        client
    .send(errorText);

    });
  2. حتماً از خطاهای soft 404 جلوگیری کنید. در یک برنامه تک صفحه ای (SPA)، این می تواند به خصوص دشوار باشد. برای جلوگیری از ایندکس شدن صفحات خطا، می توانید از یک یا هر دو استراتژی زیر استفاده کنید:
    • به آدرس اینترنتی که در آن سرور با کد وضعیت 404 پاسخ می دهد، هدایت کنید.
      fetch(`https://api.kitten.club/cats/${id}`)
       
      .then(res => res.json())
       
      .then((cat) => {
         
      if (!cat.exists) {
           
      // redirect to page that gives a 404
           window
      .location.href = '/not-found';
         
      }
       
      });
    • را اضافه یا تغییر دهیدrobots meta را به noindex تگ کنید.
      fetch(`https://api.kitten.club/cats/${id}`)
       
      .then(res => res.json())
       
      .then((cat) => {
         
      if (!cat.exists) {
           
      const metaRobots = document.createElement('meta');
           metaRobots
      .name = 'robots';
           metaRobots
      .content = 'noindex';
           document
      .head.appendChild(metaRobots);
         
      }
       
      });

    هنگامی که یک SPA از جاوا اسکریپت سمت سرویس گیرنده استفاده می کند خطاها را کنترل می کنند و اغلب به جای کد وضعیت HTTP 200 را گزارش می کنند کد وضعیت مناسب. این می تواند منجر به ایندکس شدن صفحات خطا و احتمالاً نمایش داده شدن آنها در نتایج جستجو شود.

  3. انتظار داشته باشید Googlebot رد شود درخواست های اجازه کاربر.
    ویژگی هایی که به مجوز کاربر نیاز دارند منطقی نیستند Googlebot یا برای همه کاربران. برای مثال، اگر Camera API مورد نیاز را ایجاد کنید، Googlebot نمی تواند دوربینی در اختیار شما قرار دهد. در عوض، راهی برای دسترسی کاربران به شما فراهم کنید محتوا بدون اجبار اجازه دسترسی به دوربین.
  4. از نشانی‌های وب قطعه برای بارگیری محتوای مختلف استفاده نکنید.
    یک SPA ممکن است از URLهای قطعه (به عنوان مثال https://example.com/#/products) برای بارگیری استفاده کند. دیدگاه های مختلف. طرح خزیدن AJAX منسوخ شده است از سال 2015، بنابراین نمی توانید برای کار با Googlebot به URL های قطعه تکیه کنید. توصیه می کنیم از History API برای بارگذاری محتوای مختلف بر اساس URL در SPA.
  5. برای ارائه محتوا به ماندگاری داده تکیه نکنید.
    WRS هر URL را بارگیری می کند (رجوع کنید به جستجوی Google چگونه کار می کند برای یک نمای کلی از نحوه کشف محتوا توسط Google)، دنبال کردن تغییر مسیرهای سرور و مشتری، مانند یک معمول مرورگر. با این حال، WRS وضعیت را در بارگذاری صفحه حفظ نمی کند:
    • داده‌های Local Storage و Session Storage در بارهای صفحه پاک می‌شوند.
    • کوکی‌های HTTP در بارگذاری‌های صفحه پاک می‌شوند.
  6. از انگشت نگاری محتوا برای جلوگیری از مشکلات مربوط به حافظه پنهان با Googlebot استفاده کنید.
    Googlebot به منظور کاهش، به طور تهاجمی ذخیره می کند درخواست های شبکه و استفاده از منابع WRS ممکن است هدرهای ذخیره را نادیده بگیرد. این ممکن است منجر به استفاده از WRS شود منابع جاوا اسکریپت یا CSS قدیمی. انگشت نگاری محتوا با ایجاد یک از این مشکل جلوگیری می کند اثر انگشت قسمت محتوای نام فایل، مانند main.2bb85551.js. اثر انگشت به محتوای فایل بستگی دارد، بنابراین به‌روزرسانی‌ها نام فایل متفاوتی ایجاد می‌کنند هر زمان. بررسی کنید راهنمای web.dev در مورد استراتژی های ذخیره سازی طولانی مدت برای یادگیری بیشتر
  7. مطمئن شوید که برنامه شما از آن استفاده می کند تشخیص ویژگی برای همه API های حیاتی که به آن نیاز دارد و یک نسخه بازگشتی ارائه می کند رفتار یا polyfill در صورت وجود ویژگی های خاصی را غیرفعال کنید به عنوان مثال، اگر از WebGL برای نمایش جلوه های عکس در مرورگر استفاده می کنید، تشخیص ویژگی نشان می دهد که Googlebot از WebGL پشتیبانی نمی کند. برای رفع این مشکل، می توانید از آن رد شوید افکت عکس یا تصمیم به استفاده از رندر سمت سرور برای پیش نمایش جلوه های عکس، که باعث می شود محتوای شما برای همه از جمله Googlebot قابل دسترسی است.
  8. مطمئن شوید که محتوای شما با اتصالات HTTP کار می کند.
    Googlebot از درخواست های HTTP برای بازیابی محتوا از سرور شما استفاده می کند. از انواع دیگر اتصالات مانند WebSockets یا WebRTC اتصالات برای جلوگیری از بروز مشکل در چنین اتصالاتی، مطمئن شوید که یک HTTP بازگشتی برای بازیابی ارائه کرده اید محتوا و از مدیریت دقیق خطا و تشخیص ویژگی استفاده کنید.
  9. مطمئن شوید که اجزای وب شما همانطور که انتظار می رود ارائه شوند. از آزمون نتایج غنی یا ابزار بازرسی URL به بررسی کنید که آیا HTML رندر شده تمام محتوای مورد انتظار شما را دارد یا خیر.
    WRS DOM روشن و DOM سایه را صاف می کند. اگر مؤلفه های وب که استفاده می کنید استفاده نمی کنید <slot> مکانیسم برای محتوای سبک DOM، برای اطلاعات بیشتر به مستندات مؤلفه وب مراجعه کنید یا به جای آن از کامپوننت وب دیگری استفاده کنید. برای اطلاعات بیشتر ببین بهترین شیوه ها برای اجزای وب.
  10. پس از اصلاح موارد موجود در این چک لیست، صفحه خود را آزمایش کنید با آزمون نتایج غنی یا ابزار بازرسی URL در جستجو دوباره کنسول

    اگر مشکل را برطرف کرده باشید، یک علامت تیک سبز ظاهر می شود و هیچ خطایی نمایش داده نمی شود. اگر هنوز خطاها را ببینید، در سایت های جاوا اسکریپت در گروه کاری جستجو.

منبع اطلاعات این صفحه راهنمای رسمی گوگل برای اصول سئو، صفحه می‌باشد. این محتوا توسط گوگل تهیه شده و تحت مجوز Creative Commons Attribution 4.0 منتشر شده است و با همین مجوز توسط من ترجمه و منتشر می‌شود.
Last updated UTC.
Last updated in Google UTC.