Meta 웹 크롤러

Meta는 웹 크롤러(웹사이트 또는 웹 앱에서 콘텐츠를 가져오는 소프트웨어)를 여러 가지 목적으로 사용합니다. 이 페이지에는 Meta에서 가장 많이 사용되는 웹 크롤러를 식별하는 사용자 에이전트(UA) 문자열과 각 크롤러의 용도가 나와 있습니다. 또한 이 페이지에서는 크롤러가 사이트와 적절히 상호작용하도록 robots.txt 파일을 구성하는 방법에 대한 지침을 제공합니다.

FacebookExternalHit

FacebookExternalHit의 기본 목적은 Meta 앱 패밀리(예: Facebook, Instagram, Messenger) 중 하나에서 공유된 앱이나 웹사이트의 콘텐츠를 크롤링하는 것입니다. 이 링크는 복사하여 붙여 넣거나 Facebook 소셜 플러그인을 사용하여 공유되었을 수 있습니다. 이 크롤러는 제목, 설명, 썸네일 이미지 등과 같이 앱이나 웹사이트에 대한 정보를 수집, 캐싱 및 표시합니다.

로그 파일에 보이는 특정 UA 문자열은 다음 중 하나와 비슷합니다.

  • facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
  • facebookexternalhit/1.1
  • facebookcatalog/1.0

FacebookExternalHit 크롤러는 보안 검사 또는 무결성 검사(예: 악성 코드 또는 악성 콘텐츠 검사)를 수행할 때 robots.txt를 우회할 수 있습니다.

크롤러 요구 사항

  • 서버는 gzipdeflate 인코딩을 사용해야 합니다.
  • 앱 또는 웹사이트에서 처음으로 1MB를 스크래핑하기 전에 오픈 그래프 속성을 입력하지 않으면 잘리게 됩니다.
  • 몇 초 이내에 크롤러가 콘텐츠를 크롤링하지 못하면 Facebook에서 해당 콘텐츠를 표시할 수 없습니다.
  • 앱이나 웹사이트는 크롤러 요청의 Range 헤더에 지정된 바이트에 따라 모든 필수 속성을 포함한 응답을 생성 또는 반환하거나, Range 헤더 자체를 무시해야 합니다.
  • 크롤러가 사용하는 사용자 에이전트 문자열 또는 IP 주소(더욱 안전함)를 허용 리스트에 추가합니다.

문제 해결

크롤링 시 앱이나 웹사이트 콘텐츠를 사용할 수 없는 경우 공유 디버거 도구를 통해 URL을 전달하거나 공유 API를 사용하여 콘텐츠를 사용할 수 있게 되면 크롤링을 강제로 실행할 수 있습니다.

다음 코드로 크롤러 요청을 시뮬레이션할 수 있습니다.

curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "$URL"

Meta-ExternalAgent

Meta-ExternalAgent 크롤러는 AI 모델 훈련, 콘텐츠를 직접 인덱싱하여 제품 개선 등의 사용 사례를 목적으로 웹을 크롤링합니다.

로그 파일에 보이는 특정 UA 문자열은 다음 중 하나와 비슷합니다.

  • meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)
  • meta-externalagent/1.1

이 크롤러는 향후 몇 주에 걸쳐 점진적으로 적용될 예정이며, 2024년 10월 31일에 적용이 완료됩니다.

포Meta-ExternalFetcher

Meta-ExternalFetcher 크롤러는 특정 제품 기능을 지원하기 위해 사용자가 시작한 개별 링크 가져오기를 수행합니다. 가져오기를 사용자가 시작하기 때문에 이 크롤러가 robots.txt 규칙을 우회할 수 있습니다.

로그 파일에 보이는 특정 UA 문자열은 다음 중 하나와 비슷합니다.

  • meta-externalfetcher/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)
  • meta-externalfetcher/1.1

robots.txt 파일

웹사이트에서 robots.txt 파일을 구성하면 Meta 웹 크롤러가 어떤 식으로 사이트와 상호작용할지 선호하는 방법을 지정할 수 있습니다. 이들 크롤러를 차단하려면 관련 크롤러에 대한 차단을 robots.txt에 추가하세요. Meta-ExternalFetcher 크롤러는 사용자가 요청한 가져오기를 수행하기 때문에 robots.txt를 우회할 수 있습니다. 또한 FacebookExternalHit 크롤러는 보안 또는 무결성 검사를 수행할 때 robots.txt를 우회할 수 있습니다.

User-agent: meta-externalagent
Allow: /                    # Allow everything
Disallow: /private/         # Disallow a specific directory

크롤러 IP

크롤러에 다음 명령으로 생성된 리스트에 있는 소스 IP 주소가 있는 경우, 이는 Meta에서 해당 크롤러를 제공하였음을 나타냅니다.

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route  

이러한 IP 주소는 수시로 변경됩니다. 자세한 내용은 피어링 웹페이지 또는 관련 다운로드 가능한 데이터(CSV 형식)를 참조하세요.

응답 예시

...
route:      69.63.176.0/21
route:      69.63.184.0/21
route:      66.220.144.0/20
route:      69.63.176.0/20
route6:     2620:0:1c00::/40
route6:     2a03:2880::/32
route6:     2a03:2880:fffe::/48
route6:     2a03:2880:ffff::/48
route6:     2620:0:1cff::/48
... 

문의하기

궁금한 점이나 우려 사항이 있을 경우 webmasters@meta.com(Meta 웹 마스터)에 문의해 주세요.