처음에는 이 문제를 “버그” 카테고리로 작성했습니다 …
… 하지만 누군가가 이 문제에 대해 PR이나 커밋이 필요하다고 생각하신다면, 제가 막지 않겠습니다 
지난 2개월간 Discourse의 정형(canonical) 구조를 열심히 연구해 왔는데, 전반적으로 훌륭합니다.
no_definitions=true나 /search?q= 같은 값이 포함된 기이한 URL도 올바른 canonical URL을 반환합니다.
이것은 사용자와 크롤러 모두에게 JS 버전의 사이트를 서빙할 때 정상적으로 작동합니다.
하지만 /u/* URL은 놓친 것 같습니다. canonical이 설정되어 있긴 하지만, 수천 개의 추가 URL이 Google에 인덱싱되도록 만드는 URL을 가리키고 있습니다.
작업 내용:
사용자 이름 뒤에 오는 모든 URL이 사용자 프로필 메인 페이지로 canonical되도록 하고 싶습니다.
즉, /u/FlyNumber가 메인 프로필 페이지입니다.
다음 URL들은 현재와 같이 자기 자신으로 canonical되는 대신, 위의 URL로 canonical되어야 합니다:
/u/FlyNumber/summary
/u/FlyNumber/activity
/u/FlyNumber/activity/topics
/u/FlyNumber/activity/replies
/u/FlyNumber/activity/likes-given
/u/FlyNumber/badges
1개의 좋아요
justin
(Justin DiRose)
2
여기에서 논의된 사용자 지정 인덱싱 설정을 위한 것인가요?
그렇다면, 해당 작업을 살펴보는 사람들이 어떤 내용을 다루게 되는지 알 수 있도록 이 점을 명시해 두는 것이 도움이 될 수 있습니다.
기본적으로 /u/ URL은 인덱싱되지 않으며, 이는 robots.txt와 페이지의 초기 헤더 요청 모두에 설정되어 있습니다.

4개의 좋아요
아니요, prerender 사용을 중단했기 때문입니다. 메인 메뉴, 로그인 버튼 등을 렌더링할 수 없었거든요.
Google 봇이 "앱"을 직접 가져갑니다.
Discourse의 숨겨진 사이트 설정을 크롤러에게 JS 버전을 제공하도록 설정해 두었습니다. Google은 이를 잘 처리하는 것 같습니다. (곧 이에 대한 추가 업데이트가 있을 예정입니다.)
좋은 지적입니다. /badges도 마찬가지네요…
저는 직접 수정한 robots 파일을 사용하고 있습니다.
Cloudflare workers를 사용하여 헤더를 수정하여 'index'로 설정하고 있습니다.
/u/FlyNumber/summary
/u/FlyNumber/activity
/u/FlyNumber/activity/topics
/u/FlyNumber/activity/replies
/u/FlyNumber/activity/likes-given
/u/FlyNumber/badges
해당 URL에 대해 canonical 태그를 완전히 제거하는 것이 올바른 방향의 한 걸음이라고도 지적하고 싶습니다. (개인적인 의견으로는 제 방식이 SEO에 더 유리하다고 생각합니다)
위에서 언급했듯이 noindex로 설정되어 있으므로, Discourse가 왜 canonical 태그를 생성하는지 이해가 되지 않습니다.
혹시 JS와 Cloudflare Workers를 사용하여 이 작업을 깔끔하게 처리하는 방법을 아시는 분이 있을까요? 이렇게 하면 Discourse 코드를 건드리지 않아도 됩니다.
/u/*/summary - (저는 /u/*에 대해서만 트리거를 설정할 수 있습니다) - 에 "트리거"를 설정하고, 다음과 같은 코드를 실행할 수 있습니다:
const canonical = document.querySelector('link[rel="canonical"]');
if (canonical !== null) {
canonical.href = 'NEW_HREF_GOES_HERE';
}
여기서 NEW_HREF_GOES_HERE에 사용자 이름을 전달하려면 어떻게 해야 할까요? 그렇게 하면 canonical 링크가 /u/*/summary가 아니라 /u/*로 설정됩니다.
도움 주시면 감사하겠습니다.
수정
혹시 관련 GitHub 페이지를 알려주실 수 있을까요? 코드를 직접 수정하는 운을 걸어볼 생각입니다.
system
(system)
에 닫힘
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.