X (Twitter) / robots.txt
← back to x.com · change detected 28d ago (2026-07-07T02:22:00Z) · modified +39 −21
What changed
- Added Allow: /i/api/* for Bingbot
- Added Disallow: /*/likes for Bingbot
- Added Disallow: /*/likes? for Bingbot
- Added Disallow: /*/media for Bingbot
- Added Disallow: /*/media? for Bingbot
- Added Disallow: /*/photo$ for Bingbot
- Added Disallow: /*/photo? for Bingbot
- Added Disallow: /*/status/*/likes for Bingbot
- Added Disallow: /*/status/*/retweets for Bingbot
- Added Disallow: /*/verified_followers for Bingbot
- Removed Disallow: /[_0-9a-zA-Z]+/likes for Bingbot
- Removed Disallow: /[_0-9a-zA-Z]+/media for Bingbot
- Removed Disallow: /[_0-9a-zA-Z]+/photo for Bingbot
- Removed Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/likes for Bingbot
- Removed Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/retweets for Bingbot
- Added Allow: /i/api/* for facebookexternalhit
- Added Disallow: /*/likes for facebookexternalhit
- Added Disallow: /*/likes? for facebookexternalhit
- Added Disallow: /*/media for facebookexternalhit
- Added Disallow: /*/media? for facebookexternalhit
- Added Disallow: /*/photo$ for facebookexternalhit
- Added Disallow: /*/photo? for facebookexternalhit
- Added Disallow: /*/status/*/likes for facebookexternalhit
- Added Disallow: /*/status/*/retweets for facebookexternalhit
- Added Disallow: /*/verified_followers for facebookexternalhit
- Removed Disallow: /[_0-9a-zA-Z]+/likes for facebookexternalhit
- Removed Disallow: /[_0-9a-zA-Z]+/media for facebookexternalhit
- Removed Disallow: /[_0-9a-zA-Z]+/photo for facebookexternalhit
- Removed Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/likes for facebookexternalhit
- Removed Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/retweets for facebookexternalhit
- Added Allow: /i/api/* for Googlebot
- Added Disallow: /*/likes for Googlebot
- Added Disallow: /*/likes? for Googlebot
- Added Disallow: /*/media for Googlebot
- Added Disallow: /*/media? for Googlebot
- Added Disallow: /*/photo$ for Googlebot
- Added Disallow: /*/photo? for Googlebot
- Added Disallow: /*/status/*/likes for Googlebot
- Added Disallow: /*/status/*/retweets for Googlebot
- Added Disallow: /*/verified_followers for Googlebot
- Removed Disallow: /[_0-9a-zA-Z]+/likes for Googlebot
- Removed Disallow: /[_0-9a-zA-Z]+/media for Googlebot
- Removed Disallow: /[_0-9a-zA-Z]+/photo for Googlebot
- Removed Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/likes for Googlebot
- Removed Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/retweets for Googlebot
- Removed sitemap https://twitter.com/sitemap.xml
Diff old (2026-06-20T01:10:30Z) → new (2026-07-07T02:22:00Z)
| @@ -8,6 +8,9 @@ | ||
| 8 | 8 | Allow: /hashtag/*?src= |
| 9 | 9 | Allow: /search?q=%23 |
| 10 | 10 | Allow: /i/api/ |
| 11 | + # Same length as the /*/likes and /*/media rules; RFC 9309 breaks the tie in | |
| 12 | + # favor of Allow, so /i/api/ fetches stay crawlable. | |
| 13 | + Allow: /i/api/* | |
| 11 | 14 | Disallow: /*?lang=en-ss |
| 12 | 15 | Allow: /*?lang= |
| 13 | 16 | Disallow: /search/realtime |
| @@ -17,15 +20,21 @@ | ||
| 17 | 20 | Disallow: /*/analytics |
| 18 | 21 | Disallow: /*/followers |
| 19 | 22 | Disallow: /*/following |
| 23 | + Disallow: /*/verified_followers | |
| 20 | 24 | |
| 21 | 25 | Disallow: /account/deactivated |
| 22 | 26 | Disallow: /settings/deactivated |
| 23 | 27 | |
| 24 | - Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/likes | |
| 25 | - Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/retweets | |
| 26 | - Disallow: /[_0-9a-zA-Z]+/likes | |
| 27 | - Disallow: /[_0-9a-zA-Z]+/media | |
| 28 | - Disallow: /[_0-9a-zA-Z]+/photo | |
| 28 | + # Only `*` and `$` are metacharacters here (RFC 9309); regex classes match | |
| 29 | + # literally. /photo is anchored so /status/*/photo/1 media pages stay open. | |
| 30 | + Disallow: /*/status/*/likes | |
| 31 | + Disallow: /*/status/*/retweets | |
| 32 | + Disallow: /*/likes | |
| 33 | + Disallow: /*/likes? | |
| 34 | + Disallow: /*/media | |
| 35 | + Disallow: /*/media? | |
| 36 | + Disallow: /*/photo$ | |
| 37 | + Disallow: /*/photo? | |
| 29 | 38 | Allow: /*? |
| 30 | 39 | |
| 31 | 40 | User-agent: Bingbot |
| @@ -36,6 +45,7 @@ | ||
| 36 | 45 | Allow: /hashtag/*?src= |
| 37 | 46 | Allow: /search?q=%23 |
| 38 | 47 | Allow: /i/api/ |
| 48 | + Allow: /i/api/* | |
| 39 | 49 | Disallow: /*?lang=en-ss |
| 40 | 50 | Allow: /*?lang= |
| 41 | 51 | Disallow: /search/realtime |
| @@ -45,15 +55,19 @@ | ||
| 45 | 55 | Disallow: /*/analytics |
| 46 | 56 | Disallow: /*/followers |
| 47 | 57 | Disallow: /*/following |
| 58 | + Disallow: /*/verified_followers | |
| 48 | 59 | |
| 49 | 60 | Disallow: /account/deactivated |
| 50 | 61 | Disallow: /settings/deactivated |
| 51 | 62 | |
| 52 | - Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/likes | |
| 53 | - Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/retweets | |
| 54 | - Disallow: /[_0-9a-zA-Z]+/likes | |
| 55 | - Disallow: /[_0-9a-zA-Z]+/media | |
| 56 | - Disallow: /[_0-9a-zA-Z]+/photo | |
| 63 | + Disallow: /*/status/*/likes | |
| 64 | + Disallow: /*/status/*/retweets | |
| 65 | + Disallow: /*/likes | |
| 66 | + Disallow: /*/likes? | |
| 67 | + Disallow: /*/media | |
| 68 | + Disallow: /*/media? | |
| 69 | + Disallow: /*/photo$ | |
| 70 | + Disallow: /*/photo? | |
| 57 | 71 | Allow: /*? |
| 58 | 72 | |
| 59 | 73 | User-agent: facebookexternalhit |
| @@ -66,6 +80,7 @@ | ||
| 66 | 80 | Allow: /search?q=%23 |
| 67 | 81 | Allow: /search?*cashtagRestId= |
| 68 | 82 | Allow: /i/api/ |
| 83 | + Allow: /i/api/* | |
| 69 | 84 | Disallow: /search/realtime |
| 70 | 85 | Disallow: /search/users |
| 71 | 86 | Disallow: /search/*/grid |
| @@ -73,15 +88,19 @@ | ||
| 73 | 88 | Disallow: /*? |
| 74 | 89 | Disallow: /*/followers |
| 75 | 90 | Disallow: /*/following |
| 91 | + Disallow: /*/verified_followers | |
| 76 | 92 | |
| 77 | 93 | Disallow: /account/deactivated |
| 78 | 94 | Disallow: /settings/deactivated |
| 79 | 95 | |
| 80 | - Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/likes | |
| 81 | - Disallow: /[_0-9a-zA-Z]+/status/[0-9]+/retweets | |
| 82 | - Disallow: /[_0-9a-zA-Z]+/likes | |
| 83 | - Disallow: /[_0-9a-zA-Z]+/media | |
| 84 | - Disallow: /[_0-9a-zA-Z]+/photo | |
| 96 | + Disallow: /*/status/*/likes | |
| 97 | + Disallow: /*/status/*/retweets | |
| 98 | + Disallow: /*/likes | |
| 99 | + Disallow: /*/likes? | |
| 100 | + Disallow: /*/media | |
| 101 | + Disallow: /*/media? | |
| 102 | + Disallow: /*/photo$ | |
| 103 | + Disallow: /*/photo? | |
| 85 | 104 | |
| 86 | 105 | User-Agent: Google-Extended |
| 87 | 106 | Disallow: * |
| @@ -98,15 +117,14 @@ | ||
| 98 | 117 | Disallow: / |
| 99 | 118 | |
| 100 | 119 | |
| 101 | - # WHAT-4882 - Block indexing of links in notification emails. This applies to all bots. | |
| 102 | - # ===================================================================================== | |
| 120 | + # WHAT-4882 - Keep notification-email links (/i/u) out of search results. | |
| 121 | + # Named crawlers stay un-blocked on purpose: they must crawl /i/u to see its | |
| 122 | + # X-Robots-Tag noindex (the robots.txt Noindex directive died in 2019). | |
| 103 | 123 | Disallow: /i/u |
| 104 | - Noindex: /i/u | |
| 105 | 124 | |
| 106 | 125 | # Wait 1 second between successive requests. See ONBOARD-2698 for details. |
| 107 | 126 | Crawl-delay: 1 |
| 108 | 127 | |
| 109 | - # Independent of user agent. Links in the sitemap are full URLs using https:// and need to match | |
| 110 | - # the protocol of the sitemap. | |
| 128 | + # Independent of user agent. Links in the sitemap are full URLs using https:// | |
| 129 | + # and need to match the protocol of the sitemap. | |
| 111 | 130 | Sitemap: https://x.com/sitemap.xml |
| 112 | - Sitemap: https://twitter.com/sitemap.xml |