Як приховати від індексації службовий контент. Інструменти ROBOTS


В процесі роботи над своїм ВЕБ-ресурсом досить часто виникає питання: «Як приховати від сторонніх очей ту чи іншу сторінку або веб ресурс повністю?». Останнє актуально в процесі створення сайту, коли ви не хочете, щоб незакінчений проєкт бачили сторонні люди.

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

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

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

Крім того, з індексу повинні бути виключені всі сторінки, які використовуються при роботі сценаріїв. Наприклад, сторінка «Дякуємо. Ваша заявка отримана. Ми з Вами зв'яжемося найближчим часом!».

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

Отже, як закрити контент від індексації? Для того щоб це зробити, треба скористатися інструментами ROBOTS.

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

Давайте розглянемо докладніше, що це за роботи такі і "з чим їх їдять" :)

Що таке файл robots.txt?


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

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

Файлом robots.txt можна заборонити індексацію контенту сайту, або окремих сторінок сайту в мобільній версії, але дозволити індексацію на ПК.

Файлом robots.txt можна заборонити індексувати не тільки текст, а й зображення на сайті - як всі, так і окремі.



Як правильно створити файл robots.txt?

Файл robots.txt має завжди перебувати в кореневій теці домену. Так, якщо адреса домену www.example.com, тоді файл повинен бути присутнім тут: https://www.example.com/robots.txt.

Якщо домен відображається без www, то таким же повинен бути і robots.txt. Це ж стосується протоколів http і https.

Ще дуже важливо, щоб файл називався саме robots.txt (а не robot.txt).

Базовий формат файлу robots.tx виглядає так:

