워드프레스에서 사이트맵 플러그인을 사용하거나 Yoast SEO와 같은 SEO 플러그인을 사용하여 사이트맵을 생성하는 경우, 사이트맵 파일에 접근 시 XML or text declaration not at start of entity ('XML declaration allowed only at the start of the document' 메시지) 오류가 발생하는 경우가 있습니다.
Yoast SEO: XML declaration allowed only at the start at the document 오류
예를 들어, Yoast SEO에서 제공하는 XML 사이트맵을 활성화한 후에 사이트맵을 확인하려면 아래 그림에서 See the XML sitemap 링크를 클릭하면 됩니다.
보통의 경우 XML 사이트맵 파일이 브라우저에 표시됩니다. (Yoast SEO의 사이트맵 경로는 사이트주소/sitemap_index.xml입니다.)
간혹 다음과 같은 오류 메시지가 표시되면서 사이트맵 파일에 접근하지 못하는 경우가 있습니다.
This page contains the following errors:
error on line 3 at column 6: XML declaration allowed only at the start at the document
Below is a rendering of the page up to the first error.
XML declaration allowed only at the start at the document 에러 발생 해결 방법
Yoast SEO에 의하면 이 문제는 보통 플러그인이나 테마 함수에서 사이트맵의 시작 부분에 빈 공백 문자(empty whitespace)를 추가하기 때문에 발생합니다. Yoast SEO 문서를 참고하여 사이트맵의 소스 코드를 확인할 수 있습니다.
이 문제가 발생하면 All in One SEO Pack 플러그인에서 제공하는 사이트맵을 이용하거나 다른 사이트맵 플러그인에서 제공하는 사이트맵 기능을 사용해도 오류가 해결되지 않을 것입니다.
Yoast SEO의 사이트맵을 활성화할 때 이 문제가 발생한다면, 이 문제는 Yoast SEO 플러그인 때문에 발생하는 것은 아닙니다. 이 문제는 wp-config.php 또는 functions.php 파일의 시작 부분(<?php 라인 앞부분)이나 끝 부분에 빈 라인(empty line)이 있을 경우 빈번하게 발생합니다.
먼저 wp-config.php 파일과 테마의 함수 파일(functions.php)에서 시작 부분과 끝 부분에 불필요하게 삽입된 빈 라인이 있는지 체크해보시기 바랍니다.
만약 wp-config.php 파일과 functions.php 파일에 이상이 없다면, 클라우드플레어/서버 캐시와 같이 플러그인이나 테마 또는 CDN의 캐시를 지워서 문제가 해결되는지 체크해볼 수 있습니다. 캐시를 삭제하는 방법에 대해 모르는 경우 개발자나 호스팅 제공업체에 문의해볼 수 있습니다.
문제의 원인이 테마 또는 특정 플러그인인 경우, 테마나 플러그인 개발자에게 연락하여 도움을 받으시기 바랍니다.
마치며
이상으로 워드프레스 사이트맵에서 'XML declaration allowed only at the start at the document' 오류가 발생하는 경우 대처 방법에 대해 살펴보았습니다.
워드프레스에서 Yoast SEO나 Rank Math와 같은 SEO 플러그인을 사용하면 구글 검색엔진에 최적화된 글을 작성하는 데 도움을 받을 수 있습니다.
참고
https://avada.tistory.com/1662