В работе с WordPress часто возникает вопрос – как ограничить или управлять длиной URL (адресов страниц и постов) для улучшения SEO, удобства пользователей и корректной работы сайта. В этой статье разберём, почему важно контролировать длину URL, как определить максимально допустимую длину в WordPress, а также рассмотрим практические способы её ограничения и улучшения структуры ссылок.
Почему важно контролировать длину URL в WordPress
Длина URL влияет на восприятие пользователя и поисковых систем. Слишком длинные адреса могут:
- Вызывать обрезку в результатах поиска, снижая кликабельность
- Создавать неудобства при копировании и передаче ссылок
- Вызывать проблемы с индексацией у некоторых поисковых систем
- Увеличивать вероятность ошибок в ссылках, если они передаются по почте или мессенджерах
Оптимальная длина URL считается до 100 символов. Это не жёсткое правило, но ориентир для удобства и SEO. WordPress по умолчанию не ограничивает длину URL, что позволяет создавать очень длинные адреса, особенно если в слагах используются длинные заголовки.
Как WordPress формирует URL и где возникает длина
URL в WordPress формируется на основе структуры постоянных ссылок (Permalinks). Например, при настройке структуры /blog/%postname%/ адрес будет включать домен + /blog/ + слаг поста.
Слаг (postname) обычно берётся из заголовка записи с приведением к латинице и замены пробелов на дефисы. Если заголовок очень длинный, слаг тоже будет длинным, что увеличит длину всей ссылки.
Длина URL складывается из домена, пути и параметров запроса. Большинство браузеров и серверов поддерживают URL длиной до 2000 символов, но для SEO и удобства рекомендуют держать URL как можно короче.
Ограничение длины слага в WordPress – пример кода
Чтобы ограничить длину слага (post slug), можно использовать фильтр wp_unique_post_slug. Ниже пример функции, которая обрезает слаг до 50 символов:
function wpfind_limit_slug_length( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {
$max_length = 50; // Максимальная длина слага
if ( strlen( $slug ) > $max_length ) {
$slug = substr( $slug, 0, $max_length );
// Удаляем последний дефис, если он есть
$slug = rtrim( $slug, '-' );
}
return $slug;
}
add_filter( 'wp_unique_post_slug', 'wpfind_limit_slug_length', 10, 6 );Эта функция не даст создавать слаги длиннее 50 символов, автоматически обрезая их при сохранении записи. Это простой и эффективный способ управлять длиной URL без вмешательства в структуру сайта.
Дополнительно: очистка слага от нежелательных символов
Перед ограничением длины слаг можно дополнительно очистить, чтобы убрать лишние знаки и сделать URL более SEO-дружелюбным. Например:
function wpfind_sanitize_and_limit_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {
$slug = sanitize_title( $slug ); // Очистка слага стандартной функцией
$max_length = 50;
if ( strlen( $slug ) > $max_length ) {
$slug = substr( $slug, 0, $max_length );
$slug = rtrim( $slug, '-' );
}
return $slug;
}
add_filter( 'wp_unique_post_slug', 'wpfind_sanitize_and_limit_slug', 10, 6 );Плагины для управления URL и слагами в WordPress
Если не хочется писать код, можно использовать готовые плагины, которые помогут контролировать и оптимизировать URL:
- Permalink Manager Lite — позволяет гибко настраивать URL для записей, страниц и таксономий, включая возможность их сокращения.
- Yoast SEO — имеет встроенные инструменты для редактирования слагов и оптимизации структуры URL.
- WP Slug Translate — автоматически переводит слаги на латиницу, что важно для сайтов с русскоязычными заголовками.
Для примера рассмотрим использование Permalink Manager Lite. Он позволяет вручную укорачивать URL и задавать структуру для каждого типа записи.
Как проверить длину URL и найти слишком длинные ссылки на сайте
Для контроля длины URL на большом сайте полезно автоматизировать проверку. Можно использовать SQL-запрос или WP CLI для поиска записей с длинными слагами:
SELECT ID, post_name, LENGTH(post_name) AS slug_length
FROM wp_posts
WHERE LENGTH(post_name) > 50
AND post_type = 'post';Или использовать WP CLI команду:
wp post list --field=post_name --post_type=post --format=csv | awk -F, '{ if(length($1) > 50) print $1 }'Это поможет быстро выявить записи, URL которых стоит укоротить.
Практические рекомендации по формированию URL в WordPress
Чтобы URL были удобными и SEO-оптимальными, придерживайтесь следующих правил:
- Используйте короткие, понятные слаги, отражающие суть страницы.
- Избегайте лишних слов и стоп-слов в слагах.
- Используйте дефисы для разделения слов.
- Регулярно проверяйте и исправляйте слишком длинные или нечитабельные URL.
- При необходимости используйте описанные выше методы для автоматического ограничения длины.
Если вы используете темы из каталога WPSHOP, обратите внимание, что некоторые из них уже оптимизированы для корректной работы с URL и SEO. Также плагины от WPSHOP, например, Clearfy Pro, могут помочь с дополнительной оптимизацией ссылок и очисткой базы данных.