여기에는 두세 개의 오프바이원(off-by-one) 오류가 겹쳐 있는 것 같습니다…
토픽에 게시물이 18개가 되는 순간, sitemap_recent.xml에 페이지 번호가 포함된 URL(https://forum.example.com/t/slug/123?page=2)이 표시되기 시작합니다.
문제 1: 게시물이 20개가 될 때까지 2페이지는 존재하지 않지만, 사이트맵에는 해당 링크가 표시됩니다.
기대 동작: 토픽에 게시물이 20개가 될 때까지 사이트맵에 page=2 링크가 표시되지 않아야 합니다.
문제 2: 게시물이 18개인 경우, 해당 링크를 클릭하면 "해당 페이지가 존재하지 않습니다"라는 오류가 발생합니다.
기대 동작: 이를 적절히 처리하여 사용자가 토픽의 마지막 페이지로 리다이렉트되어야 합니다.
문제 3: 게시물이 19개인 경우, 해당 링크를 클릭하면 "오류. 로드 중. 문제가 발생했습니다"라는 메시지가 표시됩니다.
기대 동작: 이를 적절히 처리하여 사용자가 토픽의 마지막 페이지로 리다이렉트되어야 합니다.
문제 4: 게시물이 20개 이상이지만 게시물이 삭제되어 표시 가능한 게시물의 총 수가 줄어든 경우, 새 게시물이 하나 작성될 때까지 ?page=2가 최근 사이트맵에 남아있고, 작성된 후에는 사라집니다.
기대 동작: 페이지 번호가 사라지거나(또는 더 높은 페이지의 경우: 감소하여) 실제 사용 가능한 페이지 수를 반영해야 합니다.
더 나쁜 점: 이 잘못된 링크가 구글에도 표시되고 있습니다!
문제 5: 해당 링크를 클릭하면 사용자에게 오류가 발생합니다.
하지만 구글에서는 중복 콘텐츠가 생성되고 있는 것으로 보입니다.
메타(Meta)에서의 재현 방법:
-
답글이 17개 또는 18개인 토픽을 찾습니다:

-
https://meta.discourse.org/sitemap_recent.xml에서 해당 토픽을 찾습니다.
-
링크를 따라갑니다.
-
구글에서 확인합니다.


