Коли мова йде про SEO, більшість людей мають досить непогане розуміння основних його принципів. Але якщо ви заглиблюєтеся в саму суть пошукової оптимізації, існує кілька досить заплутаних «фрагментів мозаїки», про яких знає не кожен. Один з них — robots txt для WordPress.

Що таке файл robots.txt і для чого він використовується

Файл robots.txt являє собою текстовий файл, який розміщується на сервері. Він містить правила індексації вашого сайту і є інструментом зв’язку з пошуковими системами. У цьому файлі вказується, які частини вашого сайту дозволено індексувати Google, а які чіпати не потрібно.

Існує багато причин, за якими може заборонятися сканування певної частини ресурсу. Одним з найбільш поширених випадків використання файлу robots.txt є виключення з результатів пошуку сайту, який все ще знаходиться на стадії розробки.

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

Необхідно мати robots.txt?

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

Потрібно розуміти, що інструкції, наведені у файлі robots.txt не є обов’язковими для виконання всіма пошуковими роботами. Цей файл буде визнаватися основними пошуковими системами, але шкідливі сканери і «низькоякісні» пошуковики можуть повністю ігнорувати його.

Як створити цей файл і де його розмістити?

Створіть текстовий файл і назвіть його robots.txt. Потім збережіть файл, і все готово.

Після цього завантажте його через FTP. Файл robots.txt зазвичай розміщують в кореневому каталозі, навіть якщо ви перенесли WordPress в окрему папку. Краще всього розмістити його там же, де знаходиться файл index.php.

Слід пам’ятати, що вам знадобиться окремий файл robots.txt для кожного субдомену вашого сайту і для різних протоколів, таких як HTTPS.

Як задати правила у файлі robots.txt

Файл robots.txt має свій синтаксис визначення директив. Нижче ми розглянемо, як ви можете використовувати їх, щоб пошукові роботи знали, що вони можуть і чого не можуть робити на вашому сайті.

Основний синтаксис robots.txt

Команд, використовуваних для директив, мало. Двох з них буде достатньо для більшості цілей:

  • User-Agent — визначає краулер пошукової системи;
  • Disallow — вказує пошуковому роботу триматися подалі від певних файлів, сторінок або папок.

Якщо ви не збираєтеся встановлювати конкретні правила для певних пошукових систем, то за допомогою зірочки (*) можна визначити універсальні директиви для всіх. Наприклад, щоб закрити увесь сайт від усіх пошукових систем, потрібно налаштувати robots.txt наступним чином:

User-agent: *
Disallow: /

У правильному robots txt для WordPress використовуються відносні (а не абсолютні) шляху. Так як він знаходиться в кореневому каталозі, слеш позначає заборону сканування основної папки та всіх вкладених каталогів. Для визначення директив для конкретних каталогів потрібно написати щось на зразок /wp-content/uploads/. Також майте на увазі, що шляхи повинні вказуватися з урахуванням регістра.

Можна відкрити і закрити частини сайту для певних ботів. Наприклад, наступний код у файлі robots.txt відкриє повний доступ до сайту тільки для Google, закривши його для всіх інших пошукових систем:

User-agent: Googlebot
Disallow:
User-agent: *
Disallow: /

Слід пам’ятати, що правила для конкретних пошукових систем повинні бути визначені на початку файлу robots.txt. Після цього ви можете додати директиву User-Agent: *, яка буде діяти для всіх роботів, для яких не призначено спеціальних правил.

Часто вживані назви пошукових роботів:

  • Googlebot – Google;
  • Googlebot-Image — Google Image;
  • Googlebot-News — Google News;
  • Bingbot – Bing;
  • Yahoo! Slurp — Yahoo (відмінний варіант імені Yahoo!).

Більше інформації по іменах краулеров ви можете знайти тут:

UserAgentString.com
User-Agents.org

Додатковий синтаксис

Disallow і User-agent — це не єдині директиви. Ось ще кілька:

Allow — дозволяє сканувати об’єкт на сервері.

Sitemap — вказує пошуковим роботам, де розміщується файл Sitemap сайту.

Host — визначає основний домен сайту, який має декілька дзеркал.

Crawl-delay — встановлює часовий інтервал між запитами до сервера для пошукових агентів.

Давайте розглянемо в першу чергу директиву Allow. Багато вважають, що це правило використовується, щоб вказати пошуковим системам перевірити ваш сайт, і, отже, воно важливе з точки зору SEO. З-за цього можна знайти такі записи в деяких файлах robots txt для WordPress:

User-agent: *
Allow: /

Ця директива є зайвою, тому що пошукові системи сканують все, що не заборонено. Давши дозвіл на сканування всього сайту, ви не зміните цього.

Директива Allow використовується, щоб частково скасувати директиву Disallow. Це буває корисно, якщо ви хочете заблокувати весь каталог, але даєте пошуковим системам доступ до одному або декільком конкретним файлів всередині нього. Наприклад:

User-agent: *
Allow: /my-directory/my-file.php
Disallow: /my-directory/

Пошукові системи обійдуть папку my-directory, але як і раніше будуть мати доступ до файлу my-file.php. Щоб це працювало, вам необхідно помістити директиву Allow першої.

Деякі пошукові роботи підтримують директиву Sitemap. Ви можете використовувати її, щоб вказати їм, де шукати карту сайту. Це виглядає наступним чином:

Sitemap: http://mysite.com/sitemap_index.xml
Sitemap: http://mysite.com/post-sitemap.xml
Sitemap: http://mysite.com/page-sitemap.xml
Sitemap: http://mysite.com/category-sitemap.xml
Sitemap: http://mysite.com/post_tag-sitemap.xml

Дана директива може розташовуватися де завгодно в межах файлу robots.txt. Але її корисність є спірною. Наприклад, фахівці компанії Yoast має наступні міркування з цього приводу:

«Посилання на XML Sitemap з вашого файлу robots.txt це трохи нонсенс. Краще додати їх вручну в Google і Bing Webmaster Tools, і переконатися, що ви отримали від них зворотне повідомлення стосовно XML Sitemap».

Host і Crawl-delay — це дві директиви, які я особисто ніколи не використовував. Перша вказує пошуковим системам, який домен є пріоритетним, якщо ви маєте кілька дзеркал сайту. Друга визначає кількість секунд, які пошукові роботи повинні чекати між запитами.

Додатковий матеріал

Ви вже знаєте, що з допомогою зірочки ми можемо встановити повний охоплення для User-agent. Те ж саме стосується і інших директив.

Наприклад, якщо ви хочете заблокувати доступ до всіх папок, назви яких починаються з wp-, ви можете зробити це так:

User-agent: *
Disallow: /wp-*/

Те ж саме працює і для файлів. Наприклад, якщо я хочу виключити з результатів пошуку всі PDF-файли в папці media, я можу використовувати наступний код:

User-agent: *
Disallow: /wp-content/uploads/*/*/*.pdf

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

В більшості випадків цей метод працює, але іноді треба визначити рядок через її закінчення, а не через початок. Ось де нам знадобиться спеціальний символ долара:

User-agent: *
Disallow: /page.php$

Наведене вище правило гарантує, що блокується тільки файл page.php, а page.php?id=12 немає. Знак долара повідомляє пошуковим системам, що page.php є остаточним варіантом рядка.

Добре, але що я повинен помістити в файл robots.txt прямо зараз?

Для чого призначений файл robots.txt і як оптимізувати його для WordPress

Я не знаю відповіді на це питання. Чому? Ну, однією з причин є те, що зміст файлу robots.txt залежить від вашого сайту. У вас може бути кілька розділів, які ви хотіли б закрити від пошукових систем, а іншим людям це не потрібно.

Крім цього не існує однозначних стандартів того, як краще настроювати файл robots.txt з точки зору SEO. На цю тему ведуться суперечки.

Що радять експерти

Наприклад, люди з Yoast вважають, що правильний роботс для Вордпресс, повинен містити лише наступний код:

User-Agent: *
Disallow: /out/

Як бачите, єдине, що вони закривають, це теку, в якій знаходяться їхні партнерські посилання. Все інше відкрито. Причина цього полягає в наступному:

«Google витягує всі ваші сторінки. Якщо ви повністю забороніть Google доступ до своїх CSS та JavaScript файлів, це йому зовсім не сподобається».

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

Щоб перевірити, як Google бачить ваш сайт, використовуйте інструменти «Переглянути як Google«, а потім «Сканування та відображення в розділі «Сканування» Google Webmaster Tools. Якщо файл robots.txt містить занадто багато обмежень, то ваш сайт буде виглядати не так, як ви хотіли б, і вам потрібно буде внести деякі зміни.

