Встречается на собеседованиях • сегодня
Как разделишь запросы в 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`
- Разделение на два разных сервера/роута
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы