JavaScript β ile sayfa dizinleme

Yandex Webmaster ile içeriğin JavaScript ile görüntülendiği site sayfalarının dizinlemesini yönetebilirsiniz. Dizinleme botunun sitenizi tararken sayfalarda JavaScript çalıştırıp çalıştırmaması gerektiğini belirtebilirsiniz. Bu, SSR (Sunucu Tarafı İşleme) veya ön işleme sitenizde uygulanmadıysa yararlı olabilir.

Not

JavaScript kodunun çalıştırılması sunucunuza ek yük getirebilir.

Dizinleme yönetimi

  1. Yandex Webmaster’a gidin.

  2. Yandex Webmaster’da EndekslemeJavaScript sayfa işlemeβ bölümüne gidin.

  3. Bir seçenek seçin. Varsayılan olarak, Botun takdirine bağlı seçeneği etkinleştirilmiştir. Bu, botun sitenin sayfalarında JavaScript kodunu çalıştırıp çalıştırmamaya bağımsız olarak karar vereceği anlamına gelir. Karar vermek için, örneğin, JavaScript ile ve JavaScript olmadan sayfalardaki içeriğin kalitesini ve bütünlüğünü değerlendirebilir ve ziyaretçiye daha faydalı olma olasılığı yüksek olanı yükleyebilir.

    Öneri

    SSR (Sunucu Tarafı İşleme) veya ön işleme sitenizde uygulanmışsa işleme yasaklayın.

Gelişmiş işleme ayarları

Sitenizdeki içerik gecikmeli yükleniyorsa, Yandex’e bunu özel bir JavaScript kodu kullanarak bildirebilirsiniz.

İçeriğin gecikmeli yüklendiği site sayfalarında, window.YandexRotorSetting nesnesini DomContentLoaded olayından önce işlenecek şekilde oluşturun. Bu nesne içinde, Yandex botunun sayfayı işlerken yanıt vereceği parametreleri belirtebilirsiniz. Parametreler aşağıdaki tabloda listelenmiştir.

Kod örneği:

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

Parametre

Tip

Açıklama

WaiterEnabled

Boole değeri

Olası değerler:

  • true;
  • false.

Değer doğru olduğunda, durumları kontrol etmek mümkündür:

  • IsLoaded;
  • IsError.

Aşağıda durumların ayrıntılı açıklamasını görün.

IsLoaded

Boole değeri

Olası değerler:

  • trueDomContentLoaded olayı yürütülürse, içerik yüklendi kabul edilir ve sayfa içeriği Yandex botu tarafından dizine eklenir.
  • false.
  • Keyfi işlev. Örnekler

IsError

Boole değeri

Olası değerler:

  • true – içerik yüklemesi hatalı kabul edilir ve sayfa içeriği Yandex botu tarafından işlenmez;
  • false.

ZamanAşımındaBaşarısız

Boole değeri

Olası değerler:

  • true – zaman aşımı süresi dolduktan sonra bot sayfayı dizine eklemez;
  • false – bot, zaman aşımı süresi dolmadan önce yüklemeyi başardığı içeriği dizine ekler.

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

NoJsRedirectsToMain

Boole değeri

Olası değerler:

  • true – Yandex botu, sitenin ana sayfasına yönlendirmeyi görmezden gelir;
  • false.

Parametreyi, siteniz window.history.back() çağrısını uyguluyorsa, örneğin History API kullanırken kullanın.

Yandex botu, window.history.back() çağrısını içeriği değiştirmeden ana sayfaya geçiş olarak algılar. Sonuç olarak, diğer sayfalardan içerik ana sayfada görünebilir.

İçerik değişimini nasıl tespit edersiniz

Arama sonuçlarında, ana sayfanın açıklamasının iç sayfaların açıklamasına değiştiğini veya rel="canonical" özniteliğinin iç sayfaların özniteliğine değiştiğini fark edebilirsiniz.

JavaScript kodu uygulama örnekleri

İstenen CSS seçicisine sahip öğenin yüklenmesini bekleyin
<!-- '.observable-class' öğesini bekliyoruz.
10 saniye içinde oluşturulacak --->

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

<!-- Bu kod <script src="..."> ile yüklenebilir -->
<script>
    var intervalId = setInterval(function() {
        if (document.querySelectorAll('.observable-class').length > 0) {
            window.YandexRotorSettings.IsLoaded = true;
            clearInterval(intervalId);
        }
    }, 1000);
</script>

<!-- Örnek bir script. İhtiyacımız olan sınıfa sahip bir öğe oluşturun -->
<script>
    setTimeout(function() {
        var div = document.createElement('div');
        div.classList.add('observable-class');
        div.innerText = "Aradığınız droidler bunlar.";
        document.body.appendChild(div);
    }, 10000);
</script>
Yüklemeden 5 saniye sonra bekleyin
<!-- Belirli öğeleri beklemeye güvenmenizi öneririz.
Dizinleme botu kaynakları belirsiz bir süre boyunca yükleyebilir --->

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

<!-- Bu kod <script src="..."> ile yüklenebilir -->
<script>
    setTimeout(function() {
        window.YandexRotorSettings.IsLoaded = true;
    }, 5000);
</script>

isLoaded içinde fonksiyon uygulama örnekleri

Sayfanın durumunu kontrol edin
<!--Bu örnekte, sayfada 10’dan fazla div öğesi olup olmadığını kontrol ediyoruz-->

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

Daha fazla bilgi edinin

Destek ile iletişime geçin

Sayfalar uzun süre arama sonuçlarında görünmüyorsa veya hariç tutulduysa ya da sitenin alt etki alanlarının dizinlenmesi hakkında başka sorularınız varsa, aşağıdaki formu doldurun:




Ayrıca şuraya gidebilirsiniz: