Забиваем костыли — Сборник полезных функций и скриптов для WordPress

Сборник полезных функций для WordPress Привет, друзья. Если помните, я как-то в Твиттере обмолвился, что мне постоянно приходится «забивать костыли» в движок WordPress, чтобы добиться правильной работы того или иного компонента. Так вот этих костылей у меня накопилось уже достаточно много, достаточно для того, чтобы оформить их в целый пост.

Почти все скрипты и функции, описанные ниже, придуманы и написаны мной, и все они в данный момент используются на моем блоге, так что, как говорится, все проверено на себе.

Каждый для себя обязательно найдет что-нибудь полезно в этом посте.


Breadcrumbs или Хлебные крошки для WordPress без плагинов

Если вы помните, то я большой противник установки плагинов, которые делают то, что можно реализовать и без них, при этом затратив гораздо меньше ресурсов и сохранив быстродействие движка в целом.

Вот и в вопросе создания хлебных крошек я решил не прибегать к плагинам, а решил врубить мозги и написать функцию самостоятельно. Как вы сейчас увидите, кода ровно на 10 строк!

/*** ХЛЕБНЫЕ КРОШКИ WordPress***/
	function my_breadcrumbs() {
		if (is_home()) { // если главная страница, то ничего не делаем
		} elseif (is_single()) { // если страница поста, то выводим хлебные крошки
			echo '<a title="На главную страницу" href="http://alaev.info">Оптимизация сайтов</a> » <a title="Просмотреть все записи блога" href="https://alaev.info/blog">SEO Блог</a> » ';
			foreach((get_the_category()) as $cat) {
				$cat=$cat->cat_ID;
				echo(get_category_parents($cat, TRUE, ' » '));
			}// вывод категории поста
			the_title(); // вывод заголовка поста
		}
	}

Данный код необходимо вставить в начало (после <?php) или в конец (перед ?>) файла functions.php вашей текущей темы оформления.
После этого необходимо добавить код <?php my_breadcrumbs(); ?> в файл single.php

Очищаем кеш, если это необходимо, и видим хлебные крошки в постах на своем блоге.

В коде функции все должно быть понятно, везде есть пометки, вам остается только прописать свои url’ы и анкоры к ним.

Будьте внимательны при использовании мультикатегорий, возможны неправильные варианты формирования крошек.

Пример работы данного кода вы можете наблюдать в данном посте над заголовком.


301 редирект неправильных адресов вида http://site.ru/http://site.ru/post-name на правильные

Совсем недавно я обнаружил в панели вебмастера Google в разделе «Диагностика сайта –> Ошибки сканирования» такую фигню: появилось несколько десятков битых урлов такого вида как указано в подзаголовке. Разумеется, при переходе по ним выдавалась 404 ошибка. Зачем и какого собственно хрена на меня поставили такие внешние ссылки мне не известно, но факт есть факт, пришлось разбираться.

Дабы исправить ситуацию я написал следующее условие, его необходимо вставить так же в файл functions.php:

/*** КОСТЫЛЬ ДЛЯ ИСПРАВЛЕНИЯ http://site.ru/http://site.ru/ ***/
	if (strpos($_SERVER['REQUEST_URI'], 'http://alaev.info') !== false) {
		$real_page_url = "http://alaev.info".str_replace ( "/http://alaev.info", "", $_SERVER['REQUEST_URI'] );
		header("HTTP/1.0 301 Moved Permanently");
		header("Location: $real_page_url");
		die("Redirect");
	}

Теперь, если в запрашиваемом url’е будет содержаться дублирование адреса хоста, это дублирование будет удаляться и будет происходить 301 редирект на нужную страницу.

Чтобы воспользоваться кодом вам необходимо заменить адрес хоста alaev.info на свой. Будьте внимательны, не удаляйте и не добавляйте никакие слеши в код, иначе может случиться беда.


Фильтрация результатов поиска в WordPress

Идею данного костыля я подсмотрел на каком-то блоге, на каком уже, разумеется, не помню.

В чем заключается суть данной функции? Функция позволяет ограничивать область поиска, а если быть конкретнее, то в строчке $query->set('post_type', 'post'); мы указываем тип записи, который выводить в результатах. Мне это понадобилось для того, чтобы через поиск не находились статические страницы, а показывались только посты блога.

Это будет полезно тем, у кого на блоге много различных статических страниц, которые могут не всегда совпадать по смыслу и содержанию с основной составляющей блога. В конкретно моем случае я не хотел, чтобы в поиске выдавались страницы фото-портфолио.

/*** ФИЛЬТР ДЛЯ ПОИСКА WordPress ТОЛЬКО ПО ПОСТАМ ***/
	function SearchFilter($query) {
		if ($query->is_search) {
			$query->set('post_type', 'post'); // определяем тип записей, по которым нужно искать
		}
		return $query;
	}
	add_filter('pre_get_posts','SearchFilter'); // фильтр будет встроен в цикл и будет сортировать результат поиска перед выводом

Для поверки вы можете целенаправленно поискать что-нибудь из раздела ФОТО и вы ничего не найдете =)


Делаем и добавляем свой метатег canonical для всех страниц блога

Вот с этой фишкой была вообще целая история. Помните, когда Яндекс ввел у себя поддержку данного метатега? Так вот почти сразу после этого в панели вебмастера у меня появилась категория ошибок «Документ не является каноническим» где отобразились все страницы пагинации. Я стал разбираться в чем дело, и оказалось так, что плагин WP-Pagenavi генерировал мне неправильные урлы страниц, о том как я разобрался с этой проблемой я уже описывал в посте про постраничную навигацию в WordPress без плагинов. Но на этом приключения не закончились!

Если вы пользуетесь плагином All In One SEO, а вы с вероятностью 95% им точно пользуетесь, знаете, что там есть такая настройка «Canonical URLs», при ее включении на все страницы будет добавляться пресловутый метатег rel="canonical". Так вот оказалось, что AISOEP-плагин тоже не полюбил некоторые страницы моего блога и прописывал адреса со слешем на конце, в то время как у меня все адреса без слеша. Ну и в итоге произошел нонсенс – при заходе на страницу со слешем происходит 301 редирект на страницу без слеша, при этом в каноникале прописан адрес со слешем. И вот как поступать роботом при индексации таких страниц? Вот и я не знаю.

Пришлось отключать в плагине All In One SEO Pack настройку канонизации и писать свою функцию, которая бы правильно работала в сложившейся ситуации.

/*** ДОБАВЛЯЕМ СВОЙ rel canonical ***/
	function my_rel_canonical() {
		if (!is_404()) { // если не 404 ошибка
			$requested_url  = ( !empty($_SERVER['HTTPS'] ) && strtolower($_SERVER['HTTPS']) == 'on' ) ? 'https://' : 'http://';
			$requested_url .= $_SERVER['HTTP_HOST'];
			$requested_url .= $_SERVER['REQUEST_URI'];
			$url_array = explode('?', $requested_url); $requested_url = $url_array[0]; // отсекаем все что после первого знака вопроса ?
			$requested_url = rtrim($requested_url, '/'); // убираем конечный слеш, если есть
			echo "".'<link rel="canonical" href="'.$requested_url.'" />'."\n";
			}
		}
	add_action('wp_head', 'my_rel_canonical', 3); // добавляем свой canonical в head

Код данной функции надо добавить в свой functions.php. Функция работает следующим образом: запрошенный url разбирается на части (протокол + хост + uri), потом из полученного массива выкидывается все, что идет после знака вопроса (если он есть, обычно знаком вопроса отделяют передаваемый в url параметры), и в самом конце идет проверка на наличие заканчивающего слеша, и если он есть, то мы его удаляем.

Если же у вас адреса страниц на блоге формируются так, что в конце обязательно присутствует слеш, то просто удалите из кода строку:

