Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Справочник

.htaccess для SEO: 12 правил, которые стоит настроить на сайте

Файл .htaccess решает половину технических задач сайта на Apache: от склейки зеркал до кеширования. Собрали правила, которые пригодятся почти всем, с пояснением, что делает каждое.

Где лежит и как работает

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

Перед любыми правками сделайте копию файла. Синтаксическая ошибка в .htaccess приводит не к игнорированию строки, а к ошибке 500 на всём сайте.

1–3. Один основной адрес сайта

Первое, что нужно настроить, — чтобы сайт был доступен по одному адресу, а не по четырём.

RewriteEngine On

# 1. Только https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# 2. Без www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# 3. Убрать index.php из адреса
RewriteCond %{THE_REQUEST} /index\.php[\s?] [NC]
RewriteRule ^(.*)index\.php$ /$1 [R=301,L]

Порядок именно такой: сначала протокол, потом домен, потом путь. При обратной последовательности адрес без https и с www пройдёт через два перенаправления подряд.

4. Единый формат слэша

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]

Условие с !-f обязательно: без него сервер начнёт добавлять слэш к именам файлов, и на сайте пропадут изображения и стили. Выбор формата разобран в статье про слэш в конце URL.

5. Точечные перенаправления

# Одна страница
Redirect 301 /old-page.html /catalog/sadovye-kacheli/

# Раздел целиком с сохранением хвоста
RewriteRule ^katalog/(.*)$ /catalog/$1 [R=301,L]

Такие правила располагаются после общих: сначала сайт приводится к каноническому виду, потом обрабатываются частные случаи. Подробности — в инструкции по 301-редиректу.

6. Страница ошибки

ErrorDocument 404 /404.html

Обязательное условие: сама страница должна отдавать код 404, а не 200. Проверить это можно любым сервисом анализа заголовков ответа.

7–8. Безопасность и служебные файлы

# 7. Запретить просмотр содержимого папок
Options -Indexes

# 8. Закрыть доступ к служебным файлам

  Require all denied

Открытый листинг папок показывает посетителю всё содержимое каталога, включая резервные копии и выгрузки. Директива отключает это поведение.

9. Сжатие


  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
  AddOutputFilterByType DEFLATE application/javascript application/json
  AddOutputFilterByType DEFLATE image/svg+xml

Сжатие уменьшает объём передаваемых текстовых файлов в несколько раз и напрямую влияет на скорость загрузки. Изображения в формате jpg и png сжимать повторно не нужно.

10. Кеш браузера


  ExpiresActive On
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType text/css "access plus 30 days"
  ExpiresByType application/javascript "access plus 30 days"
  ExpiresByType image/jpeg "access plus 60 days"
  ExpiresByType image/svg+xml "access plus 60 days"

Html-страницы кешировать нельзя: посетитель будет видеть устаревшее содержимое. Стили, скрипты и картинки — можно и нужно.

11. Заголовки безопасности


  Header set X-Content-Type-Options "nosniff"
  Header set Referrer-Policy "strict-origin-when-cross-origin"
  Header set X-Frame-Options "SAMEORIGIN"

Три строки закрывают базовые вопросы: запрет угадывания типа файла, контроль передачи адреса-источника и защита от встраивания сайта в чужой фрейм.

12. Кодировка по умолчанию

AddDefaultCharset UTF-8

Строка избавляет от «кракозябр» на страницах, где кодировка не указана явно.

Проверка после правок. Откройте сайт сразу после сохранения файла. Ошибка 500 означает синтаксическую проблему: верните копию и вносите правила по одному, проверяя после каждого.

Итоговый порядок правил

  1. Включение движка переписывания и кодировка.
  2. Переход на https.
  3. Склейка www.
  4. Удаление index.php.
  5. Формат слэша.
  6. Точечные редиректы.
  7. Страница ошибки, сжатие, кеш, заголовки.

После настройки проверьте, что ни один адрес не проходит через два перенаправления подряд: цепочки замедляют обход сайта и размывают сигналы страниц.

Как проверять правила

После каждой правки нужен способ убедиться, что правило сработало и не сломало соседние. Минимальный набор проверок:

Что открытьОжидание
Главная по http301 на https
Главная с www301 на версию без www
Внутренняя страница200
Та же страница в другом формате слэша301
Картинка из папки загрузок200, без редиректов
Несуществующий адрес404 и своя страница ошибки

Пятая строка — самая важная: неаккуратное правило слэша ломает отдачу файлов, и сайт остаётся без картинок и стилей.

Чего в .htaccess делать не стоит

  • Держать сотни точечных редиректов. Файл читается при каждом запросе, и длинный список замедляет сайт. Переносите массовые перенаправления на уровень приложения.
  • Закрывать разделы от индексации. Для этого есть robots.txt и метатеги, а не правила сервера.
  • Экспериментировать на рабочем сайте. Ошибка даёт не предупреждение, а полную недоступность.
  • Копировать чужие сборки целиком. В интернете гуляют файлы на двести строк, половина которых относится к другой версии Apache.

Правило простое: каждая строка в файле должна быть понятна тому, кто её добавил, и решать конкретную задачу этого сайта.

Частые вопросы

Почему после правки .htaccess сайт отдаёт ошибку 500?

Это синтаксическая ошибка в файле. Верните резервную копию и добавляйте правила по одному, проверяя сайт после каждого изменения.

Работает ли .htaccess на nginx?

Нет, это файл конфигурации Apache. На nginx те же задачи решаются директивами в конфигурации сервера, которые обычно правит администратор хостинга.

В каком порядке размещать правила?

Сначала общие: протокол, домен, индексный файл, слэш. Потом точечные редиректы. Иначе адреса будут проходить через цепочки перенаправлений.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также