Проблема с 301 редиректом и Wordpress или Почему не индексирует Яндекс | Программирование на Delphi и не только

Реклама на сайте

Купить кухонные вытяжки bosch в онлайн гипермаркете.

Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Проблема с 301 редиректом и Wordpress или Почему не индексирует Яндекс

16.03.2008 от Иван Ширко

Страница: 1 2

Disallow: /wp-register.php
Host: delphiblog.ru

Выделенная строчка указывает поисковикам (Google её, насколько я знаю, игнорирует), что основным сайтом надо считать delphiblog.ru, а не www.delphiblog.ru.

В итоге получилось следующее: при обращении к http://delphiblog.ru/ возвращается 200. http://www.delphiblog.ru/ – возвращается 301-й редиректит на сайт без www. Через сутки главная страница уже появилась в индексе Яндекса с нормальным описанием. Теперь осталось дождаться апа выдачи:)

    Я понимаю, что это решение далеко не идеально, и все 301 редиректы убирать из Wordpress не есть гуд, но пока я не нашел точного решения проблемы, пришлось применить эти «драконовские» меры. Надеюсь, кому-то этот пост окажется полезным, а может кто-то подскажет, в каком именно месте происходят эти «нехорошие» редиректы.

Добавлено 22.03.2008:

Кажется, найдено решение получше: в файле functions.php нужно добавить строчку

remove_action('template_redirect', 'redirect_canonical');

В принципе, этого достаточно, чтобы сайт возвращал ответ 200,  но я бы все же добавил выделенные выше строчки в .htaccesss, чтобы делать redirect на сайт без www с сайта с www.

 Иван Ширко
ishyrko@gmail.com

Страница: 1 2

Рубрики: Wordpress |

