Как правильно указать пермалинк при включении ЧПУ в WordPress Ч.2
В предыдущей статье Как правильно указать пермалинк при включении ЧПУ в WordPress, я рассказал о том, как правильно указать пермалинк в WordPress. Недавно, покопавшись в инете, почитав статьи западных SEO экспертов, и проведя исследование на эту тему, пришел к выводу, как действительно правильно формировать ссылки с помощью ЧПУ. Продолжаю тему первой статьи.
Для того, чтобы понять смысл правильного использования пермалинков в блоге, разберемся вначале с основной структурой и уровнями ссылок блога.
Структура — логика блога:
Уровень ссылок 1:
www.blog.com
www.blog.com/stranica.html
www.blog.com/about.html
www.blog.com/rubrika/
www.blog.com/metki/
www.blog.com/avtor/
Уровень ссылок 2:
www.blog.com/rubrika/statiya.html
www.blog.com/metki/statiya.html
www.blog.com/avtor/statiya.html
www.blog.com/rubrika/podrubrika/
Уровень ссылок 3:
www.blog.com/rubrika/podrubrika/statiya.html
www.blog.com/arhiv/2009/02/
Уровень ссылок 4:
www.blog.com/arhiv/2009/02/01/
www.blog.com/arhiv/2009/02/statiya.html
Уровень ссылок 5:
www.blog.com/arhiv/2009/02/01/statiya.html
В WordPress, по умолчанию, ссылки формируясь динамически, имеют вид, например:
www.blog.com/index.php?param1=1¶m2=2.
Данный вид ссылок, как для пользователей, так и для поисковых серверов не информативен и не эффективен.
Лучше, если ссылка выглядит к примеру так: www.blog.com/rubrika/statiya.html
Таким формированием ссылок в WordPress занимается модуль ЧПУ
Есть 3 основных направления для формирования ссылок:
- Для рекламного бизнеса по рекомендациям серверов
- Для удобства пользования читателями блога
- Для новостных серверов
Разберем каждое направление, в соответствии с рекомендуемыми правилами.
1. Формирование ссылок для рекламного бизнеса по рекомендациям серверов.
Если вы собираетесь зарабатывать по большей части на рекламе в своем блоге, размещая ссылки и рекламу других ресурсов, то вам нужны как можно больше ссылок 1 уровня.
Пример ссылки 1 уровня: www.blog.com/stranica.html
По статистике, чем ближе ссылка находится к домену и менее вложена, реклама на таких страницах стоит дороже.
Так вот, пример из предыдущей статьи, как раз предназначен для тех, кто желает максимально зарабатывать на рекламе в своем блоге. Все ссылки публикаций, при таком подходе, принимают вид 1 уровня.
Настраивается этот способ так: Админ-панель/Настройки/Постоянные ссылки ЧПУ/ В опции Произвольная структура вписать: /%postname%.html.
Минус такого подхода — непонятность вложенности статей для пользователя. Нарушается логика.
2. Формирование ссылок для пользователей вашего блога.
При таком подходе необходимо соблюдать логику уровней и внешний вид ссылок вашего блога.
Статические страницы блога (О блоге, О авторе, Карта блога и т.д.) — страницы первого уровня и должны иметь расширение .html.
К примеру:
www.blog.com/stranica.html — любая страница первого уровня
www.blog.com/about.html — страница о блоге
www.blog.com/metki/ — ссылка метки
www.blog.com/rubrika/ — верхняя рубрика блога
Ссылки на рубрики верхнего уровня имеют тоже 1 уровень
Статьи, по умолчанию, всегда располагаются в рубриках и должны иметь расширение .html. Все что находится в верхних рубриках, имеет уровень 2. Это означает, статьи всегда должны быть не выше уровня 2.
К примеру:
www.blog.com/rubrika/statya.html — статьи 2 уровня вложенные в рубрики
www.blog.com/rubrika/podrubrika/ — подрубрики 2 уровня вложенные в рубрики
www.blog.com/arhiv/2009/ — архив статей 2009г.
Здесь понятно: домен/рубрика/статья.html
Если пользователь удалит в ссылке статья.html, то он попадет в рубрику, содержащую эту статью.
Удобно? Думаю да.
К сожалению, средствами самого WordPress, реализовать данную схему без хаков, нереально.
Как это сделать, я расскажу ниже.
3. Формирование ссылок для новостных серверов.
Если вы собираетесь размещать свои статьи параллельно на новостных серверах.
К примеру, на Google News. У Google News существует требование, каждая из ваших ссылок на новость должна иметь в конце ссылки свой цифровой идентификатор, минимум из 3х цифр.
Реализовать это можно средствами WordPress:
Настраивается этот способ так: Админ-панель/Настройки/Постоянные ссылки ЧПУ/ В опции Произвольная структура вписать:
/%postname%00%id%.html.
Таким образом к концу ссылки мы добавляем цифровой идентификатор статьи.
Зачем подставлять 00? Если у вас статей меньше 100, то идентификатор будет менее 3х цифр. Если больше 100 то нули не помешают, главное чтобы цифр было не менее 3х.
Если вы дочитали до этого места, может показаться, что едет крыша. Не волнуйтесь, теперь переходим к делу.
Какое из направлений выбрать?
Конечно, каждый принимает решение сам. Я выбрал способ 2, т.к. мой блог предназначен, в первую очередь, для читателей.
Структура выглядит таким образом:
Для того чтобы реализовать структуру ссылок в WordPress по схеме 2, необходимо:
- Загрузить и установить плагин Page_Htm — добавляет к ссылкам статичных страниц .html
- Загрузить и установить плагин Seo-Without-Category — удаляет из ссылок рубрик /category
- Загрузить и установить плагин Permalink Redirect — необходим для того чтобы сделать редирект вашим ссылкам уже опубликованных статей на новые ссылки.
Установите и активируйте все 3 плагина.
Плагины Page_Htm и Seo-Without-Category в настройках не нуждаются.
Далее, точно по шагам:
1. Заходим в Админ-панель/Настройки/Постоянные ссылки ЧПУ/ В опции Произвольная структура вписать:
/%category%/%postname%.html.
2. Для тех у кого уже есть опубликованные статьи, страницы, рубрики:
Запускаем редирект ссылок статей с помощью Permalink Redirect:
- Зайдите в Админ-панель/Настройки/Permalink Redirect
- В окне Old Permalink Structures введите свой старый шаблон ссылок ЧПУ
- Нажимаем Update options
Далее, открываем ваш .htaccess в текстовом редакторе и прописываем редиректы для уже имеющихся страниц и рубрик:
Для каждой страницы:
Redirect 301 /вашастраница http://www.вашдомен.com/вашастраница.html |
Для каждой рубрики:
Redirect 301 /category/вашарубрика http://www.вашдомен.com/вашарубрика |
К сожалению, мне так и не удалось заставить с помощью плагинов добавлять слеш в конце ссылки рубрики.
Все теперь структура №2 сформирована и ссылки работают.
Нашел ошибку в тексте? Выдели ее мышкой и нажми

