Discourse가 Googlebot에 JS 앱을 완전히 서빙하도록 하려고 시도하고 있으며, 거의 성공했습니다.
@pfaffman의 도움으로 아래 코드(rails console에서 실행)를 실행한 결과, Chrome에서 User Agent를 googlebot 또는 googlebot smartphone으로 위장할 때 JS 앱이 표시되도록 만들 수 있었습니다.
SiteSetting.non_crawler_user_agents="trident|webkit|gecko|chrome|safari|msie|opera|goanna|discourse"+'rss|bot|spider|crawler|facebook|archive|wayback|ping|monitor|lighthouse'
그러나 Google 모바일 친화도 도구 (또는 Google 검색 콘솔의 URL 검사)로 테스트하면 아래 HTML과 함께 빈 스크린샷이 표시됩니다.
Bing은 유사하지만, Bing의 경우 콘텐츠가 표시됩니다. Bing의 크롤러가 "모바일"이 아니기 때문에 콘텐츠가 표시된다고 생각합니다. @sam의 관련 게시물을 참조하세요.
@david와 이 게시물에 따르면 "feature detect"가 원인으로 보입니다.
간단한 우회 방법이 있을 것이라고 조심스럽게 낙관하고 있습니다. 도구를 사용할 때 10~20회 중 1회꼴로 Googlebot이 앱을 올바르게 렌더링합니다.
제 가설은 다음과 같습니다. Googlebot은 페이지에 액세스할 때 모든 리소스를 다운로드하지 않는 것으로 악명 높기 때문에, feature detect를 포함하고 재귀를 유발하는 특정 JS가 로드되지 않아 페이지가 정상적으로 보이는 것입니다.
결론적으로, Googlebot(또는 더 쉽게 말해 모든 크롤러/봇)에 대해 feature detect를 비활성화하려면 어떻게 해야 합니까?
수정 용어가 잘못되었을 수 있으므로, meta에서 언급되는 "feature detect"가 브라우저 감지를 가리키는 것입니까? (예: browser-detect.js 및 기타 의존성 파일)
아니면 "feature detect"는 Discourse가 앱에 액세스하려는 기술을 이해하려고 할 때 수행하는 작업에 대한 광범위한 표현입니까?








