사이트가 검색엔진에 완전히 노출되지 않도록 하기 위해 robots.txt 파일을 사용하여 구글, 네이버, 빙 등의 검색엔진에서 사이트를 인덱싱하지 않도록 하는 경우가 있습니다. 이 경우 어떤 식으로든 검색엔진 결과에 사이트가 노출될 수 있습니다. 사이트가 검색엔진의 검색결과에 표시되지 않도록 하는 올바른 방법은 무엇일까요?
robots.txt 파일을 사용하여 색인이 되지 않도록 하는 방법의 문제
robots.txt 파일을 사용하여 색인이 되지 않도록 하는 경우 검색엔진 결과에 사이트 콘텐츠가 노출될 수 있습니다. Google Webmasters의 "Uncrawled URLs in search results(크롤링되지 않은 URL이 검색 결과에 표시되는 이유)"이라는 영상에서 이 문제를 설명하고 있습니다.
위의 영상에 의하면 어떤 페이지가 표시되지 않도록 하는 최선 방법 중 하나는 "noindex" 메타태그를 사용하는 것이라고 합니다.
Now if you truly don't want a page to show up, one of the best things that you can do is let us crawl it and then use a "noindex" Meta Tag at the top of the page.
워드프레스 SEO 플러그인 개발업체인 Yoast에서는 indexing(색인)과 listing(검색 결과에 노출)은 다르다고 설명하고 있습니다.
So, while the most common process goes from Indexing to Listing, a site doesn’t have to be indexed to be listed. If a link points to a page, domain or wherever, Google follows that link. If the robots.txt on that domain prevents indexing of that page by a search engine, it’ll still show the URL in the results if it can gather from other variables that it might be worth looking at.
가장 일반적인 프로세스는 Indexing에서 Listing으로 진행되지만 어떤 사이트가 Listing(검색 결과 페이지에 표시)되기 위해 반드시 Index(색인)될 필요는 없습니다. 어떤 링크가 어떤 페이지, 도메인 등을 가리키는 경우 구글은 해당 링크를 따라갑니다(Follow). 해당 도메인의 robots.txt에서 해당 페이지의 색인을 금지하더라도 다른 요인에 의해 수집이 될 수 있는 경우 검색 결과에 해당 URL이 표시될 수 있습니다.
출처: https://yoast.com/prevent-site-being-indexed/
그러므로 robots.txt 파일을 통해 사이트가 검색엔진에 색인되지 않도록 하더라도 검색엔진의 검색 결과에 표시될 수 있습니다.
사이트 콘텐츠가 검색엔진의 검색결과에 표시되지 않도록 하는 올바른 방법
메타 robots 태그를 페이지에 추가하여 페이지가 검색엔진 검색 결과에 표시되지 않도록 하기
어떤 페이지가 검색엔진 결과에 표시되지 않도록 하는 방법 중 하나로 robots 메타 태그를 사용하는 것입니다. 기본적으로 다음 메타 태그를 페이지 상단(<head>...</head> 사이)에 추가하면 해당 페이지가 색인되지 않습니다.
<meta name="robots" content="noindex,nofollow">
구글에서만 사이트가 노출되지 않도록 하려면 다음 메타 태그를 추가할 수 있습니다.
<meta name="googlebot" content="noindex, nofollow">
네이버에서만 노출되지 않도록 하려면 다음과 같은 메타 태그를 삽입할 수 있습니다.
<meta name="Yeti" content="noindex, nofollow" />
워드프레스에서는 차일드 테마를 사용하여 header.php 파일의 적절한 곳에 해당 코드를 추가하거나, Insert Headers and Footers 같은 플러그인을 사용하여 헤더 부분에 메타 태그를 삽입할 수 있습니다.
워드프레스에서 특정 페이지나 글에 대한 색인을 금지하려는 경우 Yoast SEO나 All in One SEO Pack 같은 SEO 플러그인을 사용하면 편리합니다.
X-Robots-Tag HTTP 헤더 추가하기
다른 방법으로 X-Robots-Tag를 사용할 수 있습니다. 이 방법에 대한 자세한 내용은 Yoast SEO의 Playing with the X-Robots-Tag HTTP header 글을 참고해보시기 바랍니다.
워드프레스에서 설정에서 검색 엔진 접근 차단하기
워드프레스 사이트를 운영하는 경우 워드프레스 설정에서 사이트가 검색엔진에 노출되지 않도록 설정할 수 있습니다. 설정 > 읽기에서 "검색 엔진이 이 사이트 검색 차단하기"를 체크하면 됩니다.
이 옵션을 체크하면 다음 메타태그가 헤더에 추가됩니다.
<meta name="robots" content="noindex,follow"/>
참고로 네이버 블로그에도 위와 동일한 robots 메타태그가 추가됩니다. 이 때문에 네이버 블로그 글은 네이버에서는 노출되지만 구글 등 외부 검색엔진에서는 노출이 되지 않습니다. 하지만 일부 네이버 블로그 글은 구글에서 검색되기도 합니다("네이버 블로그와 워드프레스를 동시에 운영하기" 참고).
그러므로 워드프레스에서 자체적으로 제공하는 '검색 엔진 차단 여부' 기능을 사용하여 사이트가 검색엔진에 노출되지 않도록 하더라도 검색엔진의 검색 결과에 사이트가 노출될 수 있습니다. 검색엔진의 검색 결과에 표시되지 않도록 하려면 메타태그를 추가하는 것이 확실한 방법 같습니다.
아카이브(카테고리/태그/작성자/날짜 보관함) 페이지를 제거하는 방법
워드프레스 사이트를 시작하면 초기에는 아카이브 페이지가 개별 글보다 먼저 노출될 수 있습니다. 이런 경우 아카이브 페이지가 노출되지 않도록 제거하는 것을 고려할 수 있습니다.
궁금한 점이 있습니다! 제가 워드프레스를 부득이하게 이전하게 되어서 새로운 서버와 새로운 도메인으로 옮기고 있습니다. 이러한 상황에서 옮기는 워드프레스의 글들과 중복문서 문제를 없애기 위해서 지금까지 올렸던 모든 글들을 구글, 네이버, 빙, 다음에서 노출이되지 않게 하고 싶습니다.
위에서 설명해주신 메타 코드는 해당 페이지만 노출이 안되게 해주는 건가요??? 아니면 워드프레스 테마 파일 편집기에서 헤드 파일에 코드를 추가하면 각각의 검색엔진에서 다 노인덱스 처리할 수 있는건가요???
헤더에 noindex를 추가하면 모든 글들이 검색엔진(구글, 네이버, 빙, 다음...)에서 노출되지 않습니다.
새로운 도메인으로 옮기는 경우에는 이 방법이 아니라 다음 글에서 소개하는 방법을 이용해보세요.
https://www.thewordcracker.com/intermediate/%ea%b5%ac%ea%b8%80-%ec%88%9c%ec%9c%84%eb%a5%bc-%ec%9c%a0%ec%a7%80%ed%95%9c-%ec%b1%84-%ec%9b%8c%eb%93%9c%ed%94%84%eb%a0%88%ec%8a%a4-%ec%82%ac%ec%9d%b4%ed%8a%b8-%ec%a3%bc%ec%86%8c-%eb%b3%80%ea%b2%bd/
1. 사이트를 통째로 새로운 웹호스팅/서버로 이전하고
2. 도메인을 연결하고
3. 301 리디렉션을 설정하고
4. 구글에 사이트 변경 신청을 하시기 바랍니다.
301 리디렉션을 신중하게 설정하시기 바랍니다. 잘못 설정하면 SEO에서 큰 손해를 볼 수 있습니다.
검색엔진이 많이 왔다가야 노출이 잘되는게 아닐까요?
왜 막죠?
보통은 검색엔진이 글을 노출되면 좋지만, 드물지만 검색엔진에 노출되지 않도록 원하는 분들도 계시고, 또 글이 검색엔진에 노출되지 않도록 막아야 하는 상황도 있을 수 있습니다.
예시:
- 사적인 콘텐츠
- 중복 콘텐츠
- ...