User-agent: [ім'я пошукового бота]

[Директива 1]
[Директива 2]
[Директива ...]

User-agent: [ім'я пошукового бота]

[Директива 1]
[Директива 2]
[Директива ...]

Sitemap: [URL, де розташована мапа сайту]

У першому рядку Ви вказуєте Юзер-агента (ім'я пошукового бота, до якого звертаєтесь), а в другому рядку прописуєте директиву для цього бота, тобто вказівки, що йому треба робити. Якщо директив кілька, то ви прописуєте кожну окремо в новому рядку. От і все.

Останнім (або найпершим) рядком треба вказати ботам адресу, за якою на вашому вебресурсі знаходиться мапа сайту, тобто файл sitemap.xml. Якщо у вас кілька таких файлів, можна вказати кілька адрес.

Імена популярних пошукових роботів (User-agent) та області, в яких вони працюють , виглядають так:

Пошукова система

Область

User-agent

Google

General

Googlebot

Google

Images

Googlebot-Image

Google

Mobile

Googlebot-Mobile

Google

News

Googlebot-News

Google

Video

Googlebot-Video

Google

AdSense

Mediapartners-Google

Google

AdWords

AdsBot-Google

Yahoo!

General

slurp

Yandex

General

yandex

Baidu

General

baiduspider

Baidu

Images

baiduspider-image

Baidu

Mobile

baiduspider-mobile

Baidu

News

baiduspider-news

Baidu

Video

baiduspider-video

Bing

General

bingbot

Bing

General

msnbot

Bing

Images & Video

msnbot-media

Bing

Ads

adidxbot


Якщо ви хочете дати вказівки не якомусь конкретному пошуковому боту, а всім одразу, то ім'я User-agent не вказується. Досить тільки поставити зірочку, ось так User-agent: *

Директиви

Директиви побудовані за принципом: все, що не заборонено, дозволено. Тому в файлі robots.txt ви прописуєте заборони, а не дозволи :)

Основна директива User-agent - це Disallow (заборона). Є директива Аllow (дозвіл), але вона зазвичай не використовується, бо, як зазначено вище, все, що не заборонено-дозволено.

Якщо ви прописуєте директиву Disallow із слешем, то вона забороняє сканування сайту, якщо без - то дозволяє.

Давайте розглянемо декілька простих прикладів:

Вміст файлу robots.txt

 

Як це сприймається пошукоми  ботами

User-agent: *

Disallow: /

 

Всім пошуковим ботам заборонено індексувати сайт.

User-agent: *

Disallow:

 

Всім пошуковим ботам індексувати сайт дозволено.

User-agent: *

Disallow: /documents

 

Всім пошуковим ботам заборонено індексувати теку documents.

User-agent: bingbot

Disallow: /documents/admin.pdf

 

Пошуковій системі Bing заборонено індексувати файл admin.pdf, який знаходиться в теці documents. Всім іншим пошуковим ботам - дозволено.

User-agent: bingbot

Disallow: /documents/*.pdf

 

Пошуковій системі Bing заборонено індексувати всі pdf  файли, які знаходяться в теці documents. Всім іншим  пошуковим ботам - дозволено.

User-agent: Googlebot-Image

Disallow: /Photo

 

 

Заборонити боту Googlebot-Image сканувати директорію Photo на вашому сайті. Всі піддиректорії  /Photo також не будуть скануватися. Але пошуковий бот отримує доступ до директорії  /photo, тому що  в директиві є заборона слова Photo з великої літери.

Якщо рядків у файлі robots.txt досить багато і є бажання дати якісь коментарі (наприклад, що мається на увазі або чому закрили контент), то ви можете це зробити через знак #. В цьому випадку коментарем буде вважатися текст від знака # до кінця рядка.

Приклад:

User-agent: bing

User-agent: slurp

Disallow: / manual /

# Для пошукових систем Bing і Yahoo! закритий неоригінальний контент (інструкція)

User-agent: *

Disallow:


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

Наприклад, є такий файл:

user-agent: googlebot-news
(Директива 1)

user-agent: *
(Директива 2)

user-agent: googlebot
(Директива 3)


Давайте подивимося, які директиви (перша, друга або третя) будуть використані різними пошуковими ботами:

Googlebot News

Обирається директива 1, в якій конкретно вказано им’я бота. Інші ігноруються.

Googlebot (веб-пошук)

 

Обирається  директива 3. Вказано ім’я бота.

Googlebot Images

Обирається директива 3, тому що немає окремої  групи з конкретною вказівкою імені googlebot-images. Зате є імя googlebot

Googlebot News (при скануванні зображень)

Обирається директива 1, тому що у цьому випадку зображення  будуть скануватися саме роботом  Googlebot News, а не Googlebot-Image

Інший бот (веб-пошук)

 

Обирається директива 2.

Інший бот (для новин)

Обирається директива 2.  Навіть якщо є запис для схожого робота, вона буде недійсною без повної відповідності.


Правила синтаксису robots.txt:
  • Будь-яка нова директива починається з нового рядка
  • На початку рядка не повинно бути пробілівВсі значення однієї директиви повинні бути розміщені на цьому ж рядку
  • Не використовуйте лапки для параметрів директив.
  • Не використовуйте кому і крапку з комою для вказівки параметрів.
  • Усі коментарі пишуться після символу #.
  • Між групами (User-agent і Директива) бажано залишати порожній рядок
  • Кожна директива містить тільки один параметр.
  • Назва файлу має бути написана великими літерами,
  • Розмір файлу robots.txt не повинен перевищувати 32 кб, інакше він трактується як такий, що дозволяє індексацію всього.
  • Порожній файл robots.txt вважається як таким, що дозволяє індексацію всього сайту.
Детальніше про специфікації файлу robots.txt Ви можете прочитати за посиланням:

https://developers.google.com/search/reference/robots_txt

До написання файлу треба ставитися уважно, навіть якщо він дуже простий.

Ось популярні помилки, які роблять користувачі- початківці.

НЕПРАВИЛЬНО

ПРАВИЛЬНО

User-agent: * Disallow: /directory1/ Disallow: /directory2/

User-agent: *

Disallow: /directory1/

Disallow: /directory2/

User-agent: /

Disallow: bingbot

 

User-agent: bingbot

Disallow: /

Disallow: /css/ /cgi-bin/ /images/

Disallow: /css/

Disallow: /cgi-bin/

Disallow: /images/

User-agent:

Disallow:

 

User-agent: *

Disallow:




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

Припустимо, що у вас є багатомовний сайт і ви працюєте над німецькою версією, яка буде доступна в теці / de /.

Оскільки вона ще не повністю готова, ви хочете закрити пошуковим системам доступ до неї.

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

 

User-agent: *

Disallow: /de

 

Але при такій вказівці ви також забороните сканувати усі сторінки і файли, які починаются на /de.

 

Наприклад:

 

/designer-dresses/

/delivery-information.html

/depeche-mode/t-shirts/

/definitely-not-for-public-viewing.pdf

 

У данному випадку рішення просте: добавити в кінці косу риску

 

User-agent: *

Disallow: /de/

 

Перевірити, чи  правильно складений robots.txt,  чи закриваються від сканування ті сторінки, що потрібно, можна за допомогою інструмента від Google

https://www.google.com/webmasters/tools/robots-testing-tool

 

Здавалося б, інструмент robots.txt вирішує  всі проблеми з індексацією та  управлінням пошуковими  ботами, але це не так:

 

1.    не всі движки (програми управління контентом) дозволяють редагувати файл robots.txt

2.    він некоректно працює з відео, що розміщене на сторінці

3.    таким файлом ви не зможете закрити від індексації якусь частину контенту, що розташована на сторінці. Справа в тому, що файл robots.txt на сайті містить інструкції, які вказують роботам Google, які сторінки не треба сканувати. Однак, якщо ви розмістите на частині контенту атрибут "не індексувати!" (noindex), то робот не побачить його, адже для обробки сторінки треба просканувати, а це якраз і заборонено файлом robots.txt

4.    директиви robots.txt не мають такої сили, що зобов’язує, та підтримуються не всіми пошуковими системами. Хоча їх підтримують пошукові роботи від Googlе, Bing, Baidu, Yahoo!, Yandex, Shenma, та інші, якраз ті, якими користуються  99% корисувачів мережі Інтернет.

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

 

Метатег robots

Метатег robots дозволяє задавати детальні настроювання на рівні сторінці, від яких залежить як індексація цієї сторінці, так і її показ в результатах Google Пошуку.

Метатег robots слід розміщувати  в "хедері" сайту або конкретній сторінці (післе тега <head>).

Практично всі движки для створення сайтів надають користувачам таку можливість.

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

<meta name="robots" content="noindex" />

Задане для атрибута name значення (robots) вказує, що директива призначена для всіх пошукових  роботів.

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

<meta name="googlebot" content="noindex" />

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

Якщо треба вказати директиви для кількох пошукових роботів, то можна використати кілька метатегів robots:

<meta name="googlebot" content="noindex">

<meta name="googlebot-news" content="nosnippet">

Основні директиви індексування та показу контента

Вказані нижче директиви дозволяють керувати індексуванням сторінки та показом її  фрагмента в результатах пошуку. Директиви можна об’єднувати (через кому). Вони вказуються без урахування  регістру.

noindex - директива забороняє показувати цю сторінку в результатах пошуку.

nofollow - директива забороняє виконувати перехід за посиланнями на сторінці.

none - директива еквівалентна елементу noindex, nofollow.

noarchive - директива забороняє показувати посилання  на кеш в результатах пошуку.

nosnippet - директива забороняє демонструвати в результатах пошуку фрагмент тексту чи відеоролика.

notranslate - директива забороняє пропонувати  в результатах пошуку переклад сторінки.

noimageindex - директива забороняє індексувати зображення на сторінці.

unavailable_after: [date/time] - директива забороняє показувати сторінку в результатах пошуку після настання вказаних дати і часу. Директива ігнорується, якщо вказано неприпустиме значення [date/time]. За замовчуваням у контента немає терміну дії  (дотримуйтесь формату введення дати та часу).

Приклад:

<meta name="robots" content="unavailable_after: Sunday, 01-Sep-24 01:00:00 PDT">

 

Можна створити інструкцію, що містить кілька директив, розділених комами в одному метатезі robots. Наприклад: 

<meta name="robots" content="noindex, nofollow"> 

За цією інструкцією всім пошуковим роботам заборонено індексувати сайт (сторінку) та переходити за посиланнями на цьому сайті (сторінці). 

Якщо перераховані різні директиви для декількох пошукових роботів, пошукова система буде підсумовувати заборони. наприклад: 

<meta name="robots" content="nofollow">

<meta name="googlebot" content="noindex"> 

Виявивши ці метатеги, робот Googlebot буде діяти так само, як при наявності на сторінці директив noindex, nofollow. 

З усіма специфікаціями метатега robots Ви можете ознайомитися за посиланням >>> 

https://developers.google.com/search/docs/advanced/robots/robots_meta_tag