검색창에 회사 이름을 넣으면 3년 전에 쓰던 주소가 뜨고, AI 챗봇에 영업시간을 물으면 토요일에도 문을 연다고 답합니다. 명함도 간판도 다 바꿨는데 화면에 뜨는 정보만 그대로입니다.
이런 일은 검색엔진이나 AI가 회사를 몰라서 생기지 않습니다. 홈페이지가 "우리 상호와 주소와 영업시간은 이것입니다"라고 기계가 읽을 수 있는 형태로 한 번도 말하지 않았기 때문입니다. 그 선언을 담당하는 것이 구조화 데이터입니다.
틀린 정보는 홈페이지가 침묵한 결과입니다
사람이 읽는 페이지에는 보통 주소가 적혀 있습니다. 문제는 그 주소가 푸터 이미지 안에 있거나, 지점 주소와 섞여 있거나, 인사말 문장에 묻혀 있다는 점입니다. 기계는 그중 무엇이 공식 정보인지 고를 근거가 없습니다.
근거가 없으면 다른 데이터를 씁니다. 오래된 디렉터리 등록, 블로그 후기, 지도에 남은 옛 등록 정보 같은 것들입니다.
홈페이지가 침묵하면, 가장 오래된 정보가 가장 오래 살아남습니다.
Organization에는 필수 항목이 하나도 없습니다
구글 공식 문서는 Organization 구조화 데이터에 필수 속성이 없다고 밝힙니다. 대신 해당하는 항목을 모두 넣으라고 권장합니다. 권장 목록에는 name, legalName, alternateName, url, logo, address, telephone, email, contactPoint, description, foundingDate, numberOfEmployees, sameAs, taxID, vatID, iso6523Code, duns, leiCode, naics, globalLocationNumber가 들어 있습니다.
넣을 위치도 정해져 있습니다. 구글은 홈페이지 또는 회사를 설명하는 한 페이지에 두라고 권장하고, 모든 페이지에 넣을 필요는 없다고 명시합니다. 전 페이지에 뿌리면 고쳐야 할 지점만 늘어납니다.
상호와 주소는 항목을 쪼개서 적으세요
상호는 name 하나로 끝나지 않습니다. 법인명은 legalName, 줄여 부르는 이름이나 영문 표기는 alternateName에 따로 적습니다. 구글은 name을 사이트에서 쓰는 이름과 일치시키라고 안내합니다.
주소는 PostalAddress 안에 streetAddress, addressLocality, addressRegion, postalCode, addressCountry를 나눠 넣습니다. 한 줄 문자열로 적으면 도시와 우편번호가 분리되지 않습니다. 전화번호는 telephone에 국가번호와 지역번호까지 포함해 적습니다.
영업시간은 LocalBusiness 쪽 속성입니다
영업시간은 Organization에 없고 LocalBusiness에 있습니다. LocalBusiness의 필수 속성은 name과 address 둘뿐이며, openingHoursSpecification은 권장 속성입니다. dayOfWeek와 opens, closes를 한 묶음으로 쓰고 요일마다 다르면 배열로 여러 개 넣습니다.
표기 규칙이 문서에 정해져 있습니다. 24시간 영업은 opens를 00:00, closes를 23:59로 적습니다. 종일 휴무는 둘 다 00:00으로 적습니다. 자정을 넘기는 영업은 토요일 18:00에서 03:00처럼 한 항목으로 씁니다.
명절이나 계절 휴무는 validFrom과 validThrough에 YYYY-MM-DD 형식으로 기간을 적습니다. 두 항목을 비우면 1년 내내 적용되는 시간으로 읽힙니다. 연휴 공지를 게시판에만 올리고 마크업을 안 고치면 기계는 평소 시간을 계속 답합니다.
sameAs는 흩어진 등록 정보를 한 엔티티로 묶습니다
schema.org는 sameAs를 "항목의 정체를 모호하지 않게 가리키는 참조 웹페이지의 URL"로 정의합니다. 구글 문서는 회사에 대한 추가 정보가 있는 다른 사이트의 페이지 URL이라고 설명하고, 여러 개를 넣어도 된다고 밝힙니다.
실무에서는 회사 SNS 계정, 지도 등록 페이지, 채용 사이트 기업 페이지, 공개 사업자 정보 페이지를 모두 여기에 넣습니다. 이름이 조금씩 다르게 등록된 페이지들을 한 회사로 연결하는 끈입니다.
Organization과 LocalBusiness를 따로 쓸 때는 둘을 같은 식별자로 묶어 한 엔티티로 보이게 하는 방식이 쓰입니다. 구글 문서가 요구하는 사항은 아니지만, 같은 회사가 서로 다른 두 덩어리로 등장하는 것보다 안전합니다.
사업자 정보는 taxID와 iso6523Code로 적습니다
taxID는 세무 식별번호이고, 구글은 address에 적은 국가와 일치해야 한다고 적습니다. vatID는 부가세 코드이며 공개 등록처에서 조회할 수 있어 신뢰 신호가 된다고 설명합니다.
국제 식별자는 iso6523Code 하나로 모으는 쪽을 권합니다. ICD와 식별자를 콜론으로 붙여 쓰며, 흔히 쓰이는 ICD는 0060(DUNS), 0088(GLN), 0199(LEI)입니다. duns와 leiCode 속성도 있지만 구글은 iso6523Code에 0060:, 0199: 접두사를 붙이는 방식을 권장합니다.
한국 사업자등록번호에 해당하는 ICD 코드는 구글 문서에 나와 있지 않습니다. 확인되지 않은 코드를 지어내지 말고 taxID에 사업자등록번호를 적는 선에서 멈추세요.
화면에 표시되는 속성과 뒤에서만 쓰이는 속성은 다릅니다
결과 화면에 직접 영향을 주는 대표 항목은 logo입니다. 구글은 logo가 검색 결과와 지식 패널에 쓰이는 로고를 결정할 수 있다고 설명하며, 112x112픽셀 이상이고 크롤·색인이 가능해야 한다는 조건을 둡니다. 흰 배경에서 어떻게 보이는지도 확인하라고 안내합니다.
priceRange에는 길이 제한이 있습니다. 100자 이상이면 구글은 가격대를 표시하지 않습니다. 설명을 길게 써 넣으면 아예 안 나옵니다.
반면 식별 코드는 화면에 뜨는 항목이 아닙니다. 구글은 iso6523Code나 naics 같은 일부 속성이 다른 조직과 구별하기 위해 뒤에서 쓰인다고 적습니다. 번호를 넣었는데 검색 결과가 그대로여도 정상입니다.
평점과 리뷰는 남의 가게 것만 적을 수 있습니다
LocalBusiness의 aggregateRating과 review는 다른 지역 업체의 리뷰를 수집하는 사이트에만 권장되는 속성입니다. 자기 홈페이지에 자기 별점을 적는 용도가 아닙니다.
구조화 데이터 일반 지침은 마크업이 페이지 내용을 그대로 반영해야 하며 화면에 보이지 않는 내용을 마크업하지 말라고 못 박습니다. 어기면 수동 조치가 내려질 수 있고, 수동 조치를 받으면 리치 결과 자격을 잃습니다. 업종이 여러 개면 @type을 배열로 적고, additionalType은 지원되지 않습니다.
AI를 위한 전용 스키마는 없습니다
구글의 AI 기능 문서는 "추가로 넣어야 하는 특별한 schema.org 구조화 데이터는 없습니다"라고 적습니다. 대신 권장 사항으로 "구조화 데이터가 페이지에 보이는 텍스트와 일치하게 하라"를 들고, 비즈니스 프로필과 머천트 센터 정보를 최신으로 유지하라는 항목을 함께 둡니다.
AI용 새 스키마를 찾을 일이 아니라, 이미 있는 Organization과 LocalBusiness를 화면과 똑같이 맞추는 일입니다.
이것만 고쳐서는 해결되지 않는 경우입니다
지도와 지식 패널에 뜨는 업체 정보는 홈페이지 마크업만으로 갱신되지 않습니다. 구글이 비즈니스 프로필 정보를 따로 확인하라고 적어둔 이유입니다. 폐점한 지점이 남아 있거나 지점이 여러 곳이면 등록 정보 쪽을 먼저 정리하세요.
검색 결과의 사이트 이름도 다른 입구입니다. WebSite 타입의 name과 alternateName으로 선언하고 도메인 루트 홈페이지에만 넣어야 하며, 하위 디렉터리는 지원되지 않습니다. 구글은 선택된 사이트 이름을 수동으로 바꿔줄 수 없다고 밝힙니다.
- 상호·법인명·약칭이 각각 name, legalName, alternateName에 들어갔는지
- 주소가 한 줄 문자열이 아니라 5개 하위 속성으로 쪼개졌는지
- 영업시간이 게시판 공지와 마크업 두 곳에서 같은지
- sameAs에 적은 외부 페이지의 상호가 홈페이지와 같은지
- 마크업에 적은 내용이 화면에도 보이는지
작업 범위를 더 알아보려면 실무 가이드 글과 구글 Organization 구조화 데이터 문서를 함께 보세요. 홈페이지 제작과 운영은 Codeforest에서 상담할 수 있습니다.
결론: 틀린 정보를 지우려 하지 말고 정답을 한 곳에 두세요
흩어진 틀린 정보를 하나씩 쫓아다니는 방식으로는 끝이 없습니다. 홈페이지에 Organization과 LocalBusiness로 상호·주소·전화·영업시간을 선언하고, sameAs로 외부 등록 정보를 그 선언에 연결하는 것이 순서입니다.
단 구글은 구조화 데이터를 쓰는 기능이 검색 결과에 표시된다고 보장하지 않습니다. 작업 뒤에는 리치 결과 테스트로 치명적 오류만 잡고 Search Console의 구조화 데이터 보고서를 확인하세요. 표시 여부는 구글이 정하지만, 정답을 가진 쪽이 되는 것은 우리가 정합니다.