최근에 Vue 다중 페이지 프로젝트를 만들었는데 인터넷에서 프론트엔드와 백엔드 분리가 SEO에 도움이 되지 않는다고 말하는 사람들을 많이 봤습니다. 프런트 엔드에 정적 페이지를 작성하고 서버 측 렌더링을 위해 백 엔드로 보내는 것이 SEO 최적화에 도움이 됩니까? 그리고 논리연산을 프론트엔드에서 처리하는지, 백엔드에서 처리하는지 묻고 싶습니다. 예를 들어 항공권을 정렬할 때 프런트엔드에서 데이터를 정렬한 다음 js를 사용하여 페이지를 렌더링합니까, 아니면 백엔드에서 정렬합니까?
phpcn_u15822017-05-19 10:13:53
SEO의 핵심은 한 서버가 다른 서버에 대한 요청을 시작하고 요청 내용을 구문 분석한다는 것입니다. 그러나 일반적으로 검색 엔진은 요청한 js를 다시 실행하지 않습니다. 즉, 단일 페이지 애플리케이션인 경우 HTML은 아직 서버측에서 일부 데이터를 렌더링하지 않았으며 데이터는 브라우저에서만 렌더링되고 검색 엔진에서 요청한 HTML에는 렌더링된 데이터가 없습니다. 이는 검색 엔진에서 콘텐츠를 검색하는 데 매우 해롭습니다. 따라서 서버 측 렌더링은 서버가 브라우저에 데이터를 보내기 전에 페이지에 데이터를 갖도록 시도하는 것입니다.
두 번째 질문은 일반적인 데이터 논리 작업이 백엔드에 배치된다는 것입니다. 데이터가 몇 개만 정렬된 경우 프런트엔드와 프런트엔드 정렬은 동일합니다. 데이터가 1,000개라면 프런트엔드는 모든 데이터를 정렬하도록 요청해야 합니다. 이것은 분명히 불합리한 일이다.
巴扎黑2017-05-19 10:13:53
검색 엔진은 JavaScript 실행을 별로 좋아하지 않기 때문에 백엔드 렌더링이 더 좋습니다. 예를 들어 시도해 볼 수 있습니다. Google은 Zhihu 칼럼의 기사를 전혀 검색할 수 없는 것 같습니다. Internet Archive는 Zhihu 칼럼에도 적용할 수 없습니다.
내 개인적인 의견은 콘텐츠에 초점을 맞춘 웹사이트의 경우 브라우저 이외의 사용을 용이하게 하기 위해 핵심 콘텐츠를 백엔드에서 최대한 렌더링해야 한다는 것입니다. 다양한 SAP와 같은 소프트웨어 기반 웹사이트의 경우 이에 대해 걱정할 필요가 없습니다. 신경쓰는 것은 쓸모가 없습니다.
黄舟2017-05-19 10:13:53
검색 엔진의 기본 크롤러 원칙은 URL을 크롤링한 다음 HTML 소스 코드를 가져와 구문 분석하는 것입니다. 귀하의 페이지는 일반적으로 페이지 데이터를 표시하기 위해 vue와 같은 js의 데이터 바인딩 메커니즘을 사용합니다. 크롤러가 얻은 html은 최종 데이터의 렌더링 페이지가 아닌 모델 페이지이므로 js를 사용하여 데이터를 렌더링하는 것은 SEO에 적합하지 않습니다. .
ps: 또한 모든 js 엔진이 크롤링할 수 있는 것은 아닙니다. 예를 들어 Google은 오랫동안 js 콘텐츠를 구문 분석할 수 있었지만 국내의 "어리석은" 엔진 그룹은 여전히 그렇게 할 수 없습니다. Zhihu를 Google에서 찾을 수 없는 이유는 웹사이트의 robots.txt가 기본적으로 검색 엔진에 공개되지 않기 때문입니다. 규칙 준수 엔진은 여전히 구성을 따르고 크롤링하지 않지만 일부 악성 소프트웨어는 그렇지 않을 수 있습니다.