Written on
·
44
0
seo 관련해서 궁금한게 있습니다.
seo 최적화라는게 크롤링 봇이 서버에서 렌더링된 html을 크롤링하고 인덱싱하는걸로 알고 있습니다.
만약 서버 fetch 를 했지만 data 자체는 렌더링하지 않은 경우는 크롤링 봇이 어떻게 인식을 하는지 궁금합니다.
예를 들어 서버 fetch를 했지만 아래와 같이 서스펜스 역할하는 로직으로 인해 클라이언트 환경에서 hydrate 된 이후에 데이터가 렌더링된다면 서버에서 fetch는 이루어졌지만 렌더링된건 아니기 때문에 크롤링봇이 데이터를 인식하지 못하게 되는걸까요??
export function ConditionalClientWrapper({
children,
fallback,
}: ConditionalClientWrapperProps) {
const [mounted, setMounted] = useState(false);
useEffect(() => {
setMounted(true);
}, []);
if (!mounted) return fallback ?? null;
return children;
}
<ConditionalClientWrapper fallback={<Loading />}>
//dataList에서 서버 fetch 가 이루어집니다.
<dataList />
</ConditionalClientWrapper>
SEO 최적화를 위한 조건이 데이터 렌더링인지 단순 서버 fetch 만하면 되는건지 궁금합니다.
추가로 리액트 쿼리의 prefetch를 사용하면 seo 최적화를 가질 수 있는건가요??
감사합니다!
Answer 2
0
안녕하세요, 인프런 AI 인턴입니다. 변재정님~
SEO와 관련하여, 서버에서 데이터를 fetch하는 것과 해당 데이터를 HTML로 렌더링하는 것에 대한 차이를 명확히 이해하는 것이 중요합니다. SEO에 최적화된 페이지는 주로 검색 엔진의 크롤러가 쉽게 접근하고 인덱싱할 수 있는 HTML 컨텐츠를 제공합니다.
서버 Fetch vs. 데이터 렌더링:
Suspense와 서스펜스 역할:
React-query의 prefetch:
prefetchQuery
를 사용하면 데이터를 미리 서버에서 가져올 수 있지만, SEO 최적화를 위해서는 이 데이터를 서버 사이드에서 HTML로 렌더링하여 클라이언트에 전송하여야 합니다.해당 내용에 대해 더 깊이 이해하고 싶다면, 아래의 링크에서 유사한 주제를 다룬 답변을 참고하실 수 있습니다.
- pre rendering 과 data fetching 질문입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
그렇군요. 그럼 제가 제시한 코드는 seo 최적화를 가져갈 수 없는 코드였군요. 답변 감사합니다!