SEO를 위한 동적 렌더링의 이점
게시 됨: 2022-03-16JavaScript 웹 페이지는 검색 엔진 최적화를 크게 복잡하게 하며 이는 상당히 까다롭습니다. SEO는 디지털 마케팅의 기본 요소로 간주됩니다. 그러나 상상력을 발휘하면 장대 위에서 여러 접시를 회전시키는 마술사가 등장하는 유명한 서커스 공연이 떠오를 수 있습니다. 기술 SEO는 어떻습니까? 줄타기 위를 걷는 것과 저글링을 한다고 상상해 봅시다.

그렇다면 JavaScript SEO는 무엇입니까? 서커스 공연이었다면 어땠을까? 아마도 줄타기 위를 걷고 저글링을 하고...불덩이로. 그리고 그것은 정확한 정의가 될 것입니다. 이러한 이해할 수 있는 연관성 덕분에 이것이 까다로운 균형 프로세스임을 알 수 있습니다. 귀하의 웹사이트는 검색 엔진에서 다루기 쉽고 동시에 경쟁사보다 더 잘 작동하며 더 빨리 로드되어야 합니다.
이제 좋은 소식은 기술 SEO가 제어할 수 있는 순위 요소 중 하나라는 것입니다. 결국 Google에서 JavaScript 웹 사이트를 읽고 이해하기 쉽게 만들고 방문자에게 좋은 웹 경험을 제공하는 것입니다. 이것은 큰 이점입니다. 동의하지 않습니까? 또한 SEO에 대한 동적 렌더링의 이점, 사이트의 SEO 상태에 대한 중요성 및 구현 방법에 대해 자세히 설명합니다. 그러나 먼저 간단한 단어로 동적 렌더링이란 무엇입니까?
Google은 귀하의 웹 페이지를 방문합니다. 무엇 향후 계획?
아시다시피 Google의 최고의 도우미는 World Wide Web의 모든 웹 페이지를 색인화하고 카탈로그화하는 자동화된 프로그램 또는 봇입니다. Google은 사용자에게 주어진 요청에 대해 가능한 한 최상의 결과를 제공하려고 노력합니다. 이를 위해 주어진 웹 페이지의 SEO 동적 콘텐츠를 주의 깊게 분석하고 동일한 주제에 대한 다른 웹 페이지와 비교하여 상대적 중요성을 평가합니다.
대부분의 최신 웹 개발은 HTML과 JavaScript의 세 가지 기본 프로그래밍 언어를 사용합니다. Google은 HTML을 크롤링하고 색인을 생성하여 처리합니다. 먼저 Googlebot은 페이지의 HTML을 확인합니다. 그런 다음 텍스트, 페이지의 나가는 링크 및 키워드에 주의를 기울입니다. 다음 단계는 페이지를 인덱싱하는 것입니다. Google 및 기타 검색 엔진은 정적 HTML로 표시되는 콘텐츠의 우선 순위를 지정합니다.
렌더링 JavaScript 렌더링은 다음 세 단계로 구성되므로 더 복잡합니다.
- 기다
- 세우다
- 색인
Google은 콘텐츠를 완전히 이해하기 위해 JavaScript 콘텐츠를 여러 번 처리합니다. 이것이 사이트 렌더링의 핵심입니다. Google이 웹 페이지에서 JavaScript를 만나면 이를 대기열에 넣습니다. 그런 다음 Google은 해당 리소스가 있을 때 이를 렌더링합니다.
JavaScript SEO의 어려움은 무엇입니까?
HTML은 웹 개발의 표준 역할을 합니다. 첫째, 검색 엔진은 이를 기반으로 콘텐츠를 효율적으로 처리할 수 있습니다. 예를 들어, Javascript는 리소스 집약적이므로 검색 엔진을 처리하기가 더 어렵습니다. 이것은 검색 엔진 예산이 JavaScript 웹 페이지에 사용되었음을 보여줍니다. Google은 검색 엔진이 JavaScript를 처리할 수 있다고 주장합니다. 그러나 이것은 여전히 사실이 아닙니다.

크롤링, 인덱싱 및 페이지 렌더링에는 훨씬 더 많은 리소스가 필요합니다. Bing 및 DuckDuckGo와 같은 다른 검색 엔진의 경우 상황이 더욱 악화됩니다. 자바스크립트를 전혀 다룰 수 없기 때문입니다. 결과적으로 검색 엔진은 JavaScript 페이지를 렌더링하기 위해 더 많은 리소스가 필요합니다. 불행히도 이는 페이지의 많은 요소가 전혀 색인화되지 않음을 의미합니다.
예를 들어 Google 및 기타 검색 엔진은 SEO에 필수적인 메타데이터와 표준 태그를 놓칠 수 있습니다. 사실 Javascript는 사용자를 형언할 수 없는 흥분으로 이끄는 동적 웹사이트를 만들 수 있는 훌륭한 사용자 경험을 제공합니다. 그러나 질문은 남아 있습니다. SEO에 영향을 주지 않으면서 현대적인 웹 경험을 만들려면 어떻게 해야 합니까? 많은 개발자가 서버 측 렌더링 방식을 선택합니다.
클라이언트 측/서버 측 렌더링 VS.
Angular, Vue 및 React와 같은 많은 JavaScript 프레임워크는 클라이언트 측 렌더링을 사용합니다. 그들은 사용자 측의 브라우저에서 수행하기 전에 웹 페이지 컨텐츠가 완전히 로드될 때까지 기다립니다. 간단히 말해 검색 엔진이 볼 수 있도록 서버가 아닌 사용자에게 콘텐츠를 렌더링합니다. 결과적으로 클라이언트 측 렌더링은 다른 대안보다 저렴합니다. 가격과 함께 서버와 개발자의 부담도 줄어듭니다.
그러나 사용자 경험이 악화될 수 있으므로 모든 것이 순조로운 것은 아닙니다. 예를 들어 페이지 로드 시간이 증가하여 이탈률이 높아집니다. 클라이언트 측 렌더링은 봇에도 영향을 미칩니다. Googlebot은 2파형 색인 생성 시스템을 사용합니다. 첫 번째 단계는 정적 HTML을 크롤링하고 인덱싱하는 것이고 두 번째 단계는 JavaScript 콘텐츠를 크롤링하는 것입니다. 다시 말하지만, 봇은 인덱싱 프로세스 중에 JavaScript 콘텐츠를 놓칠 수 있습니다.
그럼 어떻게 해야 할까요? 대부분의 개발 팀에서 이는 서버 측 렌더링입니다. 콘텐츠가 클라이언트 측 브라우저가 아닌 사이트 서버에서 렌더링되도록 JavaScript를 구성하는 것입니다. JavaScript 콘텐츠는 미리 렌더링되어 봇이 읽을 수 있습니다. SSR은 성능상의 이점도 있습니다. 봇과 사용자는 불완전한 인덱싱이나 콘텐츠 누락의 위험 없이 더 빠른 경험을 얻을 수 있습니다.
서버 측 렌더링: 존재 여부
이 질문에 답하려면 먼저 다음을 생각하십시오. SEO에 서버 측 렌더링이 쉬운가요? 대답은 '아니오. 그렇지 않으면 JavaScript SEO가 문제가 되지 않으며 모든 웹사이트에서 이를 수행할 것입니다. 불행히도 SSR을 구현하려면 유능한 웹 개발 팀이 필요하며 구현 프로세스 자체가 비용이 많이 들고 시간이 오래 걸리고 복잡합니다. 또한 타사 JavaScript에서는 작동하지 않습니다.
서버 측 렌더링을 사용하는 웹 사이트에는 종종 설정하기 어려운 외부 JavaScript 라이브러리 또는 플러그인이 필요합니다. 예를 들어, Angular는 서버 측 렌더링을 활성화하기 위해 Angular 유니버설 라이브러리가 필요합니다. 따라서 Angular에서 SSR을 활성화하려면 움직이는 부분이 많이 필요합니다. 그리고 한 조각이 제자리를 벗어나면 검색 결과가 실패할 수 있기 때문에 상당한 위험이 있습니다.
반면에 React는 Next.JS 라이브러리를 사용하여 서버 측 렌더링을 제공합니다. 결과적으로 개발자는 추가 비용을 발생시키기 위해 추가 서버가 필요합니다. 그렇다면 어떻게 고객과 검색 엔진을 기쁘게 하기 위해 React SEO와 같은 프레임워크를 만들 수 있을까요? 다시 한 번 동적 렌더링이 구출됩니다.
간단히 말해서 동적 렌더링
동적 렌더링은 요청한 사용자 에이전트를 기반으로 콘텐츠를 전달하는 것입니다. 즉, 두 세계의 장점을 모두 제공하는 보편적인 솔루션입니다. 봇을 위한 정적 HTML과 사용자를 위한 동적 JavaScript로 작동합니다.
결과적으로 봇은 기계가 읽을 수 있고 제거된 텍스트 및 링크 전용 버전의 웹 페이지를 얻습니다. 이렇게 하면 페이지를 더 쉽게 크롤링하고 분석할 수 있습니다. 결과적으로 사용자는 웹 사이트와의 상호 작용 시간을 늘리는 사용 가능하고 완전히 최적화된 웹 페이지를 얻게 됩니다.
동적 렌더링을 구현하는 방법
동적 렌더링 구현은 세 단계로 구성됩니다.
- 동적 콘텐츠를 정적 HTML로 변환하기 위해 동적 렌더러를 설치합니다.
- 정적 콘텐츠를 수신해야 하는 사용자 에이전트 선택(Googlebot, Bingbot, LinkedInbot 등). 참고로 캐시를 구현하거나 콘텐츠를 저장하기 위한 HTTP 요청 수를 늘리면 서버의 느린 작업이 해결됩니다. 고객이 데스크톱 또는 모바일 장치용 콘텐츠를 필요로 하는지 여부도 고려해 볼 가치가 있습니다. 동적 게재를 사용하면 적절한 솔루션을 제공하는 데 도움이 됩니다.
- 정적 HTML을 전달하도록 서버 구성.
구성 확인
동적 렌더링이 올바르게 작동하는지 확인하려면 다음을 수행해야 합니다.

