블로그에 JSON-LD 스키마 적용하기
Updated on
목차:
- JSON-LD 적용
JSON-LD 적용
항상 실제로 json-ld schema 가 seo 에 좋은 영향을 주는지 궁금했었다. 그래서 시도해보고 싶었는데, 시간이 없어서 시도 못하다가 오늘에서야 적용해본다. 근데 실제로 댓글이나 리뷰나 아니면 product 상품 정보의 경우 가격 정보 등이 들어가야하기 때문에 json-ld 를 필수적으로 적용해주는 것이 가장 best 로 알고 있다.
하지만, 블로그는 어떨지 처음이긴 하지만 시도해봤고, 시간이 지나면서 결과를 볼 수 있을 것이다.
1. JSON-LD escape backslash 가 있어도 상관 없는지 ?
{ "@context": "https:\/\/schema.org", "@type": "ItemList", "itemListElement": "[{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":1,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/224\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":2,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/223\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":3,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/222\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":4,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/221\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":5,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/220\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":6,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/219\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":7,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/197\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":8,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/218\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":9,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/217\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":10,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/216\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":11,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/215\"},{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"ListItem\",\"position\":12,\"url\":\"https:\\\/\\\/ggami-dev.net\\\/posts\\\/214\"}]" }
JSON-LD 를 적용할때, 위 처럼 \ escape 처리되어 있어도 JSON-LD 파서에 의해서 정상적으로 해석된다고 한다. 이게 문제가 되나 싶어서, gpt부터 google 검색까지 엄청나게 했지만, 결국에 gpt가 문제 없다고 해서 그냥 넘기기로 함.
GPT가 문제 없다고 한다.
2. query-input 을 추가해야하는지 ? (https://github.com/spatie/schema-org/issues/214)
이 문제에 대해서는 구글이 추가하라고 하길래, 그냥 추가했다.
->setProperty('query-input', 'required name=search_term_string')
추가하지 않아도 되지만, 구글에서 추가하라고 하기 때문에 커스텀 추가 했다.
3. 페이징이 있는 카테고리 페이지에서의 구현
{ "@context": "https:\/\/schema.org", "@type": "CollectionPage", "name": "GGAMI.NET-dev : 개발", "url": "https:\/\/ggami-dev.net\/categories\/dev?page=4", "mainEntity": { "@type": "ItemList", "itemListElement": [{ "@type": "ListItem", "position": 1, "url": "https:\/\/ggami-dev.net\/posts\/159" }, { "@type": "ListItem", "position": 2, "url": "https:\/\/ggami-dev.net\/posts\/154" }, { "@type": "ListItem", "position": 3, "url": "https:\/\/ggami-dev.net\/posts\/152" }, { "@type": "ListItem", "position": 4, "url": "https:\/\/ggami-dev.net\/posts\/149" }, { "@type": "ListItem", "position": 5, "url": "https:\/\/ggami-dev.net\/posts\/148" }, { "@type": "ListItem", "position": 6, "url": "https:\/\/ggami-dev.net\/posts\/144" }, { "@type": "ListItem", "position": 7, "url": "https:\/\/ggami-dev.net\/posts\/140" }, { "@type": "ListItem", "position": 8, "url": "https:\/\/ggami-dev.net\/posts\/139" }, { "@type": "ListItem", "position": 9, "url": "https:\/\/ggami-dev.net\/posts\/138" }, { "@type": "ListItem", "position": 10, "url": "https:\/\/ggami-dev.net\/posts\/124" }, { "@type": "ListItem", "position": 11, "url": "https:\/\/ggami-dev.net\/posts\/119" }, { "@type": "ListItem", "position": 12, "url": "https:\/\/ggami-dev.net\/posts\/116" }] } }
CollectionPage 로 적용했다. CollectionPage 에서의 url은 파라메터 값을 넣을 수 있다고 한다.
그렇기 때문에, categories/dev?page=4
이렇게 파라메터를 넣어서 적용했다.
page 같은 파라메터를 다른 스키마에서는 추가하면 안되지만, CollectionPage 에서는 추가해도 되기 때문에 CollectionPage로 적용했다.
4. 블로그 글 자세히 보기 페이지에서의 구현
{ "@context": "https:\/\/schema.org", "@type": "BlogPosting", "mainEntityOfPage": { "@type": "WebPage", "inLanguage": "ko", "id": "https:\/\/ggami-dev.net\/posts\/220" }, "headline": "laravel model casts 에서 laravel data collection 사용하는 방법", "articleBody": "모델의 배열을 커스텀 데이터 컬렉션으로 캐스팅하는 방법을 알려드립니다. 코드 한 줄로 강력한 데이터 관리를 경험해 보세요.", "articleSection": "[\"\\uac1c\\ubc1c\"]", "keywords": ["Laravel 모델 캐스팅", "Laravel Collection 사용법", "Laravel DataCollection 클래스", "ConfigValueData 컬렉션", "Laravel Eloquent 캐스트"], "author": { "@type": "Person", "name": "GGAMI" }, "publisher": { "@type": "Organization", "name": "GGAMI.NET-dev", "url": "https:\/\/ggami-dev.net" }, "datePublished": "2024-03-15T15:14:25+00:00", "dateModified": "2024-03-15T15:14:25+00:00" }
이 처럼 구현했음.
이로서 json-ld 스키마 등록이 끝났다.
근데 사실 이 스키마 등록이 솔직히 맞는지 잘 모르겠다. 일단 등록을 했으니, 시간 지나고 얼마나 순위에 반영이 있는지? 혹은 없는지? 지켜보면 될 것 같다.
참고로 테스트는
https://search.google.com/test/rich-results?hl=ko
이 두 사이트에서 가능하다.