동적 렌더링이 쓰였던 이유
구글의 자바스크립트 처리 능력이 지금보다 제한적이던 시기에는, 자바스크립트로 화면을 렌더링하는 사이트가 검색엔진에 콘텐츠를 제대로 보여주기 어려웠습니다. 동적 렌더링은 요청한 쪽의 user-agent를 보고 크롤러라면 미리 렌더링해 둔 HTML을, 사람이라면 기존 자바스크립트 페이지를 보내는 방식으로 이 문제를 우회했습니다. Rendertron, Prerender.io 같은 도구가 많이 쓰였습니다.
동적 렌더링을 권장하지 않는 이유
구글은 현재 동적 렌더링을 임시방편으로 규정하고, 대신 SSR, 정적 생성, 하이드레이션을 권장합니다. 크롤러용과 사용자용 결과물을 따로 관리해야 해서 구조가 복잡하고, 렌더링 서버가 느려지거나 오류가 나면 크롤러만 빈 페이지를 받는 문제가 생기기 쉽기 때문입니다.
클로킹과 혼동되기도 합니다. 크롤러와 사용자에게 보내는 내용이 사실상 같다면 동적 렌더링은 클로킹이 아니지만, 크롤러용 HTML에만 다른 내용을 넣으면 클로킹이 됩니다. 이미 동적 렌더링을 쓰고 있다면 두 버전의 내용이 일치하는지 정기적으로 확인해야 합니다.
