Как правильно указать пермалинк при включении ЧПУ в 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&param2=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, т.к. мой блог предназначен, в первую очередь, для читателей.

Структура выглядит таким образом:

links

Структура ссылок блога

Для того чтобы реализовать структуру ссылок в WordPress по схеме 2, необходимо:

  1. Загрузить и установить плагин Page_Htm — добавляет к ссылкам статичных страниц .html
  2. Загрузить и установить плагин Seo-Without-Category — удаляет из ссылок рубрик /category
  3. Загрузить и установить плагин Permalink Redirect — необходим для того чтобы сделать редирект вашим ссылкам уже опубликованных статей на новые ссылки.

Установите и активируйте все 3 плагина.

Плагины Page_Htm и Seo-Without-Category в настройках не нуждаются.

Далее, точно по шагам:

1. Заходим в Админ-панель/Настройки/Постоянные ссылки ЧПУ/ В опции Произвольная структура вписать:
/%category%/%postname%.html.

2. Для тех у кого уже есть опубликованные статьи, страницы, рубрики:

Запускаем редирект ссылок статей с помощью  Permalink Redirect:

  1. Зайдите в Админ-панель/Настройки/Permalink Redirect
  2. В окне Old Permalink Structures введите свой старый шаблон ссылок ЧПУ
  3. Нажимаем Update options

Далее, открываем ваш .htaccess в текстовом редакторе и прописываем редиректы для уже имеющихся страниц и рубрик:

Для каждой страницы:

Redirect 301 /вашастраница http://www.вашдомен.com/вашастраница.html

Для каждой рубрики:

Redirect 301 /category/вашарубрика http://www.вашдомен.com/вашарубрика

К сожалению, мне так и не удалось заставить с помощью плагинов добавлять слеш в конце ссылки рубрики.

Все теперь структура №2 сформирована и ссылки работают.


Нашел ошибку в тексте? Выдели ее мышкой и нажми Система Orphus
Теги статьи: пермалинк, ссылка, ЧПУ
СЛЕДИТЕ ЗА НОВОСТЯМИ Подписаться на мой Twitter
Автор:Олег МедынскийРубрика: Настройка блога
Разрешается перепечатка статьи с обязательным указанием открытой ссылки на источник.