$requested_url = rtrim($requested_url, '/'); // убираем конечный слеш, если есть

И тогда все будет работать как надо!

Кстати, это дело не подойдет для НЕ ЧПУ урлов, так как в этом случае как раз все и передается с помощью параметров и для каждой страницы rel canonical будет содержать адрес главной страницы. Чтобы приспособить функцию для НЕ ЧПУ адресов необходимо избавиться от данной строки кода:

$url_array = explode('?', $requested_url); $requested_url = $url_array[0]; //отсекаем все, что после первого знака ?

Вот, теперь я учел все нюансы.


Добавляем в WordPress метатег meta robots с noindex,nofollow для страниц с 404 ошибкой

Не уверен, насколько пригодится этот костыль вам, но у меня в панели вебмастера Google постепенно пропали все 404 ошибки после данной манипуляции.

Код данной функции предельно прост, смотрите сами:

/*** ДОБАВЛЯЕМ noindex,nofollow ЕСЛИ 404 ***/
	function my_404_noindex () {
		if (is_404()) {
			echo "".'<meta name="robots" content="noindex,nofollow" />'."\n";
			}
		}
	add_action('wp_head', 'my_404_noindex', 3); // добавляем свой noindex,nofollow в head

Как и все предыдущие костыли, код функции надо добавить в ваш файл functions.php. Что же он делает? Простейшее условие на проверку — если выдается 404 ошибка, то выводим метатег, а потом через стандартный фильтр add_action(); добавляем эту запись в <head>.

Все гениальное просто, не так ли! Надеюсь, вам пригодится.


Вывод постового через дополнительное произвольное поле в WordPress

Решил рассказать как можно более изящно и удобно размещать постовые или другие подобные ссылки (можно и не только ссылки, разумеется) в постах блога. Обычно постовой просто размещается в теле поста в самом конце, но мне так было неудобно, и я придумал, как можно выводить постовой через дополнительное поле в записи.

Для начала добавим в шаблон своей темы в файл single.php следующий код:

<?php $checkpos = get_post_meta($post->ID, 'postovoi', $single = true);
			if($checkpos !== '') {echo $checkpos;}
			else {echo '<a href="https://alaev.info/reklama#blogger">Тут может быть ваш постовой</a>';} ?>

Размещать его необходимо, например, после строки <?php the_content(''); ?> в таком случае сразу после текста поста будет выводиться нужная информация.

После этого заходим в редактирование любого поста или при добавлении нового прокручиваем страницу до блока под названием «Произвольные поля». Жмем «Добавить новое» и указываем ему имя postovoi, а в поле «Значение» вставляем нужный текст или html код ссылки, а потом жмем «Добавить произвольное поле».

Теперь в конце записи у вас появится эта ссылка-постовой. Особенность моей функции еще в том, что если это произвольное поле не заполнено, то будет выводиться стандартная информация, в данном случае это будет ссылка с анкором «Тут может быть ваш постовой», которая будет вести на страницу «Реклама». Вы сами сможете настроить, что у вас будет по умолчанию показываться, это не сложно.

Мне кажется это очень удобно и прикольно. Скрипт можно приспособить для вывода чего угодно — хоть баннера, хоть своих реф-ссылок или любой другой полезной информации.


Фильтрация html кода (вывод html обычным текстом) в комментариях WordPress

Вас одолели спамеры или вам не нравится, что комментаторы постят левые ссылки на свои сайты в комментариях без вашего ведома, а, может быть, вам просто не надо, чтобы обрабатывался html код в комментариях? Тогда читайте дальше.

В файл functions.php вашей темы необходимо добавить следующий код:

