Опубліковано: 20 листопад 2012 / Оновлене 6 червня 2013
Привіт друзі. Дехто в коментарях сьогодні мене попросив написати пост про правильний robots.txt для WordPress. Я якось навіть зніяковів, бо не уявляю собі, як можна зробити robots неправильним. Напевно, все ж можна, раз ви просите.
Це я до чого ...
Пам'ятайте майже однойменний мій пост про правильний robots.txt для DLE , Він зібрав дуже багато відгуків (майже 300 коментарів), як раз там мене і попросили реалізувати аналог для WordPress. Ну, окей, я зробив це, написання функції зайняло всього 5 хвилин. Тому я хочу вас познайомити сьогодні з правильним robots.txt для WP з моєї точки зору.
А закривати неугодні сторінки ми будемо моїм улюбленим способом - за допомогою метатегов.
Ідеальний robots.txt для WordPress буде приблизно такою:
User-Agent: * Allow: / wp-content / uploads Disallow: / wp- Host: site.ru Sitemap: http: //site.ru/sitemap.xmlUser-Agent: * Allow: / wp-content / uploads Disallow: / wp- Host: site.ru Sitemap: http://site.ru/sitemap.xml
Нічого дивного, якщо ви читали пост про DLE, там Роботс взагалі з 4-х рядків.
Сторінки, які необхідно виключити з індексу, ми будемо закривати метатегах <meta name = "robots" content = "noindex">. Чим це краще і чому правильніше - я писав дуже круту статтю і не перестаю її рекомендувати до вивчення - robots.txt vs. мета-тег robots .
Я не рекомендую використовувати плагіни, які роблять щось подібне. Те про що я хочу розповісти - тільки хардкор, тільки PHP. Для реалізації сьогоднішніх правок нам потрібно додати лише одну функцію в файл functions.php нашої теми оформлення.
Як завжди все гнучко як конструктор - ви сам вибираєте, що заборонити від індексації, а що дозволити. Дивимося функцію:
/ *** додає meta robots noindex, nofollow ДЛЯ СТОРІНОК *** / function my_meta_noindex () {if (// is_archive () OR // Перегляд будь-яких сторінок архіву - за місяць, за рік, за категоріями, по авторам, і т . Д. // is_category () OR // Перегляд архіву статей за категоріями is_author () OR // Перегляд архіву статей за автором is_date () OR // Перегляд архіву статей по будь-яким дат // is_day () OR // Перегляд архіву статей по днях // is_month () OR // Перегляд архіву статей по місяцях // is_year () OR // Перегляд архіву статей по роках is_tag () OR // Перегляд архіву статей за тегами is_tax () OR // Перегляд архіву статей по таксономії . Що це? // is_front_page () OR // Перегляд г авной сторінки сайту. Те, що відображається на головній сторінці сайту http://site.ru/ Див. в адмінки "Налаштування" - "Читання". Тобто якщо в якості головної обрана статична сторінка, то при перегляді головної сторінки сайту і цієї статичної сторінки, буде повернуто значення функції true. // is_home () OR // Головна сторінка блогу. Та сторінка, на котрих виводяться останні записи блогу. У мене, наприклад це https://alaev.info/blog. Див. В адмінки "Налаштування" - "Читання". Тобто якщо в якості сторінки для виведення записів блогу обрана статична сторінка, то при перегляді цієї сторінки, буде повернуто значення функції true. // is_singular () OR // Перегляд будь-яких типів записів, включаючи поодинокі пости, поодинокі сторінки, сторінки прикріплених файлів і т.д. // is_single () OR // Перегляд будь-якого одиночного поста. Працює для будь-якого типу постів, крім сторінок перегляду прикріплених файлів і окремих одиночних сторінок // is_page () OR // Перегляд окремої одиночній сторінки (це те, що в розділі "Сторінки" в адмінці) is_attachment () OR // Сторінки переглядати приєднані файли // is_paged () OR // Все і будь-які сторінки пагінацію is_search () // сторінки результатів пошуку по сайту) {echo "". '<Meta name = "robots" content = "noindex, nofollow" />'. "\ N"; }} Add_action ( 'wp_head', 'my_meta_noindex', 3); // додаємо свій noindex, nofollow в head/ *** додає meta robots noindex, nofollow ДЛЯ СТОРІНОК *** / function my_meta_noindex () {if (// is_archive () OR // Перегляд будь-яких сторінок архіву - за місяць, за рік, за категоріями, по авторам, і т . Д. // is_category () OR // Перегляд архіву статей за категоріями is_author () OR // Перегляд архіву статей за автором is_date () OR // Перегляд архіву статей по будь-яким дат // is_day () OR // Перегляд архіву статей по днях // is_month () OR // Перегляд архіву статей по місяцях // is_year () OR // Перегляд архіву статей по роках is_tag () OR // Перегляд архіву статей за тегами is_tax () OR // Перегляд архіву статей по таксономії . Що це? // is_front_page () OR // Перегляд важливо ї сторінки сайту. Те, що відображається на головній сторінці сайту http://site.ru/ Див. в адмінки "Налаштування" - "Читання". Тобто якщо в якості головної обрана статична сторінка, то при перегляді головної сторінки сайту і цієї статичної сторінки, буде повернуто значення функції true. // is_home () OR // Головна сторінка блогу. та сторінка, на котрих виводяться останні записи блогу. У мене, наприклад це https://alaev.info/blog. Див. В адмінки "Налаштування" - "Читання". Тобто якщо в якості сторінки для виведення записів блогу обрана статична сторінка, то при перегляді цієї сторінки, буде повернуто значення функції true. // is_singular () OR // Перегляд будь-яких типів записів, включаючи поодинокі пости, поодинокі сторінки, сторінки прикріплених файлів і т.д. // is_single () OR // Перегляд будь-якого одиночного поста. Працює для будь-якого типу постів, крім сторінок перегляду прикріплених файлів і окремих одиночних сторінок // is_page () OR // Перегляд окремої одиночній сторінки (це те, що в розділі "Сторінки" в адмінці) is_attachment () OR // Сторінки переглядати приєднані файли // is_paged () OR // Все і будь-які сторінки пагінацію is_search () // сторінки результатів пошуку по сайту) {echo "". '<meta name = "robots" content = "noindex, nofollow" />'. "\ n ";}} add_action ( 'wp_head', 'my_meta_noindex', 3); // додаємо свій noindex, nofollow в head
Рекомендую додати все це справа в самий початок файлу functions.php, але якщо хочете, можете додати в будь-яке місце.
До кожної рядку коду є зрозумілий опис. Деякі рядки закоментовано (подвійний слеш перед рядком), а якісь ні - я приблизно прикинув, який повинен бути оптимальний варіант, і відразу налаштував код таким чином.
Щоб активувати якесь правило досить видалити подвійний слеш, а щоб заборонити правило, відповідно, подвійний слеш треба додати. Все просто і зрозуміло, чи не так?
Деякі правила можна комбінувати, наприклад, якщо треба закрити лише сторінки пагінацію при перегляді архівів (категорії, теги, автори і т.д.), а основні сторінки пагінацію (наприклад, http://site.ru/page/2 і т. д.) залишити доступними для роботів, то правило буде таке: (is_archive () && is_paged ()) OR
Мало не забув попередити:
1. Після закриття сторінок описаним вище способом, не забудьте видалити з robots.txt директиви, які забороняють ці ж сторінки.
2. Деякі плагіни (наприклад, All in One SEO, який встановлений і у мене) теж пропонують свої настройки індексації та додають мета-теги. Все це повинно працювати аналогічним шляхом. АЛЕ! Я рекомендую або відключити в плагіні ці настройки, або неактивовані їх в моєму коді. Мій спосіб набагато більш гнучкий і настроюється, ніж плагіни, тому вибір тут очевидний, не помиліться :)
3. Експериментуйте, друзі, і знайдіть свій правильний robots.txt для WordPress! Але не забувайте перевіряти результати своїх експериментів.
Ну все, далі самі розберетеся :)
PS Всі, що ви робите з цієї інструкції - ви робите на свій страх і ризик. І якщо ви раптом повністю забороніть індексацію сайту, то я тут ні до чого!
PPS За попереднім досвідом я вас попереджаю - Не смійте мені в коментарях викладати повністю зміст свого robots.txt і питати чи правильний він і як далі жити! Такі коменти я буду відразу видаляти. Якщо хочете ради, то, в крайньому випадку, давайте посилання на ваш Роботс.
Дякую за увагу, задавайте питання, пишіть коментарі, а головне відписуйтеся про працездатність.
З повагою, Олександр Алаев
Опубліковано: 20 листопад 2012
Що це?
Все просто і зрозуміло, чи не так?