Facebook und Crawl-delay in Robots.txt?
Tut Facebook das webcrawling bots Achtung der Crawl-delay:
Richtlinie in robots.txt
Dateien?
- Ich war mir nicht bewusst, dass facebook bots hatte... interessant!
facebookexternalhit/*
wo * ist die Versionsnummer. Siehe: facebook.com/externalhit_uatext.php und developers.facebook.com/docs/best-practices/...- Nicht Facebook nur kriechen einen Artikel einmal, wenn es Hinzugefügt? Ich erinnere mich an mehrere Fälle, in denen musste man explizit Facebook zu kriechen ein Element wieder, um es zu aktualisieren, es zu kopieren.
- Das ist nicht
Crawl-delay
.Crawl-delay
verwandt ist, wie schnell ein web-crawler-Besuche urls für eine Website. Also, wenn Sie haben 100 urls, sagen wir, auf Ihrer Website, Crawl delay, dass alle diese urls nicht bekommen, seine gleichzeitig. Vielmehr erhalten Sie Treffer, in einem Intervall von dem, was der crawl-delay gibt. Also für 100 Seiten bei 15 Sekunden zwischen, wird es eine 25 minütige "rest" - Zeit. Die Absicht ist es, nicht erdrücken, eine Website.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben wir nicht einen crawler. Wir haben einen Spachtel, die Kratzer meta-Daten auf Seiten mit like-buttons/geteilt auf FB.
crawl-delay
. Wenn Sie denken, dass die Antwort übercrawl-delay
ist nicht wichtig, weil es eine "scraper" du bist die Art von Facebook-Mitarbeiter, das macht den Umgang mit diesen Facebook-bots ein Alptraum.Nein, tut es nicht, Respekt robots.txt
Im Gegensatz zu anderen Antworten hier, facebookexternalhit verhält sich wie der gemeinste von Crawlern. Ob die urls von requests aus Durchforstung oder aus wie Schaltflächen, spielt keine Rolle, so viel, wenn es geht durch jeden von denjenigen, die an eine wahnsinnige Quote.
Wir haben manchmal mehrere hundert hits pro Sekunde, wie es geht durch fast jede url auf unserer Website. Es tötet unseren Servern zu jeder Zeit. Das lustige an der Sache ist, dass, wenn das passiert, können wir sehen, dass der Googlebot bremst und wartet, bis die Dinge beruhigen, bevor Sie langsam anfahren sichern. facebookexternalhit, auf der anderen hand, nur weiter zu Pfund unseren Servern, oft härter als der erste Kampf, der uns getötet.
Wir haben zu viel beefier Servern, als wir eigentlich brauchen Sie für unseren Verkehr, nur weil der facebookexternalhit. Wir haben getan, Tonnen suchen und kann nicht einen Weg finden, Sie zu verlangsamen.
Wie ist, dass eine gute user experience, Facebook?
Für eine ähnliche Frage, Ich bot eine technische Lösung, die einfach rate-limits laden, auf Grundlage des user-agent.
Code wiederholt hier for convenience:
Da kann man nicht Appell an Ihre Hybris, und DROP ' Ing Ihre IP-block ist ziemlich Drakonisch, hier ist meine technische Lösung.
In PHP, führen Sie den folgenden code so schnell wie möglich für jede Anforderung.
Facebook nutzt eigentlich dieses Algorithmus ist, dass Sie können prüfen, ob sich hier:
http://developers.facebook.com/tools/debug
Facebook-cache Lebensdauer dieser Daten ist variabel, aber es ist zwischen 24-48 Stunden aus meiner Erfahrung.
Können Sie jedoch den cache "entkräften", wenn Sie hinzufügen ein Teil Ihrer url, so dass die Nutzer teilen sich die neuen ein, ODER Sie können bit.ly (und wie) links, die die gleiche Wirkung haben wird.
Da es nicht wirklich krabbeln, Sie können nicht erzwingen, dass es zu Verzögerung einen kratzen (und Sie sollten nicht als schlechte user-experience - Sie würde eine Weile warten, für die Spachtel zu beenden, und Sie würden mit einem shareable link, der ist nicht schön). Sie können jedoch manuell auslösen das kratzen in Intervallen, so wie, um eine bessere user experience (Sie würden nicht warten, Daten werden zwischengespeichert) und server-load-balancing.
wenn Sie mit ubuntu-server, und Sie sind mit ufw-firewall können Sie versuchen,
ufw limit proto tcp from 31.13.24.0/21 port 80 auf jede
für alle diese IP-Adressen:
31.13.24.0/21
31.13.64.0/18
66.220.144.0/20
69.63.176.0/20
69.171.224.0/19
74.119.76.0/22
103.4.96.0/22
173.252.64.0/18
204.15.20.0/22
wie hier gezeigt:
Was ist der IP-Adressbereich von Facebook ' s Open Graph crawler?