Зачем убирать служебные слова
Предлоги, союзы и частицы связывают слова во фразе грамматически, но сами по себе не участвуют в поисковом запросе как самостоятельное понятие. Их удаление сокращает адрес без потери смысла.
Полностью: osveshhenie-dlya-doma-i-ofisa
Без стоп-слов: osveshhenie-doma-ofisa
Экономия на каждой фразе небольшая, но на длинных адресах и при массовой генерации каталога складывается в заметную разницу — подробнее о пределах длины в статье про длину URL.
Предлоги
| Категория | Слова |
|---|---|
| Односложные | в, во, с, со, к, ко, о, об, у, за, из, на, над, по, под, при, от, для, до, про |
| Составные и производные | из-за, из-под, вокруг, около, вместо, кроме, среди, между, через, ради, согласно |
Союзы
| Категория | Слова |
|---|---|
| Соединительные | и, а, но, да, или, либо, тоже, также |
| Подчинительные | что, чтобы, если, когда, пока, хотя, так как, потому что, поскольку |
Частицы и местоимения-связки
| Категория | Слова |
|---|---|
| Частицы | же, ли, бы, уже, ведь, вот, лишь, только, даже, именно |
| Указательные и вводные | это, этот, эта, эти, такой, таков |
Английские служебные слова
На сайтах со смешанным русско-английским текстом — например, в названиях брендов и коллекций — встречаются и латинские служебные слова, которые тоже можно убирать из адреса.
| Категория | Слова |
|---|---|
| Артикли и предлоги | a, an, the, at, by, for, in, of, on, or, to |
| Союзы | and, but, or |
Как этот список используется в генераторе. Переключатель «Убрать служебные слова» в генераторе на этом сайте работает по такому же принципу: слово вычёркивается из фразы до транслитерации, если оно целиком совпадает с одним из значений списка, без частичных совпадений внутри других слов.
Когда служебное слово лучше оставить
Список работает как общее правило, но есть три ситуации, где удаление служебного слова портит смысл или совпадение с запросом.
- Слово — часть устойчивого названия. «А-ля карт», «то есть» как понятие, названия вроде «Такси у дома» — здесь служебное слово часть идентификатора, а не связка.
- Частотный запрос содержит предлог явно. Иногда предлог действительно входит в устойчивую поисковую фразу, например «доставка на дом» — здесь стоит проверить частотность варианта с предлогом и без.
- Удаление предлога меняет смысл фразы. «Стол для кухни» и «стол кухни» — разные по звучанию словосочетания, хотя оба остаются понятными; в спорных случаях безопаснее свериться с реальными запросами, а не полагаться только на список.
Как применять список на практике
- Проверяйте совпадение целого слова, а не подстроки — иначе «конина» лишится «она», а «до» может случайно вырезать часть другого слова.
- Применяйте список до транслитерации, а не после — так удаляется целое русское слово, а не искажённый латинский фрагмент.
- Не расширяйте список без необходимости: избыточное удаление слов может убрать значимые частицы вроде «не» в редких случаях, где отрицание важно для смысла.
Чек-лист
- Использовать список для массовой генерации адресов каталога.
- Сверять совпадение по целому слову, а не по части слова.
- Не удалять служебное слово, если оно часть устойчивого названия или частотного запроса.
- Применять очистку от служебных слов до транслитерации фразы.
Как реализовать список в коде
Практическая реализация — простое множество строк, проверяемое по каждому слову фразы до транслитерации, аналогично тому, как это устроено в функции транслита из статьи про PHP, JavaScript и Python.
const STOP_WORDS = new Set([
'а','бы','без','в','во','да','для','до','же','за',
'и','из','или','к','ко','ли','на','над','но','о',
'об','от','по','под','при','про','с','со','то','у',
'уже','что','чтобы','это'
]);
function removeStopWords(text) {
return text.split(' ')
.filter(word => !STOP_WORDS.has(word.toLowerCase()))
.join(' ');
}
Ключевой момент — сравнение идёт по массиву слов, разделённых пробелом, а не по подстроке внутри фразы: это исключает случайное удаление части другого слова, где встречается такая же последовательность букв.
Диалектные и региональные служебные слова
В отдельных регионах и профессиональных сферах используются свои устойчивые служебные конструкции — например, канцелярские обороты «в связи с», «в целях», «в соответствии с». Их стоит добавлять в список отдельно от базового набора, если сайт работает с официальными или юридическими текстами, где такие конструкции встречаются часто.
Частые вопросы
Безопасно ли убирать все предлоги из адреса без исключений?
В большинстве случаев да, но стоит проверять частотные запросы: иногда предлог входит в устойчивую поисковую фразу, и его удаление слегка снижает совпадение с запросом.
Нужно ли убирать союз «и» из адреса?
Обычно да — он не несёт самостоятельного смысла и только удлиняет адрес. Исключение — если название состоит из двух равнозначных понятий, которые важно показать через союз, например в подборке товаров.
Как проверить совпадение слова целиком, а не части слова?
В коде это делается сравнением по границам слова, а не поиском подстроки — иначе предлог «до» может случайно вырезать часть другого слова, где эти буквы встречаются подряд.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.