며칠을 고생해서 완벽한 황금 레시피를 블로그에 올렸는데, 정작 검색결과 창에서는 그저 밋밋한 텍스트 한 줄로 뭉개져 보인다면 누구라도 요리할 맛이 뚝 떨어질 겁니다.
핵심은 독자의 군침을 검색창에서부터 돌게 만드는 겁니다. 굳이 내 블로그에 들어와서 스크롤을 내리게 만들지 마세요. 검색로봇에게 완성된 요리 사진, 정확한 조리 시간, 그리고 필수 식재료 리스트를 딱 쥐여주어 검색결과 첫 화면에 요약본을 띄우는 마법. 그게 바로 레시피(Recipe) 구조화된 데이터가 푸드 블로거의 조회수를 폭발시키는 진짜 이유입니다.
맛있는 냄새가 나지 않는 글은 철저히 외면받습니다
가까운 지인이 집밥과 한식 레시피를 전문으로 올리는 요리 블로그를 하나 운영합니다. 워낙 손맛이 좋고 계량을 정확하게 해서, 한 번 따라 해본 사람들의 북마크 비율이 엄청났죠. 블로그 댓글을 보면 "평생 정착할 김치찌개 맛이네요", "요리 초보인데 덕분에 칭찬받았어요" 같은 극찬이 매일같이 쏟아졌습니다. 근데 애널리틱스로 신규 유입을 분석해보니 참혹하더라고요. 검색 노출은 꽤 높은데, 정작 내 사이트로 넘어오는 클릭수는 대형 레시피 앱이나 인플루언서들에 비해 턱없이 부족했습니다.
도대체 왜 안 들어오나 싶어서 네이버 통합검색 창에 지인의 메인 요리 키워드를 쳐봤습니다. 이유는 너무나도 뼈아프고 명백했습니다. 유명한 플랫폼들의 링크 밑에는 먹음직스러운 완성 요리 썸네일과 함께 [조리시간 30분 · 2인분]이라는 영롱한 요약 정보가 딱 달라붙어 있었습니다. 반면 지인의 블로그는 "안녕하세요, 오늘은 맛있는 김치찌개를..." 하는 쓸데없는 서론 텍스트만 덜렁 노출되고 있었죠. 바쁜 저녁 시간, 어떤 재료가 얼마나 필요한지 직관적으로 보여주는 경쟁사를 두고 굳이 텍스트만 덜렁 있는 지인의 글을 클릭할 이유가 전혀 없었던 겁니다. 진짜 미칠 노릇이죠.
지인은 그런 화려한 레시피 스니펫이 네이버와 제휴를 맺은 대형 플랫폼만 달아주는 VIP 전용 기능인 줄 알았습니다. 뭐랄까, 완전히 착각하고 있었던 거죠. 그건 누구나 검색로봇의 언어로 "내 요리 정보가 이렇소"라고 선언만 하면 공짜로 달아주는 요리사의 명찰이었으니까요.
schema.org에서 규정한 Recipe 마크업은 로봇에게 "이 글은 단순한 일기가 아니라 정확한 계량과 조리 시간이 포함된 요리법이다"라고 요약해서 알려주는 번역기입니다. 본문 구석에 숨겨진 재료 목록을 로봇이 스스로 읽고 예쁘게 분류해 주진 않거든요. 이걸 우리가 직접 해체해서 아주 명확한 규칙으로 로봇의 뇌 구조에 꽂아주는 방식입니다.
복붙으로 끝내는 침샘 자극 세팅법
코딩의 'ㅋ' 자도 모르는 지인은 또다시 지레 겁을 먹었습니다. JSON-LD라느니 ISO-8601 포맷이라느니 하는 말들이 외계어처럼 들렸을 테니까요. 하지만 원리를 찬찬히 뜯어보면 요리 재료를 손질하듯 단순한 빈칸 채우기 게임에 불과합니다.
머리 아프게 생각할 것 없이, 아래 형태의 코드를 메모장에 펼쳐놓고 내 블로그의 진짜 레시피 정보로 내용만 갈아 끼워주면 끝납니다.
"@context": "https://schema.org",
"@type": "Recipe",
"name": "김치찌개 황금 레시피",
"image": "https://mysite.com/photos/kimchi_stew.jpg",
"recipeYield": "2 servings",
"totalTime": "PT30M",
"recipeIngredient": [
"신김치 1그릇",
"돼지고기 200g"
],
"recipeInstructions": [
{"@type":"HowToStep","text":"냄비에 김치와 고기를 넣고 볶는다."}
]
· totalTime (선택): 총 조리 시간입니다. 'PT30M'은 30분을 뜻하는 ISO-8601 국제 표준 표기법입니다. 로봇은 이 암호를 가장 좋아합니다.
· recipeIngredient (선택): 재료 목록입니다. 여기서 주의할 점은 '1. 신김치'처럼 순서 정보나 불필요한 메타 데이터를 넣지 말고 오직 재료 이름과 용량만 순수하게 적어야 합니다.
· recipeInstructions (필수): 실제 요리 단계입니다. 이것도 하나씩 개별로 분리해서 입력합니다.
과유불급이 불러온 레시피 누락 대참사
이렇게 코드를 작성하고 지인은 아주 신이 나서 매일같이 모바일 검색창만 새로고침을 해댔습니다. 드디어 내 찌개 밑에도 화려한 썸네일과 시간이 뜨겠지 기대하면서요. 하지만 일주일이 넘도록 결과는 처참했습니다. 화면에는 여전히 텍스트만 덜렁 떠 있었습니다. 네, 또 시원하게 망한 겁니다.
화가 난 지인과 함께 도대체 어느 부분에서 로봇이 코드를 뱉어낸 건지 네이버의 기본 가이드라인을 이 잡듯 뒤져보기 시작했습니다. 그리고 지인이 멋대로 저질러 버린 아주 치명적인 실수를 두 가지나 발견했죠.
로봇은 준비물이 아닌 완성작을 원합니다: 첫째, 지인은 레시피 썸네일(image)에 도마 위에 덩그러니 놓인 썰기 전 양파와 생고기 사진을 넣었습니다. 가이드라인에는 해당 레시피를 잘 나타내는 '완성된 요리' 원본 이미지를 사용하라고 명시되어 있습니다. 둘째, 단계별 정보를 넣겠다고 억지로 HowTo property 하위에 레시피를 종속시켜 버렸습니다. Recipe는 독립적인 타입이므로 HowTo 밑에 작성하면 절대 안 됩니다.
편법을 버리고 정공법을 택했을 때 벌어진 일
지인은 과정이 중요하다며 생고기 사진을 고집했지만, 로봇의 규칙 앞에서는 얄짤없었습니다. 완성된 요리 사진이 아니면 클릭을 유도할 수 없다는 검색엔진의 철저한 데이터 기반 철학이었죠.
뼈아픈 실패를 겪고 나서야 근본적인 체질 개선에 들어갔습니다. 메인 사진을 뚝배기에서 보글보글 끓고 있는 완성된 김치찌개 고화질 이미지로 교체했습니다. HowTo 하위에 꼬이게 만들어둔 엉망진창 계층 구조를 싹 풀고, 순수한 Recipe 타입으로 코드를 깔끔하게 독립시켰죠. 재료 목록에 지저분하게 달아뒀던 번호표도 모조리 지웠습니다. 솔직히 귀찮아도 로봇이 원하는 엄격한 규칙을 철저히 따랐습니다.
그렇게 코드를 다듬고 며칠 지나지 않아 정말 짜릿한 일이 벌어졌습니다. 누군가 '김치찌개 맛있게 끓이는 법'을 검색하자마자, 유명 요리 앱들 사이에서 지인의 블로그 링크 하단에 침샘을 자극하는 찌개 사진과 [조리시간 30분], 그리고 [신김치, 돼지고기...] 같은 핵심 재료가 선명하게 노출되기 시작한 겁니다. 검색 사용자는 이제 링크를 누르기도 전에 오늘 저녁 메뉴로 이 레시피를 선택할 확신을 얻게 되었습니다. 신기하게도 그날 이후로 클릭률(CTR)이 미친 듯이 솟구쳤고, 단순 구경꾼이 아니라 앞치마를 매고 직접 요리를 따라 하는 찐 구독자들이 몰려오기 시작했습니다.
남들 다 하는 기계적인 본문 설명만 붙잡고 있는다고 알아서 내 요리의 훌륭한 맛을 상상해 주는 낭만적인 시대는 지났습니다. 검색엔진이라는 낯설고 차가운 비서에게 우리가 만든 최고의 요리 사진과 명확한 레시피를 가장 먼저 쥐여주는 사람. 오직 그 사람만이 텅 빈 검색결과 속에서 독자의 군침을 돌게 하고 비즈니스의 진짜 조회수를 폭발시킬 자격을 얻습니다. 지금 당장 밋밋하게 방치된 내 요리 블로그에 레시피(Recipe)라는 생명력을 불어넣어 보세요.