robots.txt в WordPress - CybMeta
Файл robots.txt і інструкції, які він містить, є реалізацією так званого протоколу виключення роботів ( Протокол виключення роботів ).
Довгий час я бачив, як файл robots.txt був використаний для цілей SEO, переконавшись, що блокування відстеження певних файлів і каталогів може поліпшити позиціонування пошукових систем, або навіть, що robots.txt може заблокувати шкідливих роботів.
SEO вигоди, деякі, але в конкретних випадках. А про блокування роботів robots.txt нічого не блокує.
WordPress robots.txt
Як я писав кілька днів тому в WPSE , можна сказати, що кращим robots.txt для WordPress взагалі є саме robots.txt, згенерований WordPress . Його вміст за замовчуванням - з WordPress 4.4 і на даний момент (4.9.8):
User-agent: * Disallow: / wp-admin / Дозволити: /wp-admin/admin-ajax.php
У більшості випадків вам не потрібно звертати увагу на цей файл. Типовий файл robots.txt вже є хорошим:
Загальні, але делікатні рекомендації
1. Блок wp-контенту, wp-включає, css, js, зображення та інші ресурси
Користувальницький досвід є індикатором зі значною вагою в SEO, і його інтерпретація вимагає, щоб сканери мали доступ до всіх ресурсів веб-сторінки, а не тільки до її HTML.
Щоб дати уявлення про те, наскільки важливо це те, що я хочу сказати, панель пошуку Google має панель, призначену виключно для того, щоб сповістити вас про сторінки, на яких він знаходить заблоковані ресурси
Реєстрація заблокованих ресурсів у консолі пошуку Google
Подивіться на текст на графіку на попередньому зображенні, він говорить:
Обробка без певних ресурсів може вплинути на індексацію веб-сторінок.
Проте в Інтернеті все ще легко знайти підручники, в яких рекомендується блокувати відстеження певних типів ресурсів для покращення SEO.
Наприклад, у WordPress часто зустрічаються рекомендації для блокування каталогів wp-includes і wp-content, але саме ті каталоги містять ресурси, що використовуються в публічній частині Інтернету.
Якщо ви не знаєте, що робите, і маєте чітку і обґрунтована мета, ці каталоги не повинні бути заблоковані .
2. Robots.txt не блокує жодного робота
Незважаючи на свою назву, протокол виключення робота нічого не блокує . Якщо ви можете отримати доступ до заблокованого ресурсу в robots.txt, будь-який робот може це зробити.
Якщо ви дійсно хочете заблокувати доступ до ресурсу, вам доведеться працювати з іншими інструментами.
robots.txt містить вказівки , деякі роботи слідують за ними, інші - не. Наприклад, сканери з Google, Bing та інших пошукових систем звертають увагу на ці вказівки і не відстежують і не індексують те, що не дозволяє robots.txt .
Але зрозумійте, що robots.txt нічого не блокує в суворому розумінні, це питання програмного забезпечення робота, яке хоче проігнорувати чи ні, настільки просто. Блокування спамерів, небезпечних або шкідливих роботів за допомогою robots.txt для мене не має особливого сенсу. І все ж, це також дуже легка рекомендація знайти в Інтернеті.
3. Блокування відстеження не завжди найкращий варіант SEO
Як вже згадувалося, сканери основних пошукових систем поважають дані, наведені у файлі robots.txt. Якщо ми скажемо, щоб він не повзав щось, він не відстежує його і, отже, не індексує його.
Але більшу частину часу, з точки зору SEO, ми дійсно хочемо, щоб ви відстежували, але не індексували . Подумайте про це трохи.
Приведемо приклад, який я дуже чітко бачу з іншою з найпоширеніших рекомендацій щодо SEO, WordPress і robots.txt: блокування відстеження каналів, тегів, вкладень тощо. Однак, набагато краще дозволити пошуковим системам відстежувати ці сторінки, читати ці документи та дотримуватися посилань, які вони можуть містити в інших частинах Інтернету.
За допомогою robots.txt запобігається сканування та індексація. Щоб дозволити відстеження, але не індексацію, що цікаво, набагато краще використовувати наступні заголовки noindex , або з HTTP заголовки X-Robots-Tag або з мета-тегами :
add_action ('template_redirect', function () {if (is_feed ()) {заголовок ("X-Robots-Tag: follow, noindex");}});
Використовуючи ці заголовки, боти можуть читати ці документи, навіть якщо вони не проіндексовані , і коли вони читають їх, вони можуть слідувати за посиланнями, які вони містять, збільшуючи можливість виявляти весь вміст вашого сайту і відстежувати швидкість вмісту .
Цей метод можна використовувати для будь-якого ресурсу, який ми використовуємо в інтерфейсі, але індексація якого не дуже вчасно.
Наприклад, він використовується в URL-адресах API WP REST і в URL-адресах API AJAX (wp-admin / admin-ajax.php). Обидва URL-адреси, що використовуються в інтерфейсі, повинні бути доступними для сканування, вони не повинні бути заблоковані в файлі robots.txt , хоча його індексація не є своєчасною і відома пошуковим системам через заголовки або теги HTTP мета
Конкретний випадок URL-адреси admin-ajax.php є дуже хорошим прикладом. Зверніть увагу, що це було спеціально дозволено у типовому файлі robots.txt WordPress як виняток з каталогу wp-admin, але якщо ви перевіряєте та аналізуєте заголовки HTTP, ви знайдете заголовок X-Robots-Tag: noindex.
Каталог wp-admin був повністю заблокований у файлі robots.txt до версії 4.4 WordPress, Joost de Valk (Yoast.com) запропонував поставити файл admin-ajax.php як виняток , оскільки його часто використовували в інтерфейсі безліч плагінів і блокувалися в помилках, створених robots.txt, в консолі пошуку Google. Отже, вона повинна бути дозволена простежити, хоча і не індексована.
Змінити файл robots.txt в WordPress
Незважаючи на все вищесказане, все ще може бути багато ситуацій, в яких цілком виправдано модифікувати robots.txt в WordPress , хоча це зовсім не для SEO причин, а тим більше для безпеки.
WordPress створює файл robots.txt на льоту , файл robots.txt насправді не існує фізично, а змінювати файл robots.txt, що потрібно робити з PHP, фільтр robots_txt ,
Наприклад, уявіть, що ви хочете заблокувати сканування каталогу cgi-bin, каталогу певного модуля, і додати посилання на карту сайту :
add_filter ('robots_txt', функція ($ output) {$ output. = "Заборонити: / cgi-bin / \ _ n"; $ output. = "Disallow: / wp-content / plugins / plugin-what-I-want-block / n "; $ output. =" Карта сайту: ". site_url ('sitemap.xml')." "n"; return $ output;});
Це призведе до наступного файлу robots.txt (вміст за замовчуванням плюс доданий у коді):
User-agent: * Disallow: / wp-admin / Дозволити: /wp-admin/admin-ajax.php Заборонити: / cgi-bin / Disallow: / wp-content / plugins / plugin-what-I-want-block / Sitemap: https://example.com/sitemap.xml
Можна також заблокувати всю папку плагінів, але дозволити файли .css і .js, додавши ці рядки:
User-agent: * Disallow: / wp-content / plugins / plugin-to-block / Дозволити: /wp-content/plugins/plugin-a-block/*.css Дозволити: / wp-content / plugins / plugin-a -block / *. js
Ці зміни в файлі robots.txt також можна зробити, створивши файл robots.txt і завантаживши його на сервер, а не через фільтр robots_txt, але коли ви створюєте файл, ви блокуєте використання robots.txt за допомогою WordPress і будь-якого додатка, використання
Наприклад, більшість плагінів, які створюють мапи сайту, додають один або більше записів до файлу robots.txt за допомогою API WordPress. Якщо файл robots.txt дійсно існує, вони не можуть це зробити.
Тому пам'ятайте, що в WordPress не слід створювати файл robots.txt на сервері безпосередньо , вам слід працювати через WordPress API.