.htaccess: полное руководство для SEO

.htaccess: полное руководство для SEO
David Kaufmann
Уроки SEO

В SEO нужно научиться управлять некоторыми директивами, чтобы донести до разработчика то, что мы хотим, и добиться того, чтобы внедрение прошло для проекта успешно.

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

Что такое файл .htaccess?

Файл .htaccess — это сокращение от Hypertext Access. Это файл доступа к гипертексту, который то есть конфигурационный файл каталога на серверах Apache и используется, чтобы собирать основные директивы сервера.

Имя начинается с «.» из-за Unix-систем, где такие файлы считаются скрытыми. Поэтому при переименовании в Windows нужно быть внимательными, чтобы избежать проблем.

Файл создаётся локально, сохраняется в текстовом формате (.txt) — никогда в формате Word — и загружается на сервер по FTP в ту папку, где он должен работать.

Как это работает?

Нужно учитывать поведение этого файла и все его особенности:

  • Поведение этого файла иерархично по дереву каталогов сайта: если файл лежит в корневом каталоге сайта, директивы затронут все папки. Поэтому htaccess не один — при необходимости их может быть по одному на каталог.
  • Каждый раз, когда пользователь заходит на страницу, сервер сканирует эти документы и директивы, которые в них лежат. Поэтому крайне важно, чтобы они были идеально настроены и не содержали ошибок — иначе возможны сбои.
  • Прежде чем что-то менять, убедитесь, что работаете с копией документа .htaccess: если отредактировать его неудачно, потом могут быть проблемы.
  • Комментарии в файле всегда вводятся через решётку «#».

Как оптимизировать файл htaccess под SEO?

Через определённые директивы мы можем указать, о чём хотим попросить сервер, и таким образом оптимизировать разные вещи. Из htaccess мы можем:

Перенаправить поддомен в подпапку

Это очень пригодится, когда нужно убрать поддомен и сделать его частью папки домена. Например: hola.example.com перенаправляется на www.example.com/hola

Редиректы 301 и 302

В файле указываются старые URL вместе с теми, на которые должен вести редирект.

# File redirection
Redirect /old-page.html https://www.new-page.html

Защита паролем

Отдельные разделы сайта можно защитить паролем:

# Simple password protection via .htaccess
AuthType Basic
AuthName "Protected area"
AuthUserFile /<absolute path to password file>/.htpasswd
AuthPGAuthoritative Off
require user User1 User2 User3

Контроль доступа к папкам

Через директивы можно управлять доступом (запретить или разрешить) к определённым папкам для всех пользователей или по конкретному IP:

# File for IP access regulation
Order deny,allow
Deny from .aol.com
Deny from 192.168
Allow from 192.168.220.102

Указать основной домен

С помощью правила редиректа 301 на domain.com или www.domain.com

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.

RewriteCond %{HTTPS}s ^on(s)|off

RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$

RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]

Редиректы на защищённую версию

Редиректы сайта на защищённый протокол:

httpsRewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Сменить страницу по умолчанию

На некоторых сайтах страница по умолчанию называется /index, что не очень дружественно для SEO. Это можно изменить, чтобы она не показывалась.

DirectoryIndex example-page.php

Увеличить лимит памяти PHP

У PHP-приложений есть определённый лимит, потому что скрипты занимают память на сервере. Следующей командой можно увеличить объём:

# PHP Memory Limit
php_value memory_limit 128M

Сменить часовой пояс сервера

Задать правильный часовой пояс можно следующей командой:

#Set the default time zone
SetEnv TZ America / Washington

Кодировка документов

Можно указать тип кодировки для каждого типа документов. Для кодировки UTF-8 нужно ввести такую команду:

# Specify character encoding
AddDefaultCharset utf-8

Принудительное кэширование сайта

Меняя число секунд в частоте кэширования, мы добиваемся того, что при визите пользователя страница грузится быстрее, ведь большинство неизменившихся элементов уже в кэше. В основном это помогает улучшить загрузку изображений.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif A432000
ExpiresByType image/jpg A432000
ExpiresByType image/jpeg A432000
ExpiresByType image/png A432000
ExpiresByType image/ico A432000
ExpiresByType image/bmp A432000
ExpiresByType text/css A432000
ExpiresByType text/javascript A432000
ExpiresByType application/javascript A432000
ExpiresByType application/x-javascript A432000
</ifmodule>

Кастомизировать страницы ошибки 404

Когда возникает эта ошибка, потому что пользователь попал на несуществующую страницу, файл htaccess может показать эти оптимизированные страницы ошибки 404. Часто это одни из самых забытых страниц, а ведь они могут решить, удержим мы пользователя или он уйдёт.

# Custom error message at local location
ErrorDocument 404 /access-path/404.html

