Встречается на собеседованиях • сегодня

Как разделишь запросы в Node.js для SEO-роботов и пользователей

Для SEO-роботов и пользователей можно использовать разные стратегии рендеринга. Например, определять бота по User-Agent и отдавать статический HTML, а для пользователей — динамический контент через SPA.

Пример с Express.js:

javascript
const express = require('express');
const app = express();

app.get('*', (req, res) => {
const userAgent = req.headers['user-agent'];
const isBot = /bot|googlebot|crawler|spider|robot|crawling/i.test(userAgent);

if (isBot) {
// SSR для ботов (например, через Puppeteer или заранее сгенерированные HTML)
res.sendFile(path.join(__dirname, 'static-seo', 'index.html'));
} else {
// Обычный SPA для пользователей
res.sendFile(path.join(__dirname, 'public', 'index.html'));
}
});

text

Альтернативно можно использовать:
- Предрендеринг (Prerender.io, Rendertron)
- Next.js/Nuxt.js c `req.headers['user-agent']` в `getServerSideProps`
- Разделение на два разных сервера/роута
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы