← 전체 글로 돌아가기

Next.js

기술 블로그 JSON-LD를 넣기 전에 확인한 검색 결과 데이터 체크리스트

구조화 데이터를 복사해 붙이기보다 실제 글 정보와 맞는지부터 확인한 SEO 체크리스트입니다.

마크업이 있으면 검색 결과가 달라질까

글 상세 페이지에 JSON-LD를 추가하면서 처음에는 예제의 작성자와 날짜를 그대로 넣을 뻔했습니다. 화면에는 수정일, 마크업에는 발행일이 들어가면 나중에 무엇이 기준인지 설명하기 어렵습니다. 그래서 페이지 데이터 한 곳에서 값을 만들기로 했습니다.

Article 데이터는 실제 값으로 만든다

Next.js에서는 서버에서 받은 글 객체로 구조화 데이터를 구성했습니다. 문자열을 그대로 HTML에 넣지 않도록 JSON 직렬화도 확인했습니다.

const schema = {
  type: `BlogPosting`,
  headline: post.title,
  datePublished: post.publishedAt,
  dateModified: post.updatedAt,
  mainEntityOfPage: `${siteUrl}/posts/${post.slug}`
};

배포 전에 보는 항목

브라우저에서 페이지 소스를 열어 URL, 제목, 날짜가 화면과 같은지 비교했습니다. 개발 환경 도메인이 남는 실수가 특히 잦았습니다.

curl -s https://example.com/posts/sample | grep -o BlogPosting
  • canonical URL과 본문 URL이 같은 도메인인가
  • 존재하지 않는 작성자나 이미지를 만들어 넣지 않았는가
  • 발행일과 수정일의 시간대 형식이 일관적인가
  • 글이 바뀔 때 마크업도 같은 데이터에서 갱신되는가

기대치를 작게 잡은 결론

구조화 데이터는 노출을 보장하는 장치가 아니라 검색 엔진이 내용을 이해할 단서를 주는 작업입니다. 그래서 화려한 타입을 많이 넣기보다 실제 페이지와 어긋나지 않는 BlogPosting 하나부터 유지하는 쪽을 선택했습니다.