robots.txt або правило блокування ботів на Вашому сервері відхиляє crawler (facebookexternalhit). Він повертається лише після того, як автоматичний резервний механізм повторного розміщення Ayrshare також не спрацював, що чітко вказує на блокування з боку хостингу або недоступне джерело.
Коли Ayrshare публікує в Instagram або Threads, він не просто передає Ваш URL до Meta й здається. Ayrshare автоматично повторює спробу отримання, і якщо Meta все одно не може дістатися до медіа, розміщує копію на власному CDN і просить Meta отримати її звідти. Код 479 означає, що навіть цей резервний механізм не допоміг Meta отримати медіа, тож повторне надсилання того самого запиту не допоможе, доки основну проблему з хостингом не буде виправлено (retryAvailable: false, HTTP 400).
Ця сторінка охоплює збої, повідомлення про помилку або деталі яких згадують, що соціальна мережа не змогла завантажити медіа, зазвичай посилаючись на
facebookexternalhit, robots.txt, "Restricted by robots.txt", "HTTP error code 403" або помилку Meta 2207052. Для помилок співвідношення сторін або формату на коді Instagram 138, натомість див. Instagram Media Guidelines або Threads Media Guidelines.Симптом
Коли crawler заблоковано, Ви побачите помилки, як ці:Error 479 (primary — dedicated, non-retryable)
Error 440 (transient ingestion — retryable)
Instagram Error 138 (fallback — less specific upstream response)
Threads Error 379
Як розрізняти ці коди:
- Код 479: окремий код для збою отримання медіа / блокування crawler (без повторної спроби). Це код для збою, описаного на цій сторінці. Він повертається з
retryAvailable: false, коли Meta не змогла отримати медіа (subcode2207052або текстовий шаблон збою отримання медіа) навіть після того, як Ayrshare розмістив його на власному CDN. Його повідомлення явно називаєfacebookexternalhit/Facebotіrobots.txt: якщо Ви бачите 479, Ви на правильній сторінці. Виправте хостинг, перш ніж повторювати спробу. - Код 440: тимчасовий збій прийому медіа (з повторною спробою). Тепер використовується для справді тимчасового вичерпання спроб прийому: subcodes Meta
2207032(“download too slow”) /2207003(“create media fail”) або некласифіковане вичерпання. Він міститьretryAvailable: true; повторіть спробу через/post/retry. - Код 138: менш конкретний резервний код Instagram. Видається для тієї ж кореневої причини, коли upstream-відповідь менш конкретна. 138 також використовується для проблем зі співвідношенням сторін / форматом, тому варіант із fetch-медіа можна ідентифікувати за
"Restricted by robots.txt"або"HTTP error code 403"уdetails. - Код 379: Threads. Не містить поля
details. Якщо Threads зазнає збою поряд з Instagram 479 або 138, коренева причина зазвичай та сама.
Чому це відбувається
Коли Ви публікуєте в Instagram або Threads через Ayrshare, сервери Meta отримують Ваше медіа з наданого URL. Це серверне отримання використовує User-Agentfacebookexternalhit. Якщо robots.txt Вашого сервера забороняє цей crawler — або правило WAF/захисту від ботів блокує його — Meta не може завантажити файл, і публікація зазнає невдачі.
Публікація на Facebook Page використовує інший шлях прийому, тому той самий mediaUrl може працювати для Facebook, але не працювати для Instagram та Threads.
Виправлення: оновіть Ваш robots.txt
Рекомендовано: явно дозвольте Meta, залишаючи інші відкритими
Додайте ці правила до Вашого файлуrobots.txt:
robots.txt
Розширене: обмежити доступ лише для соціальних видавців
Якщо Ви хочете заблокувати більшість crawler, але дозволити платформам соціальних мереж:robots.txt
Перевірте, що Meta може отримати Ваш URL
Перед повторною спробою Вашого допису перевірте, що crawler Meta тепер може отримати доступ до Вашого медіа. Виконайте цю команду, замінивши$URL повним URL Вашого медіа:
- Здорова відповідь: HTTP 200 або 206 з двійковими даними в тілі.
- Заблокована відповідь: HTTP 403 або порожня/HTML-сторінка помилки.
Згідно з документацією Meta, зміни
robots.txt можуть тривати до 24 годин, щоб поширитися через кеш crawler Meta. Якщо перевірка успішна, але Ваша публікація все ще не вдається, зачекайте і повторіть спробу пізніше.Якщо це не виправило проблему
Якщо Ви оновилиrobots.txt і перевірили командою curl, але все ще бачите збої:
- 24-годинна затримка поширення — Meta кешує
robots.txt. Зачекайте до 24 годин після внесення змін, перш ніж повторити спробу. - Правила WAF або bot-fight — Cloudflare Bot Fight Mode, керовані групи правил AWS WAF та подібні служби можуть блокувати діапазони IP crawler Meta, навіть якщо
robots.txtце дозволяє. Перевірте журнали WAF та додайте виняток дляfacebookexternalhit. - Захист від hotlink / перевірки Referer — Деякі CDN блокують запити з IP-адрес центрів обробки даних або без дійсного заголовка
Referer. Додайте crawler Meta до білого списку або вимкніть захист від hotlink для шляхів медіа. - Термін дії signed-URL / presigned-URL — Якщо Ваш URL медіа має timestamp закінчення (поширено для S3 presigned URL), переконайтеся, що він не закінчиться до того, як crawler Meta зможе отримати. Для запланованих дописів створюйте URL, які залишаються дійсними значно після запланованого часу.
- Керований медіа-хостинг — Якщо Ви використовуєте службу, як Cloudinary, Imgix або подібну, де Ви не можете редагувати
robots.txt, перевірте їхню документацію на предмет налаштування списку дозволів crawler Meta/Facebook.
- Невдалий
postIdз відповіді про помилку - Вивід команди перевірки
curlвище - Вміст Вашого
robots.txt
Повторна спроба невдалого допису
Поведінка повторної спроби залежить від отриманого коду:- Код 440 (тимчасовий,
retryAvailable: true): прийому медіа просто забракло часу або він натрапив на тимчасову помилку Meta. Повторіть спробу безпосередньо через кінцеву точку Retry Post; змінювати хостинг не потрібно. - Код 479 (
retryAvailable: false): Meta не змогла отримати медіа навіть після того, як Ayrshare розмістив його на власному CDN, тож повторна спроба з тим самим заблокованим URL знову завершиться невдачею. Спочатку виправте хостинг: дозвольте crawler Meta (facebookexternalhit/Facebot) уrobots.txtі Вашому WAF або розмістіть медіа на CDN, доступному для Meta. Перевірте командоюcurlвище, а потім повторіть спробу через кінцеву точку Retry Post.