Судя по тому, что возвращает curl, данные для бота будут так-же каждый раз разные...
Кстати использовать SSR не обязательно, можно просто собрать SPA приложение и отдавать его через nginx, а для ботов сделать отдельное пререндер приложение на основе модуля prerender (
https://www.npmjs.com/package/prerender), для которого надо в nginx прописать, чтобы боты отправлялись на пререндер приложение. Ниже описаны правила nginx, для пререндер приложения, которое работает на 3000 порту:
upstream prerender_server {
server 127.0.0.1:3000;
keepalive 8;
}
server {
location / {
set $prerender 0;
if ($http_user_agent ~* "googlebot|bingbot|yandex|baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest\/0\.|pinterestbot|slackbot|vkShare|W3C_Validator|whatsapp") {
set $prerender 1;
}
if ($args ~ "_escaped_fragment_") {
set $prerender 1;
}
if ($http_user_agent ~ "Prerender") {
set $prerender 0;
}
if ($uri ~* "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff|svg|eot)") {
set $prerender 0;
}
if ($prerender = 1) {
rewrite .* /render?url=$scheme://$host$request_uri break;
proxy_pass http://prerender_server;
}
}
}
Тогда можно будет зайти на сайт с параметром "?_escaped_fragment_", и увидеть то, что уведет бот.