Разработка корпоративного сайта
Корпоративный сайт отличается от сайта-визитки масштабом структуры, интеграциями и требованиями к управлению контентом. Типичный проект: 20–100 страниц с несколькими разделами (продукты/услуги, компания, новости, кейсы, контакты), ролевой системой в CMS, мультиязычностью и подключением к внешним системам — CRM, ERP, аналитика.
Архитектурные решения
Выбор стека определяется объёмом контента, требованиями к производительности и ресурсами команды поддержки.
Headless CMS + фронтенд фреймворк — предпочтительный вариант для проектов, где скорость работы сайта и гибкость разработки важнее скорости запуска:
- CMS: Strapi, Directus, Contentful, Sanity
- Фронтенд: Next.js (ISR + SSG), Astro, Nuxt 3
- API: REST или GraphQL
├── cms/ # Strapi instance
│ ├── api/
│ │ ├── article/
│ │ ├── service/
│ │ └── case-study/
│ └── config/
└── frontend/ # Next.js
├── app/
│ ├── [locale]/
│ │ ├── news/
│ │ │ └── [slug]/page.tsx
│ │ └── services/
└── lib/
└── cms.ts # API client
WordPress (классический или headless) — когда контент-менеджеры уже работают с WordPress, команда небольшая, бюджет ограничен. Кастомная тема + ACF Pro для гибких полей + Polylang/WPML для мультиязычности. Headless WordPress (WP как бэкенд + Next.js фронтенд) — компромисс: знакомый интерфейс для редакторов + современный фронтенд.
Laravel + Filament — подходит, если сайт тесно интегрирован с бизнес-логикой: CRM, личный кабинет, сложные формы, кастомные расчёты. Filament даёт быстрый старт для admin-панели.
Структура и навигация
Информационная архитектура — первый этап проектирования. До макетов:
- Составляется список всех типов контента и страниц
- Определяется иерархия (глубина вложенности — не более 3 уровней)
- Прорабатывается навигация: главное меню, footer-навигация, breadcrumbs, cross-links между разделами
- Определяются шаблоны страниц (обычно 5–12 уникальных шаблонов)
Типичный набор шаблонов корпоративного сайта:
| Шаблон | Описание |
|---|---|
| Главная | hero, блоки преимуществ, featured-контент |
| Список услуг | карточки с описанием и ссылками |
| Страница услуги | детальное описание, CTA |
| О компании | история, команда, миссия |
| Список новостей | пагинация или infinite scroll |
| Статья / новость | контент, автор, дата, related |
| Кейс | результаты, технологии, галерея |
| Контакты | форма, карта, реквизиты |
Мультиязычность
Если сайт на нескольких языках — архитектурное решение принимается на старте, не добавляется потом.
В Next.js через next-intl или next-i18next:
app/
[locale]/
layout.tsx
page.tsx
services/
[slug]/
page.tsx
// next.config.ts
const nextConfig = {
i18n: {
locales: ['ru', 'en', 'de'],
defaultLocale: 'ru',
}
};
URL-стратегия: /ru/services, /en/services, /de/services — предпочтительнее субдоменов для SEO. Хрефланг-теги обязательны:
<link rel="alternate" hreflang="ru" href="https://example.com/ru/services">
<link rel="alternate" hreflang="en" href="https://example.com/en/services">
CMS: управление контентом
Контент-менеджеры не должны редактировать код. Требования к CMS:
- создание/редактирование страниц без разработчика
- ролевая модель: редактор, модератор, администратор
- версионирование контента (возможность откатиться)
- SEO-поля на каждой странице (title, description, og:image)
- предпросмотр черновика до публикации
В Strapi это настраивается через Content-Type Builder + Roles & Permissions. В WordPress — через пользовательские роли и плагин PublishPress для workflow.
Формы и CRM-интеграции
Корпоративный сайт обычно имеет несколько форм с разными назначениями: заявка на услугу, форма для партнёров, обратная связь. Каждая форма — не просто email-уведомление, а лид, попадающий в CRM.
Интеграция с Bitrix24, AmoCRM, HubSpot — через REST API или webhook:
// lib/crm.ts
export async function createLead(data: LeadData) {
const response = await fetch(process.env.CRM_WEBHOOK_URL!, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
fields: {
TITLE: `Заявка с сайта: ${data.name}`,
NAME: data.name,
EMAIL: [{ VALUE: data.email, VALUE_TYPE: 'WORK' }],
PHONE: [{ VALUE: data.phone, VALUE_TYPE: 'WORK' }],
SOURCE_ID: 'WEB',
COMMENTS: data.message,
}
})
});
return response.json();
}
Обязательно: логирование всех отправок (база данных), идемпотентность (повторная отправка не создаёт дубль), уведомление менеджера + автоответ клиенту.
SEO и производительность
Корпоративный сайт — долгосрочный актив, технические SEO-проблемы накапливаются.
Обязательные технические требования:
- sitemap.xml (динамическая генерация для страниц из CMS)
- robots.txt с правильными директивами
- canonical URL для всех страниц
- структурированные данные (Organization, BreadcrumbList, Service)
- Core Web Vitals: LCP < 2.5s, CLS < 0.1, INP < 200ms
// app/sitemap.ts (Next.js)
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const services = await getServices();
const articles = await getArticles();
return [
{ url: 'https://example.com', lastModified: new Date() },
...services.map(s => ({
url: `https://example.com/services/${s.slug}`,
lastModified: new Date(s.updatedAt),
changeFrequency: 'monthly' as const,
priority: 0.8,
})),
...articles.map(a => ({
url: `https://example.com/news/${a.slug}`,
lastModified: new Date(a.publishedAt),
})),
];
}
Типичные сроки
Корпоративный сайт 20–40 страниц с кастомным дизайном, headless CMS, мультиязычностью, базовыми CRM-интеграциями — 6–10 недель от подписания ТЗ до сдачи. Без мультиязычности и сложных интеграций — 4–6 недель. WordPress с готовой темой и минимальной кастомизацией — 2–3 недели.