/*** ФИЛЬТРАЦИЯ html В КОММЕНТАРИЯХ WordPress ***/
	function plc_comment_post( $incoming_comment ) {
		$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
		$incoming_comment['comment_content'] = str_replace( "'", '&apos;', $incoming_comment['comment_content'] );
		return( $incoming_comment );
	}
	function plc_comment_display( $comment_to_display ) {
		$comment_to_display = str_replace( '&apos;', "'", $comment_to_display );
		return $comment_to_display;
	}
	add_filter('preprocess_comment', 'plc_comment_post', '', 1);
	add_filter('comment_text', 'plc_comment_display', '', 1);
	add_filter('comment_text_rss', 'plc_comment_display', '', 1);
	add_filter('comment_excerpt', 'plc_comment_display', '', 1);

Суть всех этих фильтров такова, что любая текстовая информация, добавленная в комментарий, не будет обрабатываться движком и отобразится точно так, как ее вбил комментатор, то есть никакая разметка не будет применяться. Потом вы сами сможете оформить текст комментария как вам надо из админки.

Иногда такой жёсткий метод просто необходим.


Удаление nofollow для ссылок в комментариях WordPress блога

Данный костыль стоит использовать в сочетании с предыдущим методом фильтрафии html. В таком случае вы самостоятельно сможете регулировать простановку ссылок, а раз вы решили оставить какие-то ссылки, значит они вам нужны, и значит нет смысла запрещать переход по ним для роботов.

По умолчанию WordPress ставить rel=”nofollow” для всех ссылок в комментариях, и нам надо переубедить его!

В свой файл functions.php надо добавить следующий фильтр:

/*** УДАЛЕНИЕ nofollow В КОММЕНТАРИЯХ WordPress ***/
	function remove_nofollow($string) {
		$string = str_ireplace(' rel="nofollow"', '', $string);
		return $string;
	}
	add_filter('comment_text', 'remove_nofollow'); // удаляем nofollow для текстов комментариев

Все готово, отныне никаких nofollow в ссылках комментариев!


На сегодня все, дорогие друзья. Я поделился с вами самыми интересными наработками для моего блога за время его ведения, и я очень надеюсь, что эти мелкие фишки пригодятся и вам.

Можете задавать вопросы, делиться своими оригинальными разработками, предлагать идеи и обсуждать!

PS Если вас интересует какой-то вопрос на тему «а как сделать ...?» — прошу вас оставлять запросы в комментариях. В следующем выпуске «костылей» я напишу решение вашей проблемы.

Александр «АлаичЪ» Алаев
Александр «АлаичЪ» Алаев

Вот уже 18 лет я профессионально занимаюсь созданием и продвижением сайтов и 13 лет с удовольствием пишу в любимый блог. Создал заслужившие доверие в seo-сообществе программы FastTrust и ComparseR и известный сервис для проверки траста сайтов CheckTrust.ru.

В 2014 основал веб-студию «АлаичЪ и Ко» в Краснодаре: 1 место в рейтинге агентств интернет-маркетинга (Рейтинг Рунета), 2 место в рейтинге SEO-компаний (CMSmagazine), 12 место в рейтинге известность бренда SEO-компаний в России (SeoNews).

Выступаю на профильных конференциях (All In Top, SEO Conference, SEMPRO, Baltic Digital Days). Веду канал в telegram про seo и бизнес. SEO-специалист года 2019 и 2020 (Sape).

Ерунда и баянЪ!Зачет! Плюсую!
+8

Профессиональный технический аудит и рекомендации по оптимизации вашего сайта.
Тот самый необходимый «фундамент» для успешного продвижения.

30 000 руб.

Комплексный подход к решению поставленных задач: достижение топ-10 и увеличение трафика на сайт. В стоимость уже включены полный технический аудит и оптимизация сайта.

45 000 руб.

У вас недостаточно знаний и нужны ответы на вопросы?
Интересует мнение эксперта или надо проверить подрядчика?
Вы задаете вопрос — я отвечаю!

5 000 руб./час

Проведу подробное исследование вашего сайта и основных конкурентов, опубликую материал на блоге для обсуждения и коллективного поиска новых идей.

70 000 руб.

Я начал запись своего обучающего курса по seo-продвижению.

