OGP·메타 태그 검증기
HTML 소스를 붙여넣기만 하면 Open Graph Protocol(OGP)과 Twitter Card 메타 태그를 한 번에 검증합니다. 누락된 태그와 절대 URL이 아닌 og:image를 감지하고, SNS에 공유했을 때의 모습을 카드 형태로 미리보기 할 수 있습니다.
공유했을 때의 모습을 정하는 메타 태그를 점검하기
링크를 SNS에 올렸을 때 나타나는 제목과 설명, 그림은 페이지의 `
`에 적은 Open Graph와 Twitter Card 메타 태그가 정합니다. 이 도구는 붙여 넣은 HTML에서 그것들을 뽑아내어 빠진 태그와 잘못된 값을 짚어 주고, 실제 카드에 가까운 모습으로 미리 보여 줍니다.**가장 흔한 탈은 `og:image`를 상대 경로로 적는 것입니다.** 각 서비스의 크롤러는 제 서버에서 그림을 가져가므로 `/img/ogp.png` 같은 경로로는 풀어낼 수 없어 **그림만 빠진 카드가 됩니다.** 반드시 `https://`로 시작하는 절대 URL로 적어 주십시오. **또 하나 알아 둘 것은, 이들 서비스가 크롤링한 결과를 캐시한다는 점입니다.** 태그를 고쳐도 예전 내용이 계속 보일 수 있으며, 그때는 각 서비스의 디버그 도구로 다시 가져오게 해야 합니다. 덧붙여 Twitter Card는 `twitter:` 태그가 없으면 `og:`로 기대므로 둘 다 적을 필요는 없습니다.
사용하는 방법
- HTML 소스를 붙여 넣습니다 ``의 내용만 넣어도 되고, 페이지 전체를 넣어도 무방합니다.
- 먼저 예시로 확인합니다 좋은 예와 나쁜 예가 마련되어 있어 판정의 차이를 미리 볼 수 있습니다.
- 지적된 항목을 읽습니다 **빠진 태그와, 절대 URL이 아닌 `og:image`가 짚입니다.**
- 미리보기로 모습을 확인합니다 올리기 전에 제목이 어떻게 접히고 설명이 어디서 잘리는지 볼 수 있습니다.
더 잘 활용하기 위한 팁
- og:image의 권장 크기는 가로 1200×세로 630px(가로세로 비율 1.91:1)입니다. 이미지가 너무 작거나 비율이 다르면 SNS 측에서 예상치 못하게 잘려서 표시될 수 있습니다.
- Facebook·LINE·Slack 등의 크롤러는 og:title/og:description을 읽지만, X(Twitter)는 별도의 twitter:title/twitter:description을 사용합니다. 두 가지를 모두 설정해 두면 어느 플랫폼에서도 올바르게 표시됩니다.
- twitter:card가 설정되어 있지 않으면 X는 og:title/og:description으로 대체를 시도하지만 이미지가 올바르게 표시되지 않을 수 있으므로 명시적으로 설정하는 것을 권장합니다.
- og:url에는 정규화된 페이지의 URL(https:// 절대 URL)을 지정해 주세요. 파라미터가 붙은 URL과의 중복 콘텐츠 판정을 피하는 데도 도움이 됩니다.
- 메타 태그를 변경한 직후 SNS에 공유해도 캐시된 이전 미리보기가 표시될 수 있습니다. Facebook의 공유 디버거처럼 각 SNS가 제공하는 재수집(recrawl) 도구로 캐시를 갱신하세요.
이럴 때 쓸 수 있습니다
글을 공개하기 전에 확인할 때
**내보낸 뒤에 링크가 망가져 보이면 캐시 탓에 고쳐도 돌아오지 않습니다.** 미리 보아 두는 편이 확실합니다.
템플릿의 출력을 검증할 때
CMS나 프레임워크가 내놓은 `
`를 붙여 넣어 뜻한 태그가 들어 있는지 확인할 수 있습니다.그림을 바꾼 것을 점검할 때
**새 `og:image`가 절대 URL인지는 놓치기 딱 좋은 대목입니다.**
다른 사이트의 표기를 참고할 때
잘 보이는 페이지의 소스를 붙여 넣어 어떤 태그를 갖춰 두었는지 볼 수 있습니다.
Open Graph 용어
- og:title
- 카드에 나타나는 제목입니다. **`
`과 달리 적을 수 있어 SNS용으로 짧게 고쳐 쓸 수 있습니다.** - og:description
- 카드의 설명문입니다. 너무 길면 잘리므로 요점을 앞에 둡니다.
- og:image
- 카드의 그림입니다. **반드시 절대 URL로 적어 주십시오.** 가로 1200 세로 630 픽셀쯤이 다루기 좋은 크기입니다.
- og:type
- 페이지의 종류입니다. 글이라면 `article`, 그 밖에는 `website`가 흔합니다.
- twitter:card
- 카드의 꼴을 정합니다. `summary_large_image`로 두면 그림이 큼직하게 나옵니다.
- og:url
- 그 페이지의 정규 URL입니다. **공유가 이리로 모이므로 질의 매개변수가 붙은 URL을 적지 않도록 조심합니다.**
자주 묻는 질문
/img/a.png 등)로 되어 있는 경우입니다. 대부분의 크롤러는 상대 URL을 해석할 수 없으므로 반드시 https://로 시작하는 절대 URL을 지정해 주세요. 서버가 크롤러의 User-Agent를 차단하고 있거나 이미지 크기가 너무 작은 경우에도 표시되지 않을 수 있습니다.<title>은 검색 결과 제목과 브라우저 탭에 사용되고, og:title은 SNS에 공유되었을 때의 카드 제목에 사용됩니다. og:title이 없으면 많은 크롤러가 <title>로 대체하지만, 반드시 의도한 문구가 되는 것은 아닙니다.summary_large_image를 권장합니다. 작은 썸네일 정도로 충분하다면 summary를 사용하세요. app과 player는 각각 앱 설치 유도와 동영상/오디오 임베드 전용이므로 일반적인 웹페이지에는 사용하지 않습니다.<title>과 meta description으로 대체해 미리보기를 생성하려 하지만, 이미지는 표시되지 않아 링크와 텍스트만 있는 밋밋한 모습이 되기 쉽습니다. 클릭률에 영향을 주므로 최소한 og:title·og:description·og:image 세 가지는 설정하는 것을 권장합니다.
여담 ― OGP가 탄생한 이유 ― Facebook이 "좋아요" 버튼을 작동시키기 위해 만든 구조
Open Graph Protocol(OGP)은 2010년 Facebook이 자사의 "좋아요" 버튼을 널리 보급하기 위해 만든 사양입니다. 당시 웹페이지는 Facebook에서 공유되어도 단순한 링크와 제목만 표시되어 클릭률이 좀처럼 오르지 않았습니다. Facebook은 "페이지 스스로가 SNS용 표시 내용을 선언할 수 있다면 더 매력적인 공유 경험을 만들 수 있다"고 생각해, 일반 HTML에 <meta property="og:xxx">라는 독자적인 네임스페이스를 추가하는 형태로 OGP를 설계했습니다.
흥미로운 점은 OGP가 원래 RDFa(HTML에 구조화된 데이터를 기술하기 위한 W3C 사양)를 기반으로 한다는 것입니다. Facebook은 기존 표준 규격을 재활용함으로써, 브라우저 제조사나 다른 회사의 협력 없이도 기존 HTML에 메타 태그를 추가하는 것만으로 새로운 기능을 구현할 수 있도록 설계했습니다. 이 "하위 호환성을 깨지 않고 확장한다"는 발상이 주효해, OGP는 Facebook 이외의 플랫폼(Slack·LINE·Discord 등)에도 사실상의 표준으로 널리 퍼졌습니다.
X(Twitter)는 처음에는 OGP를 그대로 따르지 않고 독자적인 Twitter Cards(twitter:xxx)라는 별도의 네임스페이스를 채택했습니다. 이는 기술적 필연이라기보다, 경쟁사인 Facebook이 만든 규격을 그대로 채택하고 싶지 않았던 사정도 있었다고 알려져 있습니다. 그 결과 지금도 많은 사이트가 og: 계열과 twitter: 계열 태그를 중복해서 작성해야 하며, 이것이 이런 OGP 검증 도구가 여전히 필요한 이유 중 하나입니다.