Google이 Discourse에서 robots.txt 처리 방식을 변경했나요?

내 보드가 지난 몇 주 동안 내 사이트에서 링크되어 있었고, 해당 URL을 Google에 제출했습니다. no index 경고가 있었지만, 프로필 페이지에 적용되는 것 같으니 좋은 신호입니다.

하지만 아직 Google에 아무것도 표시되지 않는데, 보드 측에서 추가로 해야 할 일이 있는지, 아니면 이제 Google이 크롤링할 때까지 기다리면 되는 건가요?

아마도 https://search.google.com/search-console/ 을 시도해 볼 수 있을 것 같습니다.

게시물 페이지가 robots.txt에 의해 차단된 것처럼 보이는데, 저는 그런 설정을 한 적이 없습니다. Discourse에서 이를 해제하기 위해 변경해야 하는 설정이 있을까요? 감사합니다.

사이트 설정에 allow index in robots txt 항목이 있습니다. 사이트 설정에서 이 항목을 검색해 보세요. 활성화되어 있어야 합니다(기본적으로 활성화되어 있음).

샘, 감사합니다. 해당 설정이 체크되어 있는데, 이 순서가 맞나요?

죄송합니다. 제가 헷갈렸네요. 차단된 URL들이 RSS 피드의 해당 항목들이었던 것 같습니다.

그렇다면 구글이 사이트를 업데이트하거나 크롤링할 때까지 기다리는 수밖에 없겠네요.

네, 이 문제가 계속 반복되고 있으며 지원 요청도 계속 발생하고 있습니다.

Googlebot은 다소 성가신 면이 있습니다. robots.txt를 통해 특정 항목의 색인을 원하지 않는다고 Googlebot에게 알릴 수 없습니다. Googlebot을 만족시킬 수 있는 수정 작업을 진행 중이지만, 배포까지 시간이 좀 걸릴 것입니다.

  • robots.txt에서 Googlebot에게 … "사이트의 모든 .rss 페이지를 색인하지 마세요"라고 안내합니다.

  • Googlebot은 사이트 어딘가에 있는 .rss 파일에 대한 링크를 찾습니다.

  • 그 후 Googlebot은 사이트 운영자에게 사이트 밖에 .rss 파일이 있지만, 색인할 수 없기 때문에 링크에 대해 어떻게 해야 할지 판단할 수 없다고 불평합니다. 때로는 이 콘텐츠를 검색 결과에 포함시키기도 합니다.

  • 사이트 운영자들은 meta에 불만을 제기합니다.

우리의 일반적인 해결 방법은 Googlebot이 사이트의 모든 페이지를 크롤링하도록 허용하고, canonical 태그와 HTTP 헤더의 색인 힌트를 사용하여 성공의 경로로 유도하는 것입니다.

저는 @jomaxro와 함께 이 작업을 진행 중이며 이미 상당한 진전을 이루었습니다.

(@codinghorror 참고)

업데이트해줘서 고마워, Sam. 다 이해가 가고, 그 고충도 충분히 느껴져. 나는 SEO 전문가가 아니지만, 예전엔 더 큰 웹사이트를 운영했고 SEO 팀과도 일했었거든. 포럼에서는 정말 복잡한 경우가 많았어!

정확히 짚고 넘어갈 점이지만, 이는 토론 포럼이라는 성격과는 무관합니다. 이는 Google이 robots.txt를 처리하는 …흥미로운… 방식과 관련이 있습니다. Robots.txt Introduction and Guide | Google Search Central  |  Documentation  |  Google for Developers 참조

robots.txt로 차단된 페이지도 다른 사이트에서 링크가 걸려 있으면 인덱싱될 수 있습니다
Google은 robots.txt에 의해 차단된 콘텐츠는 크롤링하거나 인덱싱하지 않지만, 웹의 다른 곳에서 링크가 걸린 경우에도 차단된 URL을 발견하고 인덱싱할 수 있습니다. 그 결과, URL 주소와 해당 페이지로 연결되는 링크의 앵커 텍스트 등 공개적으로 이용 가능한 기타 정보는 여전히 Google 검색 결과에 표시될 수 있습니다. URL이 Google 검색 결과에 표시되지 않도록 하려면 서버의 파일을 비밀번호로 보호하거나 noindex 메타 태그 또는 응답 헤더를 사용해야 합니다(또는 페이지를 완전히 제거해야 합니다).

오래전부터 우리는 인덱싱을 원하지 않는 페이지들을 Discourse 사이트마다 기본적으로 존재하는 robots.txt 파일에 포함시켜 왔습니다. 이전에는 이것이 잘 작동했습니다. 과거의 정확한 시점은 알 수 없으나, 더 이상 robots.txt만으로 충분하지 않게 되었고, Google은 robots.txt를 통해 차단되어 있더라도 다른 곳에서 링크가 걸린 페이지를 인덱싱하기로 결정했습니다.

따라서 올해 초 우리는 특정 페이지에 noindex 헤더를 포함하는 테스트를 시작했습니다. 이는 잘 작동했지만, robots.txt와 헤더 사이에 충돌이 발생하는 문제가 생겼습니다. Block Search Indexing with noindex | Google Search Central  |  Documentation  |  Google for Developers 참조

중요! noindex 지시문이 효과적으로 작동하려면 해당 페이지가 robots.txt 파일에 의해 차단되어 있어서는 안 됩니다. 페이지가 robots.txt 파일에 의해 차단되면 크롤러는 noindex 지시문을 절대 볼 수 없으며, 다른 페이지에서 해당 페이지로 링크가 걸린 경우처럼 검색 결과에 여전히 표시될 수 있습니다.

이로 인해 오늘에 이르게 되었습니다. 우리는 robots.txt에서 특정 페이지를 제거하는 것을 테스트하고 있습니다. Google 문서에 기반하여 이러한 모든 변경 사항을 수행하고 있으므로 Googlebot과의 호환성에는 문제가 없음을 알고 있지만, 다른 주요 크롤러들에서도 문제가 발생하지 않는지 확인해야 하므로 주의가 필요합니다.

강조하기 위해 인용합니다. Google이 동작 방식을 변경한 것이므로, 우리 쪽이 적응하는 데는 시간이 조금 걸릴 것입니다.

제프, 안녕하세요. 말씀하신 내용은 다 이해하고 있습니다. 다만 제 Google 설정에서 제가 무언가를 잘못해서 스레드 페이지가 숨겨진 건 아닌지 다시 확인하고 싶었습니다. 메인 홈페이지와 카테고리 페이지는 Google에 노출되는데, 스레드 페이지는 하나도 안 보이거든요. 이미 몇 달이 지났습니다. 제 사이트 주소는 이렇습니다: https://community.jackwallington.com/

최근 Google의 동작 변경 사항에 대응하기 위해 우리 측에서 필요한 모든 조정을 마쳤다고 생각합니다. @jomaxro 님이 확인해 주실 수 있을까요? Discourse의 최신 버전을 사용하시는 것이 좋습니다.

확신할 수 없으니 확인해 봐야 할 것 같습니다. 테스트 중에 수동으로 robots.txt를 변경한 적이 있는 것 같은데 (Meta에서만)…

discourse/app/controllers/robots_txt_controller.rb at main · discourse/discourse · GitHub 을 살펴보면 변경 사항이 로컬(메타 전용)에 있는 것으로 보입니다. 이 부분을 수정하겠습니다. 아직 몇 개의 장시간 실행되는 테스트가 진행 중이지만, 꽤 확신합니다.

에 따라 필요한 변경 사항을 적용했습니다.

게시물 페이지 어딘가에 no index가 설정되어 있는 건가요? 구글은 이제 이를 무시한다고 하지만요.

해당 헤더를 추가하는 플러그인을 설치하지 않았다면, 그런 헤더가 추가되는 방법을 생각할 수 없습니다. Google은 noindex 헤더를 무시하지 않습니다. 다른 사이트가 내 페이지를 가리킬 때 Google은 robots.txt를 무시합니다. 크롤링 시에는 robots.txt를 존중하므로, 위 커밋에서는 이전에 추가된 noindex 헤더를 우선시하기 위해 robots.txt 항목을 제거했습니다.

Google Search Console에 가입하여 Google이 실제로 무엇을 보고 있는지 직접 확인해 보시길 권합니다. 토픽이 표시되지 않도록 막고 있는 다른 문제가 있을 수도 있습니다.

조슈아, 감사합니다. Google Search Console는 모든 스레드가 목록에 표시된다고 하며, 문제없는 상태입니다. 그런데 검색을 해보면 홈 페이지와 카테고리 페이지는 표시되는데, 스레드 페이지가 표시되지 않아 매우 이상합니다.

이 부분을 되돌리고, googlebot에 대해 이 조건을 명시적으로 처리하겠습니다.

Googlebot은 매우 똑똑한 크롤러이지만, 다른 많은 크롤러들은 그렇지 않습니다.

이해합니다. 나중에 커밋된 내용도 되돌려야 한다는 점을 참고하세요.

이 문제를 해결하기 위해 이 PR을 만들었습니다:

Google은 특화된 규칙을 유지하게 되며, 그렇게 정교하지 않은 다양한 봇에 대해 더 나은 보호 기능을 함께 제공합니다. 기본 robots.txt는 이제 다음과 같습니다:

# robots.txt 파일 사용법에 대한 문서화는 http://www.robotstxt.org/robotstxt.html 을 참조하세요
#
User-agent: mauibot
Disallow: /


User-agent: semrushbot
Disallow: /


User-agent: ahrefsbot
Disallow: /


User-agent: blexbot
Disallow: /


User-agent: seo spider
Disallow: /


User-agent: *
Disallow: /admin/
Disallow: /auth/
Disallow: /assets/browser-update*.js
Disallow: /email/
Disallow: /session
Disallow: /user-api-key
Disallow: /*?api_key*
Disallow: /*?*api_key*
Disallow: /badges
Disallow: /u
Disallow: /my
Disallow: /search
Disallow: /tags
Disallow: /g
Disallow: /t/*/*.rss
Disallow: /tags/*.rss
Disallow: /c/*.rss


User-agent: Googlebot
Disallow: /admin/
Disallow: /auth/
Disallow: /assets/browser-update*.js
Disallow: /email/
Disallow: /session
Disallow: /user-api-key
Disallow: /*?api_key*
Disallow: /*?*api_key*