- 모바일 친화성 테스트: 이것은 Google Search Console 도구 모음의 기능입니다. 2020년 9월, Google은 모든 사이트에 대해 모바일 우선 색인 생성으로 전환했습니다. 즉, Google은 데스크톱 버전보다 모바일 버전을 먼저 고려합니다. 따라서 모바일 장치에 맞게 사이트를 최적화해야 합니다.
- URL 검사 도구: 사이트가 적절하게 색인이 생성되었는지 확인해야 합니다. URL 검사기 도구가 이를 도와줄 것입니다.
- Fetch as Google: 동적 렌더링의 효율성을 확인하는 데 필요합니다. 인덱싱을 위해 개별 URL이 올바르게 전송되었는지 확인할 수 있습니다.
- 구조화된 데이터 테스트 도구: 사이트에서 스키마 마크업을 사용하면 편리합니다. 동적 렌더링이 스키마 마크업을 손상시키지 않도록 합니다.
사용 사례
동적 렌더링은 모든 JavaScript SEO 문제를 완벽하게 해결합니다. 이것은 상당한 이점입니다. 동적 렌더링은 비용 효율적이면서도 크롤링 예산 문제를 신속하게 해결합니다. 보너스는 고급 기술 지식이 필요하지 않다는 사실입니다. 그렇다면 이 유용한 도구를 언제 사용해야 할까요?
- 자주 변경되는 콘텐츠가 많은 대규모 웹사이트는 동적 렌더링에 적합합니다. 이는 대규모 사이트가 자주 신속하게 인덱싱되기 때문입니다. 따라서 모든 페이지를 색인화하고 SERP에 적절하게 반영하는 것이 중요합니다. 동적 렌더링은 이 작업을 훌륭하게 수행합니다.
- 동적 렌더링은 소셜 미디어 벽이나 위젯이 포함된 사이트의 경우에도 생명의 은인이 될 것입니다.
동적 렌더링은 은폐입니까?
클로킹은 검색 엔진 봇과 인간에게 현저하게 다른 콘텐츠를 제공하는 관행입니다. 그것은 검은 모자 SEO 전술입니다. 클로킹의 단기적 이점은 매력적이지만 잠재적인 위험은 여전히 그만한 가치가 없습니다. 동적 렌더링은 검색 엔진과 사용자에게 동일한 최종 콘텐츠를 제공하는 경우 마스킹되지 않습니다. 하지만 각각 완전히 다른 콘텐츠를 제공하면 은폐입니다.