Комментарии (66)

  1. mari0 пишет:

    Спасибо за методю.
    Искал плагин карты сайта для блога, случайно напаролся на этот пост, и ужаснулся!
    Все мои блоги на ВП выдавали 301 редирект… поправил с помощью вашего метода.

    Кстати весьма странно что не у всех этп проблема…

    Вопрос а почему это не самый лучший метод ? Какие проблемы, могут возникнуть.

    Жду развития событий и самого лучшего метода. Ещё раз спасибо.

  2. Иван пишет:

    Я рад, что этот пост помог. Насчет проблем метода: например, при изменении ссылки на пост при переходе на старую ссылку не будет редиректа на новую, еще в некоторых случаях не будет редиректа. Но найдено лучшее решение:в файле functions.php добавить строчку
    remove_action(’template_redirect’, ‘redirect_canonical’);

  3. mari0 пишет:

    А можно по подробней, куда добавить и что сделать со старыми изменениями ? :) спасибо :)

  4. Иван пишет:

    Можно) В админке открыть редактор тем, выбрать файл functions.php и первой строчкой добавить remove_action(’template_redirect’, ‘redirect_canonical’);
    Сохранить. Со старыми изменениями: в файле canonical.php раскомментировать строку wp_redirect($redirect_url, 301);
    Я у себя сделал так, вроде возвращается ответ 200

  5. User пишет:

    А куда именно? =)

    Кусок кода:

    <?php if ( function_exists(’register_sidebar’) ) {register_sidebar();register_sidebar();}
    // Custom Header Image Support

    define(’HEADER_TEXTCOLOR’, ”);
    define(’HEADER_IMAGE’, ‘%s/img/header.jpg’); // %s is theme dir uri
    define(’HEADER_IMAGE_WIDTH’, 900);
    define(’HEADER_IMAGE_HEIGHT’, 150);
    define( ‘NO_HEADER_TEXT’, true );

  6. Иван пишет:

    например, первой строчкой (после <?php):
    <?php
    remove_action(’template_redirect’, ‘redirect_canonical’);
    if ( function_exists(’register_sidebar’) ) {register_sidebar();register_sidebar();}

  7. User пишет:

    Иван, спасибо! =) Я подозревал, что именно так, но решил удостовериться, ибо чайник. =)

  8. Иван пишет:

    В таких вещах лучше быть уверенным, а то одна неверная строчка может остановить работу всего сайта)

  9. Евгений пишет:

    Иван, а как вообще убрать 301-й редирект?
    У иеня гугл проиндексировал с www а яндекс без, поэтому хочу чтобы нормально работал и не редиректил wordpress

  10. Иван пишет:

    Чтобы отключить редирект с www, можно в functions.php первой строкой написать
    remove_action(’template_redirect’, ‘redirect_canonical’);

  11. Вопрошающий блоггер пишет:

    Если делать наоборот основным адрес с WWW, то при изменении строк пункта 2 на:
    DirectoryIndex index.php index.html

    RewriteEngine On
    Options +FollowSymlinks
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^delphiblog\.ru
    RewriteRule ^(.*)$ http://www.delphiblog.ru/1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    Блог начинает сам себя редиректит ьна индексную страницу бесконечно… :( Что не так, не подскажете?

  12. Иван пишет:

    RewriteCond %{HTTP_HOST} ^domen\.ru$ [NC]
    RewriteRule ^(.*)$ http://www.domen.ru/1 [R=301,L]

    Попробуйте те 2 строчки заменить на эти, только измените domen.ru на нужный адрес

  13. Виктор пишет:

    Столкнулся с похожей проблемой в прошлом. Не люблю яндекс, гугл лучше!

  14. дизельное топливо пишет:

    Очень хорошее и полезное сообщение. Сам недавно искал в интернете данную тему и все обсуждения связанные с ней. Но только тут нашел хороший и качественный и что немаловажно полезный материал. Спасибо автору блога за предоставленную информацию.

  15. Виктор пишет:

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

  16. Likino пишет:

    Побольше бы такой infы

  17. Компьтерные сети пишет:

    Спасибо! Информация пригодилась.

  18. iRedactor пишет:

    Вставлял строчку

    remove_action(’template_redirect’, ‘redirect_canonical’);

    Но, попрежнему редиректит либо с www, либо на www (смотря как в настройках блога вписать).

    Может подскажете как сделать, чтобы и с www и без www не было редиректа.

    Спасибо!

    Wordpress 2.6

  19. Иван пишет:

    iRedactor, даже не знаю, у меня на всех сайтах (WP 2.3 - 2.5, 2.6 пока нету) редирект убирается при помощи этой строчки… посмотрите, может в .htaccess прописан редирект

  20. z0rg пишет:

    мдяяяя ….. *много думал*….
    автору спасибо за пост !!

  21. gorky17 пишет:

    Спасибо за пост. Разобрался, думаю теперь всегда 200 будет! )

  22. Gift пишет:

    Надо взять на заметку

  23. S.S.S. пишет:

    Случайно увидел. Не ожидал.

  24. subnets пишет:

    Да, автору респект и уважуха :)

    в wordpress версии 2.6.2 нету функции remove_action

    заремил
    //wp_redirect($redirect_url, 301);
    //exit();

    вроде идет 200 и редиректа нет

  25. source пишет:

    Спасибо большое
    а то я уже 3 месяца не в Яндексе - все искал в чем трабла, а посмотреть ответы сервера что-то не подумал

    Теперь все гуд…..

    Еще раз спасибо.

  26. Иван пишет:

    >>в wordpress версии 2.6.2 нету функции remove_action

    Спасибо за информацию, subnets, не знал, не добрался еще до нового Wordpress’a :)

  27. Иван пишет:

    >>Спасибо большое
    source, Рад что эта инфа оказалась полезной :)

  28. антон пишет:

    а robots.txt сильно помогает ускорить или облегчить индексацию? т.е. рекомендуете обновить если сайт уже в яндексе?

  29. APS пишет:

    мдяяяя ….. *много думал*….
    автору спасибо за пост !!

  30. Deeptan пишет:

    хм…ну это памойму уже крайность…

  31. YYY пишет:

    “Мало кто может похвастаться такой смекалкой, как у автора”

  32. alex пишет:

    Я извиняюсь может я чего то не дочитал или чего-то не допонял я просто новичок, скажите мне такую ситуацию: уменя был сайт на простых html страничках перешел я на wp, со старых страниц поствил редирект 301 на хостинге, Гугл все индексирует, в яндексе в поиске вместо названия страниц url страниц с нового сайта вообще нет в индексе. Что делать если можно помогите, дайте подробную инструкцию. Спасибо!

  33. alex пишет:

    Забыл сказать у меня wp 2.6.2

  34. Диночек пишет:

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

  35. Timerman пишет:

    Спасибо очень кстати. Я с хостером 2 дня переписывался, почему у меня сайт дает ответ 301. Действительно проблема WP.

  36. Pypetoome пишет:

    пока я жив, я буду помнить ваш ресурс ;) заношу в букмарки….

  37. Охотник на зелёных » Промотр HTTP-заголовков пишет:

    […] (ну нужно мне ) я натолкнулся на пост под названием “Проблема с 301 редиректом и Wordpress или Почему не индексир

  38. Леонид Пищанский пишет:

    Может кто-то что-то подскажет…
    autosvit.net.ua вообще не индексируется :( (соответствующая опция “индексировать” включена в вордпрессе)

  39. Андрей Четвериков пишет:

    В Wordpress 2.7, если я правильно все понял просто надо remove_action(’template_redirect’, ‘redirect_canonical’);
    прописывать не в functions.php, а в canonical.php

  40. Wordpress, Яндекс, редирект 301, зеркала www и без www | Когнитивная психология и эмоции пишет:

    […] Яндексом, я решил, что ожидание слишком затянулось. Предложенное Иваном Ширко решение этой проблемы мне не понравилось - он предлагает, по сути, просто […]

  41. C.ONE пишет:

    После смены движка на WordPress 2.7 сайт не индексируется.
    В Яндекс.Вебмастер в индексе только: http://****.ru/ без заголовка и описания.

    В ошибках растет число ошибок при индексации страниц:

    HTTP-статус: Ресурс перемещён навсегда (301)) - 11

    / 28.01.2009 17.02.2009
    /articles/a4 17.02.2009 17.02.2009
    /articles/a5 17.02.2009 17.02.2009
    /articles/a6 17.02.2009 17.02.2009
    /articles/a7 17.02.2009 17.02.2009
    /pic/g8 17.02.2009 17.02.2009
    /pic/g9 17.02.2009 17.02.2009
    /service/corporation 17.02.2009 17.02.2009
    /service/love 17.02.2009 17.02.2009
    /service/reportage 17.02.2009 17.02.2009
    /service/wedding 17.02.2009 17.02.2009

    В инете нашел материал по похожим проблемам, на данный момент стоит редирект 301 в .htaccess

    DirectoryIndex index.php index.html

    RewriteEngine On
    Options +FollowSymlinks
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^www.****.ru$ [NC]
    RewriteRule ^(.*)$ http://****.ru/$1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    в robots.txt :

    User-agent: *
    Disallow: /wp-includes
    Disallow: /wp-admin
    Disallow: /wp-content/plugins
    Disallow: /wp-content/cache
    Disallow: /wp-content/themes
    Disallow: /wp-login.php
    Host: ****.ru

    так же wp-includes/canonical.php закоменчены строчки:
    // wp_redirect($redirect_url, 301);
    // exit();

    так же похожая проблема наблюдается там где в WordPress 2.7 не вносилось никаких изменений.

    Огромная просьба помочь в решение проблемы!!!

  42. Wordpress отдаёт все страницы с 301-м кодом | CetLot пишет:

    […] в инете, я нашел статью, которая явственно указывает на то, что это косяк […]

  43. Апокалипсис пишет:

    Тоже была подобная трабла. Вылечил этим же. Странно то, что WP одинаковый был на 10 сайтах, а 301 отдавал тока на 1. Я не разбирался.

  44. alexspb пишет:

    Иван, а у вас штаксес сейчас реально как в примере? Просто почему-то не вижу переадресации с www на версию без www

    http://www.delphiblog.ru/2008/wordpress-301/

  45. Иван Ширко пишет:

    to alexspb

    это после переноса сайта забыл поменять htaccess, теперь вернул старый, спасибо

  46. sise пишет:

    яша вообще последнее время жадный стал

  47. BadBoy пишет:

    Большое спасибо автору за полезную статью ;)

  48. Виктория пишет:

    Умоляю, подскажите новичку, как узнать ответ сервера при обращении к сайту? У меня такая же проблема с перенаправлением и Яндексом-редиской:)

  49. Анатолий пишет:

    При таких действиях перестает работать WPSuperCache, и все свои настройки ЧПУ

  50. Maksimilyanich пишет:

    У меня к вам вопрос. На одном моем блоге в яндексе всего 1 страница, а в google 40. С чем это может быть связано? Бана нет, я проверял

  51. Игорь пишет:

    Я полный чайник в этом((( Иван, подскажи, как закоментировать строчку…
    Заранее спасибо!

  52. ММ пишет:

    у меня на сайте не получилось исправить ошибку с помощью remove_action(’template_redirect’, ‘redirect_canonical’);

    чем неприятным грозит простое отключение редиректа в вордпрессе по первоначальному рецепту?

  53. Наталья пишет:

    Боже мой, как я замучалась с этой ошибкой, уже всё что могла перечитала и перепробовала, никакого толка. А вот Вы мне так помогли! Всего одна строчка и счастье улыбнулось - 200 OK. Нет слов! Просто низкий поклон! Спасибо!

  54. Roman-Masta пишет:

    То что надо!
    От себя хочу еще добавить, что проверить редирект можно по этому адресу http://www.internetofficer.com/seo-tool/redirect-check/

  55. Angie пишет:

    Большое спасибо за статью! Очень помогли разобраться.

  56. Dan пишет:

    Все пишут как выключить редирект.
    А вот как его включить? Много раз встречал блоги, которые от рождения этого не делают.

  57. Арс пишет:

    Спасибо! Вы меня просто спасли! Чертов WP Super Cache постоянно менял .htaccess после чего сайт через www становился недоступен. Удалил эту заразу через админку на хостинге, так как он и удаляться не хотел добровольно!

  58. Двуглазый Юм пишет:

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

    На pr-cy “взглянул” глазами робота, и выяснил, что у меня ВСЕ страницы - 403 Forbidden.

    Вот зе фак, простите мой французский? Не то, чтобы я был силен в ПХП, поэтому весь код сайта не пересмотрю (точнее толку не будет), но вроде бы я кардинальных изменений не вносил…

    Помогите советом!
    З.Ы. Сайт индексируется гуглом на ура - ?

  59. Алекс пишет:

    Огромное спасибо. Тоже недавно столкнулся с данной проблемой вордпресс. Спасибо за полезную информацию

  60. символ пишет:

    Тож долго мучался, вордпресс старый, помогла вставка
    remove_action(’template_redirect’, ‘redirect_canonical’);
    именно в файл canonical а не functions!!!

  61. Двуглазый Юм пишет:

    А мне все это не помогло - prcy до сих пор мучает меня 403 ответом, хотя сайт работает и гуглом отлично распознается.

    Обязательно ждать следующего апдейта ТИЦ, или я мог еще что-то забыть?

    remove_action прописал, роботс.тхт поправил (проверка яндексом этого файла показала, что все в порядке) - и все-таки не попадает сайт в поиск

  62. Boris пишет:

    Подскажите пожалуйсто, что значит такой код?

    RewriteCond %{HTTP_REFERER} !^http://site.ru/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://site.ru$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.site.ru/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.site.ru$ [NC]

  63. арт пишет:

    СПАСИБ АВТОРУ И C.ONE

    КОМЕНТИРОВАТЬ НАДО 2 СТРОЧКИ!

    так же wp-includes/canonical.php закоменчены строчки:
    // wp_redirect($redirect_url, 301);
    // exit();

  64. Вопрошалка пишет:

    не знаю сможете помочь или нет, но вот:

    делаю 301 редирект таким образом:

    Redirect 301 /stat/page.htm http://www.sait.ru/question/page.htm

    все хорошо, но конечная ссылка на которую производится переход после редиректа выглядить как http://www.sait.ru/question/page.htm?url=stat/page.htm

    как избавится от этого вопроса и ненужного окончания?

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

  65. выплаты ммм 2011 пишет:

    с утра блог отдавал 500 ошибку

  66. samsim пишет:

    Такое лечиться только постепенным отслежыванием ощыбки. Делать что то на угад дело очень неблагодарное так как можно и ничего ненайти.

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.