Настройка вида URL постов в WordPress. Url wordpress
Оптимизация URL на сайте Wordpress | Как сделать сайт WordPress
Вступление
Оптимизация URL на сайте WordPress нужна для того, чтобы адреса сайта не состояли из набора НЕ читаемых знаков и цифр, а был читаемым и четко указывал на содержание статьи. Настройка URL на сайте WordPress называется оптимизацией URL и является обязательным элементом общей SEO оптимизацией сайта. В этой статье я расскажу, как привести URL адреса сайта в читабельный вид, как для человека, так и для поисковых машин.
Содержание статьи:
- Структура URL-адресов;
- Создание своих шаблонов для ссылок в WordPress;
- Настройки постоянных ссылок на сайте WordPress;
- Обновление файла [.htaccess] после изменения структуры URL;
- Шаблон категорий и тегов WordPress;
- Плагины перевода URL Cyr-to-Lat, WP Translitera.
Но вначале немного об URL.
Структура URL-адресов
Аббревиатура URL (Uniform Resource Locator) это не более чем интернет адрес, какой либо информации размещенной в сети WWW (World Wide Web). Общая структура любого URL адреса показывает поисковым машинам, КАК, ГДЕ И ЧТО или КОГО искать в сети.
КАК искать адрес URL
http, WAIS, file, telnet , gopher,ftp всё это протоколы доступа или метод поиска в сети. Синтаксис любого протокола поиска (://). Например: (http://) или (file://)
ГДЕ искать адрес URL
Это имя вашего домена на доменном узле хостинга, входящего в систему DNS. Синтаксис общеизвестен: (www.vashdomain.net) или (vashdomain.net)
ЧТО искать по адресу URL
Полный URL это прямой путь к информации, иначе это прямой путь к файлу с информацией на сервере вашего хостинга. Для любой страницы на сайте полный URL имеет следующую структуру:
httр(s)://vashdomain.net/patch/имя_статьи
Переменные значения в любом URL адресе это (patch/имя_статьи), где patch это путь от корневого каталога сайта до статьи по созданной вами структуре сайта, из категорий (рубрик) и подрубрик. Все это и есть полный адрес любой статьи на вашем сайте WP. Если точнее, это преобразованный адрес статей сайта для отображения в адресной строке браузера. Именно по этому адресу, поисковики будут искать вашу статью, размещенную на сайте.
URL адреса WordPress
URL адреса на WordPress называют постоянные ссылки (permalink). По умолчанию, то есть после установки, WordPress преобразовывает URL любой статьи в смесь цифр и знаков, которые визуально человеку не о чем не говорят. Кроме этого такие шифрованные URL не только непонятны человеку, но и для поисковиков они не связывают статью, ни со структурой сайта, ни с ключевыми словами, ни с темой сайта.
Оптимизация URL на сайте WordPress
Оптимизация URL на сайте WordPress это изменение URL адреса статьи для понимания их человеком и лучшей индексации поисковыми машинами. Понятные для человека URL адреса носят название SEF URL или ЧПУ (человекопонятные урлы), а оптимизация носит название SEF («search engine friendly») или ЧПУ оптимизация.
Оптимизация URL на сайте WordPress может проходить двумя принципиально разными способами.
- Первый способ это оптимизация внутренними инструментами WordPress;
- Второй способ это оптимизация сторонними плагинами, носящими название SEO плагины.
Оптимизация URL на сайте WordPress это хоть и небольшая, но очень важная часть общего SEO сайта (SEO -процесс улучшения рейтинга сайта в результатах поиска в Интернете).Оптимизация URL на сайте WordPress принципиально отличается для новых (пустых) сайтов и для сайтов наполненных статьями, которые уже проиндексированы поисковиками.
В этой статье рассмотрим, как можно настроить вид URL статей в «удобный» для поисковиков и человека вид, на чистых (пустых) сайтах. Под чистым сайтом понимаем сайт без статей сразу после установки WordPress.
Создание своих шаблонов для постоянных ссылок WordPress
Все URL адреса в WordPress называются ссылками (permalink). Внешний вид адресов называют шаблоном ссылок. С помощью внутренних инструментов оптимизации, шаблон можно задать для всех статей и архивов сайта одновременно.
Настройка внешнего вида URL находится по пути: Консоль →Параметры → Постоянные ссылки.
Открыв пункт «Постоянные ссылки» видим окно, которое нам нужно. Это окно — «Настройки постоянных ссылок» (скрин чуть ниже).
Оптимизация URL на сайте WordPress настройками постоянных ссылок
По умолчанию WordPress отображает ссылки на статьи, страницы и архивы сайта в виде набора цифр и знаков. Выглядит это приблизительно так:
В настройках «Постоянные ссылки» это первый вид шаблона URL, который так и называется «По умолчанию» (1).
Следующие четыре пункта в списке (2-5), позволяют настроить все URL сайта по четырем определенным шаблонам.
Интересен последний пункт настроек «Произвольно» (6).
В этом пункте можно самостоятельно сформировать шаблон URL адресов. Для этого WordPress предлагает серию тегов. Каждый тег будет отображать в URL определенную принадлежность и расположение статьи на сайте.
Ниже приведу список тегов для шаблона URL wordpress
- %year%Год сообщения,четыре цифры,
- %monthnum% Месяц года,
- %day% День месяца,
- %hour% Час дня,
- %minute% Минута часа,
- %second% Секунда
- %post_id% Уникальный ID # поста,
- %postname% Облагороженная версия названия статьи (название статьи в поле Edit Post)
- %category% Облагороженная версия названия категории. Вложенные подкатегории отображаются в виде вложенных каталогов в URI.
- %author% Облагороженное имя автора
Примечание: На сегодня (02-02-2018) авторы упростили формирование произвольных URL и добавили в настройки кнопки для формирования шаблона URL. Просто жмёте на кнопку и она появляется в поле произвольно URL.
Располагать теги можно произвольным образом. Как построите шаблон ссылки, так она и будет отображаться. Если в пункт «Произвольно» ввести все теги из списка, то URL будет выглядеть так:
Но для оптимизации сайта WordPress нужно желательно сформировать шаблон URL в виде, повторяющим структуру вашего сайта. Например: www.vashdomain.net/рубрика/название статьи, в шаблоне постоянных ссылок с тегами это выглядит так:
[httр(s)://www.vashdomain.net/%category%/%postname%]Для сайтов с большим количеством похожего материала, можно добавить в шаблон URL тег с индивидуальным номером (ID) статей (тег %post_id%).
Важно! Заканчиваться шаблон URL должен тегом %post_id% или %postname%.
Если статья публикуется в категории с родительскими категориями, то в URL будет отражаться последняя категория. Это правило может не работать, если вы используете на сайте SEO плагины и в URL могут показываться все родительские категории статьи. В SEO плагинах шаблоны URL настраиваются по своему.
Важное примечание: При настройке вида постоянной ссылки нужно учесть следующее:
- Если в ссылку добавить дату выхода статьи (%year%/%monthnum%/%day% ), то вы не сможете перевыпустить статью через некоторое время. Например, статья через год или пару лет устареет, но тема будет востребована. Если отредактировать статью и обновить дату выпуска, то сменится URL статьи и она выпадет из индекса.
- Многие веб мастера, советуют делать шаблон постоянных ссылок, как %category%/%postname%. Такой шаблон ссылок дает хорошее представление о структуре сайта, но вы не сможете переносить статью из раздела в раздел, чтобы она не выпадала из индекса.
- И еще одно. Как бы вы НЕ меняли статью и её заголовок, единственное, что у неё не изменится это ID статьи (её уникальный номер). ID статьи виден в открытом редакторе в адресной строке браузера ( post=ххх) или на странице списка записей, если навести мышь на ссылку «Изменить», смотрим внизу страницы.
Шаблон категорий и тегов по умолчанию
По умолчанию шаблоны URL категорий и тегов выделяются префиксами category и tag. Выглядят это так:
- example.net/category/category_name
- example.net/tag/tag_name
, но их можно изменить в дополнительных настройках «Постоянные ссылки». Если ничего не заполнить, то в URL разделов и тегов будут отражаться префиксы по умолчанию.
Обновление файла .htaccess после изменения структуры URL
Данная настройка убрана из последних версий WordPress.
После каждого обновления структуры URL, движок WordPress в автоматическом режиме должен обновлять файл .htaccess. Для этого права владения на этот файл должен быть 666. Но постоянно такие права CHMOD устанавливать не стоит. Это серьезно ослабит безопасность сайта. Стандартные права на файлы системы должны быть 644.
Если система имеет доступ к файлу .htaccess, то она сама переделает этот файл в соответствии с вашим шаблоном URL. Если системе не хватает прав на изменение файла, то она предложит скопировать новое содержание файла .htaccess, которое появится внизу окна настроек «Постоянные ссылки»
и заменить им старое содержание файла .htaccess. Файл .htaccess находится в корневом каталоге вашего сайта, в папке (publ_html) или (httpdocs).
Если у вас нет файла .htaccess ,то для работы настройки «Постоянные ссылки» его нужно создать. Создайте его в текстовом редакторе Notepad++, под любым именем, например: Ahtaccess.txt, загрузите в корневую папку сайта и переименуйте в файл .htaccess.
Вот содержание файла .htaccess по умолчанию для WP
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^ индекс \ PHP $ -. [L] !-е RewriteCond% {} REQUEST_FILENAME !-D RewriteCond% {} REQUEST_FILENAME RewriteRule. / Index.php [L] </ IfModule> # END WordPressИтог
Если вы настроили всё правильно, то теперь URL сайта будут отражаться по вашему шаблону, НО русскими буквами. В принципе, поисковики читают русские названия статей и категорий в URL. Однако, лучше, чтобы названия в URL отражались в переводе транслит с русского на латиницу.
Решает перевод URL плагин Cyr-to-lat
Плагины Rus ToLat, Cyr-to-Lat устарели и их НЕ нужно ставить на новый сайт. Недавно появилась новая настраиваемая версия плагина от Юрченко Евгения Владимировича, под названием WP Translitera (https://ru.wordpress.org/plugins/wp-translitera/). В нём добавлена настройка, позволяющая перевести уже опубликованные статьи.
Устанавливаете его на сайт одним из удобных способов установки плагинов. Все! Настройки плагин Cyr-to-lat не требует. Укажите только стандарт перевода URL. Если оставить настройки по молчанию плагин начнет работать сразу после установки.
Важно! Плагин Rus-to-lat (Cyr-to-Lat) не будет переводить URL уже написанных статей. Он начинает работать только для статей написанных после его установки.
После написания новых статей URL статей будет выглядеть так:
На этом дефолтная оптимизация URL на сайте WordPress завершена!
Выводы
- Рекомендую в настройках постоянных ссылок установить шаблон «Произвольно» и задать шаблон в удобном для вас виде;
- Рекомендую переводить URL в латиницу используя плагин WP Translitera;
- Обязательно заканчивайте шаблон URL тегом %post_id% или %postname%.
©www.wordpress-abc.ru
Другие статьи раздела: Администрирование WordPress
Статьи связанные по теме:
www.wordpress-abc.ru
Оптимизация url-ов WordPress
Продолжаю курс практической оптимизации блогов и сайтов. Прошлый раз речь шла об оптимизации заголовков. В этой статье речь пойдет об оптимизации ссылок внутри сайта или блога с целью максимального SEO эффекта.По умолчанию в WordPress ссылки на посты имеют вид wp-info.ru/?p=123. Программисты, разрабатывая сайт, обычно, создают страницы, которые отображают данные в зависимости от переданных в строке запроса параметрах. Понятно, что такая форма URL не дает никакой информации о содержимом страницы ни для пользователей, ни для поисковых систем. Поэтому, рекомендуется использовать так называемые ЧПУ - человеко понятные урлы.
Если вы владелец блога на WordPress, то исправить ситуацию очень просто: идем в админ часть и выбираем Параметры->Постоянные ссылки.
Здесь можно задать вид URL для постов, категорий и тегов. Можно выбрать один из предложенных вариантов (мы рекомендуем Вам использовать произвольный вариант типа: /%postname%/). Причем, если в вашем блоге уже много постов, на которые стоят ссылки с других сайтов, то беспокоиться не стоит, т.к. старые ссылки (вида ?p=123) будут работать по-прежнему и с них будет происходить редирект на новые URL, благодаря чему не возникнет дублирования контента, а ссылочный вес перейдет на новые URL.
Здесь же можно задать и вид URL для категорий и тегов. Категории по умолчанию уже имеют хороший вид (/category/название категории/), теги также имеют хороший вид (/tag/название тега/)
А что же именно будет использоваться в качестве названия постов, категорий и тегов для URL? Для этого служит поле slug (короткая ссылка). Посты и категории содержат это поле сразу, а для тегов его можно редактировать, установив плагин Simple Tags, который, также, позволяет делать много других вещей с тегами. Впрочем, как раз для тегов я однозначно рекомендую использовать в качестве slug само название тега (делать для этого специально ничего не надо).
А вот для slug постов и категорий есть три варианта (в случае русскоязычного блога):
* Использовать русское название поста или категории. Если вы оптимизируете название поста для поисковых систем, то этот вариант наилучший с точки зрения SEO. Именно такой принцип названия страниц используется в Википедии. Как вариант, вы можете в поле slug немного изменить название поста, добавив пару дополнительных ключевых слов, которые неуместны в названии. Недостаток этого варианта в том, что русские буквы в адресной строке браузера кодируются и URL принимает нечитабельный и длинный вид.Однако, если навести мышь на такой URL, расположенный на странице, то в статус баре вы увидите нормальный русский текст. Но указывать ссылки на такие страницы без анкоров будет неудобно.* Транслитерировать русское название. В этом случае URL будет читабельным для пользователей, но поисковые системы могут его не понять. Считается, что Яндекс с Гуглом понимают транслитерацию, но существует несколько стандартов и в некоторых из них используются символы, недопустимые в URL. Кроме того, транслитерированный текст не воспринимается с первого взгляда (человеку приходится вчитываться, чтобы понять смысл).Для автоматической транслитерации названий постов можно ипользовать плагин RusToLat.* Перевести русское название на английский язык. Этот вариант с точки зрения SEO мало чем отличается от предыдущего. Поисковики умеют переводить ключевые слова из URL, но не стоит рассчитывать на 100% результат. А для пользователей этот вариант лучше предыдущего только, если они знают английский язык.
Какой же вариант выбрать? Если у вас настоящий блог, вы пишите интересные статьи, на которые ссылаются другие блоггеры, то выберите второй или третий вариант, т.к. это облегчит проставление ссылок на ваши посты. Если аудитория блога технически подготовленная (как у этого блога), то я предпочитаю вариант с английским slug, который и использую в этом блоге (в основном). Для более широкой аудитории я предпочту транслитерацию. Если же у вас партнерский сайт или MFA блог, то лучше выбрать первый вариант, т.к. он даст больший SEO эффект.По материалам сайта: developerguru.net
www.wp-info.ru
длина, указание категории, слэш в конце URL
Сегодняшний пост посвящен размышлению о том, какими должны быть URL ("урлы") постов и категорий сайта или блога на движке WordPress. Рассмотрим следующие вопросы:
- Надо ли использовать ЧПУ (человеко-понятные урлы)?
- Можно ли использовать кириллические URL?
- Нужно ли удалять название категорий из URL?
- Следует ли дописывать .html в конце урла поста?
- Какие ярлыки должны быть у категорий (рубрик)?
- Надо ли укорачивать URL?
- Как изменить структура сайта?
ЧПУ
В Интернете можно найти множество сайтов, которые себя неплохо чувствуют, хотя и не используют человеко-понятные урлы (ЧПУ). Применительно к WordPress, ссылка может иметь следующий вид https://mukhutdinov.com/?p=1700 (подобную ссылку можно получить, нажав в редакторе на кнопку "Получить короткую ссылку"). Плюс короткой ссылку кроется в её названии - она короткая и без проблем может быть опубликована в сообщении на любой сайте, например в Twitter (ограничение на длину сообщения в Twitter составляет 140 символов). Минусом является то, что по тексту ссылки не понятно, на какой именно документ она ведет. При использовании ЧПУ, ссылка выглядит более информативно https://mukhutdinov.com/skolko-mozhet-zarabotat-novichok-na-svoem-sajte.html - ясно, что она ведет на статью посвященную заработку на сайте.
Всякий раз, когда у веб-мастера возникают сомнения, необходимо заглядывать в справочную систему Яндекса для веб-мастеров. Во многих случаях, можно найти пусть не исчерпывающий, но вполне адекватный ответ. Процитирую информацию из справки Яндекса "Структура сайта".
"Желательно, чтобы вид URL давал представление о том, что содержится на соответствующей странице. Использование транслитерации в адресах страниц также позволит роботу понять, о чем может быть страница. Например, один только URL http://download.yandex.ru/company/experience/Baitin_Korrekciya%20gramotnosti.pdf дает поисковому роботу множество информации о документе: его можно скачать; формат, скорее всего, PDF; документ, вероятно, релевантен запросу «коррекция грамотности» и так далее."
Дополнительно можно пройтись по топовым сайтам в различных тематиках и убедиться, что подавляющее большинство из них, используют ЧПУ. Также напомним, что ключевые слова из URL подсвечиваются в сниппетах, что способствует увеличению кликабельности в органической выдаче.
Ключевые слова из запроса, содержащиеся в URL, подсвечиваются в сниппетеВывод: ЧПУ надо использовать, так как это полезно для пользователей, а что хорошо для пользователей, то хорошо и для поисковиков.
Кириллица в URL
Поклонники сайта WikiPedia, наверняка заметили, что в URL используется кириллица. Ничего криминального в этом нет, однако от использования кириллицы больше минусов, чем плюсов. Нюансы я рассматривал ранее в статье Плюсы и минусы доменов РФ. Регистрация доменов РФ, поэтому не буду повторяться.
На данный момент, не вижу необходимости использования кириллицы в URL даже при использовании доменов в зоне рф.
Нужно ли прописывать категорию в URL?
Первоначально, разберем плюсы и минусы в том случае, если названия категорий (рубрик) исключены из урла.
Плюсы
- Без названия категории URL становится короче;
- Нет необходимости заранее заботиться о структуре сайта, так как без проблем можно переносить посты из одной рубрики в другую, полностью удалять категории или переименовывать их.
Минусы
- По урлу не понятно, к какой категории относится документ. С одной стороны, подавляющему числу рядовых интернет-обывателей абсолютно безразлично, как выглядит и из чего состоит URL конкретно взятого документа. Более того, пользователи браузера Яндекс.Браузер, по умолчанию, в адресной строке видят не URL, а TITLE документа. С другой стороны, существуют правила хорошего стиля, которые подразумевают наличие названий категорий (подкатегорий, под подкатегорий и т.д.) в URL. Также нельзя забывать о продвинутых пользователях, которые, при поиске информации на сайте, иногда обрезают часть URL до слешей, таким образом перемещаясь вверх по структуре.
- Согласно данным Яндекс.Вебмастер, при отсутствии в URL названий категорий, робот Яндекса не в состоянии правильно определить структуру сайта. В качестве примера, давайте посмотрим, как видит структуру моего блога (в урлах нет категорий) робот Яндекса.
Теперь посмотрим на структуру сайта, в урлах которого присутствуют названия категорий.
Робот правильно определил категории и количество постов, размещенных в каждой из нихЧтобы несколько прояснить ситуацию, я решил задать пару вопросов службе поддержки Яндекса, при этом помятую о том, что Платон Щукин парень немногословный. В тексте переписки изменен URL сайта, скажу только, что речь идет о сайте строительной тематики.
1) Структура сайта site.ru, с точки зрения робота Яндекса, не содержит категорий, хотя категории есть и во многих из них более 10 публикаций. Я сделал вывод, что это связано с тем, что в URL документов не отображаются категории. Правильный ли вывод я сделал?
Да.
2) Насколько важна, с точки зрения робота Яндекса, разница между URL http://site.ru/dog.html и http://site.ru/animals/dog.html ?
Никакой разницы нет.
3) Если второй вариант правильный, то имеет ли смысл менять структуру URL, учитывая, что проиндексировано более 100 документов?
Нет, смысла менять структуру нет.
Итак, представитель службы поддержки утверждает, что ничего криминального нет, однако робот не видит структуры сайта, что явно является следствием отклонения из-за неправильной структуры урлов. Если посмотреть на URL поисковиков Яндекс и Google, то в них, естественно, содержатся названия категорий и подкатегорий. То же самое можно наблюдать и на других топовых сайтах.
Цитата из справки Яндекса:
"Поддерживайте четкую ссылочную структуру на сайте. Каждый документ должен относиться к своему разделу."
Если в урле содержится название категорий и подкатегорий, то по URL можно определить, к какому разделу относится документ.
Вывод: наличие названий категорий в URL является плюсом, так как во многих случаях, упрощает жизнь не только простых смертных, но и поисковых роботов. В качестве примера, можно использовать информационный сайт kremlin.ru (сайт Президента России) - согласно заявлению разработчиков в апреля 2015 года, сайт был доработан и может служить хорошим примером для подражания.
Наличие .html в конце URL
Я не могу достоверно сказать, кто и когда додумался в конце динамической страницы, создаваемой WordPress, дописывать .html, однако идея прижилась. Для многих веб-мастеров, в том числе и для меня, наличие в конце урла .html является знаком того, что это пост (запись), а например, не категория или страница WordPress. На мой взгляд, подобное окончание урлов постов WordPress, снимает необходимость думать о том, должен ли присутствовать слэш в конце URL или нет. Соответственно, нет необходимости размышлять о 301-редиректе с URL без слэша на URL со слэшем и наоборот. С другой стороны, я бы сильно удивился, если бы увидел подобный подход на Яндексе или Google.
На сайте kremlin.ru , в конце URL слэша нет - это касается как постов, так категорий и подкатегорий. При добавлении слэша, идет 301 редирект на страницу без слеша.На сайте CNN.com, по умолчанию (основной URL) слеша в конце URL нет, но если его добавить, то страница доступна и по адресу со слешем: http://edition.cnn.com/videos и http://edition.cnn.com/videos/. Основной URL указывается при помощи атрибута rel="canonical".
На сайте www.artlebedev.ru (студия Артемия Лебедева), кроме главной страницы, все URL заканчиваются слешем.
Итак, возможные варианты настройки ЧПУ для WordPress (в URL прописывается категория):
- /%category%/%postname%.html - в конце урла .html
- /%category%/%postname%/ - в конце урла слэш
- /%category%/%postname% - в конце урла не будет слэша (URL будет выглядеть так, как на большинстве топовых сайтов).
Вывод: если вам ласкает глаз наличие в конце URL .html, то используете данный подход. Если вы делаете продвинутый сайт, то, возможно, от данного подхода следуют отказаться.
Ярлыки рубрик WordPress
В меню, названия рубрик могут быть написаны на кириллице, но ярлыки должны быть на латинице. При наличии плагина Rus-To-Lat, процесс транслитерации происходит автоматически. Однако во многих случаях, есть смысл укорачивать ярлыки, тем самым обеспечив меньшую длину URL (если категории прописываются в урле). Также, иногда, следует использовать английские слова, а не транслит. Возможные варианты:
- Продвижение сайтов - "seo", а не "prodvizhenie-sajtov";
- Программное обеспечение - "soft", а не "programmnoe-obespechenie";
- Статьи - "articles", а не "stati";
- Книги - "books", а не "knigi".
Укорачивание урлов
Как было замечено выше, некоторые сайты, вводят ограничения на длину сообщений. К примеру, максимальная длина сообщения в Twitter, составляет 140 символов. При слишком длинном URL, опубликовать ссылку не удастся. Более того, длинные урлы редко кому радуют глаз, поэтому имеет смысл их оптимизировать, т.е. укорачивать. При этом не следует забывать, что URL должен остаться информативным.
Длину URL можно сократить как за счет ярлыка категории, так и за счет части, формирующейся на основе заголовка страницы (как правило, это заголовок уровня h2).
Изменение структуры сайта
Изменять структуру сайта можно лишь в том случае, если на это есть веские основания. Как правило, при изменение структуры, настраивают 301-редирект со старых URL на новые. Казалось бы, никаких последствий быть не должно, но это не так. Опираясь на свой скромный опыт, могу сказать, что большое количество 301-редиректов, может привести к существенному проседанию посещаемости сайта. Для того, чтобы позиции и посещаемость полностью восстановились, может потребоваться от 2 до 6 месяцев.
При изменение структуры сайта, воспользуйтесь справкой Яндекса:
Если на сайте требуется изменить структуру URL страниц, и при этом контент остается прежним или меняется незначительно (между новыми и старыми страницами можно установить однозначное соответствие), рекомендуется настроить серверный редирект со старых URL страниц на новые.
Выводы
- ЧПУ - удобны для пользователей и их следует использовать;
- Кириллицу в URL лучше не использовать, так как от неё больше вреда, чем пользы;
- Желательно, чтобы URL содержал названия категорий и подкатегорий;
- Если есть желание, то можно дописывать .html в конце URL постов;
- Ярлыки рубрик, в идеале, должны быть короткими, но ёмкими, т.е. раскрывать содержание рубрики;
- Длину урлов следует укорачивать до разумных пределов;
- Не меняйте структуру сайта без особых на то причин.
mukhutdinov.com
Меняем URL конкретных страниц сайта через functions.php в WP
Блог / WordPress / Как изменить URL конкретных страниц / записей / рубрик / меток / таксономий через functions.phpЕсли вы читаете эту статью, то наверняка хотя бы раз слышали про WP_Rewrite. Этот класс позволяет работать с постоянными ссылками в WordPress, изменять их вид и структуру. WP_Rewrite задает правила перезаписи, которые будут действовать по всему блогу.
Сейчас же я покажу вам очень простой но действенный метод ручной замены URL конкретных страниц сайта на WordPress. Состоит он всего из трёх шагов: редиректа старых страниц на новые, изменения запроса к базе, перезаписи ссылок.
Шаг 1. Редиректы через хук template_redirect
Этот шаг нужен для того, чтобы страница не была доступна по двум URL одновременно, поэтому мы ставим 301й редирект со всех старых URL на новые (желающие могут реализовать это также через .htaccess).
В примерах я по умолчанию использую префикс для рубрик — category и для меток — tag, у вас они могут отличаться.
Весь код, который вы увидите в этой статье — в functions.php.
function true_301_redirect() { /* в массиве указываем все старые=>новые ссылки */ $rules = array( array('old'=>'/category/без_рубрики/','new'=>'/category/Без_рубрики/'), // рубрика array('old'=>'/контакты/','new'=>'/Контакты/'), // страница array('old'=>'/привет-мир/','new'=>'/хеллоу-мир/'), // запись array('old'=>'/tag/метка/','new'=>'/tag/Метка/') // метка ); foreach( $rules as $rule ) : // если URL совпадает с одним из указанных в массиве, то редиректим if( urldecode($_SERVER['REQUEST_URI']) == $rule['old'] ) : wp_redirect( site_url( $rule['new'] ), 301 ); exit(); endif; endforeach; } add_action('template_redirect', 'true_301_redirect'); |
Вы могли заметить, что в большинстве ссылок я просто добавил заглавные буквы — это сделано для наглядности и такая замена тоже считается перезаписью ссылки.
Ссылки на описания функций, использованных в примерах, вы найдёте в конце статьи.
Шаг 2. Изменение параметров запроса через хук request
Окей, редиректы проставили и, если вы уже начали пробовать то, что получилось, то у вас наверняка повылазили ошибки 404. Сейчас нам нужно добиться того, чтобы новые URL WordPress воспринимал как старые.
function true_request( $query ){ $url_zapros = urldecode($_SERVER['REQUEST_URI']); /* для рубрик */ if( $url_zapros == '/category/Без_рубрики/' ) $query['category_name'] = 'без_рубрики'; /* для страниц */ if( $url_zapros == '/Контакты/' ){ $query['pagename'] = urlencode('контакты'); unset($query['name']); } /* для записей */ if( $url_zapros == '/хеллоу-мир/' ) $query['name'] = 'привет-мир'; /* для меток */ if( $url_zapros == '/tag/Метка/' ) $query['tag'] = 'метка'; return $query; } add_filter( 'request', 'true_request', 9999, 1 ); |
Шаг 3. И конечно же сама перезапись ссылок
Хуки для записей и страниц будут отличаться от хуков для рубрик и меток.
Для записей / страниц
function true_posts_links( $url, $post ){ if( !is_object( $post ) ) $post = get_post( $post_id ); $replace = $post->post_name; /* замены для записей и страниц, к сожалению тут только по ID замену можно сделать */ if( $post->ID == 1 ) $replace = 'хеллоу-мир'; if( $post->ID == 12 ) $replace = 'Контакты'; $url = str_replace($post->post_name, $replace, $url ); return $url; } add_filter( 'post_link', 'true_posts_links', 'edit_files', 2 ); add_filter( 'page_link', 'true_posts_links', 'edit_files', 2 ); add_filter( 'post_type_link', 'true_posts_links', 'edit_files', 2 ); |
Обязательно ли делать проверку именно по ID записи? Да, если в URL присутствует кириллица. Если вы не знаете, где найти ID, спрашивайте в комментах, всё расскажу и покажу.
Перезапись ссылок для рубрик / меток
function true_term_links( $url, $term, $taxonomy ){ $replace = $term->slug; /* замены для рубрик/меток, опять-таки нужно указать ID и желаемый ярлык */ if( $term->term_id == 5 ) $replace = 'Без_рубрики'; if( $term->term_id == 55 ) $replace = 'Метка'; $url = str_replace($term->slug, $replace, $url ); return $url; } add_filter( 'term_link', 'true_term_links', 10, 3 ); |
Альтернатива всему этому в виде плагина Custom Permalinks
Если вы не хотите мудохаться через functions.php, то рекомендую плагин Custom Permalinks. Мне он показался очень удобным — прямо в админке можно указать свои произвольные урлы.
Например при создании рубрик:
Смотрите также
misha.blog
Remove Category URL | WordPress.org
This plugin will completely remove the ‘/category/’ from your permalinks ( e.g. mydomain.com/category/my-category/ to mydomain.com/my-category/ ).
No configuration is required
Особенности
- Better and logical permalinks like mydomain.com/my-category/ and mydomain.com/my-category/my-post/.
- Simple plugin — No configuration is required.
- No need to modify wordpress files.
- Doesn’t require other plugins to work.
- Compatible with sitemap plugins.
- Compatible with WPML.
- Works with multiple sub-categories.
- Works with WordPress Multisite.
- Redirects old category permalinks to the new ones (301 redirect, good for SEO).
Heads up:
Read the FAQ before use.
Want to help? Use the support
- No Category URL
- Upload remove-category-url.zip to the /wp-content/plugins/ directory.
- Активируйте плагин на странице «Плагины» в панели управления WordPress.
- That’s it! You sould now be able to access your categories via http://mydomain.com/my-category/
- Upload remove-category-url.zip to the /wp-content/plugins/ directory.
- Активируйте плагин на странице «Плагины» в панели управления WordPress.
- That’s it! You sould now be able to access your categories via http://mydomain.com/my-category/
Use this plugin if you want to get rid of WordPress’ «Category base» completely. The normal behaviour of WordPress is to add ‘/category’ to your category permalinks if you leave «/category» blank in the Permalink settings. So your category links look like mydomain.com/category/my-category/. With this plugin your category links will look like mydomain.com/my-category/ (or mydomain.com/my-category/sub-category/ in case of sub categories).
Will it break any other plugins?As far as I can tell, no. I have been using this on several blogs for a while and it doesn’t break anything.
Won’t this conflict with pages?Simply don’t have a page and category with the same slug. Even if they do have the same slug it won’t break anything, just the category will get priority (Say if a category and page are both ‘xyz’ then mydomain.com/xyz/ will give you the category). This can have an useful side-effect. Suppose you have a category ‘news’, you can add a page ‘news’ which will show up in the page navigation but will show the ‘news’ category.
The plugin has been uninstalled, but the slug /category/ did not reappear why?A particular installation does not allow the rewrite feature in disabling the plugin. Try after disabling the plugin, save permanent links again.
ru.wordpress.org
Настройка вида URL постов в WordPress
Более года назад я уже писал про оптимизацию URL. За это время мое понимание этого вопроса улучшилось и я хочу снова коснуться этой темы, на этот раз только в контексте Вордпресса. К тому же, я еще расскажу про полезные плагины, улучшающие возможности Вордпресса в этом вопросе.
По умолчанию, сразу после установки WordPress, создаваемые посты имеют URL вида:http://myblog.ru/?p=post_idгде post_id — это уникальный идентификатор поста в базе данных.
Естественно, что ссылки такого вида ничего не говорят о содержимом страницы ни пользователям, ни для поисковым системам. Сравните, например, такие урлы:
mygames.ru/?p=182
mygames.ru/igra-super-korowa
Очевидно, что второй URL более информативен. Учитывая, что ПС научились в выдаче подсвечивать слова из запроса, присутствующие в URL, то это еще более увеличивает его CTR. Кроме того, сами ПС учитывают ключевые слова в URL при ранжировании.
Вот один из результатов поиска в Гугле по запросу [супер корова], часть урла выделена жирным (помечено желтым фоном мной):
Итак, надеюсь, я вас убедил в том, что лучше использовать на своем блоге или сайте “красивые” ссылки, называемые, также, ЧПУ — Человеко Понятные Урлы или пермалинки (от английского permalinks — permanent links — постоянные ссылки). Давайте теперь посмотрим, как это сделать.
Настройка ЧПУ в Вордпрессе
Когда я впервые осваивал Вордпресс, то после установки сразу пошел искать плагин для ЧПУ. Но все оказалось гораздо проще — эта возможность есть в самом Вордпрессе. Выбираем в админке Settings –> Permalinks и переходим на страницу настройки ЧПУ:
Кроме варианта по умолчанию предлагается еще три предопределенных вида ссылок:
- день и название — URL состоит из года, месяца, дня и названия поста
- месяц и название — аналогично предыдущему, но не используется число месяца
- числовой — id поста передается не параметром, а содержится в ссылке, этот вариант принципиально не отличается от варианта по умолчанию
Но есть еще последняя опция, Custom Structure, которая позволяет задать произвольный вид ссылок. Например, в представленном на картинке варианте URL будет состоять из названия категории и поста.
В качестве названия поста (%postname%) используется не заголовок (title), который может содержать недопустимые в URL символы, а параметр, называемый permalink (называемый иногда slug), который создается автоматически из заголовка, но может и редактироваться вручную.
На картинке вы видите русский permalink, при этом русские буквы заменены на их коды (про особенности работы с русскими буквами далее).
С точки зрения оптимизации и логичности структуры ссылок вариант “название_категории/название_поста” мне нравится больше всего. Во-первых, сразу понятно, к чему относится данная страница. Например:
- games.ru/arkadnye-igry/super-korova/
- games.ru/logicheskie-igry/10-talismanov/
- games.ru/flash-igry/10-talismanov/
Во-вторых, убрав правую часть урла (название поста) можно сразу попасть на соответствующую категорию.
Если пост принадлежит нескольким категориям, то для формирования URL будет использована категория с наименьшим id (но это можно изменить с помощью плагина, о котором я расскажу дальше). Кроме того, пост будет доступен по любому URL вида site.ru/что_угодно/название_поста (но с точки зрения SEO и дублированного контента следует всегда использовать один и тот же URL для ссылки на пост).
Одним из недостатков такой структуры URL является то, что при переносе поста из одной категории в другую (или при добавлении в категорию с меньшим id) изменится URL, формируемый Вордпрессом (но, как я уже писал выше, пост останется доступен и по старому URL), что приведет к дублированию контента и может понизить ранжирование страницы в ПС.
Другим недостатком является предупреждение в документации Вордпресс по пермалинкам о том, что “starting Permalinks with %category% is strongly not recommended for performance reasons” (использовать постоянные ссылки, начинающиеся с %category% не рекомендуется из-за проблем с быстродействием). Впрочем, я поэкспериментировал с различными видами пермалинков и существенных отличий в производительности не заметил.
URL вида “год/месяц/название_поста” является, также, неплохим вариантом. Мне, как пользователю, очень удобно, когда сразу в результатах поиска видно, когда пост был написан, т.к. если я ищу свежую информацию, то мне не интересны старые статьи. Именно по этой причине мне, как блоггеру, этот вариант сейчас не нравится. Ведь пользователь может все равно найти нужную информацию на моем сайте, подписаться на RSS или заинтересоваться рекламой :-).
Кроме того, такой вид URL нежелателен, если вы любите “поднять” старый пост, изменив дату его создания на текущую. Такой подход удобно использовать, например, в игровых партнерках — когда долго нет новых игр, можно “достать” прошлогодний хит.
Для обычного блога я рекомендую использовать один из этих вариантов. Но для других применений (партнерские сайты и т.п.) другой вид ЧПУ может оказаться удобнее. Подробнее о пермалинках в Вордпрессе читайте документацию (на английском).
Русский язык и ЧПУ
Вордпресс без проблем работает с русским языком. Это касается и пермалинков — вы можете использовать русский язык почти так же, как и английский. Единственная проблема заключается в следующем. Длина поля базы данных для хранения permalink составляет 200 однобайтовых (латинских) символов. В случае с английскими символами длина permalink ограничивается именно этими 200 символами. Но в случае других языков (не латиницы) происходит преобразование в кодовую последовательность, в которой каждой русской букве соответствует 6 символов (например, русская буква “а” будет заменена на “%D0%B0”), т.е. вместо 200 символов длина русского permalink составляет всего около 33, остальные символы будут обрезаны.
Если этого количества символов вам достаточно, то можно спокойно использовать русские пермалинки. Последние версии всех браузеров отображают в адресной строке соответствующие русские буквы (хотя на самом деле там будут их коды с процентами), что очень удобно для пользователей. В поисковой выдаче, тоже, отображаются русские буквы, что может повысить кликабельность.
Если же этой длины пермалинка вам недостаточно, то можно использовать транслитерацию или английский вариант названия. Для транслитерации удобно использовать плагин RusToLat, который автоматически преобразует русское название поста в транслитерированный эквивалент.
ПС понимают транслитерацию и улучшают ранжирование страницы, URL которой содержит ключевые слова.
Плагины, упрощающие работу с ЧПУ
Плагин sCategory Permalink позволяет при создании/редактировании поста выбрать категорию, которая будет использоваться для формирования ЧПУ.
Это позволяет избежать проблем, связанных с переносом поста между категориями и выбрать главную категорию для отображения в URL поста.
Второй плагин, Advanced Permalinks, имеет более широкие возможности. В частности, он позволяет:
- Безболезненно перейти от одного вида ЧПУ к другому. При этом старые постоянные ссылки для старых постов будут формироваться как и раньше, а для новых уже по новым правилам. Впрочем, с помощью этого плагина можно изменить структуру и для всех постов, включив 301-й редирект для старых ЧПУ.
- Создавать разные виды ЧПУ в зависимости от категории.
- Использовать ЧПУ категорий без базовой части (между именем домена и названием категории).
developerguru.net