워드프레스 멀티사이트 robots.txt 파일 수정하기

워드프레스에서 robots.txt 파일은 동적으로 생성됩니다. 원하는 경우 루트 폴더에 이 파일을 수동으로 업로드할 수 있습니다. 워드프레스 멀티사이트의 개별 사이트에 대하여 robots.txt 파일을 수정하고 싶은 경우 아래에서 설명하는 방법으로 수정이 가능합니다.

워드프레스에서 동적으로 생성하는 robots.txt 파일

워드프레스에서는 robots.txt 파일을 만들어 업로드하지 않아도 동적으로 robots.txt 파일이 생성됩니다.

브라우저 주소란에 사이트주소/robots.txt를 입력해보면 다음과 비슷한 코드가 출력될 것입니다.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://example.com/wp-sitemap.xml

사이트에 따라 Sitemap 부분이 출력되지 않을 수도 있습니다. 그리고 Yoast SEO나 Rank Math와 같은 SEO 플러그인을 설치하면 위의 코드에서 Sitemap URL이 변경되어 표시되거나 경우에 따라 Sitemap 라인이 표시되지 않을 수도 있습니다.

워드프레스 멀티사이트 robots.txt 파일 수정하기 (후크 사용)

싱글 사이트인 경우 robots.txt 파일을 하나 만들어 FTP에 접속하여 루트 폴더에 업로드하면 되지만, 멀티사이트인 경우 robots.txt 파일을 업로드할 경우 멀티사이트 내의 모든 사이트에 동일한 robots.txt 파일에 추가되게 됩니다.

개별 사이트에 따라 다르게 설정하고 싶은 경우에는 robots.txt 파일을 업로드하는 대신, 다음과 같은 코드를 테마 함수 파일에 추가하여 개별 사이트에 대한 robots.txt 파일을 변경할 수 있습니다.

// Modify robots.txt for individual sites of a multisite install in WordPress
// 워드프레스 멀티사이트에서 개별 사이트에 대한 robots.txt 파일 수정하기

function fbn_custom_robots( $output, $public ) {
	$site_id = get_current_blog_id();
	if ( $site_id == 1 ) {
		$output .= "Allow: /wp-content/uploads/\n";
		$output .= "Disallow: /readme.html\n";
		$output .= "\nSitemap: https://example.com/sitemap_index.xml";
	}
       elseif ( $site_id == 2 ) { 
       // Your code
        }

	return $output;
}

add_filter( 'robots_txt', 'fbn_custom_robots', 20, 2 );

코드를 테마의 함수 파일에 추가하도록 합니다. 부모 테마 내의 함수 파일에 추가할 경우 테마가 업데이트될 때 수정 사항이 초기화되므로 가급적 차일드 테마(자식 테마)를 만들어서 차일드 테마 내의 함수 파일에 추가하시기 바랍니다.

site_id는 멀티사이트 네트워크 내에서 해당 사이트의 블로그 ID입니다. blog id는 네트워크 관리자 > 사이트 > 모든 사이트에서 해당 사이트 URL 위에 마우스를 올려서 브라우저 하단의 상태 표시줄에서 확인할 수 있습니다. 예를 들어,

https://example.com/wp-admin/network/site-info.php?id=1

사이트 URL 위에 마우스를 올렸을 때 링크가 위와 같은 경우 blog id는 1입니다.

이제 사이트주소/robots.txt를 열어보면 다음과 비슷하게 코드가 바뀐 것을 확인할 수 있을 것입니다.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Allow: /wp-content/uploads/
Disallow: /readme.html

Sitemap: https://example.com/sitemap_index.xml

robots.txt 파일에 문제가 없는지 확인하기 위해 구글의 robots.txt 테스터를 이용하여 robots.txt를 테스트할 수 있습니다.

속성을 선택하면 robots.txt 테스터가 표시됩니다. 수정한 지 시간이 얼마 지나지 않았다면 이전 robots.txt 파일의 내용이 표시될 것입니다. 구글의 robots.txt 테스터에서 오류가 있는지 확인할 수 있습니다.