- СТАТЬИ ПО ТЕМЕ
- ЕЩЕ ИЗ РУБРИКИ
- ПОПУЛЯРНЫЕ
Олег, у меня проблема с плагином Page_Htm. Он переменил ссылки, но при переходе на них он выдает ошибку 404. В чем может быть дело?
Версия WP: 2.8.4.
Бывает. Возможно в версии 2.8. что-то поменялось. Возможно какой-то плагин конфликтует с этим. Попробуйте обновить настройки ЧПУ, просто пересохранить.
Тоже мучался с этой проблемой.
Там просто нужно в корне домена создать файл
Это как раз и прописывается в .htaccess если изменить настройки ЧПУ в WordPress. Главное, перед изменением ЧПУ поставьте права на .htaccess в 666, измените настройки ЧПУ, верните права в 644
Спасибо, но Ю.Б., автор плагина, предложин мне альтернативу
Называется Custom Permalink, только там надо вручную вбивать для каждой страницы, но там можно задать какие угодно пермалинки для записей и страниц.
Как альтернатива, да, но не удобно. У меня все работает.
Moringotto, спасибо огромное!!
два дня бился с этими пермалинками пока не увидел твой коммент!
Все сделал как тут писал Олег, но выдавал 404 на пермалинки и все тут! Ставишь по умолчанию — работает, произвольно — ни в какую. Что только не делал, и вордпресс сносил, и чего-то только в файлах не прописывал…Потом взял сдуру и перенес .htaccess из cgi-bin в корень — заработало!! Одуреть, ВП 2.8.6 если что.
Как спрятать рубрики понятно, а вот как вывести подрубрики, когда статьи находятся в подрубриках (подрубрики у меня более информативны, да и с точки зрения ранжирования будет лучше)? Хотелось бы иметь взможность, чтобы URL отображался так: http://www.мой_сайт.ru/подрубрика/название_поста
Правильнее так:
http://www.мой_сайт.ru/рубрика/подрубрика/пост.html
Как это сделать, в двух словах не объяснишь.
Вы очень точно сказали, что правильнее http://www.мой_сайт.ru/рубрика/подрубрика/пост.html. Как я понял из многочисленных ошибок, описанных другими покорителями WP, это самый лучший вариант, который работает наиболее корректно в большинстве ситуаций.
Кстати, сегодня покопался в Нете, и нашел интересную информацию. Вы пишите:
Как оказалось, на самом деле не то что в двух словах, для объяснения как сформировать структуру http://www.мой_сайт.ru/рубрика/подрубрика/пост.html и одного слова достаточно — автоматом. Пишешь в настройках структуру /%category%/%postname%/ и WordPress создает автоматом ссылку вида http://www.мой_сайт.ru/рубрика/подрубрика/пост (что касается окончания .html, то здесь тоже самое). Однако подобный финт ушами у многих не проходит. Я вчера и сегодня полазил по многим сайтам, и все пишут, что при наличии подрубрик реакция WP на /%category%/%postname%/ будет http://www.мой_сайт.ru/рубрика/пост. Т.е. подрубрика не выводится. Все говорят, что типа WP выводит только категорию, и для изменения этого нужны или спец. плагины, или нужно изменить id рубрики в большую сторону. Я вчера на это напоролся. Так все и было, как многие специалисты писали: выводит рубрику и все тут. Но наткнулся на очень простой совет бывалого чайника: при написании статей нужно грамотно их разносить, избегая дублирования. Многие об этом не догадываются.
Если не понятно, поясню:
Есть сайт с рубрикой, например «Овощи». В рубрике 2 подрубрики «Помидоры» и «Огурцы» и 3 статьи — 1-я про редис, 2-я про огурцы и 3-я про помидоры. Что делают начинающие покорители WP? При публикации статьи например про огурцы указывают сразу 2 рубрики — «Овощи» и «Огурцы». Получаем следующую структру статей: в рубрике «Овощи» — 3 статьи; в «Огурцы» — 1; в «Помидоры» — 1. В результате при /%category%/%postname%/ имеем http://www.мой_сайт.ru/рубрика/пост. Рубрика будет одна, отличия лишь в статьях.
А вот если при публикации статей добавляем их строго в свои рубрики, то получаем внешне абсолютно аналогичную иерархию статей на сайте: в рубрике «Овощи» — 3 статьи; в «Огурцы» — 1; в «Помидоры» — 1. Только вот при /%category%/%postname%/ на выходе будут все как надо — http://www.мой_сайт.ru/рубрика/подрубрика/пост (вчера это проверил у себя на сайте).
Я все это написал, поскольку у Вас хорошая статья, и если вы грамотно сформулируете своими словами мою писанину и дополните статью, то для многих «косячников», таких как я откроете глаза на решение весьма полезной проблемы.
Да, еще нашел весьма полезное дополнение — плагин «Remove Parents». Он убирает рубрику, оставляя подрубрику. Только вот не знаю, нужно ли мне теперь это. Как я понял, вариант http://www.мой_сайт.ru/рубрика/подрубрика/пост работает почти всегда корректно со всякими плагинами оптимизации, а вот всякие обрезатели категорий могут преподносить сюрпризы в самый неподходящий момент.
Валерий, вы молодец!
Вы все правильно описали. Как видите, данное описание действительно не укладывается в 2 слова. Главное, что вы поняли как это работает.
От себя добавлю:
Данную структуру необходимо соблюдать еще потому, что при постинге одной статьи сразу в несколько рубрик-подрубрик, автор автоматически создает дублированный контент. Поэтому структура должна быть уникальной, либо рубрики закрывать от индексации.
На самом деле, у меня данная структура и обрезатель /category/ работает очень давно, также я ее использую это в ресурсах своих клиентов. Проблем с таким подходом практически нет. Правда, иногда возникала проблема с постраничной навигацией, которая решается рестартом WordPress.
Кстати, а зачем нужн приписывать окончание .html? Полагаю, кроме дизайна в этом может заключаться и какой-то еще, более глубокий смысл?
.html визуально говорит пользователю что это конечная страница, например статьи, а не рубрика.
Также .html определяет как статическую страницу а не динамическую сформированную скриптом по входящим параметрам.
Олег, что касается пользователей, то это понятно. Мне не понятно для каких целей Вы рекомендуете использовать именно структуру /%category%/%postname%.html? Почему не достаточно только /%category%/%postname%/? Честно говоря, а примерно понимаю как формируются статические и динамические страницы, но совершенно не в курсе на что это может влиять в данном случае, т.е. при формировании какого-то конкретного вида пермалинков. Мне окончание .html не особо нравится, но если это реально нужно и важно, то готов его добавить. Подскажите только зачем? Если просто использую структуру типа /%category%/%postname%/ я что-то теряю и могут возникнуть какие-то проблемы, например с плагинами оптимизации?
Все очень просто, представьте что вы видите ссылку http://www.мой_сайт.ru/рубрика/wordpress/ как вы думаете это ссылка на пост или на подрубрику?
Данная структура, в основном, влияет только на эстетику самой ссылки и ее логичность — структурность.
Нет, кроме визуальности и понятности ссылки вы ничего не теряете. Нормальные плагины правильно понимают практически любую структуру пермалинков.
Олег, какое счастье, что нашла Ваш блог:)) Больше месяца не могла разобраться с навигацией: почему-то переходы на другие страницы выдавали ошибку 404.
И только здесь, наконец, повезло. Спасибо огромное!
Ой:) Рано обрадовалась. Переходы на страницы заработали, зато теперь «карта сайта», «о блоге» и т.д. из верхнего меню опять поют про эту 404-ю
1. Все Ваши ссылки не должны содержать кириллицу
2. При изменении структцры ЧПУ все прошлые ссылки станут не доступны, нужно делать редиректы со старых ссылок на новые
3. Внимательно настраивайте ЧПУ, это важно
А если блог имеет 342 записей

после настройки ЧПУ /%category%/%postname%.html.
Все адреса становятся кириллицей, есть конечно плагин rus_to_lat но он не переделывает старые ссыки, а работает только с новыми, какие есть варианты кроме как самому сидеть и руками перебивать все ссылки
Вариантов масса. Чтобы не перебивать ручками создаётся скрипт который за секунды переводит все в транслит. Но вот старые ссылки при этом станут недоступны.
Для чего? насколько я понял плагин Permalink Redirect прекрасно справляется с эти без дополнительных записей в файл
то есть была у нас ссылка http://moi sait.ru/?p=446 указываем в плагине старый шаблон, настраиваем ЧПУ и все прекрасно работает. уже минут 30 сижу тестирую.
Для чего подключать к этому делу .htaccess?
Ведь плагин Permalink Redirect и создан для того что бы не сидеть руками прописывать редиректы
Не все так просто. Если у вас больше 100 ссылок, обязательно где то вылезет ошибка, проверено. Поэтому не редирекнутые ссылки дополнительно редирекчу в .htaccess. Тоже самое касается если у вас ссылок менее 10. Ставить плагин для такого количества ссылок не целесообразно. И еще, если до этого использовалась такая же схема ЧПУ или схема где свои нюансы вносили плагины то такие ссылки плагин Permalink Redirect не обработает.
В любом случае все решается индивидуально.
Я перепробовал таких плагинов как Permalink Redirect много, но уверен больше в ручном редиректе.
Согласен ручной редирект самый надежный но, когда в блоге 400 записет это может превратится в кошмар.
Сейчас провел эксперемент на своем менее важном сайте. там окло 70 страниц, подключил плагин. ну вообщем все настроил. сменил ссылки с кирилицы на транслит (кстати по этому поводу у меня есть вопрос, который я изложу ниже)
и проверил онлайн сервисом на битые ссылки. результат все 100% станиц редиректятся нормально.
Теперь остался вопрос как отнесутся поисковики к такой измене :))
по поводу транслита. я вот думаю что лучше ? ссылки в транслите? или же переводит название статей на английский язык ?
Для рунета ссылки лучше в транслите