Експерименти з JavaScript у Google - Devaka SEO Блог

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

Судячи з проведених раніше експериментів, результати яких актуальні й досі, JavaScript зі всіх пошукових систем читає лише Google. Тому, у цьому дослідженні стосується лише ця пошукова система. Багато хто знає, що від Google контент сховати складно, але цікаво було все ж таки розібратися, чи парсить Google яваскрипт будь-якої складності або тільки прості вирази?

Гіпотеза полягала в тому, що пошукова система Google розпізнає лише прості варіанти скриптів і контент можна заховати, ускладнивши скрипт.

Мета експерименту

Метою даного дослідження є підтвердити або спростувати гіпотезу, а також у разі спростування визначити, які все ж таки скрипти Google не розпізнає.

Проведення експерименту

Посилання на експериментальну сторінку було додано в Твіттері з проханням заревітити (спасибі всім за допомогу, в сумі було 27 ретвітів). Іншими словами, твої друзі допомогли зробити сторінку популярною для Google, щоб прискорити індексацію і швидше дізнатися результати. За кілька хвилин сторінка вже була в індексі, але посилання поки що не працювали. На даний момент основний робот Google проіндексував весь необхідний контент і можна перевіряти результати.

Результати експерименту

Розглянемо отримані результати по кожному з видів Javascript-підходу, що використовується.

Цей прийом використовує посилання без атрибуту href і для роботів такий тег не є посиланням. На експериментальній сторінці за допомогою DOM було додано атрибут href:

2. Шматковий document.write

Тут використовувалося невелике ускладнення, коли рядок був розбитий на кілька рядків з їхньою конкатенацією:

3. Виклик внутрішньої функції та document.write

У документі була описана функція, що містить document.write з виведенням певного тексту та посилання. У потрібному місці документа було викликано цю функцію.

4. Виклик функції із зовнішнього файлу та document.write

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

Цікаво було подивитись серверні логи, коли саме пошуковий робот заходив за додатковими .js файлами. Аналіз логів показав, що Google читає зовнішні файли не відразу, а через якийсь проміжок часу (близько тижня) і приходить із тим самим користувачем-агентом “Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google) .com/bot.html)”. Також цікаво, що зовнішні файли для сторінок запитуються практично одночасно (на відміну від html-сторінок сайту) з частотою близько 2 разів на місяць.

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

5. Зовнішній скрипт та document.write

6. Обфускейчений зовнішній скрипт з document.write

У цій частині експерименту було створено два обфускейчені файли: file3.js, file4.js. Розрізняються вони лише шляхом обфускації.

javascript

7. Заборона індексації зовнішнього скрипта в robots.txt

У цій частині було створено файл file5.js, що міститься, на відміну від інших, у папці /robots/, яка закрита від індексації за допомогою кореневого файлу robots.txt.

8. Робота з DOM документа

Наступний текст з посиланням було створено за допомогою роботи з документом DOM.

var s = document.createElement("SPAN");

var span = document.getElementById("b");

9. Комплексний варіантскрипта

І останній випадок - комплексний варіант, в якому задіяні всі попередні моделі: обфускейчений зовнішній файл розміщуємо в папку, закриту від індексації robots.txt, при цьому у файлі використовуємо функцію, що працює з DOM . У потрібному місці викликаємо функцію, що друкує контент із посиланням.

Як видно з результатів експерименту, від робота Google не так просто щось сховати. Усі варіанти посилань працюють, крім тих, що розміщені у зовнішніх файлах, закритих від індексації. Також у ряді випадків при роботі з об'єктною моделлю документа пошуковий парсер не завжди розпізнає посилання, але подивимося, що буде в майбутньому. Наша гіпотеза не підтвердилась.

Постовий: Експеримент частково проведений на прохання Dimox.