Какво е robots.txt файл?

Robots.txt файловете Ви позволяват да информирате обхождащите машини на търсачки и други ботове (роботи) кои URL адреси на сайта Ви трябва и не трябва да бъдат достъпвани според протокола за изключение за роботи (Robots Exclusion Protocol). Можете да го използвате в комбинация със sitemap.xml файл и Robots мета тагове за по-добър контрол над частите на сайта Ви, които трябва да се обхождат от ботове. Файлът robots.txt трябва да се намира в основната директория на сайта.

Важно: Правилата в robots.txt файла разчитат на доброволното подчинение на обхождащите машини на търсачки и други ботове, които посещават сайта Ви. Ако желаете изцяло да блокирате достъпа до определени страници или файлове на сайта Ви или да предотвратите изцяло посещенията от определени ботове, тогава Ви съветваме да използвате .htaccess файл. Различни примери за прилагане на такива ограничения са налични в статията ни "Използване на .htaccess".

Как да създам robots.txt файл?

Някои приложения (напр. Joomla) идват с robots.txt файл по подразбиране, докато други (напр. WordPress) може да създават robots.txt файла си динамично. Динамично създадените robots.txt файлове не съществуват на сървъра, така че промяната им ще е специфична за самото софтуерно приложение, което използвате. За WordPress можете да използвате разширение, което управлява robots.txt файла по подразбиране или да създадете ръчно нов robots.txt файл.

Можете да създадете robots.txt файл за Вашия сайт чрез раздел "Файлове" на хостинг Контролния панел. Можете и да създадете robots.txt файл локално на Вашето устройство чрез текстов редактор по Ваш избор и след това да качите файла чрез FTP клиент на Вашия акаунт. Можете да откриете инструкции за настройка на най-популярните FTP приложения в раздел "Качване на файлове" на нашата онлайн документация.

Какво мога да използвам в robots.txt файла?

Правилата в robots.txt файловете се описват с директиви. Можете да използвате следните директиви в robots.txt файл:

  • User-agent - определя User Agent на бота/обхождащата машина, за която да важи правилото. Ако трябва да разрешите или забраните достъпа за едни и същи директории за ботове с различен User Agent, то може да ги изпишете един след друг. Символът "*" (звезда) може да се използва като wildcard символ, като по този начин правилото ще важи за всеки User Agent.
  • Allow/Disallow - показва дали зададения по-горе User Agent трябва или не трябва да посещава определена директория на домейна. Можете да добавите ограничение за достъпа за различни директории, добавяйки ги на отделен ред. Символът "*" (звезда) може да се използва като wildcard символ. Символът "$" (долар) може да се използва за указване края на директория/URL.
  • Crawl-delay (допълнителен) - инструктира обхождащите машини и ботовете да забавят честотата на обхождане на сайта. Директивата приема цифрова стойност от 1 до 30, което представлява времето на изчакване между отделни заявки в секунди. Тази директива може да се използва за забавяне на обхождането от ботове, които са прекалено агресивни, ако въпросните ботове се подчиняват на директивата.
  • Sitemap (допълнителен) - оказва адреса на sitemap на сайта за обхождащите машини на търсачки.  Ако имате отделни сайтове в поддиректории на главния домейн, може да въведете техните sitemap локации на нов ред.

Главните и малки букви се разглеждат като различни символи в стойностите за директивите, така че се уверете, че ги използвате правилно. Например, ако използвате "Googlebot" и "GoogleBot" като User Agent във Вашия robots.txt файл, ще блокирате два различни бота.

Коментари в robots.txt файла

Можете да използвате символа "#" (диез) за добавяне на коментари с цел по-добра четимост за хора. Символите след "#" се считат за коментар, ако символът е в началото на ред или след правилно дефинирана директива, последвана от интервал. По-долу можете да откриете примери за валидни коментари:

# This is a comment on a new line.
User-agent: * # This is a comment after the User-agent directive.
Disallow: / # This is a comment after the Disallow directive.

и за невалидни коментари:

// This is not a valid comment.
User-agent: Bot# This is not a valid comment as it is not separated with an interval after the User-agent. The matched User-Agent will be "Bot#" and not "Bot".

Файлът robots.txt трябва да бъде съдържа UTF-8 символи. Протоколът за изключение на роботи изисква обхождащите машини и ботове да обработват robots.txt файлове с размер от най-малко 500 KiB. Тъй като Google са настроили техните ботове да не обхождат robots.txt файлове по-големи от 500 KiB, Ви съветваме да се опитате да ограничите размера на Вашия robots.txt под 500 KiB.

Какво е съдържанието по подразбиране на robots.txt файла?

Съдържанието на robots.txt файла ще зависи от Вашия сайт и приложението/скриптовете, които използвате на него. По подразбиране на ботове с всеки User Agent е позволен достъп до всички страници на сайта Ви, освен ако нямате собствен robots.txt файл с други инструкции.

Joomla

Съдържанието на robots.txt файла за Joomla е наличен в официалната документация и изглежда така:

User-agent: *
Disallow: /administrator/
Disallow: /api/
Disallow: /bin/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /layouts/
Disallow: /libraries/
Disallow: /logs/
Disallow: /modules/
Disallow: /plugins/
Disallow: /tmp/

WordPress

Robots.txt файлът на WordPress има следното съдържание по подразбиране:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://YOUR_DOMAIN.com/wp-sitemap.xml

Примери

Можете да откриете различни примери за употреба на robots.txt файлове по-долу:

Как да информирате ботовете, че те могат да достъпват целия сайт?

Ако сайтът Ви няма няма robots.txt файл, правилото по подразбиране за сайта Ви ще бъде да се позволи пълен достъп до всички страници на домейна Ви за всеки User Agent:

User-Agent: *
Allow: /

Същият ефект може да се постигне и с директивата за забрана на достъп ("Disallow") без да се определи директория за забраната:

User-Agent: *
Disallow:

Как да информирате всички ботове, че не трябва да достъпват сайта Ви?

За да забраните достъпа за всички ботове до Вашия сайт, можете да използвате следния код във Вашия robots.txt файл:

User-Agent: *
Disallow: /

Как да информирате ботовете , че могат да достъпват целия сайт без определена директория/файл?

Можете да инструктирате ботовете да обхождат целия сайт с изключение на определена директория или файл, използвайки следните директиви във Вашия robots.txt файл:

User-agent: *
Disallow: /directory/

User-agent: *
Disallow: /directory/file.html

Как да позволите пълен достъп до сайта Ви за всички ботове с изключение на един?

Ако желаете да позволите на всички ботове освен един да обхождат целия Ви сайт, тогава използвайте следния код в robots.txt файла на сайта Ви:

User-agent: NotAllowedBot
Disallow: /

В горния пример трябва да замените "NotAllowedBot" с User Agent на бота, който желаете да информирате, че не трябва да обхожда сайта Ви.

Как да позволите пълен достъп сайта Ви само за определен бот?

За да инструктирате всички ботове освен един да не обхождат сайта Ви, използвайте този код:

User-agent: AllowedBot
Allow: /

User-agent: *
Disallow: /

В горния пример трябва да замените "AllowedBot" с User-Agent на бота, който желаете да обхожда сайта Ви.

Как да информирате ботовете, че не трябва да достъпват определени типове файлове?

Добавете следния код към Вашия robots.txt файл, за да инструктирате ботовете, подчиняващи се на правилата в robots.txt файлове, да не обхождат .pdf файлове:

User-agent: *
Disallow: /*.pdf$

Как да информирате ботовете да не достъпват страници със символа долар в името?

Символът долар ("$") има специално значение в robots.txt файловете - той определя края на низа за съвпадение в директивите "Allow" и "Disallow". За да добавите правило, което обхваща страници, съдържащи символа долар в името си, трябва да използвате следния низ от символи като стойност на директивите "Allow" и "Disallow":

User-agent: *
Disallow: /*$*

Ако добавите стойността без последния wildcard символ по този начин:

User-agent: *
Disallow: /*$

всички ботове ще бъдат информирани да не обхождат целия сайт, което може сериозно да навреди на позициите на сайта Ви в търсачките.