{"id":28531,"date":"2026-09-08T21:56:08","date_gmt":"2026-09-08T18:56:08","guid":{"rendered":"https:\/\/alienroad.com\/yandex-bilgi-bankasi\/indexing-ajax-sites\/"},"modified":"2026-09-09T00:47:43","modified_gmt":"2026-09-08T21:47:43","slug":"indexing-ajax-sites","status":"publish","type":"ar_ykb","link":"https:\/\/alienroad.com\/yandex-bilgi-bankasi\/indexing-ajax-sites\/","title":{"rendered":"Indexing AJAX sites"},"content":{"rendered":"<p>Yandex now crawls AJAX sites by fetching the original URLs and executing JavaScript on them. Two older mechanisms are formally retired, and sites still using them are working against the crawler.<\/p>\n<h2>What is no longer supported<\/h2>\n<ul>\n<li><strong><code>meta name=\"fragment\" content=\"!\"<\/code><\/strong> \u2014 <strong>ignored<\/strong>. The robot indexes the original page instead. The companion <code>?_escaped_fragment_=<\/code> HTML-version scheme is therefore dead weight.<\/li>\n<li><strong>Hash-bang (<code>#!<\/code>) URLs<\/strong> \u2014 Yandex recommends abandoning the approach entirely.<\/li>\n<\/ul>\n<h2>The migration<\/h2>\n<ol>\n<li>Change sitemap links so they contain no <code>#<\/code>.<\/li>\n<li>Replace fragment-based links in the interface with real paths, using the <strong>History API<\/strong>.<\/li>\n<\/ol>\n<h2>Why this matters more than it sounds<\/h2>\n<p>Yandex states the rule plainly: when looking for links on AJAX pages, <strong>the bot only considers URLs in the <code>href<\/code> attribute<\/strong>, and fragments are not followed. Its own example is worth internalising \u2014 a navigation of <code>&lt;a href=\"#\/clothes\"&gt;<\/code> and <code>&lt;a href=\"#\/shoes\"&gt;<\/code> yields <em>no discoverable pages at all<\/em>. The same navigation written as <code>\/clothes<\/code> and <code>\/shoes<\/code> with History API routing is fully crawlable.<\/p>\n<p>This is the difference between a single-page application that indexes and one that does not, and it is a routing decision made early in development by someone who is not thinking about search.<\/p>\n<h2>What to check on an existing application<\/h2>\n<ul>\n<li>Are internal links real <code>href<\/code> values with real paths, or are they click handlers on non-anchor elements? The second case is invisible to the crawler.<\/li>\n<li>Does each route return a complete document when requested directly, or only when reached through the application shell?<\/li>\n<li>Does the sitemap contain the same URLs the router actually serves?<\/li>\n<\/ul>\n<h2>The direction of travel<\/h2>\n<p>The retirement of the fragment scheme means there is no special path for JavaScript applications any more. They are indexed as ordinary sites, which means they have to behave like ordinary sites: one URL per view, reachable directly, linked with anchors.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yandex now crawls AJAX sites by fetching the original URLs and executing JavaScript on them. Two older mechanisms are formally retired, and sites still using them are working against the crawler. What is no longer supported meta name=&#8221;fragment&#8221; content=&#8221;!&#8221; \u2014 ignored. The robot indexes the original page instead. The companion ?_escaped_fragment_= HTML-version scheme is therefore [&hellip;]<\/p>\n","protected":false},"menu_order":107,"template":"","meta":{"footnotes":""},"ar_ykb_kategori":[764],"ar_ykb_etiket":[],"class_list":["post-28531","ar_ykb","type-ar_ykb","status-publish","has-post-thumbnail","hentry","ar_ykb_kategori-site-indexing"],"_links":{"self":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_ykb\/28531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_ykb"}],"about":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/types\/ar_ykb"}],"version-history":[{"count":2,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_ykb\/28531\/revisions"}],"predecessor-version":[{"id":29111,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_ykb\/28531\/revisions\/29111"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/media\/28913"}],"wp:attachment":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/media?parent=28531"}],"wp:term":[{"taxonomy":"ar_ykb_kategori","embeddable":true,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_ykb_kategori?post=28531"},{"taxonomy":"ar_ykb_etiket","embeddable":true,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_ykb_etiket?post=28531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}