OG 태그 고쳤는데 카톡·페북 미리보기가 안 바뀌는 이유
링크를 카카오톡이나 페이스북에 붙여넣으면 제목·설명·썸네일이 자동으로 뜨는 미리보기 카드가 생성됩니다. 그런데 페이지의 og:title이나 og:image를 분명히 수정했는데도 이미 공유된 링크의 카드는 그대로인 경우가 흔합니다. 새로 고침을 반복해도 안 바뀌고, 심지어 다른 사람에게 링크를 다시 보내도 옛날 카드가 뜹니다. 이 현상의 원인은 페이지 코드가 아니라 SNS 플랫폼이 OG 태그를 자체 서버에 캐시해두는 구조에 있습니다. 이 가이드는 왜 이런 캐싱이 생겼는지, 그리고 캐시를 강제로 갱신하는 방법을 정리했습니다.
1. Open Graph는 왜 만들어졌나
Open Graph 프로토콜은 페이스북이 2010년 f8 개발자 컨퍼런스에서 공개한 표준입니다. 그 이전에는 링크를 공유하면 각 플랫폼이 페이지를 임의로 크롤링해서 첫 이미지나 아무 텍스트나 끌어와 미리보기를 만들었고, 그 결과가 매번 제각각이었습니다. 페이스북은 웹페이지를 "소셜 그래프의 객체"로 다루기 위해 og:title, og:description, og:image, og:url이라는 표준 메타 태그 세트를 제안했고, 이후 LinkedIn·카카오톡·Slack·Discord 등 대부분의 플랫폼이 이 표준을 그대로 채택했습니다. og:title과 og:description을 오픈 그래프 생성기로 직접 만들어보면 이 4개 태그가 핵심이라는 걸 바로 확인할 수 있습니다.
2. 크롤링은 "한 번만" 일어난다
여기서 핵심은 각 플랫폼이 링크가 처음 공유될 때 한 번 페이지를 크롤링해서 og 태그 값을 읽어온 뒤, 그 결과를 자체 서버에 저장해둔다는 점입니다. 이후 같은 URL이 다시 공유되면 실제 페이지를 다시 방문하지 않고 저장된 캐시를 그대로 보여줍니다. 이렇게 하는 이유는 명확합니다 — 사용자가 링크를 붙여넣을 때마다 매번 원본 서버에 요청을 보내면 응답 속도가 느려지고, 원본 사이트에도 과도한 트래픽 부하가 걸리기 때문입니다. 즉 캐싱은 버그가 아니라 의도된 성능 최적화입니다. 문제는 이 캐시의 유효기간이 짧지 않아서, 원본 페이지의 og:image URL이나 og:title을 바꿔도 이미 캐시된 카드에는 반영되지 않는다는 점입니다.
3. 플랫폼별 캐시 강제 갱신 방법
| 플랫폼 | 갱신 도구 | 방법 |
|---|---|---|
| Sharing Debugger | developers.facebook.com/tools/debug 에서 URL 입력 → "Scrape Again" 클릭 | |
| 카카오톡 | 카카오 디벨로퍼스 공유 디버거 | developers.kakao.com 도구에서 URL 재검사 요청 |
| Post Inspector | linkedin.com/post-inspector 에서 URL 입력 후 재크롤링 | |
| Slack | 별도 도구 없음 | URL 끝에 ?v=2 같은 더미 쿼리를 붙여 새 URL로 인식시킴 |
공통 원리는 "이 URL을 강제로 다시 크롤링해달라"고 플랫폼 서버에 명시적으로 요청하는 것입니다. 도구가 없는 서비스라면 URL 끝에 쿼리스트링을 붙여 완전히 새로운 URL로 인식시키는 우회법도 씁니다(단 이 경우 기존에 공유된 링크의 카드는 그대로 남습니다). og:title·og:image를 실제로 어떻게 마크업해야 하는지는 메타 태그 생성기로 함께 점검하면 좋습니다.
4. og:image가 안 뜨는 또 다른 원인
캐시 문제와 별개로, og:image 자체가 처음부터 안 읽히는 경우도 있습니다. 이미지 URL이 절대경로(https://로 시작)가 아니거나, robots.txt가 크롤러의 이미지 접근을 막고 있거나, 이미지 용량이 너무 크거나(권장 8MB 이내), og:image:width/height 값이 실제 이미지 비율과 크게 다르면 일부 플랫폼이 카드 자체를 생략합니다. 권장 이미지 크기는 1200×630px(비율 1.91:1)입니다. 태그가 제대로 생성되고 있는지는 스키마 검증기나 브라우저 개발자 도구의 Elements 탭에서 실제 렌더링된 head를 직접 확인하는 것이 가장 확실합니다.
5. 트위터(X)는 다르게 동작한다
트위터는 og 태그 세트와 별도로 twitter:card 메타 태그를 우선 사용합니다. twitter:card가 없으면 og:title·og:description·og:image로 자동 폴백하지만, 있으면 그쪽을 우선 읽습니다. 트위터도 동일하게 캐시를 사용하므로 트위터 카드 생성기로 태그를 만든 뒤에는 카드 검증 도구로 캐시 갱신을 별도로 요청해야 합니다.
자주 묻는 질문
Q. OG 태그를 처음 배포한 페이지도 캐시 문제가 생기나요?
아니요. 캐시는 "한 번이라도 공유된 URL"에만 쌓입니다. 아직 한 번도 공유되지 않은 새 페이지라면 처음 공유 시점에 최신 태그를 그대로 읽어갑니다.
Q. 카카오톡 미리보기도 페이스북 디버거로 갱신되나요?
아니요. 카카오톡은 자체 크롤러와 캐시를 운영하므로 페이스북 Sharing Debugger로는 갱신되지 않습니다. 카카오 디벨로퍼스에서 제공하는 도구를 따로 써야 합니다.
Q. 캐시를 갱신했는데도 여전히 예전 이미지가 뜹니다.
og:image URL 자체를 바꾸지 않고 같은 파일만 교체했다면 CDN이나 브라우저 단의 이미지 캐시가 원인일 수 있습니다. 이미지 URL 끝에 버전 쿼리(예: ?v=2)를 붙여 새 URL로 만들면 확실하게 갱신됩니다.
Q. Open Graph 태그는 검색 순위에도 영향을 주나요?
직접적인 순위 요인은 아닙니다. OG 태그는 소셜 공유 미리보기용이고, 구글 검색 스니펫은 title 태그와 meta description을 우선 사용합니다. 다만 클릭을 유도하는 매력적인 카드가 간접적으로 트래픽에 영향을 줄 수 있습니다.