{"id":24232,"date":"2009-10-07T00:00:00","date_gmt":"2009-10-07T00:00:00","guid":{"rendered":"https:\/\/alienroad.com\/google-bilgi-bankasi\/a-proposal-for-making-ajax-crawlable\/"},"modified":"2009-10-07T00:00:00","modified_gmt":"2009-10-07T00:00:00","slug":"a-proposal-for-making-ajax-crawlable","status":"publish","type":"ar_kb","link":"https:\/\/alienroad.com\/google-bilgi-bankasi\/a-proposal-for-making-ajax-crawlable\/","title":{"rendered":"AJAX'\u0131n taranabilir hale getirilmesi i\u00e7in bir teklif"},"content":{"rendered":"<aside class=\"key-point\">Bu blog yaz\u0131s\u0131n\u0131 yay\u0131nlayal\u0131 uzun zaman oldu. Bilgilerin bir k\u0131sm\u0131 g\u00fcncelli\u011fini yitirmi\u015f olabilir (\u00f6rne\u011fin, baz\u0131 g\u00f6rseller eksik olabilir ve baz\u0131 ba\u011flant\u0131lar art\u0131k \u00e7al\u0131\u015fm\u0131yor olabilir).<\/aside>\n<p class=\"gargardate\">07 Ekim 2009, \u00c7ar\u015famba<\/p>\n<p>\n  Bug\u00fcn, AJAX tabanl\u0131 web sitelerinin taranabilir hale getirilmesi i\u00e7in yeni bir standart \u00f6neriyoruz. Bu, AJAX tabanl\u0131 zengin ve etkile\u015fimli web sitelerindeki i\u00e7eri\u011fin, bu s\u00fcrece dahil olmay\u0131 se\u00e7en herhangi bir arama motorunun sonu\u00e7lar\u0131nda evrensel olarak eri\u015filebilir k\u0131l\u0131nmas\u0131yla hem web y\u00f6neticilerine hem de kullan\u0131c\u0131lara fayda sa\u011flayacakt\u0131r. Bu i\u00e7eri\u011fin taranabilir ve dizine eklenebilir olmas\u0131n\u0131n web&#8217;i \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirebilece\u011fine inan\u0131yoruz.\n<\/p>\n<p>\n  AJAX tabanl\u0131 web siteleri kullan\u0131c\u0131lar aras\u0131nda pop\u00fcler olsa da, arama motorlar\u0131 geleneksel olarak bu sitelerdeki i\u00e7eri\u011fe eri\u015fememektedir. Son kontrol\u00fcm\u00fcze g\u00f6re, bildi\u011fimiz web sitelerinin neredeyse %70&#8217;i bir \u015fekilde JavaScript kullan\u0131yor. Elbette bu JavaScript&#8217;in \u00e7o\u011fu AJAX de\u011fil, ancak arama motorlar\u0131 AJAX&#8217;\u0131 ne kadar iyi taray\u0131p dizine ekleyebilirse, geli\u015ftiriciler web sitelerine o kadar zengin \u00f6zellikler ekleyebilir ve yine de arama motorlar\u0131nda g\u00f6r\u00fcnebilirler.\n<\/p>\n<p>Bu \u00f6neriyle ula\u015fmak istedi\u011fimiz hedeflerden baz\u0131lar\u0131 \u015funlard\u0131:<\/p>\n<ul>\n<li>Web sitesi b\u00fcy\u00fcd\u00fck\u00e7e minimum de\u011fi\u015fiklik gereksinimi<\/li>\n<li>Kullan\u0131c\u0131lar\u0131n ve arama motorlar\u0131n\u0131n ayn\u0131 i\u00e7eri\u011fi g\u00f6rmesi (cloaking olmamas\u0131)<\/li>\n<li>Arama motorlar\u0131n\u0131n kullan\u0131c\u0131lar\u0131 do\u011frudan AJAX URL&#8217;sine y\u00f6nlendirebilmesi (statik bir kopyaya de\u011fil)<\/li>\n<li>Site sahiplerinin, AJAX web sitelerinin do\u011fru \u015fekilde olu\u015fturuldu\u011funu ve dolay\u0131s\u0131yla taray\u0131c\u0131n\u0131n t\u00fcm i\u00e7eri\u011fe eri\u015fimi oldu\u011funu do\u011frulayabilmesi<\/li>\n<\/ul>\n<p>\u0130\u015fte ilk \u00f6nerimize g\u00f6re arama motorlar\u0131n\u0131n AJAX&#8217;\u0131 nas\u0131l taray\u0131p dizine ekleyece\u011fi:<\/p>\n<ul>\n<li>\n    <b>Durum bilgisi i\u00e7eren (stateful) AJAX sayfalar\u0131 i\u00e7in URL par\u00e7alar\u0131n\u0131 hafif\u00e7e de\u011fi\u015ftirin<\/b><br \/>\n    Durum bilgisi i\u00e7eren AJAX sayfalar\u0131, do\u011frudan eri\u015fildi\u011finde ayn\u0131 i\u00e7eri\u011fi g\u00f6r\u00fcnt\u00fcler. Bunlar, arama sonu\u00e7lar\u0131nda referans verilebilecek sayfalard\u0131r. <code>https:\/\/example.com\/page?query#state<\/code> gibi bir URL yerine, bu URL&#8217;lerin tan\u0131nmas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131lacak bir belirte\u00e7 eklemeyi \u00f6neriyoruz: <code>https:\/\/example.com\/page?query#[FRAGMENTTOKEN]state<\/code>. Web&#8217;deki mevcut URL&#8217;lerin incelenmesine dayanarak, bunun i\u00e7in belirte\u00e7 olarak &#8220;!&#8221; (\u00fcnlem i\u015fareti) kullan\u0131lmas\u0131n\u0131 \u00f6neriyoruz. Arama sonu\u00e7lar\u0131nda g\u00f6sterilebilecek \u00f6nerilen URL \u015fu \u015fekilde olacakt\u0131r: <code>https:\/\/example.com\/page?query#!state<\/code>.\n  <\/li>\n<li>\n    <b>Web sunucunuzda HTML anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fc (snapshot) olu\u015fturan ba\u015fs\u0131z (headless) bir taray\u0131c\u0131 kullan\u0131n<\/b><br \/>\n    Ba\u015fs\u0131z taray\u0131c\u0131, AJAX sayfas\u0131na eri\u015fmek i\u00e7in kullan\u0131l\u0131r ve taray\u0131c\u0131daki nihai duruma dayal\u0131 HTML kodu \u00fcretir. Yaln\u0131zca \u00f6zel olarak etiketlenmi\u015f URL&#8217;ler i\u015flenmek \u00fczere ba\u015fs\u0131z taray\u0131c\u0131ya iletilir. Bunu sunucu taraf\u0131nda yaparak, web sitesi sahibi olu\u015fturulan HTML kodu \u00fczerinde kontrol sahibi olur ve t\u00fcm JavaScript&#8217;in do\u011fru \u015fekilde y\u00fcr\u00fct\u00fcld\u00fc\u011f\u00fcn\u00fc kolayca do\u011frulayabilir. B\u00f6yle bir taray\u0131c\u0131ya \u00f6rnek olarak, Java programlar\u0131 i\u00e7in a\u00e7\u0131k kaynakl\u0131 &#8220;GUI i\u00e7ermeyen taray\u0131c\u0131&#8221; olan <a href=\"https:\/\/htmlunit.sourceforge.net\/\" class=\"external-link\">HtmlUnit<\/a> verilebilir.\n  <\/li>\n<li>\n    <b>Arama motoru taray\u0131c\u0131lar\u0131n\u0131n, durumu ka\u00e7\u0131rarak (escaping) bu URL&#8217;lere eri\u015fmesine izin verin<\/b><br \/>\n    URL par\u00e7alar\u0131 sunuculara yap\u0131lan isteklere asla g\u00f6nderilmedi\u011finden, sayfaya eri\u015fmek i\u00e7in kullan\u0131lan URL&#8217;yi biraz de\u011fi\u015ftirmek gerekir. Ayn\u0131 zamanda bu, sunucuya JavaScript i\u00e7eren bir sayfa d\u00f6nd\u00fcrmek yerine HTML kodu olu\u015fturmak i\u00e7in ba\u015fs\u0131z taray\u0131c\u0131y\u0131 kullanmas\u0131n\u0131 s\u00f6yler. Kullan\u0131c\u0131 taraf\u0131ndan kullan\u0131lanlar gibi di\u011fer mevcut URL&#8217;ler normal \u015fekilde i\u015flenerek ba\u015fs\u0131z taray\u0131c\u0131 atlan\u0131r. Durum bilgisini ka\u00e7\u0131rmay\u0131 ve bir belirte\u00e7le sorgu parametrelerine eklemeyi \u00f6neriyoruz. \u00d6nceki \u00f6rne\u011fi kullanarak, b\u00f6yle bir URL <code>https:\/\/example.com\/page?query&amp;[QUERYTOKEN]=state<\/code> \u015feklinde olacakt\u0131r. Web&#8217;deki mevcut URL analizimize dayanarak, belirte\u00e7 olarak <code>_escaped_fragment_<\/code> kullan\u0131lmas\u0131n\u0131 \u00f6neriyoruz. \u00d6nerilen URL \u015fu hale gelecektir: <code>https:\/\/example.com\/page?query&amp;_escaped_fragment_=state<\/code>.\n  <\/li>\n<li>\n    <b>Kullan\u0131c\u0131lara arama sonu\u00e7lar\u0131nda orijinal URL&#8217;yi g\u00f6sterin<\/b><br \/>\n    Kullan\u0131c\u0131 deneyimini iyile\u015ftirmek i\u00e7in kullan\u0131c\u0131lar\u0131 do\u011frudan AJAX tabanl\u0131 sayfalara y\u00f6nlendirmek mant\u0131kl\u0131d\u0131r. Bu, arama sonu\u00e7lar\u0131nda orijinal URL&#8217;yi (yukar\u0131daki \u00f6rne\u011fimizden <code>https:\/\/example.com\/page?query#!state<\/code> gibi) g\u00f6stererek ba\u015far\u0131labilir. Arama motorlar\u0131, Googlebot&#8217;a d\u00f6nd\u00fcr\u00fclen dizine eklenebilir metnin, kullan\u0131c\u0131lara d\u00f6nd\u00fcr\u00fclen metinle ayn\u0131 veya onun bir alt k\u00fcmesi oldu\u011funu kontrol edebilir.\n  <\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"ajax tarama kurulumu ile http iste\u011fi diyagram\u0131\" src=\"https:\/\/alienroad.com\/wp-content\/uploads\/kb-gorsel\/g-7dd9d279b1b2.png\" loading=\"lazy\"><\/p>\n<p>\n  \u00d6zetle, <code>https:\/\/example.com\/dictionary.html#AJAX<\/code> gibi durum bilgisi i\u00e7eren bir URL ile ba\u015flayarak, bu hem taray\u0131c\u0131lar hem de kullan\u0131c\u0131lar i\u00e7in <code>https:\/\/example.com\/dictionary.html#!AJAX<\/code> olarak kullan\u0131labilir; bu da <code>https:\/\/example.com\/dictionary.html?_escaped_fragment_=AJAX<\/code> olarak taranabilir ve sonu\u00e7 olarak kullan\u0131c\u0131lara g\u00f6sterilip <code>https:\/\/example.com\/dictionary.html#!AJAX<\/code> olarak eri\u015filebilir.\n<\/p>\n<aside class=\"note\">\n  Bu makalede g\u00f6m\u00fcl\u00fc bir sunumumuz vard\u0131, ancak art\u0131k kay\u0131p (internet \u00f6devimizi mi yedi?).<br \/>\n<\/aside>\n<p>\n  <a href=\"https:\/\/docs.google.com\/present\/view?id=dc75gmks_120cjkt2chf\" class=\"external-link\">Sunumu g\u00f6r\u00fcnt\u00fcle<\/a>\n<\/p>\n<p>\n  \u015eu anda bir \u00f6neri ve prototip uygulama \u00fczerinde \u00e7al\u0131\u015f\u0131yoruz. Geri bildirimlerinizi bekliyoruz; l\u00fctfen yorumlar\u0131n\u0131z\u0131 a\u015fa\u011f\u0131ya veya <a href=\"https:\/\/support.google.com\/webmasters\/community\/thread?tid=01242a2a9bafd648\" class=\"external-link\">Web Y\u00f6neticisi Yard\u0131m Forumumuza<\/a> ekleyin. AJAX tabanl\u0131 web&#8217;i arama motorlar\u0131 arac\u0131l\u0131\u011f\u0131yla eri\u015filebilir ve kullan\u0131\u015fl\u0131 hale getirmeye g\u00f6sterdi\u011finiz ilgi i\u00e7in te\u015fekk\u00fcr ederiz!\n<\/p>\n<p class=\"byline-author\">\n  \u00d6neri: Katharina Probst, Bruce Johnson, Arup Mukherjee, Erik van der Poel ve Li Xiao, Google<\/p>\n<p>  Blog yaz\u0131s\u0131:<br \/>\n  <a class=\"external-link\" href=\"https:\/\/twitter.com\/JohnMu\">John Mueller<\/a>,<br \/>\n  Web Y\u00f6neticisi Trendleri Analisti, Google Z\u00fcrih<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu blog yaz\u0131s\u0131n\u0131 yay\u0131nlayal\u0131 uzun zaman oldu. Bilgilerin bir k\u0131sm\u0131 g\u00fcncelli\u011fini yitirmi\u015f olabilir (\u00f6rne\u011fin, baz\u0131 g\u00f6rseller eksik olabilir ve baz\u0131 ba\u011flant\u0131lar art\u0131k \u00e7al\u0131\u015fm\u0131yor olabilir). 07 Ekim 2009, \u00c7ar\u015famba Bug\u00fcn, AJAX tabanl\u0131 web sitelerinin taranabilir hale getirilmesi i\u00e7in yeni bir standart \u00f6neriyoruz. Bu, AJAX tabanl\u0131 zengin ve etkile\u015fimli web sitelerindeki i\u00e7eri\u011fin, bu s\u00fcrece dahil olmay\u0131 se\u00e7en [&hellip;]<\/p>\n","protected":false},"menu_order":85476,"template":"","meta":{"footnotes":""},"ar_kb_kategori":[665],"ar_kb_etiket":[],"class_list":["post-24232","ar_kb","type-ar_kb","status-publish","has-post-thumbnail","hentry","ar_kb_kategori-blog"],"_links":{"self":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb\/24232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb"}],"about":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/types\/ar_kb"}],"version-history":[{"count":0,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb\/24232\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/media\/26741"}],"wp:attachment":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/media?parent=24232"}],"wp:term":[{"taxonomy":"ar_kb_kategori","embeddable":true,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb_kategori?post=24232"},{"taxonomy":"ar_kb_etiket","embeddable":true,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb_etiket?post=24232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}