Безопасность

Через этот файл можно заблокировать доступ определённым спам-ботам:

RewriteEngine on

RewriteCond %{HTTP_REFERER} buttons-for-website\.com [NC,OR]

RewriteCond %{HTTP_REFERER} darodar\.com [NC,OR]

Хотлинкинг

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

# Prevent hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://your-domain/.*$ [NC] [OR]
RewriteCond %{HTTP_REFERER} !^http://www.your-domain/.*$ [NC] [OR]
RewriteRule .*\.(gif|GIF|jpg|JPG|bmp|BMP|wav|mp3|wmv|avi|mpeg)$ - [F]

Создать человекопонятные URL

Можно убрать из URL параметры по умолчанию и замаскировать их, чтобы они выглядели дружелюбнее и помогали ранжироваться выше в выдаче. Например: https://www.example.com/index.php?parameter=blog выглядит лучше как https://www.example.com/blog

RewriteEngine On

RewriteRule ^shop/([^/]*)/([^/]*)/$ /index.php?category=$1&product=$2 [L]

Сжать файлы для лучшего сёрфинга

Через правило в htaccess можно сжать файлы js, css, html и текстовые файлы сайта, чтобы при загрузке они занимали меньше места. Так мобильным пользователям будет проще тратить меньше трафика при сёрфинге. Вспомним, насколько для SEO важен WPO!

<ifmodule>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript
</ifmodule>

Сжатие Gzip

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

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Запретить индексацию файлов

Бывает, что, несмотря на блокировку отдельных URL или папок в файле robots.txt, Google всё равно их индексирует. Введя следующую команду, мы добьёмся полной блокировки:

<Files ~ «\.pdf$»>

Header set X-Robots-Tag «noindex, follow»

</Files>

Включить Keep-Alive

Включение этого параметра даёт постоянное соединение с сервером вместо установки соединения при каждой загрузке страницы. С keep-alive мы обеспечиваем быструю загрузку сайта.

<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>

Теперь, когда вы увидели все возможности файла htaccess, вы вольны их внедрять. Эти правила действуют, независимо от того, стоит ли у вас WordPress как CMS, собственный код или любая другая система.

Правда, если у вас проект на WordPress, жизнь будет проще: файл htaccess можно править прямо в редакторе. И всё же будьте очень аккуратны, потому что это не очередной плагин и сломать сайт очень легко! Сейчас расскажем как!

Редактирование файла htaccess в WordPress

Если вы пользуетесь WordPress, рекомендуем установить плагин Rank Math, который позволит править файл легко и быстро.

Достаточно зайти в Rank Math > General Settings > Edit .htaccess

Файл Htaccess в WordPress
Файл Htaccess в WordPress

Править файл htaccess из WordPress очень просто, так что не забывайте про аккуратность!

Остались вопросы? Оставьте комментарий, и мы с радостью посмотрим!

Использованные источники:

- CDmon: информация и способы применения файла .htaccess - Computerhoy: что такое .htaccess, для чего он нужен и основные коды - Ionos: десять приёмов настройки .htaccess, которые стоит знать каждому - HelpOne: что такое .htaccess? - Hostinger: что такое файл .htaccess?

Автор: David Kaufmann

David Kaufmann

Последние 10 с лишним лет я полностью одержим SEO — и, честно говоря, не хотел бы иначе.

Моя карьера вышла на новый уровень, когда я работал старшим SEO-специалистом в Chess.com — одном из ста самых посещаемых сайтов интернета. Работа в таком масштабе: миллионы страниц, десятки языков и одна из самых конкурентных выдач — научила меня тому, чему не научит ни один курс и ни один сертификат. Этот опыт изменил моё представление о том, как выглядит по-настоящему сильное SEO, и лёг в основу всего, что я построил потом.

Из него выросло SEO Alive — агентство для брендов, которые всерьёз занимаются органическим ростом. Мы не продаём дашборды и ежемесячные отчёты. Мы строим стратегии, которые реально двигают цифры, соединяя классическое SEO с новым и захватывающим миром Generative Engine Optimization (GEO): чтобы ваш бренд появлялся не только в синих ссылках Google, но и внутри ответов, которые ChatGPT, Perplexity и Google AI Overviews каждый день выдают миллионам людей.

А поскольку инструмента, который нормально закрывает оба этих мира, я так и не нашёл, я сделал его сам — SEOcrawl AI, платформу SEO-аналитики корпоративного уровня, где в одном месте собраны позиции, технические аудиты, мониторинг ссылок, здоровье краулинга и отслеживание видимости бренда в ИИ. Это та платформа, которой мне всегда не хватало.

→ Читать все статьи автора David
Больше статей от David Kaufmann

Откройте больше материалов этого автора