Делаем красивые ссылки или хороший ЧПУ в WordPress для SEO (31.03.2009)

Автор: Admin | Рубрика: Плагины · Статьи

Сегодня, дорогие читатели, я расскажу Вам, как можно легко и просто сделать красивые постоянные ссылки (Permalinks) для страниц, категорий и новостей у Вашего WordPress блога. Чтобы все внутренние ссылки были хорошо читаемы и воспринимаемы поисковиками, т.е. ЧПУ для СЕО (как говорят в простонародье).

Началось все с того, что я подвязался сделать сайт сослуживцу, залил чистый WordPress 2.7.1 русскую версию на хостинг и начал настраивать. Добравшись до пункта “Постоянные ссылки” и указав по ссылки для постов вида /%postname%.html я подумал, а как же категории и страницы, ведь их тоже нада привести к соответствующему виду аля название.html. Пользуясь поисковиками, официальным сайтом WordPress и различными форумами я смог добиться такого результата:

Ссылка на новость - http://yourwp.ru/other/hello-world.html (/%category%/%postname%.html)
Ссылка на категорию - http://yourwp.ru/other.html (/%category%.html)
Ссылка на страницу - http://yourwp.ru/about.html (/%page%.html)


Как же этого добиться ? В этом нам помогут три плагина :

Rus-to-Lat - плагин, который переводит Вашу ссылку с русского языка в транслит, например : новость.html в novost.html. Данный плагин ставить обязательно.

.html Wordpress permalink on PAGES plugin - который добавляет в урл страницы “.html”

Advanced Permalinks - несет в себе огромный функционал, с помощью которого можно сделать миграцию со старой схемы “постоянных ссылок” на новую не потеряв при этом в выдаче поисковиками.

Для того, чтобы у Вас получилась такая же схема постоянных ссылок, как и у меня, описанная выше, вам надо:

1) Активируем оба плагина, я думаю, что скачать и залить в wp-content Вы сможете и без моих пояснений.
2) Заходим в Параметры->Постоянные  ссылки, сверху появились вкладки (Defaults | Advanced | Posts | Migration | Debug), на вкладке “Defaults” в поле “Произвольно” пишем /%category%/%postname%.html .
3) Там же, переходим на вкладку  “Advanced” и в поле “Category pages:” пишем /%category%.html , так же по желанию можно в поле “Author pages:” написать /author/%author%.html .
4) Сохраняемся, тестируем полученный результат и радуемся.

Вот так, в пару кликов, Вы сможете сделать приятные ЧПУ на своем WordPress блоге.

P.S. Если Вы пользуетесь другим методом, не ленитесь, расскажите о нем в комментариях.

Забобрить эту страницу!

Последние темы:
- Темный шаблон для Wordpress в стиле техно
- Spectrum - шикарная тема для Wordpress на русском языке
- Ultima - Минималистичная и симпатичная тема для Wordpress
- Новая простая Wordpress тема Notepad
- Новая Wordpress тема - Argentpress

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

  • Денис Климонтов // Апр 1, 2009 at 13:09 пп

    У меня вопрос вот какого плана. Сейчас мой блог имет ссылки вида /?p=123. Категории на русском. Названия статей тоже на русском. Я пытаюсь по данной схеме сделать все как написано, в итоге получаю 404 ошибку по любой статье, и адреса в браузере тоже оказываются на русском. Как быть?
  • Admin // Апр 1, 2009 at 13:27 пп

    Извините, забыл упомянуть плагин Rus-to-Lat, новость обновил, скачать плагин можно тут : http://mywordpress.ru/plugins/rustolat/
  • Денис Климонтов // Апр 1, 2009 at 13:36 пп

    Спасибо что так быстро среагировали. Но по-моему у них там какие-то проблемы на странице. Я был бы очень признателен если вы вышлите мне этот плагин на почту.
  • Алекс // Апр 1, 2009 at 15:39 пп

    Я бы еще добавил ко всему плагин <a href="http://www.wordpressplugins.ru/seo/page_htm.html" target="_blank">Page_Htm</a> от Ю.Б,
    что даст возможность сделать хвост не .html а .php
    плюс еще использовать плагин seo category
  • Admin // Апр 1, 2009 at 15:59 пп

    Не вижу смысла прописывать на конце php, считаю что html более красиво.
  • Виталий // Апр 2, 2009 at 10:38 дп

    У меня вопрос вот какого плана. Сейчас мой блог имет ссылки вида /?p=123. Категории на русском. Названия статей тоже на русском. Я пытаюсь по данной схеме сделать все как написано, в итоге получаю 404 ошибку по любой статье, и адреса в браузере тоже оказываются на русском. Как быть? Аналогичная ситуация...Rus-to-Lat тоже активировал...может есть еше решение? Вот Сайт http://modulus2.ru/
  • Admin // Апр 2, 2009 at 10:46 дп

    Решение есть, не очень хорошее, но всё же ...
    Вместо /%category%/%postname%.html пишем /%category%/%post_id%.html
    И соответственно меняем ссылки категорий на латинские, делается в настройках категорий.
  • Макс Пименов // Апр 3, 2009 at 17:03 пп

    &lt;&lt;Извините, забыл упомянуть плагин Rus-to-Lat
    Спасибо за плагин,как раз тоже очень был нужен.
  • websupport // Апр 7, 2009 at 15:30 пп

    Все конечно здорово, но как заставить Advanced Permalinks работать с Paginator?
  • Admin // Апр 7, 2009 at 15:36 пп

    А что с ним не так ?
    Пример в студию ...
  • websupport // Апр 7, 2009 at 15:40 пп

    Не знаю как на пальцах объяснить, вот ссылка http://ikariam.wt8.ru/blog/all/ если попробовать открыть вторую страницу то вылетает пустая страница с ошибкой вместо записей второй страницы, что делать помогите пожалуйста, заранее спасибо!
  • Admin // Апр 7, 2009 at 16:12 пп

    Не надо поднимать панику, это проблема не с пагинатором, а с wp темой "overeasy".
    Просто тема написана через одно место ;)
    Для тестов можете посмотреть у меня http://yourwp.ru
    Нажав на кнопку "Older Entries".
  • websupport // Апр 7, 2009 at 16:16 пп

    Не открывается ссылка, но вообще можно исправить как-то, чтобы на overeasy работало все?
  • Admin // Апр 7, 2009 at 16:27 пп

    По личному опыту скажу, лучше попроще тему взять, а карусель (слайдшоу картинок) потом вставить можно куда хочешь ...
  • Дмитрий // Апр 15, 2009 at 10:29 дп

    Всё сделал как написано, выдаёт ошибку в браузере, в в окне настройки ЧПУ есть надпись: Вы должны сейчас обновить файл .htaccess.
    Може в этом дело?
  • Admin // Апр 15, 2009 at 10:38 дп

    Естественно, лучше на время переделки ЧПУ дать на файл .htaccess права 666, после вернуть обратно.
  • Дмитрий // Апр 16, 2009 at 14:19 пп

    Искал на других сайтах по этой же тематике, и нашёл вот что
    "Итак если после всех этих манипуляций постоянные ссылки у вас так и не заработали и wordpress постоянно выдает ошибку 404
    То рекомендую вам проверить в настройках apache проверить директивы вашего сайта



    Options Indexes FollowSymLinks Includes MultiViews

    AllowOverride All

    Order allow,deny

    Allow from all



    Должен быть включен параметр AllowOverride All"
    Не подскажете как туда добраться чтобы посмотреть.
  • Admin // Апр 16, 2009 at 14:29 пп

    Пиши номер своей аськи через форму обратной связи, помогу.
  • Костя // Апр 23, 2009 at 19:57 пп

    Скажите, а есть ли большая разница, будет ссылка выглядеть site.com/name-post/ или site.com/name-post.html ?
    Меня интересует в первую очередь как к этому относятся поисковики, тоесть для поисковой оптимизации как лучше сделать? Или разницы никакой?
  • Admin // Апр 23, 2009 at 21:12 пп

    Я думаю, что разницы особой нет, это моё личное мнение, точно сказать не могу.
  • Константин // мая 3, 2009 at 1:32 дп

    А у меня вообще не было файла .htaccess
    Я новый в корне создал, написал туда что просили, но безтолку...в итоге я получаю адреса такого вида:
    http://chuikoff.ru/web/моя-старая-статья.html
    Или страницы
    http://chuikoff.ru/услуги.html
    Что делать? всё делал по инструкции...
  • Admin // мая 3, 2009 at 10:20 дп

    А ты плагин Rus-to-Lat поставил ?
  • Константин // мая 5, 2009 at 4:49 дп

    &gt;&gt; А ты плагин Rus-to-Lat поставил ?
    Конечно...всё по схеме делаю...даже пробовал стандарты менять менять с ISO на ГОСТ и обратно...
  • Константин // мая 5, 2009 at 6:01 дп

    А всё...я узнал что RusToLat транслирует только новые посты, а вот старые придётся в ручную...
  • Sylfer // мая 8, 2009 at 12:23 пп

    а можно вместо html написать что-то другое?
  • Admin // мая 8, 2009 at 12:34 пп

    А зачем ? (И хватит спамить)
  • Антон // мая 20, 2009 at 13:34 пп

    "Константин // мая 5, 2009 at 6:01 дп" - спасибо! А то я подумал, что у меня rus to lat не работает, а, оказывается, он старые не перефигачивает. Зараза, блин!
  • loodsman // Июн 27, 2009 at 11:04 дп

    У меня такой вопрос, ссылки в адресной строке пишутся правельно а вот открывается 404 страница в чём проблема?
  • Admin // Июн 27, 2009 at 11:42 дп

    Возможно у Вас нет доступа на запись в файл .htaccess, попробуйте дать на него права 666, потом пересохраните все настройки с пермалинками и поставьте права 644.
  • loodsman // Июн 27, 2009 at 11:58 дп

    У меня нет доступа на запись в файл .htaccess, как можно это исправить?
  • Admin // Июн 28, 2009 at 15:55 пп

    Выставить права на него 666.
  • lospirata // Июл 7, 2009 at 13:16 пп

    Здравствуйте. Скажите, а каким образом можно перейти на красивый вид ЧПУ без потери старых страниц? Advanced Permalinks не работает.
    Имеется ввиду, чтобы посетители при поисковой выдаче заходили по старым страницам и попадали на измененные, а поисковые роботы с успехом индексировали новые страницы и подставляли в выдаче вместо старых.
  • Admin // Июл 7, 2009 at 13:47 пп

    Как раз это и решается с помощью http://urbangiraffe.com/plugins/advanced-permalinks/, когда будут работать и старые и новые ссылки. А со временем и поисковики поменяют адреса проиндексированных страниц.
    И не забываем, что Rus-to-Lat работает только для новых постов, т.е. Вам придется пересохранить все старые.
  • lospirata // Июл 7, 2009 at 13:54 пп

    А если старых постов слишком много (блог существует давно)?
    И еще, может ли быть вызвано название в url страниц русскими буквами и ошибка 404 из-за старых постов, которые работали по старому ЧПУ?
  • Admin // Июл 7, 2009 at 14:06 пп

    Я тебе на почту написал, чтобы не флудить.
    ЧПУ не обязательно указывать название поста, можно просто его id, типа "712.html".
  • Сергей // Июл 15, 2009 at 23:09 пп

    Здравствуйте! Спасибо за статью!
    Вопрос: когда делаю ссылку /%category%/%postname%.html, то некоторые записи имеют ссылку с русским названием и при клике на неё, пишет, что такой записи нет. Если сделать /%category%/%post_id%.html, то ссылки становятся не такими красивыми и имеют числовой вид statia/112.html
    Как это поправить?
  • Admin // Июл 16, 2009 at 8:26 дп

    Rus-To-Lat переделывает в латиницу только новые записи, для переделывания старых - их нужно пересохранить, удалив ссылку.
  • Сергей // Июл 16, 2009 at 10:59 дп

    Admin, спасибо огромное! Помогло! Сейчас ссылки выглядят очень красиво и на латинице.
  • Портал Рекламный Щит // Авг 2, 2009 at 0:49 дп

    Вопрос у меня на сайте нормальные ссылки?
    /%category%/%postname%/ вот что стоит в поле произвольное нужно ли пользоваться вашим советом
  • Admin // Авг 3, 2009 at 17:11 пп

    Это уже на Ваше усмотрение, в принципе не обязательно.
  • Сергей // Авг 22, 2009 at 0:01 дп

    На предыдущем блоге у меня по Вашей рекомендации всё получилось, ещё раз спасибо.
    Сейчас настраиваю другой сайт, но получается только наполовину:
    1. Работает только при /%category%/%post_id%.html. При /%category%/%postname%.html - выдаёт ошибку 404. Но это нормально- главное, что заработало.
    2. Категории создаются как надо, а вот со страницами записей ничего не получается. Так и остаётся вида:"94.html".Что только не делал.
    3. Все плагины установлены, но при редактировании записи, в том месте, где можно редактировать ссылку у меня нет кнопки "редактировать", а вместо неё -"настроить вид ссылок" и при нажатии на неё кидает в настройку ЧПУ.
    Чего-то чуть-чуть не хватает, но я сам не могу разобраться.
    P.S. По началу вообще, что не делал- ошибка 404, так я по совету добавил в хтаксесс строку:" php_flag default_charset windows-1251" и после этого заработало.
  • Димон // Сен 20, 2009 at 15:39 пп

    Спасибо большое!!
  • Постоянные ссылки // Окт 12, 2009 at 18:46 пп

    спасибо за статью, помогло. только один вопрос: можно ли то же самое сделать с ссылками меток? если метка имеет вид - .../tag/plitochnyj-klej - то можно ли сделать так, что бы в конце дописывалось - .html ? Заранее спасибо.
  • Admin // Окт 12, 2009 at 21:30 пп

    Пока ничего сказать не могу, вроде пока не натыкался.
  • Дмитрий // Окт 21, 2009 at 12:35 пп

    Здравствуйте.
    Красивые ссылки работают, но появилась проблема - урл картинок стал www.site.ru/krasivaya-ssylka/wp-content/uploads/images/image320.jpg Т.е. появилось krasivaya-ssylka/ и соответственно картинки не отображаются. Подскажите пожалуйста как решить эту проблему.
    Заранее спасибо.
  • Admin // Окт 21, 2009 at 13:02 пп

    Гы, а это дело в кривых плагинах. Это у Вас картинки постов в теме или в карусельке не отображаются ?
  • Admin // Окт 21, 2009 at 13:02 пп

    Пишите номер аськи в форму обратной связи, помогу.
  • Arbalet // Окт 28, 2009 at 13:01 пп

    А есть ли подобные плагины для настроек тегов? В виде http://reznoe.info/tag/stanki.html
  • Arbalet // Окт 28, 2009 at 13:12 пп

    Дмитрий, у вас скорее всего ссылки на картинки прописаны с относительным адресом "wp-content/uploads/images/image320.jpg". Попробуйте задать абсолютный путь в Настройки/Разное в админке Wordpress. Примерно так http://ваш_сайт.ru/wp-content/uploads/images
  • Елена // Ноя 30, 2009 at 1:42 дп

    А может кто-нибудь мне подсказать, чем плохи ЧПУ на русском? Лично мне нравится, не понимаю, зачем их переводить на латиницу. Вот в Википедии ЧПУ как раз на русском.
    Думаю, что и поисковикам такие ссылки должны понравиться.
  • Евгений // Дек 3, 2009 at 16:19 пп

    У меня была такая проблема:
    -ссылки в адресной строке пишутся правильно, а вот открывалась 404 страница.

    Большое спасибо за совет:

    Admin // Июн 27, 2009 at 11:42 дп
    Возможно у Вас нет доступа на запись в файл .htaccess, попробуйте дать на него права 666, потом пересохраните все настройки с пермалинками и поставьте права 644.

    Поменял права, все заработало.
  • Читер // Дек 7, 2009 at 19:30 пп

    Все бы ничего, только я поздно сообразил, что надо рус-ту-лат ставить и все старые ссылки у меня будут русские (около 1000), в связи с этим вопрос.. никто не знает, как автоматически все старые ссылки сменить? мб плагин какой? :)
  • постраничная навигация // Дек 27, 2009 at 15:04 пп

    Все-таки не понятно, как создавать чпу для ссылок страниц внутри категории? Почему работает так: ^blog/page/([0-9]+)$ /blog/?paged=$1 [L], но не работает так: ^blog/mycategory/page/([0-9]+)$ /blog/?cat=1?paged=$1 [L] ???
  • Admin // Дек 27, 2009 at 22:35 пп

    ^blog/mycategory/page/([0-9]+)$ /blog/?cat=1&paged=$1 - так правильнее.
    И я не понимаю, зачем правила реврайта писать руками, а не использовать встроенный механизм.
  • постраничная навигация // Дек 27, 2009 at 23:31 пп

    Может, проще тем, кто использует вордпресс и не вникает в его тонкости. Они находятся как в банке и зависят от "ляпов" разработчиков. Когда начинаешь прикручивать к блогу множество разных плагинов и нововведений, получаешь массу несовместимостей одних плагинов с другими. Вы еще подключите qTranslate к блогу, потом поймете, что ничем кроме как "ручками" эти бяки не исправить. Встроенный механизм работает, если его поставить на голый WP. Причем замечу, что не у всех этот "механизм" может перезаписывать файл .htaccess. У меня вот он не через какую ж. не перезаписывается. Так что, остается только извращаться и методом тыка исправлять кривые руки программистов WP.

    p.s. кстати, в который раз убеждаюсь в бездарности русских программистов и более того: всяких советчиков, если касается дело, чтобы что-то исправить или помочь. Задорнов оказался не прав: это русские тупые. Решение своей прошлой проблемы я нашел на американском форуме. Там хотя бы люди умееют перед тем, как что-то подсказать, понять, с чем вообще имееют дело.

    еще один p.s. проблема с постраничными категориями - это баг самого WP - доказано.
  • Admin // Дек 28, 2009 at 8:44 дп

    Ваш пост - полный бред. Если у Вас не перезаписался файл htaccess, то в этом виноваты только Вы, т.к. не выставили права на запись этого файла.

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

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

    И самое главное, как о бездарности может говорить человек, который смотрит Задорнова ?
  • MC с блога // Дек 30, 2009 at 22:43 пп

    Спасибо большое!!! Очень удобно стало и очень практично! Вопрос. А sape тогда надо же будет полностью сайт переиндексировать, получается??
  • Admin // Дек 30, 2009 at 23:53 пп

    Да, надо переиндексировать.
  • ice10 // Янв 8, 2010 at 11:37 дп

    автору спасибо, но вот 301 редирект не заработал, да и не сильно я уверен, что PR внутренних страниц перетечет, плагин Advanced Permalinks мне не сильно понравился, если есть какие-то альтернативы, буду признателен, так же при проверке внутряка по sitemap.xml выдает не 301, а 302 редирект + ошибку апача, а это уже не то пальто, тем более что с Яндексом тоже хочется дружить; затея была использовать ЧПУ страниц, что и применю, а посты пусть остаются по-старому.
  • Adrian // Янв 19, 2010 at 23:29 пп

    Автор, огромное тебе спасибо!!! Благодарен тебе! Удачи)))
  • n_a_ // Фев 13, 2010 at 17:27 пп

    Подскажите, есть ли возможность как-то укоротить длинные ссылки? У меня полно длинных ссылок, есть и в 2-2,5 раз длиннее, чем ссылка этой страницы. Название постов укоротить по некоторым причинам не могу. Можно ли каким-то образом оставлять, допустим, несколько десятков символов в чпу?
  • Admin // Фев 13, 2010 at 20:49 пп

    В самом редакторе поста/новости Вы можете сами задать ссылку, или изменить ссылку созданную автоматически.
  • Search Boat // Фев 24, 2010 at 0:52 дп

    Уже не в первый раз нахожу на вашем сайте то, что искал. Спасибо за грамотную помощь!!
  • Владимир // Фев 28, 2010 at 1:52 дп

    тестировал блог на денвере.
    Установил Advanced Permalinks и соответствующие настройки. Получил ссылки вида: http://blog.loc/запись.html
    Решил привести к такому же виду и страницы. Установил плагин .html Wordpress permalink on PAGES и...
    В окне враузера выводится то что надо, т.е. http://blog.loc/категория/запись.html, а на экране "Error 404 - Not Found
    Sorry, the page that you are looking for does not exist".
    Что случилось и как исправить?
    Подумал "...у Вас нет доступа на запись в файл .htaccess, попробуйте дать на него права 666, потом пересохраните все настройки с пермалинками и поставьте права 644"

    В таком случае, как это сделать на денвере(пошагово)?
    Спасибо.

Буду признателен, если Вы оставите
упоминание об этом блоге у себя на сайте.


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