В каждом видео я разбираю какую-то одну важную тему, и делаю это последовательно, в порядке, подходящем для изучения с нуля. Видео выкладываются раз в неделю – по средам. Я думаю, весь курс будет состоять из 50-70 роликов, так до конца еще далеко, а значит самое время подписаться и начать изучение вместе со мной.

В блоке слева всегда будет выводиться самое свежее видео курса. Ссылки: на мой канал, на плейлист обучения.

Комментарии: 45 Написать комментарий
  1. Дмитрий (4 комм.)

    В еверноут однозначно. Спасибо. Мне бы хотелось узнать еще одно: на странице тегов и категорий нужно выводить произвольный текст с картинками и редактированием. Есть умельцы, которые прописывают функцию: выводить страницу (айди страницы), если тег такой (айди). Мне, как не особо понимающему в програмировании, очень сложно это осуществить. Вот бы пошаговую инструкцию в следующем выпуске:)

    Ответить
    • АлаичЪ

      Ну да, я уже кому-то комментах или в почте помогал такую штуку реализовать, там кода-то две строчки. В следующем выпуске опишу как такое сделать.

      Ответить
  2. Сергей (1 комм.)

    Спасибо, офигительный набор очень полезных хаков, добавил в закладки.

    И маленькое дополнение — для отключения HTML в комментах не нужна столь большая функция — достаточно простой строки

    add_filter ('comment_text', 'wp_filter_nohtml_kses'); //удаление html из комментов

    Ответить
    • АлаичЪ

      Да, разумно, я как-то до этой стандартной функции не добрался. Спасибо вам за идею!

      Ответить
  3. Alex (8 комм.)

    Костыль — это доработка системы нестандартным (неоптимальным) образом и если заменить этот термин в посте на хаки или советы, поскольку ничего НЕстандартного не предложено, то тогда суть поста будет отражена верно.

    Ответить
  4. Awebpress (3 комм.)

    Очень круто.

    Мы вашу статью включим в пятничный дайджест (если вы не против?)

    Ответить
    • АлаичЪ

      Да без проблем, скидывайте потом ссылку на дайджест :)

      Ответить
      • Awebpress (3 комм.)

        А вот и ссылка: http://www.aweb.com.ua/seo-blog/s-miru-po-nitke-vypusk-7/

        Ответить
  5. Анатолий (17 комм.)

    Очень полезный и познавательный пост, но неплохо было бы написать как убирать виджеты в полной новости как у Вас, так как для SEO это великая сила, и для поста статью легче писать, так как не смешивается то что в виджетах и то что в статье в общую каку.

    Ответить
    • АлаичЪ

      А вот это не факт еще, что это супер-сила для SEO :)

      У меня сайдбара нет не потому, что это для SEO какой-то смысл имеет, а потому, что мне так удобнее, да и читать посты так приятнее.

      Ответить
  6. Василий (2 комм.)

    > 301 редирект неправильных адресов вида http://site.ru/http://site.ru/post-name на правильные

    Что-то не получается реализовать, прописал в файл functions.php, который располагается в шаблоне, заменил на свой урл, но не происходит редирект.

    PS в Я.Вебмастере нашел много таких ошибок, вот у Вас решение, но что-то не заработало.

    Ответить
    • АлаичЪ

      Проверьте все слеши и прочие мелочи, все должно быть как у меня в посте описано.

      Если не поможет, пишите на почту через Feedback — будем персонально разбираться.

      Ответить
  7. ВадимСео (5 комм.)

    Привет, если не трудно, подскажи, будь добр.

    Была временая папка http://www.site.com/temporary/ теперь я ее стер, но она проиндексирована с сотнями страниц, ни одна из них не нужна. Сейчас стоит полноценный сайт на root.

    Как заредиректить так, чтобы все, что содержалось в /temporary/*** перекидывало на http://www.site.com?

    Именно на рут, включая все потроха временной папки, все в одно место, а не каждый урл на свое место вне папки.

    Сейчас поставил вот так:

    RewriteEngine On
    RewriteRule ^temporary/.*$ http://www.мойсайт.com/ [R=301,L]

    Но мне это не подходит, надо на root все одном комом.

    Заранее благодарю!

    Ответить
    • АлаичЪ

      Достаточно прописать в самом начале, после RewriteEngine On следующую строку:

      RewriteCond %{REQUEST_URI} ^/temporary(.*)$
      RewriteRule ^(.*)$ http://www.мойсайт.com/? [R=301,L]

      Тогда любые url, начинающиеся с http://www.мойсайт.com/temporary/ будут редиректиться на http://www.мойсайт.com/

      Проверьте и отпишитесь.

      Ответить
      • ВадимСео (5 комм.)

        Прежде всего спасибо.

        Работает но не до конца, все абсолютные урл редиректятся, но если в пути есть где либо знак "?" то /temporary/ уходит, а динамический путь ?.. и все что за ним остается(. Тоесть вместо http://www.site.com/temporary/?page становится http://www.site.com/?=page.

        Ответить
        • АлаичЪ

          Окей, давайте так попробуем:

          RewriteCond %{REQUEST_URI} ^/temporary(.*)$
          RewriteCond %{QUERY_STRING} ^(.*)$
          RewriteRule ^(.*)$ http://www.мойсайт.com/? [R=301,L]

          Должно сработать.

          Ответить
          • ВадимСео (5 комм.)

            А вот не работает елки палки 500 Internal Server Error...

            Ответить
            • АлаичЪ

              Окей, если сайт на WordPress, то поступим проще, нафиг .htaccess, сделаем php-редирект.

              В начало файла functions.php, после <? добавь следующее:

              	if (strpos($_SERVER['REQUEST_URI'], 'temporary') !== false) {
              		header("HTTP/1.0 301 Moved Permanently");
              		header("Location: http://www.мойсайт.com/");
              		die("Redirect");
              	}
              Ответить
              • ВадимСео (5 комм.)

                В общем, Товарищь АлаичЪ, уважуха и респект, был уверен, что этот вариант должен работать, но там что-то мешало, был в папке одной еще один .htaccess и он вызывал конфликт.

                В общем вот это:

                RewriteCond %{REQUEST_URI} ^/temporary(.*)$
                RewriteCond %{QUERY_STRING} ^(.*)$
                RewriteRule ^(.*)$ http://www.мойсайт.com/? [R=301,L]

                Работает как в сказке!

                Спасибо! Ждите Линк!

                Ответить
  8. Flector (2 комм.)

    Что-то костыль на http://site.ru/http://site.ru/post-name не работает совсем. 20 раз перепроверил — не идет перенаправления и все тут. WP 3.3.1.

    Ответить
    • Flector (2 комм.)

      Не заставил работать, но увидел, что у меня яндекс нашел ссылки вида /http:/site.ru, то есть с одним слешем. Я их просто запретил индексировать в robots.txt через Disallow: /http:/www.*

      Ответить
  9. Maxoud (4 комм.)

    ЧПУ? Анальная кара тому, кто первым «это» употребил.

    Ежепонятный — и ежу понятный. Собаконепонятный — не понятный собаке? Да?

    Ответить
  10. Дмитрий (1 комм.)

    Здравствуйте!

    По метатегу canonical — как сделать, чтобы при заходе на сайт по протоколу https метатег canonical показывал страницу с http.

    Плагин Platinum SEO (аналог All In One SEO) на главной странице с https показывает каноническую с http, а внутренние с https.

    Ответить
  11. Sasha (2 комм.)

    Извините за то что такой глупый, но чуть не понял два момента:

    1. /*** ДОБАВЛЯЕМ noindex,nofollow ЕСЛИ 404 ***/

    function my_404_noindex () {

    if (is_404 ()) {

    echo "".'<meta name="robots" content="noindex,nofollow" />'."\n";

    }

    }

    add_action ('wp_head', 'my_404_noindex', 3); // добавляем свой noindex,nofollow в head

    весь это код ТОЛЬКО скопировать в functions.php

    2. где это находиться — «Произвольные поля» ???

    После этого заходим в редактирование любого поста или при добавлении нового прокручиваем страницу до блока под названием «Произвольные поля». Жмем «Добавить новое» и указываем ему имя postovoi, а в поле «Значение» вставляем нужный текст или html код ссылки, а потом жмем «Добавить произвольное поле».

    Ответить
    • АлаичЪ

      1. Да.

      2. Находится на той же странице где добавление/редактирование поста. Я не знаю, какая у вас версия, но у меня в версии WP 2.8.x это называется именно так.

      Ответить
      • Sasha (2 комм.)

        1. ок, но что вы имели в виду при комментирование кода:

        add_action ('wp_head', 'my_404_noindex', 3); // добавляем CВОЙ noindex,nofollow В HEAD

        2. Спасибо огромное, у меня WP 3.4, и надо было просто, полазить в настройках экрана...

        Ответить
        • АлаичЪ

          Это я для себя комментарии оставляю. А в чем проблема?

          Ответить
  12. Владимир (17 комм.)

    Для 403 ошибок можно сделать тоже что и для 404? А то в панели гугла вылезают 403 ошибки на разные папки типа wp-content/uploads/ или share42/

    Ответить
    • АлаичЪ

      Ну нет конечно, рекомендую изучить какие ошибки что обозначают. 403 обозначает, что доступ в папку (которая реально существует на сервере) запрещен.

      Не стоит по этому поводу переживать, это не ошибка, это просто сообщение с точки зрения ПС.

      Ответить
  13. X-only (13 комм.)

    Спасибо, парочку себе советов возьму) а то плагины могут всё но вот движок не может их всех принять)

    Ответить
  14. Валентин (67 комм.)

    Здравствуйте! У вас в блоге так много полезного и нужного написано по оптимизации DLE и так мало по той же оптимизации WordPress...

    Можно ли добавить статей?

    Ответить
    • АлаичЪ

      Я пишу о том, что мне актуально и более всего интересно. Все, что мне казалось полезным про WP я написал, если что-то появится новое, я обязательно этим поделюсь.

      Ответить
  15. Svetlana (1 комм.)

    Я слышала что поисковики по линку с атрибутом nofollow вес не передают, но уже все равно списывают его со страницы. Если я так добавлю на внутренние страницы сайта ...content="nofollow", поисковики случайно не начнут забирать вес с сайта, или это касается только внешних ссылок? А если на внутренних страницах сайта стоят перекрестные ссылки с атрибутом nofollow как тогда? Прошу прощения за дилетанский вопрос, я в этой оптимизации совсем запуталась :(

    Ответить
    • АлаичЪ

      Все верно, при использовании nofollow вес со страницы уходит, но целевому сайту не передается. Так что нет смысла использовать nofollow, тем более проставляя ссылки внутри сайта. Можно использовать nofollow только для ссылок на "подозрительные" сайты, но на такие и вообще лучше не ссылаться...

      Ответить
  16. Олег (1 комм.)

    В таком случае почему во всех этих вариантах "Добавляем в WordPress метатег meta robots с noindex,nofollow для страниц с 404 ошибкой" и подобных совсем nofollow не убрать, получается при каждом, даже внутреннем nofollow этот пылесос с меня вес тянет когда надо и не надо. Или и я чего недопонимаю. У меня на сайте все внутри ненужное под nofollow, рекомендуете убрать совсем с сайта этот тег?

    Ответить
    • АлаичЪ

      Надо признаться, что добавление noindex,nofollow для 404 страниц — это бред полный. Я не знаю, какая муха меня укусила. Ведь получая ответ сервера 404 поисковый робот даже не смотрит содержимое страницы, а следовательно загрузки страницы даже не происходит и метатег робот никогда не увидит =) Такие вот дела!

      nofollow тяжелая тема, надо ее подробнее разбирать, когда-нибудь напишу об этом пост.

      Ответить
  17. Сергей (6 комм.)

    АлаичЪ, но тем не менее, у Вас при 404 ошибке в коде сожержится noindex,nofollow :) Я по поводу хлебных крошек хотел спросить... Они выводят содержимое пути (той ссылки, где сейчас находится пользователь) в сниппет, точнее в саму ссылку под сниппетом для ПС? Как это было в посте под id 4160. Посмотрел ваш сайт в гоше и яше, там все как надо. Это и есть этот хак, либо это что-то отдельное?

    Ответить
    • АлаичЪ

      Да, у меня много странных вещей можно на блоге найти, что-то является отголоском экспериментов, что-то просто сделано и забыто, ну в общем, у меня тут своя атмосфера :)

      На счет хлебных крошек на моем блоге — да, это тоже самое, что и описано в посте, один в один. А вот то, что поисковики выводят в выдаче, то это совсем не обязательно, что повлияли хлебные крошки (хотя я и не утверждаю обратного). Так скажем, внедрение хлебных крошек на сайт совершенно не гарантирует, что поисковики как-то на это отреагируют.

      Ответить
      • Сергей (6 комм.)

        Я не со всем понял что именно вы имели ввиду под выдачей. Я всего-лишь хочу знать, этот хак заменит обычное "alaev.info/blog/post/3411" на "Alaev.info›SEO Блог›Забиваем костыли" ??? В таком случае спасибо :)

        Ответить
        • АлаичЪ

          Речь о выдаче в поисковике? В Яндексе? Нет, не заменит — я об этом и говорил выше, что поисковики могут никак не отреагировать.

          Ответить
  18. Наталия (5 комм.)

    Здравствуйте!

    Не так давно вы мне очень помогли с одной проблемой. Может быть сейчас сможете посоветовать, как решить один вопрос.

    Проблема следующая: я для блога на WP использовала скрипт для кнопки "Наверх", текст скрипта был вставлен в подключенный файл js. Потом мне на некоторое время понадобился Usernoise. Когда снесла Usernoise, увидела, что 1) пропала кнопка; 2) в консоли выскочила ошибка, что не определена функция, которая за эту кнопку отвечала.

    Но эта функция никак не была связана с удаленным плагином, она была написана раньше — простой маленький скрипт.

    Обратные действия (восстановление плагина) вернули кнопку на место, но это же не выход, мне он не нужен сейчас. Я даже просто оставить его деактивированым не могу, кнопка "Наверх" пропадает.

    Есть ли какие-то общие советы — как избавиться от этих проблем? Плагин удален полностью из папки с плагинами, что за остаточные проблемы могло вызвать его удаление?

    Помогите, пожалуйста, советом — что проверить и посмотреть?

    Ответить
    • Игорь (14 комм.)

      Лично мой совет — Smooth Scroll Up вот плагин )) на моих сайтах он стоит и никаких проблем )

      Ответить
  19. Игорь (14 комм.)

    Привет, что тут работает что нет для 4.1? А то я первый раз на вордпрессе начал делать сайт, разбираюсь что воткнуть, что нет.

    301 редирект неправильных адресов вида http://site.ru/http://site.ru/post-name на правильные не работает )

    Может кто знает как? wp 4.1.1 последняя

    Ответить
  20. Тимур (1 комм.)

    Алаич,а подскажи, как в вордпрессе победить дубли постов с мультикатегориями? Вот к примеру у меня пост принадлежит категории 1, 2 и 3. Эти категории вложены др. в друга, т.е. 2 — родительская для 1, а 3 — родительская для 2.

    Сейчас у меня данный пост отображается по 3 адресам: site.ru/3/post, site.ru/3/2/post и site.ru/3/2/1/post

    Ответить
    • АлаичЪ

      Не знаю. Надо гуглить, я данным вопросом не интересовался, потому и решения не знаю.

      Ответить