Настройка .htaccess для SEO и не только: Правила и Советы
.htaccess – это файл который используется серверами Apache для управления определенными настройками сервера. Этот файл находится в корневой директории вашего сайта. Он обладает широкими возможностями, но в данной статье мы рассмотрим функции, которые могут улучшить SEO вашего сайта и повлиять на его продвижение. Сама статья разделена на 2 части:
- Настройки для всех сайтов.
- Специальные настройки
Функционал который поможет решить некоторые частные задачи.
Важно: перед внесением любых изменений в файл .htaccess рекомендуется сделать резервную копию этого файла. Неправильная конфигурация может привести к проблемам с доступом к сайту.
Также для работы .htaccess необходимо, чтобы на вашем хостинге был включен модуль mod_rewrite.
Настройки для всех сайтов.
Поисковые системы, такие как Google, могут интерпретировать одинаковые страницы с разными адресами как разные страницы сайта. Это может привести к дублированию контента, что, в свою очередь, снизит ‘вес’ вашей страницы и ухудшит его ранжирование в поиске.
Редиректы позволяющие избежать дублирования контента. Для включения перенаправления необходимо добавить в файл .htaccess директиву:
RewriteEngine On
Перенаправление www.domain.com -> domain.com или наоборот.
#www.domain.com -> domain.com
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
#domain.com -> www.domain.com
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} (.+)$
RewriteRule ^(.*)$ https://www.%1/$1 [R=301,L] .
Перенаправление http://domain.com -> https://domain.com
ewriteCond %{HTTPS} !=on [OR]
RewriteCond %{SERVER_PORT} !^443
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
или
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Перенаправление адреса заканчивающегося слешем domain.com/// -> domain.com
RewriteCond %{THE_REQUEST} //
RewriteRule ^(.*)$ /$1 [R=301,L,NE]
Перенаправление domain.com/index.php -> domain.com
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
RewriteRule ^(.*)index\.(php|html|htm)$ $1 [R=301,L]
Кэширование и скорость работы
Также правильным будет включить сжатие содержимого, в том случае если оно поддерживается вашим сервером. Это уменьшит объем передаваемых данных и приведёт к более быстрой загрузке страницы.
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
Еще один способ ускорить загрузку сайта это указать заголовки кэширования
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
Указание страницы ошибки 404. Бывает необходимо в том случае если ваша CMS или фреймворк не имеет встроенных механизмов обработки. Проверить это довольно просто, достаточно попробовать открыть на вашем сайте заведомо не существующую страницу. Если откроется страница 404 вашего сайта значит добавлять эту директиву в htaccess не нужно, если же вы увидели ошибку браузера, то обработка отсутствует или не настроена. Для того, чтобы это исправить, достаточно просто добавить в htaccess:
ErrorDocument 404 /404.html
Дополнительный функционал
301 Перенаправления
Это, возможно, самая распространенная и важная для SEO функция файла .htaccess, оно сообщает поисковым системам, что страница была постоянно перемещена. Это может потребоваться если вы изменили url адрес страницы. Также 301 редирект поможет вам заменить домен сайта на новый без потери SEO позиций.
Redirect 301 /old-page.html /new-page.html
Блокировка доступа к системным файлам
Хорошей идеей также может быть защитить системные файлы от доступа из интернета.
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?:\.(?:bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist|orig|save|txt))|(?:~)$))">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
Ограничение доступа к админке сайта
Ещё одной хорошей идеей может быть ограничение доступа к админке сайта только с определённых IP. Конечно, только в том случае, если у вас есть возможность обеспечить для себя статические ip-адреса, например заказать их у вашего интернет-провайдера или использовать ВПН со статической точкой выхода. Например ваш статический адрес 123.45.6.7, в этом случае вы можете добавить следующие строки в ваш .htaccess файл
<Directory "/manager">
Order Deny,Allow
Deny from all
Allow from 123.45.6.7
</Directory>
Вывод
Использование файла .htaccess позволяет управлять множеством аспектов работы сайта, начиная от простых редиректов и заканчивая сложными настройками безопасности. С его помощью можно:Оптимизировать SEO: Настройки, такие как 301-редиректы, помогают избежать дублирования контента и улучшают индексацию сайта поисковыми системами.
Улучшать производительность: Сжатие данных с помощью Gzip и кеширование статики ускоряют загрузку страниц.
Усиливать безопасность: Ограничение доступа к определенным разделам сайта по IP или блокировка доступа к системным файлам уменьшает риски взлома.
Гибко управлять контентом: Возможность перенаправления запросов или изменения поведения сервера в ответ на определенные условия дает разработчикам глубокий контроль над веб-ресурсами.
Таким образом, файл .htaccess является важным и удобным инструментом, который, при правильном использовании, может существенно повысить качество, безопасность и эффективность веб-сайта.