Tuesday, May 1, 2007

Flash, AJAX и SEO на едно място?

Сигурен съм, че този въпрос тормози много хора и реших да споделя една идея и малко опит. За голяма част от уебмастърите е трудно да вкарат думите AJAX, Flash & SEO в едно изречение. Проблемът в случая е, че ботовете няма как да прочетат съдържанието на Flash-а или AJAX-а. ГРЕШНО! Благодарение на дразнещия Internet Explorer, където потребителя трябва да кликне, за да активира флаша, много хора се обърнаха към една отдавна позната техника - заредждането на Flash елементи с JavaScript. Не случайно, обаче, HTML поддържа освен SCRIPT и NOSCRIPT тага. С помощтта на малко PHP и XML и познаването на MVC, се стига до следното решение: Rieke-Hella Volleyball

Как се индексира AJAX съдържанието?
Лесно. Обикновено се ползва хипервръзка за тази цел. Имаме <a href="pages/page.html" onclick="javascript:ajaxCall('page.php', 'targetDivContainer');" title="Динамично описание, съдържащо ключови думи">Описателен текст на връзката</a>. Така бота ще индексира линк, към някоя страница, а при натискане ще се извика AJAX-a. Остава само да направим такъв фреймуърк, който да зарежда вярното съдържание вътре, след като човек попадне на тази страница от търсачката.

Как да покажем цялата страница на търсачка, а не само съдържанието на AJAX елемента?
Тук е малко по-пипкаво. Най-оптимирано е, когато съдържанията на отделните елементи се намират в директория, която е скрита за достъп от търсачките. Един .htaccess също би могъл да се окаже от помощ. С помощтта на mod_rewrite пращаме всички тези линкове в един файл, който инклудира последователно хедъра, динамичното съдържание и футъра. Хедъра представлява всичкия HTML преди динамичното съдържание (до отварящия DIV). След това влиза HTML кода, който би се върнал от AJAX RPC-то. След това се затваря DIV-а и се добавя всичко останало. Ето, показахме си 'скритата' навигация :)

Как да индексирам съдържанието на флаша?
Съдържанието на Flash-а се извежда във външни XML файлове. В тези XML файлове записвате всяка дума, която се появява на всеки отделен фрейм. Връзките към други фреймове ги описвате като хиперлинкове. Всеки хиперлинк ще предава нужните параметри на PHP файлче, което ще зарежда текстово фрейма и ще го представи под формата на HTML код, който ще бъде описан в NOSCRIPT-а след зареждането на флаша (май забравихте, че с JavaScript го викате :П).

Това е всичко. Няма защо да се лишавате от подвижност, красота и функционалност. Ако знаете как да го направите правилно, няма да попречите на своята SEO кампания.

No comments: