[구글 리서치콘솔] '문자열의 이스케이프 시퀀스가 잘못됨' 오류 해결법
[구글 리서치콘솔] '문자열의 이스케이프 시퀀스가 잘못됨' 오류 해결법
구글 콘솔에서 개선사항 탭을 보니 아래와 같이 특정 글에 구문 오류가 있다는 경고창이 떠있었다.
위와 같은 에러가 뜬 포스팅의 경우, 검색엔진에서 검색이 안되는건 아니지만 구글서치 콘솔에서 통계자료로 활용하지 못한다.
1. 이스케이프 시퀀스란?
- 백슬래시(\) 뒤에 한 문자나 숫자 조합이 오는 문자 조합을 “이스케이프 시퀀스”라고 한다.
- 아래 표와 같이 백슬래시(\) +문자로써, 프로그래밍 작성 시 문자열을 출력하는 printf문에서 자주 활용된다.
2. 문제 원인
- 문제를 출력하던 8개의 포스팅 모두 동일한 특징은 특정 경로가 들어있었고, 경로를 적는 과정에서 백슬래시(\)가 존재했다.
- 백슬래시(\)+문자 한 개가 이스케이프 문자로 인식되면서, Description(본문의 글을 통째로 전달하는 구문)에서 파싱 오류를 내뿜는 것이다.
<구글 테크니컬 리포트 아래 더보기 클릭>
파싱 오류는 구조화된 데이터를 읽고 해석하는 과정에서 문제가 발생하는 현상입니다. 이런 오류가 발생되면 검색 엔진이 해당 페이지의 전체 내용을 사용하지 않을 수 있으며, 이는 검색 엔진 최적화에 직접적으로 영향을 미칩니다. 이 글에서는 구글 서치 콘솔에서 "파싱할 수 없는 구조화된 데이터 구문 오류가 있는 구조화된 데이터가 감지되었습니다."라는 경고 메시지에 대한 해결 방법을 알아보겠습니다.
1. 파싱 오류가 무엇인가요?
파싱 오류는 구조화된 데이터를 읽고 해석하는 과정에서 문제가 발생하는 오류입니다. 구조화된 데이터는 구글이나 다른 검색 엔진에서 웹 페이지를 이해하는 데에 사용되는 데이터 형식입니다. 구조화된 데이터를 포함하는 웹 페이지가 파싱 오류를 가지면, 검색 엔진은 페이지를 완전히 인식하지 못하거나 일부만 인식할 수 있습니다.
2. 구글 서치 콘솔에서 파싱 오류를 확인하는 방법은 무엇인가요?
구글 서치 콘솔에서 파싱 오류를 확인하려면 다음 단계를 따르면 됩니다.
- 구글 서치 콘솔에 로그인하세요.
- 해당 사이트의 URL을 선택하세요.
- '개발자 도구' 탭을 선택하세요.
- '구조화된 데이터' 탭을 선택하세요.
- 이제 파싱 오류를 확인할 수 있습니다.
3. 파싱 오류를 해결하는 방법은 무엇인가요?
파싱 오류를 해결하려면 해당 문제의 종류와 원인을 파악해야 합니다. 대부분의 경우, 파싱 오류는 구조화된 데이터에 문제가 있을 때 발생합니다. 이를 해결하기 위해서는 다음과 같은 단계를 따르면 됩니다.
- 구조화된 데이터 검토
- 구글 서치 콘솔에서 파싱 오류 메시지와 함께 보여지는 구조화된 데이터를 확인하세요.
- 필요한 수정 사항을 확인하세요.
- 올바른 포맷팅
- 구조화된 데이터를 올바르게 포맷팅하세요.
- 예를 들어 JSON 형식의 경우 쌍따옴표를 이용해 key-value 쌍을 생성하세요.
- 유효성 검사
- 구조화된 데이터가 적절한지 확인하기 위해 구조화된 데이터 도구를 사용하세요.
- 테스트
- 수정한 구조화된 데이터를 테스트하고 구글 서치 콘솔에서 다시 검증하세요.
- 비슷한 페이지 검토
- 구조화된 데이터를 가진 비슷한 페이지를 확인해서 파싱 오류가 일어나는 이유를 파악하세요.
- 구조화된 데이터를 가진 비슷한 페이지를 확인해서 파싱 오류가 일어나는 이유를 파악하세요.
4. 구조화된 데이터에 대해 더 자세히 알아보기
구조화된 데이터는 검색 엔진 최적화에 중요한 역할을 합니다. 구조화된 데이터를 올바르게 구현하면 웹 페이지의 내용을 검색 엔진에 더 명확하게 전달할 수 있어 높은 순위를 유지할 수 있습니다. 구조화된 데이터는 JSON-LD, 마이크로데이터(Microdata) 및 RDFa와 같은 다양한 형식으로 구현할 수 있습니다.
파싱 오류는 검색 엔진 최적화에 직접적인 영향을 미치는 중요한 문제입니다. 이를 해결하려면 구글 서치 콘솔의 '구조화된 데이터' 탭을 사용하여 오류를 발견하고, 구조화된 데이터를 적절하게 수정하세요. 이를 통해 검색 엔진에서 웹 페이지를 이해할 수 있게 되어 검색 순위가 높아질 수 있습니다.
3. 해결방법
방법 1) 백슬래시(\)가 있는 모든 부분을 더블 백슬래시(\\)로 변경
- 문법에서 백슬래시를 두번쓰면 백슬래시가 특수 기능을 잃어버리고 문자열로 처리한다.
- 아래와 같이 특정 포스팅에는 엄청나게 많은 백슬래시들이 있었고, 글 고유의 특성을 훼손하는 것이므로 껄끄럽다.
- 그대로 복사 붙여넣기를 하는 경우, 글이 훼손되었으므로 복붙하는 사람에게 에러가 날 수 있다.
※ 방법 1의 테스트
(Before) - 이스케이프 문제 존재
(After) - 이스케이프 문제 발생 안함
방법 2) 고전 이스케이프 시퀀스 처리
- HTML, 자바, C의 이스케이프 시퀀스 처리 방법을 준용하는 방법이다.
① `(백틱) ~~~ `으로 글 처음-끝 감싸주기
(테스트 결과) - 인식 실패
② @" ~~~~~ "로 글 처음-끝 감싸주기
(테스트 결과) - 인식 실패
③ """ ~~~ """(큰따옴표 3개)로 글 처음-끝 감싸주기
(테스트 결과) - 인식 실패
4. 결론
- 티스토리는 포스팅 글을 Description이라는 객체로 캡슐화하여 티스토리 서버에 전달하고, 그 전달된 결과를 시현해주는 형태로, 그 결과물을 구글 콘솔 서치에서 사용한다.
- 그러므로, 텍스트 내부에서 변경을 시도하는 행위가 티스토리 서버로 전달될때 기능을 정상 적용 시키지 않는듯 하다.
- 따라서 실험적으로 우리가 이스케이스 시퀀스를 피할 수 있는 유일한 방법은 백슬래시(\) -> 더블백슬래시(\\)로 변경하는 방법밖에는 없는 듯 하다.