спонсори:

AJAX SEO або як полегшити робОту для рОбота.


На дану статтю мене наштовхнула нічна розмова із давнім товаришем, який працює на http://www.re3w.com

А саме запитання "знаєш, а ти б розкрив тему індексування Ajax-ових сторінок"

ajax search engine optimization

Для себе і для Вас спочатку спробую коротко охарактеризувати - що ж то за звір такий Ajax і з чим його їдять...

Asynchronous JavaScript and XML - саме так звучить абревіатура. Українською - Асинхронний яваскрипт і XML (Extensible Markup Language).

Багато слів і абревіатур... Але суть досить проста. Це технологія спілкування між користувачем і інтернет програмою(надалі вебсайтом), яка мінімізує кількість оновлень сторінки(в ідеалі) і дозволяє максимально інтерактивно і швидко змінювати вміст сторінки в залежності від дій самого користувача.

Сама технологія як така є досить давньою, тобто певні її елементи зустрічаються в інтернеті досить часто - для прикладу - форма голосування FiveStar, яка використовується на моєму вебсайті дозволяє користувачам не оновлювати сторінку, але при цьому проголосувати дуже швидко. Таких "зручностей" ми зустрічаємо в інтернеті багато, іноді навіть не помічаємо їхньої наявності (googleanalytics працює саме по цьому методу), і чесно кажучи перегляд і активне використання інтернету без них було трошки "затягнутим", що виливалось в дуже часте використання кнопки "назад", великої кількості кліків і надлишковості додаткових рухів, бровзаючи веб.

Все би було добре, якщо б ця технологія закінчувалась лише на голосуваннях та елементах (показати-приховати), наведених в приклад вище... Але великі компанії класу Microsoft та Google взяли цю технологію на повне озброєння, не задумуючись(на мою думку) про відповідальність та наслідки, які послідують після широкого розповсюдження даної технології, а саме про складність індексування таких сторінок різноманітними пошуковими сервісами і не тільки.

Перед тим, як більш глибоко зануритись в процес наведення прикладів, чому саме я так думаю, я скористаюсь можливістю копіювання тексту і приведу основні тезиси, які на даний час пропагують всі пошукові сервіси, а саме вимоги та рекомендації по створенню інтернет ресурсів для коректного і ефективного індексування.

За основу я візьму рекомендації Ґуґл, які в максимальній мірі підходять для будь-якого пошукового сервісу в інтернеті.

www.google.com/support/webmasters/bin/answer.py?answer=35769

 Бажаючі вивчити досконало предмет рекомендацій перейдуть за адресою і почитають до кінця, я ж витягну звідти лише пункти, які стосуються теми даної статті.

 А тепер спробуємо переглянути будь-яку сторінку Ajax типу з інтернету і проаналізувати її на предмет вказаних вище рекомендацій.

 

Для прикладу візьмем вебсайт http://www.re3w.com Ґуґл pagerank цього домену стабільно на відмітці 3, і це при тому, що публічна веб частина взагалі не представлена в інтернеті... Спробую прояснити чому. Відкривши головну сторінку бачимо, що всі вебадреси на ньому перехоплені javascript на зразок

javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ctl07$topMenuPart$aContactUs", "", true, "", "", false, true))

На сьогоднішній день жоден пошуковий робот не вміє обробляти такі виклики функцій javascript. Аналізуючи далі - будь який виклик передає дані на кшталт

GET _http://re3w.com/RE3WApplication/common/ctrl/Parts/_backComp.aspx?token=c6e7627d-cbcd-4ed1-940c-60954f097717&fakeButtonId=ctl00_backButtonSupport__backCompButton&globalNavState
=_PIP_Content%3D%7E/modules/Home/ctrl/ContentTypeEmpty.ascx%3B_PTP_Content%3D%7E/
modules/Home/ctrl/ContentTypeEmpty.ascx%3B_PIP_Local%3D%7E/modules/Home/ctrl/
cntDemo.ascx%3B_PTP_Local%3D%7E/modules/Home/ctrl/cntDemo.ascx%3B&
friendlyName=&senderControlId=Local
HTTP/1.0 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-comet, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-shockwave-flash, */*
Referer: _http://re3w.com/
Accept-Language: ru,uk;q=0.5 UA-CPU: x86
Proxy-Connection: Keep-Alive User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; FunWebProducts; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Cookie: needRemember=False; login=; startupPageSelectedIndex=0; showHideCookieObj=%7B%7D; __utma=98799517.1864980563.1186530761.1186530761.1186592491.2; __utmb=98799517; __utmz=98799517.1186530761.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); .RE3W3_SESSION=0l0tutyxbzvpne55xxwlvpak; __utmc=98799517 Host: re3w.com
POST _http://re3w.com/home.aspx HTTP/1.0
Accept: */*
Accept-Language: ru,uk;q=0.5
Referer: _http://re3w.com/ x-microsoftajax: Delta=true
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
UA-CPU: x86
Pragma: no-cache
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; FunWebProducts; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; Alexa Toolbar)
Host: re3w.com
Content-Length: 2345
Proxy-Connection: Keep-Alive
Cookie: needRemember=False; login=; startupPageSelectedIndex=0; showHideCookieObj=%7B%7D; __utma=98799517.1864980563.1186530761.1186530761.1186592491.2; __utmb=98799517; __utmz=98799517.1186530761.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); .RE3W3_SESSION=0l0tutyxbzvpne55xxwlvpak; __utmc=98799517  ctl00$masterAtlasScriptManager=ctl00$mainMenuPart$updatePanel|ctl00$mainMenuPart$mainMenu
$menuAnchor2&__EVENTTARGET=ctl00%24mainMenuPart%24mainMenu%24menuAnchor2&
__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUKMTExMTM0Njg2NQ9kFgJm.....
_PIP_Local=~%2Fmodules%2FHome%2Fctrl%2FcntHome.ascx&_PTP_Local=
~%2Fmodules%2FHome%2Fctrl%2FcntHome.ascx&_PIP_Content=
~%2Fmodules%2FHome%2Fctrl%2FContentTypeEmpty.ascx&
_PTP_Content=~%2Fmodules%2FHome%2Fctrl%2FContentTypeEmpty.ascx&

Якщо метод GET якимось чином ще можна проаналізувати пошуковику, то метод POST - дуже важко, а видати користувачу необхідну інформацію для входу на сайт саме в певному вигляді майже нереально. Тому пошуковики і пасують перед такими вебсайтами. Тобто, вертаючись до списка "Ґуґл Поради Вебмайстру"

Design and content guidelines

  • Make a site with a clear hierarchy and text links. Every page should be reachable from at least one static text link.

Дивлячись на вебсторінку re3w.com можна однозначно сказати - чистих та посортованих вебадрес на ньому немає

  • Try to use text instead of images to display important names, content, or links. The Google crawler doesn't recognize text contained in images.

На сайті окрім текстових імен присутні імена в графічному відображенні без відповідних елементів alt та title, що дуже ускладнює життя пошуковиків

  • If you decide to use dynamic pages (i.e., the URL contains a "?" character), be aware that not every search engine spider crawls dynamic pages as well as static pages. It helps to keep the parameters short and the number of them few.

А по вищеприведеному заголовку запита GET видно наскільки він складний і не user-friendly.

Technical guidelines

  1. Use a text browser such as Lynx to examine your site, because most search engine spiders see your site much as Lynx would. If fancy features such as JavaScript, cookies, session IDs, frames, DHTML, or Flash keep you from seeing all of your site in a text browser, then search engine spiders may have trouble crawling your site.

В альтернативних броузерах вебсайт взагалі не відкривається, через привязку лише до Internet Explorer, але попрацювавши трошки головою і вимкнувши в броузері підтримку javascript голову сторінку все ж вдалось відкрити, щоправда нічого більше з нею зробити не вдалось, бо всі адреси на головній сторінці - це виклик функції javascript із методом POST.

  1.  Allow search bots to crawl your sites without session IDs or arguments that track their path through the site. These techniques are useful for tracking individual user behavior, but the access pattern of bots is entirely different. Using these techniques may result in incomplete indexing of your site, as bots may not be able to eliminate URLs that look different but actually point to the same page.

В даному випадку сайт саме з використанням величезної кількості javascript, передача великої кількості даних через Cookies, ідентифікатори сесій, DHTML.

І це є проблема. Дійсно велика проблема більшості вебсайтів, що посилено використовують Ajax.

Вихід із цього становища є. Навіть кілька...

Перший метод - створення статичної карти сайту із глибоким описом кожного із розділів із використанням як pure HTML так і різноманітних методик Atom 1.0 Feed та RSS2.0 Feed із повним включенням сторінок в кожний елемент xml. На сьогоднішній день великі пошукові сервіси надають послугу обробки таких xml каналів, забезпечуючи швидку індексацію у випадку змін на сайті та індексацію взагалі у випадку статичного контенту.

Карта сайту на чистому HTML допоможе пошуковим сервісам відслідковувати переходи на Ваш сайт ззовні, бо, для прикладу, у випадку www.re3w.com така карта - це єдиний швидкий метод досягнення хоч якоїсь індексації публічного контенту.

Другий метод - це клоакінг. У випадку Ajax-орієнтованого сайту пошуковий робот не зможе визначити що це клоакінг, бо динамічна частина сайту ним просто фізично не індексується. Щоправда для цього на вебсайті все ж потрібно створення доступу до важливих елементів по звичайній вебадресі методом GET. Що таке клоакінг - можна почитати в Інтернеті, я ж коротко скажу - це метод видачі відмінного контенту різним User-Agent або IP. Тобто, для пошукових серверів можна взагалі закрити доступ до динамічної частини, а натомість віддавати коректний статичний варіант публічної частини сайту, облегшивши таким чином йому роботу. Однак застереження - персонал, що обслуговує пошукові сервіси, дуже ретельно відслідковує клоакінг, а тому важливим завданням для Ajax вебмайстра - віддавати клоакінг контент 100% ідентичний до динамічної Ajax частини, бо інакше можна потрапити до пошукового бану.

Ну і ідеальним третім методом є створення дзеркала Ajax частини на чистому HTML, що забезпечить максимальну інтеграцію із пошуковими сервісами і дозволить переглядати вебсайт на різноманітних по складності мобільних пристроях, можливо із певним обмеженням в зручності та доступності, але все ж як альтернатива - це корисно.

Додаткова інформація по Ajax дуже гарно описана на Wikipedia https://en.wikipedia.org/wiki/Ajax_(programming)

Приклади технології Ajax

  • типічний і яскравий приклад Ajax - то пошта від Yahoo
  • iGoogle - http://www.google.com.ua/ig?hl=uk
Share this

Об'єднати вміст Об'єднати вміст

Propeople Expert

Партнери

експерименти

Rambler's Top100