수동으로 robots.txt 파일을 루트 폴더에 업로드한 경우에는 위의 코드를 넣어도 작동하지 않습니다. 이 경우 루트 디렉터리에 업로드된 robots 파일을 삭제해야 위의 방법으로 수정이 가능합니다.

SEO 플러그인에서 robots.txt 파일 편집하기

Yoast SEO나 Rank Math와 같은 SEO 플러그인을 사용하여 robots.txt 파일을 편집할 수 있습니다. 아마 이 기능은 무료 버전에서는 제공되지 않고 프리미엄 버전에서만 제공되는 것 같습니다. Rank Math Pro를 사용하는 경우 워드프레스 알림판 > Rank Math > General Settings > Edit robots.txt에서 robots.txt 파일을 수정할 수 있습니다.

워드프레스 멀티사이트 robots.txt 파일 수정하기

하지만 로봇 파일을 FTP를 통해 수동으로 루트 폴더로 업로드한 경우에는 위의 그림과 같이 'robots.txt file is not writable' 경고가 표시되면서 robots.tst 파일이 루트 폴더에 있기 때문에 콘텐츠가 수정하지 못하도록 잠겼다(Contents are locked because a robots.txt file is present in the root folder) 문구가 하단에 표시됩니다.

SEO 플러그인에서도 robots_txt 필터를 사용하여 robots.txt 파일을 수정하는 것 같습니다. 그래서 루트 디렉터리에 robots.txt 파일이 업로드되어 있으면 필터를 통해 수정할 수 없는 것으로 보입니다.

위와 같은 경고가 표시되면 루트 폴더에 업로드한 robots 파일을 삭제하면 SEO 플러그인을 통해 수정이 가능합니다.

서브 디렉터리에 설치된 사이트에서는 robots.txt 파일이 작동하지 않습니다. 일부 SEO 플러그인에서는 404 에러를 표시할 수 있습니다. Rank Math의 경우 서브 디렉터리에 설치된 워드프레스 사이트에서는 로봇 파일 편집이 가능하지만, 루트 폴더에 robots.txt 파일이 있는 경우에는 작동하지 않는다는 안내가 표시됩니다.

Leave the field empty to let WordPress handle the contents dynamically. If an actual robots.txt file is present in the root folder of your site, this option won't take effect and you have to edit the file directly, or delete it and then edit from here.

워드프레스에서 콘텐츠를 동적으로 처리하도록 하려면 이 필드를 비워두세요. 루트 폴더에 실제 robots.txt 파일이 있으면 여기에서 수정한 내용은 반영되지 않고 파일을 직접 편집해야 합니다. 또는 루트 폴더에 있는 파일을 삭제하고 여기에서 편집할 수 있습니다.

플러그인 사용하기

워드프레스 플러그인 저장소에 등록된 Robots.txt Editor 플러그인을 사용하여 사이트의 robots.txt 파일을 생성하고 편집할 수 있습니다.

이 플러그인의 특징:

  • 멀티사이트 네트워크의 서브도메인에서 작동
  • 워드프레스에 대한 올바른 파일 예시
  • 곧바로 사용 가능
  • 무료

이 플러그인은 Multisite의 서브도메인에서 작동한다고 하지만, 멀티사이트에서 작동하지 않는다는 사용자 리뷰도 있으므로 멀티사이트에 설치하여 예상대로 작동하는지 테스트를 해보시기 바랍니다.

이 플러그인은 워드프레스 알림판 > 플러그인 > 새로 추가에서 'Robots.txt Editor'를 검색하여 설치할 수 있습니다.

robots.txt 파일이 작동하지 않거나 404 에러가 발생하는 경우

robots.txt 파일이 작동하지 않거나 404 페이지 없음 에러가 발생하는 경우에는 다음 사항을 체크해보세요.

  • 플러그인을 모두 비활성화하여 문제가 해결되는지 확인합니다.
  • 백업을 한 후에 워드프레스, 테마, 플러그인을 최신 버전으로 업데이트합니다.
  • 고유주소 설정이 '일반(기본)'으로 되어 있는 경우 다른 설정(예: '글 이름')으로 변경하여 문제가 해결되는지 체크합니다.

참고

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

댓글 남기기

* 이메일 주소는 공개되지 않습니다.