- Варіант 1: оптимальний код robots.txt для WordPress
- Не рекомендується виключати фіди: Disallow: * / feed
- Директива Host для Яндекса більше не потрібна
- Це важливо: сортування правил перед обробкою
- Варіант 2: стандартний robots.txt для WordPress
- На основі цих поправок, коректний код повинен виглядати так:
- Дописуємо під себе
- Перевірка robots.txt і документація
- Crawl-delay - таймаут для божевільних роботів (з 2018 року не враховується)
- Я запитав у Яндекса ...
- питання:
- відповідь:
- висновок
У цій статті приклад оптимального, на мій погляд, коду для файлу robots.txt під WordPress, який ви можете використовувати в своїх сайтах.
Для початку, згадаємо навіщо потрібен robots.txt - файл robots.txt потрібен виключно для пошукових роботів, щоб «сказати» їм якісь розділи / сторінки сайту відвідувати, а які відвідувати не потрібно. Сторінки, які закриті від відвідування не потраплятимуть в індекс пошукових систем (Yandex, Google і т.д.).
Варіант 1: оптимальний код robots.txt для WordPress
User-agent: * Disallow: / cgi-bin # класика ... Disallow: /? # Всі параметри запиту на головній Disallow: / wp- # всі файли WP: / wp-json /, / wp-includes, / wp-content / plugins Disallow: *? S = # пошук Disallow: * & s = # пошук Disallow: / search # пошук Disallow: / author / # архів автора Disallow: *? attachment_id = # сторінка вкладення. Взагалі-то на ній редирект ... Disallow: * / embed # все вбудовування Disallow: * / page / # всі види пагінацію Allow: * / uploads # відкриваємо uploads Allow: /*/*.js # всередині / wp- (/ * / - для пріоритету) Allow: /*/*.css # всередині / wp- (/ * / - для пріоритету) Allow: /wp-*.png # картинки в плагінах, cache папці і т.д. Allow: /wp-*.jpg # картинки в плагінах, cache папці і т.д. Allow: /wp-*.jpeg # картинки в плагінах, cache папці і т.д. Allow: /wp-*.gif # картинки в плагінах, cache папці і т.д. Allow: /wp-*.svg # картинки в плагінах, cache папці і т.д. Allow: /wp-*.pdf # файли в плагінах, cache папці і т.д. #Disallow: / wp / # коли WP встановлений в підкаталог wp Sitemap: http://example.com/sitemap.xml Sitemap: http://example.com/sitemap2.xml # ще один файл #Sitemap: http: // example.com/sitemap.xml.gz # стисла версія (.gz) # версія коду: 1.1 # Не забудьте поміняти `site.ru` на ваш сайт.
Розбір коду:
У рядку User-agent: * ми вказуємо, що всі наведені нижче правила будуть працювати для всіх пошукових роботів *. Якщо потрібно, щоб ці правила працювали тільки для одного, конкретного робота, то замість * вказуємо ім'я робота (User-agent: Yandex, User-agent: Googlebot).
У рядку Allow: * / uploads ми навмисно дозволяємо індексувати сторінки, в яких зустрічається / uploads. Це правило обов'язково, тому що вище ми забороняємо індексувати сторінки починаються з / wp-, а / wp- входить в / wp-content / uploads. Тому, щоб перебити правило Disallow: / wp- потрібна рядок Allow: * / uploads, адже по посиланнях типу / wp-content / uploads / ... у нас можуть лежати картинки, які повинні індексуватися, так само там можуть лежати якісь завантажені файли, які нема чого приховувати. Allow: може бути "до" або "після" Disallow :.
Решта рядки забороняють роботам "ходити" по посиланнях, які починаються з:
- Disallow: / cgi-bin - закриває каталог скриптів на сервері
- Disallow: / feed - закриває RSS фід блогу
- Disallow: / trackback - закриває повідомлення
- Disallow:? S = або Disallow: *? S = - закриавет сторінки пошуку
- Disallow: * / page / - закриває всі види пагінацію
Правило Sitemap: http://example.com/sitemap.xml вказує роботу на файл з картою сайту в форматі XML. Якщо у вас на сайті є такий файл, то пропишіть повний шлях до нього. Таких файлів може бути кілька, тоді вказуємо шлях до кожного окремо.
У рядку Host: site.ru ми вказуємо головне дзеркало сайту. Якщо у сайту існують дзеркала (копії сайту на інших доменах), то щоб Яндекс індексував всіх їх однаково, потрібно вказувати головне дзеркало. Директива Host: розуміє тільки Яндекс, Google не розуміє! Якщо сайт працює під https протоколом, то його обов'язково потрібно вказати в Host: Host: http://example.com
З документації Яндекса: «Host - незалежна директива і працює в будь-якому місці файлу (міжсекційна)». Тому її ставимо наверх або в самий кінець файлу, через порожній рядок.
Не рекомендується виключати фіди: Disallow: * / feed
Тому що наявність відкритих фідів потрібно наприклад для Яндекс Дзен, коли потрібно підключити сайт до каналу (спасибі коментатору «Цифровий»). Можливо відкриті фіди потрібні десь ще.
У той же час, фіди мають свій формат в заголовках відповіді, завдяки якому пошукачі розуміють що це не HTML сторінка, а фид і, очевидно, обробляють його якось інакше.
Директива Host для Яндекса більше не потрібна
Яндекс повністю відмовляється від директиви Host, її замінив 301 редирект. Host можна сміливо видаляти з robots.txt. Однак важливо, щоб на всіх дзеркалах сайту стояв 301 редирект на головний сайт (головне дзеркало).
меню
Це важливо: сортування правил перед обробкою
Yandex і Google обробляє директиви Allow і Disallow не по порядку в якому вони вказані, а спочатку сортує їх від короткого правила до довгого, а потім обробляє останнім відповідне правило:
User-agent: * Allow: * / uploads Disallow: / wp-
буде прочитана як:
User-agent: * Disallow: / wp- Allow: * / uploads
Таким чином, якщо перевіряється посилання виду: /wp-content/uploads/file.jpg, правило Disallow: / wp- посилання заборонить, а наступне правило Allow: * / uploads її дозволить і посилання буде доступна для сканування.
Щоб швидко зрозуміти і застосовувати особливість сортування, запам'ятайте таке правило: «чим довше правило в robots.txt, тим більший пріоритет воно має. Якщо довжина правил однакова, то пріоритет віддається директиві Allow. »
менюВаріант 2: стандартний robots.txt для WordPress
Не знаю хто як, а я за перший варіант! Тому що він логічніше - не треба повністю дублювати секцію заради того, щоб вказати директиву Host для Яндекса, яка є меж секційної (розуміється роботом в будь-якому місці шаблона, без вказівки до якого роботу вона відноситься). Що стосується нестандартної директиви Allow, то вона працює для Яндекса і Гугла і якщо вона не відкриє папку uploads для інших роботів, які її не розуміють, то в 99% нічого небезпечного це за собою не спричинить. Я поки не помітив що перший robots працює не так як потрібно.
Вищенаведений код дещо не коректний. Спасибі коментатору " robots.txt "За вказівку на некоректність, правда в чому вона полягала довелося розбиратися самому. І ось до чого я прийшов (можу помилятися):
Деякі роботи (НЕ Яндекса і Гугла) - не розуміють більше 2 директив: User-agent: і Disallow:
- Директиву Яндекса Host: потрібно використовувати після Disallow :, тому що деякі роботи (НЕ Яндекса і Гугла), можуть не зрозуміти її і взагалі забракувати robots.txt. Cамому ж Яндексу, судячи з документації , Абсолютно все одно де і як використовувати Host :, хоч взагалі створюй robots.txt з однієї тільки рядком Host: www.site.ru, для того, щоб склеїти всі дзеркала сайту.
3. Sitemap: міжсекційна директива для Яндекса і Google і мабуть для багатьох інших роботів теж, тому її пишемо в кінці через порожній рядок і вона буде працювати для всіх роботів відразу.
На основі цих поправок, коректний код повинен виглядати так:
User-agent: Yandex Disallow: / wp-admin Disallow: / wp-includes Disallow: / wp-content / plugins Disallow: / wp-json / Disallow: /wp-login.php Disallow: /wp-register.php Disallow: * / embed Disallow: * / page / Disallow: / cgi-bin Disallow: *? s = Allow: /wp-admin/admin-ajax.php Host: site.ru User-agent: * Disallow: / wp-admin Disallow : / wp-includes Disallow: / wp-content / plugins Disallow: / wp-json / Disallow: /wp-login.php Disallow: /wp-register.php Disallow: * / embed Disallow: * / page / Disallow: / cgi-bin Disallow: *? s = Allow: /wp-admin/admin-ajax.php Sitemap: http://example.com/sitemap.xml меню
Дописуємо під себе
Якщо вам потрібно заборонити ще які-небудь сторінки або групи сторінок, можете внизу додати правило (директиву) Disallow:. Наприклад, нам потрібно закрити від індексації всі записи в категорії news, тоді перед Sitemap: додаємо правило:
Disallow: / news
Воно заборонити роботам ходити по подібним посиланнями:
- http://example.com/news
- http://example.com/news/drugoe-nazvanie/
Якщо потрібно закрити будь-які входження / news, то пишемо:
Disallow: * / news
закриє:
- http://example.com/news
- http://example.com/my/news/drugoe-nazvanie/
- http://example.com/category/newsletter-nazvanie.html
Детальніше вивчити директиви robots.txt ви можете на сторінці допомоги Яндекса (Але майте на увазі, що не всі правила, які описані там, працюють для Google).
меню
Перевірка robots.txt і документація
Перевірити чи правильно працюють прописані правила можна за наступними посиланнями:
меню
Crawl-delay - таймаут для божевільних роботів (з 2018 року не враховується)
Яндекс
тепер і Яндекс перестав враховувати Crawl-delay :
Проаналізувавши листи за останні два роки в нашу підтримку з питань індексування, ми з'ясували, що однією з основних причин повільного скачування документів є неправильно налаштована директива Crawl-delay в robots.txt [...] Для того щоб власникам сайтів не довелося більше про це турбуватися і щоб все дійсно потрібні сторінки сайтів з'являлися і оновлювалися в пошуку швидко, ми вирішили відмовитися від обліку директиви Crawl-delay.
Коли робот Яндекса сканує сайт як божевільний і це створює зайве навантаження на сервер. Робота можна попросити «зменшити обороти».
Для цього потрібно використовувати директиву Crawl-delay. Вона вказує час в секундах, яке робот повинен простоювати (чекати) для сканування кожної наступної сторінки сайту.
Для сумісності з роботами, які погано йдуть стандарту robots.txt, Crawl-delay потрібно вказувати в групі (в секції User-Agent) одразу після Disallow і Allow
Робот Яндекса розуміє дробові значення, наприклад, 0.5 (пів секунди). Це не гарантує, що пошуковий робот буде заходити на ваш сайт кожні півсекунди, але дозволяє прискорити обхід сайту.
приклади:
User-agent: Yandex Disallow: / wp-admin Disallow: / wp-includes Crawl-delay: 1.5 # таймаут в 1.5 секунди User-agent: * Disallow: / wp-admin Disallow: / wp-includes Allow: / wp- * .gif Crawl-delay: 2 # таймаут в 2 секунди
Робот Google не розуміє директиву Crawl-delay. Таймаут його роботам можна вказати в панелі вебмастера.
меню
Я запитав у Яндекса ...
Задав питання в тих. підтримку Яндекса щодо міжсекційних використання директив Host і Sitemap:
питання:
Доброго дня!
Пишу статтю щодо robots.txt на своєму блозі. Хотілося б отримати відповідь на таке питання (в документації я не знайшов однозначного «так»):
Якщо мені потрібно склеїти всі дзеркала і для цього я використовую директиву Host на самому початку фала robots.txt:
Host: site.ru User-agent: * Disallow: / asd
Чи буде в даному прикладі правильно працювати Host: site.ru? Чи буде вона вказувати роботам що site.ru це основне дзеркало. Тобто цю директиву я використовую не в секції, а окремо (на початку файлу) без вказівки до якого User-agent вона відноситься.
Також хотів дізнатися, чи обов'язково директиву Sitemap потрібно використовувати всередині секції або можна використовувати за межами: наприклад, через порожній рядок, після секції?
User-agent: Yandex Disallow: / asd User-agent: * Disallow: / asd Sitemap: http://example.com/sitemap.xml
Чи зрозуміє робот в даному прикладі директиву Sitemap?
Сподіваюся отримати від вас відповідь, який поставить жирну крапку в моїх сумнівах.
Дякуємо!
відповідь:
Доброго дня!
Директиви Host і Sitemap є міжсекційними, тому будуть використовуватися роботом незалежно від місця в файлі robots.txt, де вони вказані.
-
З повагою, Платон Щукін
Служба підтримки Яндекса
меню
висновок
Важливо пам'ятати, що зміни в robots.txt на вже робочому сайті будуть помітні лише через кілька місяців (2-3 місяці).
Ходять чутки, що Google іноді може проігнорувати правила в robots.txt і взяти сторінку в індекс, якщо вважатиме, що сторінка ну дуже унікальна і корисна і вона просто зобов'язана бути в індексі. Однак інші чутки спростовують цю гіпотезу тим, що недосвідчені оптимізатори можуть неправильно вказати правила в robots.txt і так закрити потрібні сторінки від індексації і залишити непотрібні. Я більше схиляюся до другого припущенням ...
-
-
на сервісі avi1.ru Ви можете вже зараз придбати просування SMM більш ніж в 7 найпопулярніших соціальних мережах. При цьому зверніть увагу на досить низьку вартість всіх послуг сайту.
Статті до цього: SEO
Disallow: /?Всі параметри запиту на головній Disallow: / wp- # всі файли WP: / wp-json /, / wp-includes, / wp-content / plugins Disallow: *?
S = # пошук Disallow: * & s = # пошук Disallow: / search # пошук Disallow: / author / # архів автора Disallow: *?
S = або Disallow: *?
Php Disallow: * / embed Disallow: * / page / Disallow: / cgi-bin Disallow: *?
Php Disallow: * / embed Disallow: * / page / Disallow: / cgi-bin Disallow: *?
Ru?
Також хотів дізнатися, чи обов'язково директиву Sitemap потрібно використовувати всередині секції або можна використовувати за межами: наприклад, через порожній рядок, після секції?