КОММЕНТАРИИ К СТАТЬЕ

  1. 1.1

    Олег, у меня проблема с плагином Page_Htm. Он переменил ссылки, но при переходе на них он выдает ошибку 404. В чем может быть дело?
    Версия WP: 2.8.4.

    • 1.2

      Бывает. Возможно в версии 2.8. что-то поменялось. Возможно какой-то плагин конфликтует с этим. Попробуйте обновить настройки ЧПУ, просто пересохранить.

  2. 1.3

    Тоже мучался с этой проблемой.
    Там просто нужно в корне домена создать файл

    .htaccess и в него вписать: 
    
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    и все! :)
    
    • 1.4

      Это как раз и прописывается в .htaccess если изменить настройки ЧПУ в WordPress. Главное, перед изменением ЧПУ поставьте права на .htaccess в 666, измените настройки ЧПУ, верните права в 644

  3. 1.5

    Спасибо, но Ю.Б., автор плагина, предложин мне альтернативу :) Называется Custom Permalink, только там надо вручную вбивать для каждой страницы, но там можно задать какие угодно пермалинки для записей и страниц.

    • 1.6

      Как альтернатива, да, но не удобно. У меня все работает.

  4. 1.7

    Moringotto, спасибо огромное!!
    два дня бился с этими пермалинками пока не увидел твой коммент!
    Все сделал как тут писал Олег, но выдавал 404 на пермалинки и все тут! Ставишь по умолчанию — работает, произвольно — ни в какую. Что только не делал, и вордпресс сносил, и чего-то только в файлах не прописывал…Потом взял сдуру и перенес .htaccess из cgi-bin в корень — заработало!! Одуреть, ВП 2.8.6 если что.

  5. 1.8

    Как спрятать рубрики понятно, а вот как вывести подрубрики, когда статьи находятся в подрубриках (подрубрики у меня более информативны, да и с точки зрения ранжирования будет лучше)? Хотелось бы иметь взможность, чтобы URL отображался так: http://www.мой_сайт.ru/подрубрика/название_поста

    • 1.9

      Правильнее так:
      http://www.мой_сайт.ru/рубрика/подрубрика/пост.html
      Как это сделать, в двух словах не объяснишь.

      • 1.10

        Вы очень точно сказали, что правильнее http://www.мой_сайт.ru/рубрика/подрубрика/пост.html. Как я понял из многочисленных ошибок, описанных другими покорителями WP, это самый лучший вариант, который работает наиболее корректно в большинстве ситуаций.

        Кстати, сегодня покопался в Нете, и нашел интересную информацию. Вы пишите:

        Олег МедынскийПравильнее так:http://www.мой_сайт.ru/рубрика/подрубрика/пост.htmlКак это сделать, в двух словах не объяснишь.

        Как оказалось, на самом деле не то что в двух словах, для объяснения как сформировать структуру 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/рубрика/подрубрика/пост работает почти всегда корректно со всякими плагинами оптимизации, а вот всякие обрезатели категорий могут преподносить сюрпризы в самый неподходящий момент.

        • 1.11

          Валерий, вы молодец!
          Вы все правильно описали. Как видите, данное описание действительно не укладывается в 2 слова. Главное, что вы поняли как это работает.

          От себя добавлю:

          Валерийпри публикации статей добавляем их строго в свои рубрики

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

          Валерийа вот всякие обрезатели категорий могут преподносить сюрпризы в самый неподходящий момент.

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

  6. 1.12

    Кстати, а зачем нужн приписывать окончание .html? Полагаю, кроме дизайна в этом может заключаться и какой-то еще, более глубокий смысл?

    • 1.13

      ВалерийКстати, а зачем нужн приписывать окончание .html?

      .html визуально говорит пользователю что это конечная страница, например статьи, а не рубрика.
      Также .html определяет как статическую страницу а не динамическую сформированную скриптом по входящим параметрам.

  7. 1.14

    Олег, что касается пользователей, то это понятно. Мне не понятно для каких целей Вы рекомендуете использовать именно структуру /%category%/%postname%.html? Почему не достаточно только /%category%/%postname%/? Честно говоря, а примерно понимаю как формируются статические и динамические страницы, но совершенно не в курсе на что это может влиять в данном случае, т.е. при формировании какого-то конкретного вида пермалинков. Мне окончание .html не особо нравится, но если это реально нужно и важно, то готов его добавить. Подскажите только зачем? Если просто использую структуру типа /%category%/%postname%/ я что-то теряю и могут возникнуть какие-то проблемы, например с плагинами оптимизации?

    • 1.15

      Валерийдля каких целей Вы рекомендуете использовать именно структуру /%category%/%postname%.html? Почему не достаточно только /%category%/%postname%/?

      Все очень просто, представьте что вы видите ссылку http://www.мой_сайт.ru/рубрика/wordpress/ как вы думаете это ссылка на пост или на подрубрику?

      Валерийно совершенно не в курсе на что это может влиять

      Данная структура, в основном, влияет только на эстетику самой ссылки и ее логичность — структурность.

      Валерийя что-то теряю и могут возникнуть какие-то проблемы, например с плагинами оптимизации?

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

  8. 1.16

    Олег, какое счастье, что нашла Ваш блог:)) Больше месяца не могла разобраться с навигацией: почему-то переходы на другие страницы выдавали ошибку 404.
    И только здесь, наконец, повезло. Спасибо огромное!

  9. 1.17

    Ой:) Рано обрадовалась. Переходы на страницы заработали, зато теперь «карта сайта», «о блоге» и т.д. из верхнего меню опять поют про эту 404-ю :(

    • 1.18

      1. Все Ваши ссылки не должны содержать кириллицу
      2. При изменении структцры ЧПУ все прошлые ссылки станут не доступны, нужно делать редиректы со старых ссылок на новые
      3. Внимательно настраивайте ЧПУ, это важно

  10. 1.19

    А если блог имеет 342 записей :)
    после настройки ЧПУ /%category%/%postname%.html.
    Все адреса становятся кириллицей, есть конечно плагин rus_to_lat но он не переделывает старые ссыки, а работает только с новыми, какие есть варианты кроме как самому сидеть и руками перебивать все ссылки :)

    • 1.20

      Вариантов масса. Чтобы не перебивать ручками создаётся скрипт который за секунды переводит все в транслит. Но вот старые ссылки при этом станут недоступны.

  11. 1.21

    Далее, открываем ваш .htaccess в текстовом редакторе и прописываем редиректы для уже имеющихся страниц и рубрик:

    Для чего? насколько я понял плагин Permalink Redirect прекрасно справляется с эти без дополнительных записей в файл
    то есть была у нас ссылка http://moi sait.ru/?p=446 указываем в плагине старый шаблон, настраиваем ЧПУ и все прекрасно работает. уже минут 30 сижу тестирую.
    Для чего подключать к этому делу .htaccess?
    Ведь плагин Permalink Redirect и создан для того что бы не сидеть руками прописывать редиректы

    • 1.22

      Не все так просто. Если у вас больше 100 ссылок, обязательно где то вылезет ошибка, проверено. Поэтому не редирекнутые ссылки дополнительно редирекчу в .htaccess. Тоже самое касается если у вас ссылок менее 10. Ставить плагин для такого количества ссылок не целесообразно. И еще, если до этого использовалась такая же схема ЧПУ или схема где свои нюансы вносили плагины то такие ссылки плагин Permalink Redirect не обработает.
      В любом случае все решается индивидуально.
      Я перепробовал таких плагинов как Permalink Redirect много, но уверен больше в ручном редиректе.

  12. 1.23

    Согласен ручной редирект самый надежный но, когда в блоге 400 записет это может превратится в кошмар.

  13. 1.24

    Сейчас провел эксперемент на своем менее важном сайте. там окло 70 страниц, подключил плагин. ну вообщем все настроил. сменил ссылки с кирилицы на транслит (кстати по этому поводу у меня есть вопрос, который я изложу ниже)
    и проверил онлайн сервисом на битые ссылки. результат все 100% станиц редиректятся нормально.
    Теперь остался вопрос как отнесутся поисковики к такой измене :))

    по поводу транслита. я вот думаю что лучше ? ссылки в транслите? или же переводит название статей на английский язык ?

    • 1.25

      Для рунета ссылки лучше в транслите

  14.  


Ваши вопросы, замечания, пожелания и предложения, по работе сайта, пишите на E-mail.