Cookie Consent by Free Privacy Policy Generator Bluesky Cardyb User Agent - Bluesky PBLLC Bot Details | CL SEO

Bluesky Cardyb

Bluesky PBLLC Since 2023
Respects robots.txt
#social #bluesky #link-preview #fetcher #atprotocol
Quick Actions
Official Docs

What is Bluesky Cardyb?

Bluesky Cardyb fetches web page metadata to generate link card previews when URLs are shared on the Bluesky social network, which is built on the AT Protocol. The bot retrieves Open Graph tags, page titles, descriptions, and thumbnail images to create rich link cards in Bluesky posts. As Bluesky grows as a decentralized social media alternative, this bot is increasingly common in server logs. It respects robots.txt directives.

User Agent String

Bluesky Cardyb/1.0

How to Control Bluesky Cardyb

Block Completely

To prevent Bluesky Cardyb from accessing your entire website, add this to your robots.txt file:

# Block Bluesky Cardyb User-agent: Bluesky Disallow: /

Block Specific Directories

To restrict access to certain parts of your site while allowing others:

User-agent: Bluesky Disallow: /admin/ Disallow: /private/ Disallow: /wp-admin/ Allow: /public/

Set Crawl Delay

To slow down the crawl rate (note: not all bots respect this directive):

User-agent: Bluesky Crawl-delay: 10

How to Verify Bluesky Cardyb

Verification Method:
Check user agent string for Bluesky identifier

Learn more in the official documentation.

Detection Patterns

Multiple ways to detect Bluesky Cardyb in your application:

Basic Pattern

/Bluesky Cardyb/i

Strict Pattern

/^Bluesky Cardyb/1\.0$/

Flexible Pattern

/Bluesky Cardyb[\s\/]?[\d\.]*?/i

Vendor Match

/.*Bluesky PBLLC.*Bluesky/i

Implementation Examples

// PHP Detection for Bluesky Cardyb function detect_bluesky_cardyb() { $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; $pattern = '/Bluesky Cardyb/i'; if (preg_match($pattern, $user_agent)) { // Log the detection error_log('Bluesky Cardyb detected from IP: ' . $_SERVER['REMOTE_ADDR']); // Set cache headers header('Cache-Control: public, max-age=3600'); header('X-Robots-Tag: noarchive'); // Optional: Serve cached version if (file_exists('cache/' . md5($_SERVER['REQUEST_URI']) . '.html')) { readfile('cache/' . md5($_SERVER['REQUEST_URI']) . '.html'); exit; } return true; } return false; }
# Python/Flask Detection for Bluesky Cardyb import re from flask import request, make_responsedef detect_bluesky_cardyb(): user_agent = request.headers.get('User-Agent', '') pattern = r'Bluesky Cardyb' if re.search(pattern, user_agent, re.IGNORECASE): # Create response with caching response = make_response() response.headers['Cache-Control'] = 'public, max-age=3600' response.headers['X-Robots-Tag'] = 'noarchive' return True return False# Django Middleware class BlueskyCardybMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): if self.detect_bot(request): # Handle bot traffic pass return self.get_response(request)
// JavaScript/Node.js Detection for Bluesky Cardyb const express = require('express'); const app = express();// Middleware to detect Bluesky Cardyb function detectBlueskyCardyb(req, res, next) { const userAgent = req.headers['user-agent'] || ''; const pattern = /Bluesky Cardyb/i; if (pattern.test(userAgent)) { // Log bot detection console.log('Bluesky Cardyb detected from IP:', req.ip); // Set cache headers res.set({ 'Cache-Control': 'public, max-age=3600', 'X-Robots-Tag': 'noarchive' }); // Mark request as bot req.isBot = true; req.botName = 'Bluesky Cardyb'; } next(); }app.use(detectBlueskyCardyb);
# Apache .htaccess rules for Bluesky Cardyb# Block completely RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Bluesky Cardyb [NC] RewriteRule .* - [F,L]# Or redirect to a static version RewriteCond %{HTTP_USER_AGENT} Bluesky Cardyb [NC] RewriteCond %{REQUEST_URI} !^/static/ RewriteRule ^(.*)$ /static/$1 [L]# Or set environment variable for PHP SetEnvIfNoCase User-Agent "Bluesky Cardyb" is_bot=1# Add cache headers for this bot <If "%{HTTP_USER_AGENT} =~ /Bluesky Cardyb/i"> Header set Cache-Control "public, max-age=3600" Header set X-Robots-Tag "noarchive" </If>
# Nginx configuration for Bluesky Cardyb# Map user agent to variable map $http_user_agent $is_bluesky_cardyb { default 0; ~*Bluesky Cardyb 1; }server { # Block the bot completely if ($is_bluesky_cardyb) { return 403; } # Or serve cached content location / { if ($is_bluesky_cardyb) { root /var/www/cached; try_files $uri $uri.html $uri/index.html @backend; } try_files $uri @backend; } # Add headers for bot requests location @backend { if ($is_bluesky_cardyb) { add_header Cache-Control "public, max-age=3600"; add_header X-Robots-Tag "noarchive"; } proxy_pass http://backend; } }

Should You Block This Bot?

Recommendations based on your website type:

Site TypeRecommendationReasoning
E-commerce Optional Evaluate based on bandwidth usage vs. benefits
Blog/News Allow Increases content reach and discoverability
SaaS Application Block No benefit for application interfaces; preserve resources
Documentation Selective Allow for public docs, block for internal docs
Corporate Site Limit Allow for public pages, block sensitive areas like intranets

Advanced robots.txt Configurations

E-commerce Site Configuration

User-agent: Bluesky Crawl-delay: 5 Disallow: /cart/ Disallow: /checkout/ Disallow: /my-account/ Disallow: /api/ Disallow: /*?sort= Disallow: /*?filter= Disallow: /*&page= Allow: /products/ Allow: /categories/ Sitemap: https://example.com/sitemap.xml

Publishing/Blog Configuration

User-agent: Bluesky Crawl-delay: 10 Disallow: /wp-admin/ Disallow: /drafts/ Disallow: /preview/ Disallow: /*?replytocom= Allow: /

SaaS/Application Configuration

User-agent: Bluesky Disallow: /app/ Disallow: /api/ Disallow: /dashboard/ Disallow: /settings/ Allow: / Allow: /pricing/ Allow: /features/ Allow: /docs/

Quick Reference

User Agent Match

Bluesky Cardyb

Robots.txt Name

Bluesky

Category

social

Respects robots.txt

Yes
Copied to clipboard!