전자기기

robots.txt로 차단되지 않는 facebookexternalhit/1.1 페이스북 크롤러 차단하는 방법

950914 2024. 7. 7. 16:20

작년부터 나는 Rocky Linux 운영체제와 라이믹스 CMS를 기반으로 하나의 사이트를 제작하여 운영하고 있다.
그리고 차츰 유입량과 수익성 증가를 보여주며 조금씩 자리를 잡아가고 있는데, 최근 특정 크롤러로부터 유입이 과도하게 발생하여 트래픽에 문제가 발생하였다.
그래서 해당 크롤러에 대한 차단을 진행하였으며, 이번 글에서는 robots.txt로도 차단되지 않는 크롤러를 차단하는 방법에 대해 이야기하고자 한다.

1. 직접 차단했던 크롤러는?

내가 차단을 진행했던 크롤러는 “facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)”라는 이름의 페이스북 크롤러였다.

2. 첫 번째로 시도한 robots.txt 차단

해당 크롤러를 차단하기 위해 내가 시도했던 것은 robots.txt를 수정하는 것이었고, 수정하기 전과 후의 robots.txt 정보는 다음과 같다.
1) 수정하기 전의 robots.txt

User-agent: *
Allow:/

2) 수정한 후의 robots.txt

User-agent: *
Allow:/

User-agent: facebookexternalhit
Disallow:/

위와 같이 robots.txt를 수정해 주었음에도 해당 크롤러는 지속적으로 유입되었으며, 다른 방법으로 해당 크롤러를 차단해 주어야 했다.

3. 두 번째로 시도한 .htaccess 차단

첫 번째 시도로는 문제가 해결되지 않아 수정전의 robots.txt로 돌려놓았고, “.htaccess" 파일을 직접 수정해 주었다. 그리고 .htaccess 파일 내 가장 맨 밑에 아래의 코드를 추가해 주었다.

# BLOCK Facebook Crawler
# https://endurtech.com/block-facebook-crawler-facebookexternalhit/
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit/1\.1 [NC]
RewriteRule ^ - [F,L]
# BLOCK Facebook Crawler END

위와 같이 코드를 입력해 주니 facebookexternalhit 크롤러가 더 이상 유입되지 않아 문제가 해결되었다.

4. 결론

크롤러의 과도한 유입은 트래픽에 문제를 일으켜 어떻게든 조치를 취해야 하는 것 같으며, 나는 해당 크롤러의 필요성을 느끼지 못해 완전히 차단해 주었다.
그래서 현재는 별다른 문제없이 사이트를 운영하고 있고, robots.txt로 차단되지 않는 페이스북 크롤러로 고민 중이신 분들께 이글이 조금이나마 도움 되었으면 한다.