Yoast також рекомендує не використовувати директиви robots.txtщоб приховати малоинформативный контент, такий як архіви категорій, дат і інші подібні, а працювати з метатегами noindex, follow. Також зверніть увагу, що в їх файлі немає ніяких посилань на карту сайту за згаданою вище причини.

Засновник WordPress Метт Малленвег поділяє ту ж позицію:

User-agent: *
Disallow:
User-agent: Mediapartners-Google*
Disallow:
User-agent: *
Disallow: /dropbox
Disallow: /contact
Disallow: /blog/wp-login.php
Disallow: /blog/wp-admin

У своєму файлі він блокує тільки папки Dropbox і Contact, важливі файли і папки панелей адміністрування та авторизації WordPress. Деякі люди виконують останнім з міркувань безпеки, і Yoast радить робити те ж саме з папкою wp-admin.

Наш наступний приклад взято з сайту WPBeginner:

User-Agent: *
Allow: /?display=wide
Allow: /wp-content/uploads/
Disallow: /wp-content/plugins/
Disallow: /readme.html
Disallow: /refer/
Sitemap: http://www.wpbeginner.com/post-sitemap.xml
Sitemap: http://www.wpbeginner.com/page-sitemap.xml
Sitemap: http://www.wpbeginner.com/deals-sitemap.xml
Sitemap: http://www.wpbeginner.com/hosting-sitemap.xml

Як бачите, вони блокують партнерські посилання (папка «refer»), а також модулі і файл readme.html. Останнє робиться, щоб уникнути шкідливих запитів, спрямованих проти певних версій WordPress. Забороняючи доступ до файла, ви можете захистити себе від масових атак. Блокування доступу до папки плагінів також дозволяє запобігти атакам хакерів, що використовують уразливості плагінів.

У WPBeginner явно встановлюють директиву “allow» для папки wp-content/wp-content/uploads, навіть якщо доступ до неї не заблокований іншими директивами. Вони заявляють, що це зроблено для того, щоб всі пошукові системи включали цю папку в пошук.

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

Остаточний вердикт

Я підтримую позицію Yoast щодо налаштування robots.txt.

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

Це також відповідає рекомендаціям відповідного розділу Кодексу WordPress:

«Додавання записів у файл robots.txt для поліпшення SEO є поширеною помилкою. Google говорить, що ви можете використовувати robots.txt для блокування доступу до частин вашого сайту, але на сьогоднішній день краще цього не робити. Замість цього використовуйте на рівні сторінок теги noindex, щоб вирішити проблему малоинформативных частин сайту.

З 2009 року Google настійно рекомендує уникати блокування файлів JS і CSS, а google’s Search Quality Team бере активну участь у просуванні ідеї відкритості серед веб-майстрів, щоб допомогти Google перевірити, не застосовуємо ми «клоакінг» і лінкінг на закритих від доступу сторінках. Тому в ідеальному файлі robots.txt не повинно бути закрито нічого взагалі, в ньому може бути лише посилання на XML Sitemap, якщо все виконується педантично.

За замовчуванням WordPress закриває доступ тільки до кільком файлів JS, але це практично відповідає рекомендаціям Google».

Якщо ви вирішили розмістити посилання на файл карти сайту, ви обов’язково повинні вказати пошуковим системам безпосередньо через їх сервіси для веб-майстрів.

Що б ви не вирішили вдатися, не забудьте перевірити robots txt для WordPress. Це можна зробити одним з наступних способів:

  • Перейти за адресою yoursite.com/robots.txt, щоб побачити, чи файл;
  • Запустити файл через інструмент тестування, щоб перевірити наявність синтаксичних помилок (наприклад, через цей);
  • Використовувати розділ «Переглянути та відобразити«, щоб перевірити, чи бачить Google те, що ви хотіли;
  • Звертати увагу на можливі повідомлення про помилки в Google Webmaster Tools.

Короткий резюме по robots.txt для WordPress

Налаштування файлу robots.txt для сайту є важливим і часто ігнорованих етапом пошукової оптимізації. Вказавши роботам, які частини вашого сайту потрібно індексувати, а які частини не чіпати, ви зможете запобігти появі в результатах пошуку непотрібного контенту.

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

Переклад статті «SEO IN-DEPTH: UNDERSTANDING AND OPTIMIZING THE WORDPRESS ROBOTS.TXT» був підготовлений дружною командою проекту Сайтостроение від А до Я.