검색 엔진에 JavaScript 사이트를 최적화하는 방법
많은 프로세스가 SEO 전문가에게 익숙한 것과 비슷하지만 몇 가지 차이점이 있습니다.
온페이지 SEO
콘텐츠에 대한 일반적인 페이지 SEO 규칙: 제목 및 메타 설명 태그, 대체 속성, 메타 로봇 태그 및 기타 애플리케이션. 개발자가 JavaScript 웹사이트로 작업하는 동안 직면하는 몇 가지 문제는 제목과 설명 태그를 재사용할 수 있고 이미지가 거의 alt 속성으로 설정되지 않는다는 것입니다.
크롤링 허용
리소스에 대한 액세스를 차단하지 마십시오. Google은 페이지를 올바르게 렌더링하기 위해 리소스에 액세스하고 로드해야 합니다.
URL
콘텐츠를 업데이트할 때 URL을 변경합니다. JavaScript 프레임워크는 순수 URL에 대한 매핑을 허용하는 라우터를 사용한다는 것을 알아야 합니다. 라우팅에 octotorps(# 기호)를 사용하지 마십시오. 이것은 주로 Vue와 Angular의 일부 초기 버전의 문제입니다. abc.com/#something과 같은 URL에서 서버는 일반적으로 # 기호 다음 부분을 완전히 무시합니다.
중복 콘텐츠
자바스크립트의 경우 여러 URL이 동일한 콘텐츠로 연결되어 콘텐츠 중복 문제가 발생할 수 있습니다. 이것은 다른 레지스터, 식별자, 식별자의 매개변수로 인해 발생할 수 있습니다. 아래의 모든 변형이 존재할 수 있습니다.
- domain.com/ABC
- domain.com/abc
- domain.com/123
- domain.com/?id=123
해결책은 간단합니다. 색인을 생성할 버전을 선택하고 표준 태그를 설정합니다.
SEO 플러그인
JavaScript 프레임워크에서는 일반적으로 플러그인이라고 합니다. React, Vue 및 Angular와 같은 가장 널리 사용되는 프레임워크용 버전이 있습니다. "프레임워크 + 모듈 이름"을 검색하여 찾을 수 있습니다(예: "React Helmet"). 메타 태그인 Helmet 및 Head는 SEO에 필요한 많은 인기 태그를 설치할 수 있게 해주는 유사한 기능을 가진 인기 모듈의 예입니다.
오류 페이지
JavaScript 프레임워크는 서버 측에서 실행되지 않기 때문에 404와 같은 서버 측 오류를 일으킬 수 없습니다. 오류 페이지의 경우 몇 가지 다른 옵션이 있습니다.
- 404 상태 코드로 응답하는 페이지로 JavaScript 리디렉션 사용
- 무응답 페이지에 "404 페이지를 찾을 수 없음"과 같은 무색인 태그와 일부 오류 메시지를 추가합니다.
사이트맵
JavaScript 프레임워크에는 일반적으로 순수 URL에 매핑하기 위한 라우터가 있습니다. 대부분의 라우터에는 사이트맵을 생성할 수 있는 추가 모듈이 있습니다. "Vue 라우터 사이트맵"(사이트맵이 있는 Vue 라우터)과 같이 "시스템 + 라우터 사이트맵"을 검색하여 찾을 수 있습니다. 또한 많은 렌더링 솔루션에 사이트맵 옵션이 있을 수도 있습니다. 따라서 "Gatsby 사이트맵"과 같은 "시스템 + 사이트맵"에 대해 다시 Google에 검색하면 이미 존재하는 솔루션을 찾을 수 있습니다.
리디렉션
SEO 전문가는 서버 측에서 301/302 리디렉션에 익숙합니다. 반면에 JavaScript는 일반적으로 클라이언트 측에서 수행됩니다. Google이 리디렉션에 의해 수신된 페이지를 처리하기 때문에 문제가 되지 않습니다. 그러나 리디렉션은 PageRank와 같은 모든 신호를 계속 전달합니다. 이러한 리디렉션은 일반적으로 "window.location.href"에 의해 코드에서 찾을 수 있습니다.
국제화
hreflang 과 같이 국제화에 필요한 일부 기능을 지원하기 위해 다양한 프레임워크에 대한 몇 가지 옵션이 있습니다 . 이들은 일반적으로 다른 시스템으로 이식되며 원하는 태그를 추가하는 데 사용할 수 있는 Helmet과 같은 헤더 태그에 사용되는 현지화 및 국제화 또는 모든 동일한 모듈을 포함합니다.
지연 로딩
지연된 로딩을 처리하기 위한 모듈이 있습니다. 아직 눈치채지 못했다면 JavaScript 프레임워크로 작업할 때 필요한 거의 모든 것을 위한 모듈이 있습니다. Lazy 및 Suspence는 지연 로딩에 가장 많이 사용되는 모듈입니다. 이미지 로드를 지연하는 것이 현명하지만 콘텐츠 로드를 지연하지 마십시오. 이것은 JavaScript로 수행할 수 있지만 콘텐츠는 그런 식으로 검색 엔진에 의해 올바르게 구축되지 않을 수 있습니다.
결론
JavaScript SEO는 매우 복잡한 디지털 마케팅 메커니즘입니다. 그렇지 않으면 JavaScript는 현명하게 사용해야 하는 도구이며 SEO가 피해야 하는 것은 아닙니다. 그러나 노력을 기울이면 항상 해결책을 찾을 수 있습니다. 그리고 여기에서는 웹 개발 팀의 부담을 줄이고 예산을 절약할 수 있는 동적 렌더링입니다. 따라서 Google이 마침내 당신을 반대하는 대신 당신과 함께 일하게하십시오.
최고 Google 순위에 진입
