부록. gatsby가 생성해준 LightHouse의 SEO Page is blocked from indexing 에러에 대한 삽질기.

작성 : 2023-04-30수정 : 2023-04-30

목차 펼치기

머리말

이후 Gatsby Cloud에서 배포된 다음 생성해주는 LightHouse를 체크해보니 SEO 항목에 다음과 같은 에러가 발생했다.



페이지에

x-robots-tag

가 none으로 설정되어 있다는 뜻인데, 이로 인해 검색 엔진이 사이트를 크롤링하지 못할 수 있다.


Gatsby Access Control 확인


This guidance only applies to 

CMS Previews,

 

Production Builds and Pull Request Builds

 URLs hosted on 

Unified Hosting

For access control to work, Unified Hosting MUST be enabled

(Site Settings > Builds > Unified Hosting) 

and Gatsby Hosting disabled

(Site Settings > Hosting > Gatsby Hosting)

이 접근 제어는 CMS Preview, Production Build, Pull Request Build URL에만 적용되기 때문이다. Gatsby Hosting을 사용할 경우에는 이 지침이 적용되지 않는다고한다. 그래도 혹시 모르니까 내용을 더 살펴보았다.



위 가이드를 바탕으로 우선 내 사이트의 접근 제어 설정이 public으로 되어 있는 지 확인해봤다. 여기는 public으로 잘 설정되어 있었다.


Public Access

By default, all  builds are publicly accessible to anyone who has the URL. We set an 

x-robots-tag: none

 header to prevent search engines from crawling your site.

Public Access일 경우, Gatsby에서 자체적으로

x-robots-tag: none

을 지정해서 검색 엔진이 사이트를 크롤링하는 걸 막아준다고 한다.


Gatsby Hosting Considerations

If you have Gatsby Hosting enabled, your site will always be indexable by search engines and publicly accessible to anyone that has the URL.

하지만 Gatsby 호스팅을 사용할 경우, 별도의 설정을 해주지 않는 한 누구나 접근 가능하고 색인 생성이 가능하다고 한다.


Gatsby에서 build를 할 경우, 해당 빌드 버전이 적용된 도메인

gatsbyjs.io

도메인을 생성해주는데,


이 페이지에 대해 크롤러의 접근을 차단하기 위해, build시 생성된 페이지에 대해

none

을 설정해주는 것 같다.




나는 Gatsby hosting을 사용하고 있었다.


LightHouse Guide 확인

우선 LightHouse에서

Learn More

를 눌러 Guide를 확인해보자.

해당 태그를 통해 크롤러의 접근을 제한하는 방법 위주로 안내가 되고 있는데 아마 기본이 허용이기 때문에 그런 것 같다.

Resources로 안내해주는 글 중 robots

meta

태그에 대한 글이 있어 확인 해보니 작성하는 규칙이 잘 안내되어 있었다.


none


noindex, nofollow와 같습니다.

none

으로 설정하면 검색 결과에 이 페이지가 표시되지 않는다고 한다. 구글에서 정보를 삭제하려면 이 속성을 지정해주라고 한다.


all

색인 생성이나 게재 제한이 없습니다. 이 규칙은 기본값이므로 명시적으로 표시해도 아무 효과가 없습니다.

내게 필요한 건

all

이었다. 기본값이라고 하지만 나는 기본이

none

으로 적용되고 있으니 명시적으로 선언해주어야겠다.


meta robots 설정

javascript
1<meta name="robots" content="all" />

html.js


html.js

파일에 위의 코드를 추가해주었다.


이후 master 브랜치에 머지해서 Gatsby Build Service로 build를 테스트 한 후 생성 된 LightHouse를 확인했다.


build된 페이지에서 정상적으로 위의 태그가 확인됨에도 불구하고, LightHouse에서는 동일한 오류가 발생하고 있었다.


😇


해결

다시 답답함이 마음속 깊이 밀려들었으나, 금세 허무하게 사라졌다.
바로 내가 미처 확인하지 못한 부분이 있었다.

Gatsby Cloud에서 자동으로 생성해주는 LightHouse의 URL이었는데, build 시 자동으로 생성된 URL을 토대로 report를 생성해주었던 것이다.

아… 그렇다면 위에 언급했던대로

none

으로 설정되어 있는 게 당연한 것이다.
한 번도 내 사이트의 도메인에서 직접 LightHouse 측정을 실행시키지 못한 나의 불찰이었다.



 SEO 100점

SEO 100점

즉시 호스팅된 도메인에서 다시 측정을 실시했고, SEO에 아무 문제가 없다는 걸 알 수 있었다.


결국에는 삽질이었지만… Gatsby 호스팅과 크롤러에 대해 새로운 걸 배울 수 있었던 삽질이었다. 이왕 설정한 robots meta 태그도 그냥 그대로 두기로 했다.


개발이란 게, 다 이런거지 뭐.

Wanna get in touch?

All Icons byiconiFy