Сайт переписали на Next.js, а в исходном HTML страницы товара всё ещё нет описания
Страницу товара перенесли в Next.js ради SEO, но код загрузки оставили прежним:
const [product, setProduct] = useState(null);
useEffect(() => {
fetch(`/api/products/${id}`).then((r) => r.json()).then(setProduct);
}, [id]);
if (!product) return <Spinner />;
В «Просмотре кода страницы» — только спиннер. Почему?
- useEffect не выполняется на сервере — HTML рендерится до загрузки данных
- Next.js не выполняет fetch на сервере, нужен axios
- Просмотр кода страницы показывает только HTML, закэшированный браузером
- Спиннер нужно обернуть в noscript, чтобы роботы его не видели
