SEM.ai
자동화

GTM 스키마 마크업 추가 방법 — 개발자 없이 JSON-LD 구조화 데이터 적용하기

개발 배포 없이 GTM Custom HTML 태그로 JSON-LD 구조화 데이터를 즉시 적용하는 법. 단계별 가이드와 흔한 실수, 검증 방법까지 포함한다.

스키마 마크업은 리치 스니펫의 핵심이지만, 대부분의 마케터는 "개발팀에 요청해야 한다"는 이유로 포기한다. GTM Custom HTML 태그 하나면 배포 사이클 없이, 어떤 페이지에도 JSON-LD를 즉시 주입할 수 있다. 구조화 데이터 적용이 밀리는 동안 경쟁사가 리치 스니펫을 선점하는 걸 손 놓고 볼 필요가 없다.

개발팀에 스키마 마크업 적용 티켓을 열었더니 3주 뒤로 밀린 적 있는가? GTM이면 오늘 적용하고 Rich Results Test로 바로 검증할 수 있다.

GTM으로 스키마를 주입하는 이유

HTML <head>에 JSON-LD를 직접 심는 방식은 개발자 의존도가 높다. 페이지마다 배포가 필요하고, 수정할 때마다 PR을 열어야 한다. GTM은 이 흐름을 완전히 끊는다.

구글 크롤러는 렌더링된 DOM에서 JSON-LD를 읽는다. GTM이 페이지 로드 시 <script type="application/ld+json"> 블록을 DOM에 삽입하면, Googlebot은 이를 네이티브 마크업과 동일하게 처리한다. 단, JavaScript 렌더링을 지원하는 크롤러 기준이다 — 구글은 이를 공식 지원하며, 이 방식으로 적용된 스키마도 리치 스니펫 자격을 얻는다.

GTM JSON-LD 주입 — 단계별 가이드

1단계: Custom HTML 태그 생성

GTM 컨테이너 → Tags → New → Tag Type: Custom HTML

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "{{Page Title}}",
  "datePublished": "{{datePublished}}",
  "image": "{{ogImage}}",
  "author": {
    "@type": "Organization",
    "name": "{{brandName}}"
  }
}
</script>

GTM 변수({{Page Title}}, {{Page URL}})를 그대로 쓸 수 있어 동적 값 주입이 가능하다. datePublished, image 등 페이지별로 달라지는 값도 GTM 변수나 Data Layer로 처리해야 한다 — 날짜를 하드코딩하면 모든 페이지에 동일한 발행일이 찍히는 심각한 오류가 생긴다. Google의 Article 리치 스니펫에는 image 필드가 필수이므로 반드시 포함해야 한다.

2단계: 트리거 설정

  • 전체 페이지: All Pages → Page View
  • 특정 URL만: Page URL contains /blog/
  • 페이지 타입별: Custom Event 또는 Data Layer Variable

블로그 포스트엔 Article 스키마, 제품 페이지엔 Product 스키마를 별도 트리거로 분리하면 관리 구조가 훨씬 깔끔해진다.

3단계: Preview 모드로 검증

GTM Preview를 켜고 대상 페이지를 열면 Tags Fired 목록에서 태그 실행 여부를 실시간으로 확인할 수 있다. 여기서 정상 확인 후 게시해야 한다 — 이 단계를 건너뛰면 잘못된 JSON이 라이브에 나간다.

4단계: Rich Results Test 검증

Google Rich Results Test에 URL을 입력해 오류 없이 스키마 타입이 감지되면 완료다. 게시(Publish) 이후 실제 URL로 반드시 재검증한다.

자주 하는 실수 — 그리고 그 이유

실수 1: 기존 JSON-LD와 중복 주입

페이지 소스에 이미 application/ld+json이 있는 상태에서 GTM으로 동일 타입을 추가하면 구글이 어느 쪽을 우선할지 모호해진다. 적용 전 반드시 소스에서 중복 여부를 확인한다.

실수 2: 모든 값을 정적으로 하드코딩

"headline": "우리 회사 블로그"처럼 고정값을 쓰면 모든 페이지에 동일한 데이터가 찍힌다. {{Page Title}} 같은 GTM 내장 변수를 쓰면 한 태그로 모든 페이지에 올바른 값을 삽입할 수 있다.

실수 3: Preview 없이 바로 게시

JSON 문법 오류가 있어도 GTM은 아무 경고 없이 게시된다. Preview 모드에서 태그 실행 확인 + Rich Results Test 검증까지 마친 뒤 게시하는 것이 순서다.

실전 체크리스트

  • GTM 컨테이너가 대상 페이지에 설치되어 있는지 확인
  • 기존 HTML에 동일 타입 JSON-LD 없는지 소스 검색 (application/ld+json)
  • 트리거가 의도한 URL 패턴에만 적용되는지 Preview로 검증
  • Rich Results Test에서 오류 없이 스키마 타입 감지 확인
  • GTM 게시 후 실제 URL로 재검증

Wrap-up

GTM Custom HTML 태그는 마케터가 개발 배포 사이클 밖에서 SEO를 직접 컨트롤할 수 있는 가장 강력한 레버 중 하나다. GTM 스키마 마크업 추가에 수 주씩 걸리던 병목을 오늘 제거할 수 있다.


실제 마케팅 실무 경험을 기반으로 작성했습니다.


이 주제와 관련해 SEO 또는 마케팅 자동화 프로젝트를 진행 중이시라면, 아래 버튼을 통해 문의를 남겨주세요. 검토 후 이메일로 답변드립니다.

문의하기 →

schema-markupgtmtechnical-seojson-ldno-code