맞춤 자바스크립트는 허용되지 않습니다. - AMP 오류 해결 방법

2 min read

AMP 맞춤 자바스크립트 오류는 AMP 오류 중 가장 흔한 오류입니다. 맞춤 자바스크립트 오류 발생 원인과 "맞춤 자바스크립트는 허용되지 않습니다." 문제를 해결하는 방법에 대해 알아봅니다.

맞춤 자바스크립트란?

AMP 페이지 내에서 허용되지 않는 모든 자바스크립트를 말합니다. 맞춤 자바스크립트는 사용자 정의 자바스크립트, 외부 자바스크립트 또는 타사 자바스크립트라고도 불립니다. <script> ... </script>의 형태이며, jquery.js가 대표적입니다.

<!-- custom javascript -->
<script src="https://code.jquery.com/jquery-latest.min.js"></script>

 

AMP의 자바스크립트 제한

오늘날 자바스크립트는 애니메이션, DOM 변경 등의 형태로 사용자와 상호 작용을 하는 데 도움이 되므로 페이지에서 중요한 역할을 합니다. 하지만 페이지에 속도를 늦추고 다른 콘텐츠가 페이지에서 렌더링되는 것을 방해할 수 있기 때문에 자바스크립트는 AMP 페이지 내에서 엄격히 허용되지 않습니다.

AMP에는 많은 구성 요소가 추가되어 있으며 일부는 기존 html 태그를 대체합니다. 예를 들어 amp-img, amp-iframe, amp-video, amp-lightbox, amp-animations 등.

이 AMP 구성 요소 각각에 대해 로드 될 자바스크립트 파일이 따로 있습니다. AMP 구성 요소와 관련된 자바 스크립트 파일만 페이지에서 허용되며 다른 자바스크립트는 허용되지 않습니다.

자바스크립트가 특정 상황에서 AMP 성능을 방해하지 않도록 하려면 다음과 같이 할 수 있습니다.

  • AMP 런타임을 로드합니다.
  • AMP 구성 요소를 포함합니다.
  • type="application/ld+json"으로 설정된 JSON 데이터를 로드합니다.
  • 모든 스크립트 태그는 기본 렌더링을 차단하지 않도록 비동기로 선언되어야 합니다.

 

해결 방법

AMP 플러그인을 사용하면 기존 HTML을 AMP-HTML으로 자동으로 변환해줍니다. 그러나 사용자가 임의로 HTML에 자바스크립트를 추가하는 경우 이렇게 맞춤 자바스크립트 에러 메시지가 출력됩니다.

맞춤 자바스크립트를 제거하지 않으면 유효성 검사에서 오류가 계속 발생합니다. AMP 페이지에서는 AMP 용 자바스크립트만 사용해야 합니다.

따라서 이 오류를 수정하려면 AMP 문서에서 다음과 같은 줄을 모두 제거할 수 있습니다.

<script src="script.js"></script>
또는
<script type="text/javascript" src="script.js"></script>

 

AMP 유효성 검사 도구(AMP Validator)를 사용하면 오류가 발생한 위치를 쉽게 찾을 수 있습니다. 맞춤 자바스크립트를 제거한 후 반드시 유효성 검사를 진행하여 페이지가 유효한 AMP 페이지인지 확인합니다.

AMP 페이지가 유효하지 않다면 구글 검색 결과에서 즉시 로드되는 AMP의 장점을 얻지 못하고 번개 표시 인증 마크도 없어집니다.

 

구글 서치 콘솔에서 이 "맞춤 자바스크립트는 허용되지 않습니다." 오류는 해결될 때까지 걸리는 시간이 빠르면 2~3일, 느리면 2주 넘게 소요되는 경우도 있습니다. 일단 색인이 생성되면 오류 수정이 쉽지 않아 스트레스를 받을 수 있습니다.

글을 작성할 때 초안을 꼼꼼히 검토하여 오류가 없는지 확인한 후 게시하고, 또한 AMP에서 제공하는 기본 구성 요소를 충분히 활용합시다.

방문해주셔서 감사합니다. 즐거운 하루 되세요!

관심 있을 만한 글

  • 구글 가속 모바일 페이지(Google Accelerated Mobile Pages, Google AMP)는 구글의 오픈 소스 프로젝트로 amp-html을 사용하여 가벼운 웹 페이지를 빌드합니다. 구글의 새로운 오픈 메인 프로그램인 AMP는 스마트폰과 태블릿같은 가능한 모든 …
  • AMP 상용구(boilerplate)와 관련된 오류를 살펴보겠습니다. AMP 상용구와 관련된 오류는 일반적으로 문서의 끝에서 발생하며 일반적으로 다음과 같이 "The manadatory tag ..."라는 텍스트와 함께 표시됩니다: test.html:2:0 The …
  • 유효성 검사는 AMP 페이지에 문제가 있을 때 알려주며, 페이지의 어느 부분에서 문제가 발생했는지 알 수 있기 때문에 매우 유용합니다. AMP 페이지의 유효성을 검사하지 않으면 AMP 캐시에 포함되지 않습니다. 즉, 클릭함과 동시에 즉시 로드되는 페이지를 만들지 못합니다…
  • 다음 유효성 검사 오류 메시지는 특별한 주의가 필요합니다. The tag 'img' should be replaced with an equivalent 'amp-img' tag태그 'img'을(를) 동등한 'amp-img' 태그로 교체해야 합니다. 기존의 HTML…
  • HTML에 대한 기본적인 지식이 있다고 가정하고 간단한 HTML5 페이지를 AMP-HTML로 변환해보겠습니다. 표준 AMP 페이지, 즉 데스크톱 페이지가 없는 독립형 AMP 페이지를 구축하지 않는 한, 일반적으로 전체 HTML 페이지를 AMP-HTML로 변환합니다. …
  • AMP 유효성 검사 오류 중에서 CSS 스타일 시트 관련 오류를 해결해 보겠습니다. The attribute 'href' in tag 'link rel=stylesheet for fonts' is set to the invalid value 'style.css'.'…

댓글 쓰기