AJAX sitelerini dizine ekleme
AJAX sitesini dizine eklerken, Yandex robotu orijinal URL'leri tarar ve üzerlerinde JavaScript kodunu yürütür. Dizine ekleme ayarlarını ve aramadaki sayfaların durumunu kontrol etmek için şunu kullanın: JavaScript oluşturma.
Daha önce AJAX sayfalarının HTML sürümüne işaret etmek için meta etiketi kullandıysanız meta name="fragment" content="!"
, robot onu görmezden gelecek ve orijinal sayfayı dizine ekleyecektir.
Meta etiketi kullanma hakkında
AJAX sayfasının kodunda meta etiket belirtilmişse meta name="fragment" content="!"
, HTML sürümüne parametrenin eklenmesiyle adreste erişilebilir olmalıdır ?_escaped_fragment_=
(parametre değeri boştur). Örneğin: http://www.example.com/?_escaped_fragment_=
.
Daha önce Yandex robotuna sayfanın HTML sürümü hakkında parametreyi kullanarak bilgi verdiyseniz #!
, bu yöntemi terk etmenizi öneririz:
-
Dosyada Sitemap bağlantıların yapısını değiştirin — sembol içermemeleri için
#
. -
AJAX sayfalarındaki bağlantılarda sembol kullanılıyorsa
#
, adresleri bu sembol olmadan URL olarak değiştirin. Örneğin, Geçmiş API'sini kullanarak.History API hakkında ayrıntılar
HTML bağlantılarından AJAX sayfalarında bağlantılar ararken, Yandex robotu yalnızca öznitelikteki URL'yi dikkate alır
href
. Bağlantı adreslerinde parçalar kullanmayın (<a href="#/example">Example</a>
). Bunun yerine kullanmanızı öneririz History API. Oturum içindeki tarayıcı geçmişinin değiştirilmesine izin verir: sayfanın içine yüklenen sekme veya çerçeve içindeki ziyaret edilen sayfalar hakkında.Örneğin, robot bu durumda bağlantıları tespit edemeyecektir:
<nav> <ul> <li><a href="#/clothes">Clothes</a></li> <li><a href="#/shoes">Shoes</a></li> </ul> </nav> <h1>Welcome to example.com!</h1> <div id="note"> <p>Learn more about our <a href="#/clothes">clothes</a> and <a href="#/shoes">shoes</p> </div> <script> window.addEventListener('hashchange', function goToPage() { // this function loads different content based on the current URL fragment const pageToLoad = window.location.hash.slice(1); // URL fragment document.getElementById('placeholder').innerHTML = load(pageToLoad); }); </script>
Geçmiş API'sine geçiş, bağlantıları erişilebilir hale getirecektir:
<nav> <ul> <li><a href="/clothes">Clothes</a></li> <li><a href="/shoes">Shoes</a></li> </ul> </nav> <h1>Welcome to example.com!</h1> <div id="note"> <p>Learn more about our <a href="/clothes">clothes</a> and <a href="/shoes">shoes</p> </div> <script> function goToPage(event) { event.preventDefault(); // stop the browser from navigating to the destination URL. const hrefUrl = event.target.getAttribute('href'); const pageToLoad = hrefUrl.slice(1); // remove the leading slash document.getElementById('placeholder').innerHTML = load(pageToLoad); window.history.pushState({}, window.title, hrefUrl) // Update URL as well as browser history. } // Enable client-side routing for all links on the page document.querySelectorAll('a').forEach(link => link.addEventListener('click', goToPage)); </script>
-
Aramada sitenin durumu için önemli olan göstergeleri kaydetmek için yapılandırın 301 yönlendirme eski sayfalardan yenilerine. Örneğin, sayfa için
http://www.example.com/?_escaped_fragment_=blog
yönlendirme şu adrese yönlendirilecekhttp://www.example.com/blog
. Arama kullanıcılarının rahatlığı için, görünüm sayfasından yönlendirmeyi de yapılandırınhttp://www.example.com/#!blog
açıkhttp://www.example.com/blog
.
Robotun web sitenizin sayfaları hakkında daha hızlı bilgi edinmesini sağlamak için, Sayfaların HTML sürümlerini değiştirmek için gönderin biçiminde http://www.example.com/?_escaped_fragment_=blog
. HTML sayfaları arama sonuçlarında göründüğünde, bağlantılar kullanıcıları sitenin AJAX sayfalarına yönlendirecektir.