JavaScript ile sayfaları dizine ekleme β

Bir web Yöneticisi ile, içeriğin JavaScript aracılığıyla görüntülendiği site sayfalarının dizine eklenmesini yönetebilirsiniz — sitenizde gezinirken robotun sayfalarda JavaScript yürütmesi gerekip gerekmediğini belirleyebilirsiniz. Bu, sitede SSR (Sunucu Tarafı Oluşturma) veya ön oluşturma uygulanmıyorsa yararlı olabilir.

Not

JavaScript kodunu çalıştırırken robot, sunucunuza ek yük bindirebilir.

İndekslemeyi yönetme

  1. Web Yöneticisine gidin.

  2. Sayfasına gidin İndeksleme → JavaScript sayfalarını oluşturmaβ.

  3. Seçeneklerden birini seçin. Varsayılan olarak seçenek etkindir Robotun takdirine bağlı olarak. Bu, robotun sitenin sayfalarında JavaScript kodu çalıştırıp çalıştırmayacağını bağımsız olarak belirleyeceği anlamına gelir. Örneğin, bir karar vermek için javascript'li veya javascriptsiz bir sayfadaki içeriğin kalitesini ve eksiksizliğini değerlendirebilir ve site ziyaretçisi için daha yararlı olabilecek içeriği yükleyebilir.

    Öneri

    Sitede SSR (Sunucu Tarafı Oluşturma) veya ön oluşturma uygulanmışsa oluşturmayı önleyin.

Gelişmiş oluşturma ayarları

Sitenizde içerik gecikmeli olarak yükleniyorsa, bunu özel bir JavaScript kodu kullanarak Yandex'e bildirebilirsiniz.

İçeriğin gecikmeli olarak yüklendiği site sayfalarında bir nesne oluşturun window.YandexRotorSetting olaydan önce işlenecek şekilde DomContentLoaded. Bu nesnenin içinde, sayfayı işlerken Yandex robotunun yanıt vereceği parametreleri belirleyebilirsiniz. Parametreler aşağıdaki tabloda gösterilmektedir.

Örnek kod:

<script>
    window.YandexRotorSettings = {
        WaiterEnabled: true;
        FailOnTimeout: false;
        NoJsRedirectsToMain:true
    }
</script>

Parametre

Türü

Açıklama

WaiterEnabled

Boolean

Olası değerler:

  • true;
  • false.

Değeri ile true durumları kontrol etmek mümkündür:

  • IsLoaded;
  • IsError.

Aşağıdaki durumların ayrıntılı bir açıklaması.

IsLoaded

Boolean

Olası değerler:

  • true — olayın gerçekleşmesine bağlı olarak DomContentLoaded İçeriğin yüklendiği kabul edilir, sayfanın içeriği Yandex robotunun veritabanına girer;
  • false;
  • keyfi işlev Örnekler.

IsError

Boolean

Olası değerler:

  • true — içeriğin yüklenmesi hatalı kabul edilir, sayfanın içeriği Yandex robotu tarafından işlenmez;
  • false.

FailOnTimeout

Boolean

Olası değerler:

  • true — zaman aşımı sona erdiğinde sayfa robotun veritabanına ulaşmayacaktır;
  • false — içeriğin bir kısmı, robotun zaman aşımından önce indirmesi için zamana sahip olacak şekilde veritabanına girecektir.

Zaman aşımını kullanıcı ayarlarında şu durumlarda ayarlayabilirsiniz: WaiterEnabled: true.

NoJsRedirectsToMain

Boolean

Olası değerler:

  • true — Yandex robotu, sitenin ana sayfasına yönlendirmeyi görmezden gelecek;
  • false.

Sitenizde bir çağrı uygulanmışsa parametreyi kullanın window.history.back(), örneğin kullanırken History API.

Yandex robotu meydan okumayı algılıyor window.history.back() içeriği değiştirmeden ana sayfaya gitmek gibi. Sonuç olarak, diğer sayfalardan içerik ana sayfaya girebilir.

İçerik sahtekarlığı nasıl belirlenir

Arama sonuçlarında ana sayfanın açıklamasının dahili sayfanın açıklamasına veya bir özniteliğe dönüştüğünü fark edebilirsiniz rel="canonical" iç sayfaların niteliğine göre değişir.

JavaScript kodu uygulama örnekleri

Öğenin istenen CSS seçiciyle yüklenmesini bekleyin
<!-- Sınıfı olan öğeyi beklemek istiyoruz '.observable-class'.
10 saniye sonra oluşturulacak --->

<!-- Bu kod doğrudan html'ye eklenmelidir --->
<script>
    window.YandexRotorSettings = {
        WaiterEnabled: true
    }
</script>

<!-- Bu kod <script src=" aracılığıyla indirilebilir...">-->
<script>
    var intervalId = setInterval(function() {
        if (document.querySelectorAll('.observable-class').length > 0) {
            window.YandexRotorSettings.IsLoaded = true;
            clearInterval(intervalId);
        }
    }, 1000);
</script>

<!-- Örnek için komut dosyası. İstenen sınıfa sahip bir öğe oluşturuyoruz -->
<script>
    setTimeout(function() {
        var div = document.createElement('div');
        div.classList.add('observable-class');
        div.innerText = "These are the droids you're looking for.";
        document.body.appendChild(div);
    }, 10000);
</script>
İndirdikten sonra 5 saniye bekleyin
<!-- Belirli unsurları beklemeye güvenmenizi öneririz.
Kaynakların robot tarafından yüklenmesi süresiz olabilir --->

<!-- Bu kod doğrudan html'ye eklenmelidir --->
<script>
    window.YandexRotorSettings = {
        WaiterEnabled: true
    }
</script>

<!-- Bu kod <script src=" aracılığıyla indirilebilir...">-->
<script>
    setTimeout(function() {
        window.YandexRotorSettings.IsLoaded = true;
    }, 5000);
</script>

isLoaded içindeki bir işlevin uygulanmasına örnekler

Sayfa durumunu kontrol et
<!--Örnekte, sayfaya 10'dan fazla div öğesinin yerleştirildiğini kontrol ediyoruz-->

window.YandexRotorSettings = {
            WaiterEnabled: true,
            IsLoaded: function() {
                return document.body.querySelectorAll('div').length > 10;
            }
        };
Başlık öğesindeki içeriğin yüklenmesini bekleyin
window.YandexRotorSettings = {
    WaiterEnabled: true,
    IsLoaded: function() {
        return document.title.length > 0;
    }
}

Daha fazla bilgi edinin

Destek ekibine yazın



Ayrıca hizmete yükseltebilirsiniz