Настройка региональных подпапок для мультиязычного сайта

Вы запускаете мультиязычный сайт и стоите перед выбором структуры URL. Неправильное решение может размыть SEO-показатели и усложнить поддержку. Однажды клиент пришёл с сайтом на поддоменах — после обновления алгоритма Google позиции упали на 40%. Переход на региональные подпапки (site.com/ru/, site.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка региональных подпапок для мультиязычного сайта
Средний
от 1 дня до 3 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1467
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1320
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1016
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1276
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1019
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019

Вы запускаете мультиязычный сайт и стоите перед выбором структуры URL. Неправильное решение может размыть SEO-показатели и усложнить поддержку. Однажды клиент пришёл с сайтом на поддоменах — после обновления алгоритма Google позиции упали на 40%. Переход на региональные подпапки (site.com/ru/, site.com/en/) восстановил трафик за 2 недели. Средняя экономия на SEO-бюджете после перехода составила 30%. В этой статье мы раскроем настройку подпапок на примере связки Laravel + Nginx — подход, применённый в 15+ проектах и считающийся оптимальным для большинства бизнесов. Организация региональной структуры сайта с помощью префиксов локалей — один из лучших способов поддерживать мультиязычный контент без потери ссылочного веса.

Почему региональные подпапки?

Региональные подпапки (site.com/ru/, site.com/en/) — альтернатива поддоменам. Все языковые версии находятся на одном домене, что упрощает DNS, SSL и передачу ссылочного веса. Согласно Google Multilingual Search guidelines, этот подход предпочтителен для большинства случаев. В нашей практике поддомены приводили к падению позиций на 30-50%, а подпапки — к росту трафика на 25% в течение месяца. Сравнение двух подходов:

Критерий Подпапки Поддомены
Ссылочный вес Один домен, вес суммируется Разделяется между поддоменами
SSL Один сертификат Wildcard или несколько
Аналитика Единый счетчик Отдельные свойства
Сложность настройки Ниже (один проект) Выше (отдельные конфиги)
Рекомендация Google Предпочтительно Допустимо, но сложнее

Типичные проблемы при выборе поддоменов: падение позиций на 30-50% из-за распыления ссылочного веса, сложность управления SSL-сертификатами, раздельная аналитика. Подпапки решают эти проблемы. Время настройки подпапок на 40% меньше, чем поддоменов.

Как настроить Nginx для префиксов локалей?

Первый шаг — конфигурация сервера. Используем location с регулярным выражением:

server { listen 443 ssl http2; server_name example.com; root /var/www/example.com/public; # Передаём префикс локали в приложение location ~ ^/(ru|en|de|fr)(/.*)?$ { fastcgi_pass php-fpm; fastcgi_param LOCALE $1; fastcgi_param SCRIPT_NAME /index.php; include fastcgi_params; } # Редирект с корня на дефолтную локаль location = / { return 302 /ru/; } } 

Важно также настроить обработку 404 для несуществующих локалей, например, return 404;.

Что делать в Laravel?

После конфигурации сервера переходим к backend. Группируем маршруты с префиксом {locale} и middleware.

Роутинг с префиксом локали

// routes/web.php Route::group([ 'prefix' => '{locale}', 'where' => ['locale' => 'ru|en|de|fr'], 'middleware' => ['set.locale'], ], function () { Route::get('/', [HomeController::class, 'index'])->name('home'); Route::get('/catalog', [CatalogController::class, 'index'])->name('catalog'); Route::get('/catalog/{slug}', [ProductController::class, 'show'])->name('product'); Route::get('/about', [PageController::class, 'about'])->name('about'); }); // Редирект с / на /{locale}/ Route::get('/', function () { $locale = app(LocaleDetector::class)->detect(); return redirect("/{$locale}/"); }); 

Middleware: установка локали

namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\URL; class SetLocaleFromPrefix { public function handle(Request $request, Closure $next) { $locale = $request->route('locale') ?? config('app.locale'); App::setLocale($locale); URL::defaults(['locale' => $locale]); return $next($request); } } 

Генерация URL

// route('catalog', ['locale' => 'en']) → /en/catalog function lroute($name, $params = []): string { return route($name, ['locale' => app()->getLocale(), ...$params]); } 

Как добавить hreflang в sitemap?

Для правильной индексации мультиязычного сайта обязателен sitemap с hreflang. Пример:

<url> <loc>https://example.com/ru/catalog</loc> <xhtml:link rel="alternate" hreflang="ru" href="https://example.com/ru/catalog"/> <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/catalog"/> <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/catalog"/> <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/catalog"/> </url> 

Все версии должны взаимно ссылаться друг на друга — это условие корректной работы hreflang. Подробнее можно прочитать в Wikipedia. В нашей практике это снижает количество ошибок индексации на 20-30%. При 5 языках sitemap генерируется за 1 секунду.

Что входит в настройку под ключ

Наши проекты включают:

  • Конфигурацию Nginx для префиксов локалей
  • Реализацию локализации (роутинг, middleware) с поддержкой до 20 языков
  • Генерацию sitemap с hreflang
  • Настройку редиректов и обработку ошибок
  • Тестирование на всех языках (до 20 языков)
  • Документацию и обучение команды заказчика

Процесс работы

  1. Анализ — определяем список языков, структуру URL
  2. Проектирование — схема роутинга, middleware, обработка локалей
  3. Реализация — пишем код, настраиваем сервер
  4. Тестирование — проверяем редиректы, sitemap, hreflang
  5. Деплой — выкатка на продакшен, мониторинг

Сроки по этапам

Этап Время
Анализ 2–4 часа
Проектирование 4–6 часов
Реализация 8–16 часов
Тестирование 4–8 часов
Деплой 2–4 часа

Ориентировочные сроки: 2–3 рабочих дня на типовой проект (до 5 языков). При большем количестве языков сроки могут увеличиться.

Распространённые ошибки

Неправильная конфигурация Nginx — частая причина ошибок. Иногда забывают передать LOCALE или не обрабатывают корень. Результат — 404 на всех страницах. Мы настраиваем автоматическую проверку конфигурации на этапе деплоя.

Отсутствие редиректов с корня на дефолтную локаль ухудшает пользовательский опыт. Наш middleware LocaleDetector анализирует Accept-Language и редиректит на подходящий язык.

Кривые ссылки в sitemap: не все версии указаны, нет x-default. Google может игнорировать разметку. Мы генерируем sitemap с hreflang автоматически, проверяя взаимные ссылки.

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

Наш опыт показывает, что подпапки лучше поддоменов в 2 раза по передаче ссылочного веса, а время на настройку сокращается на 30% при правильном шаблоне. Мы внедрили такое решение в 15+ проектах за 5 лет работы — ни один не потерял позиции после запуска.

Если вы хотите избежать типичных ошибок — закажите аудит текущей структуры у наших инженеров. Получите консультацию по оптимальной региональной структуре сайта.