- Visit any blog page in development mode
- Scroll to the bottom to see the debug panel
- Check the "Thumbnail Analysis" section
- Look for any red indicators (issues)
Symptoms:
- "Empty: Yes" in debug panel
- No image shows in social media preview
Solutions:
- Make sure blog posts have thumbnails uploaded
- Check if thumbnail URL is stored correctly in database
- Verify the thumbnail field is not empty
Symptoms:
- "Data URL: Yes" in debug panel
- Thumbnail shows locally but not in social media
Solutions:
- Data URLs are not supported by social media platforms
- Upload images to Firebase Storage or external hosting
- Use image URLs instead of base64 data
Symptoms:
- "Relative: Yes" in debug panel
- Image works locally but not in social media
Solutions:
- The system automatically converts relative URLs to absolute
- Check if the conversion is working properly
- Verify the domain is correct
Symptoms:
- "Valid Image: No" in debug panel
- URL doesn't look like an image
Solutions:
- Check if URL has proper image extension (.jpg, .png, etc.)
- Verify URL is accessible
- Use a reliable image hosting service
- Open any blog page
- Scroll to bottom (development mode only)
- Review thumbnail analysis
- Note any issues
- Click the test links in debug panel:
- Facebook: Test Facebook preview
- Twitter: Test Twitter preview
- LinkedIn: Test LinkedIn preview
- Google: Test Google rich results
- Copy your blog URL
- Paste it into social media debuggers
- Check if thumbnail appears
- If not, check the error messages
// Test current page meta tags
validateMetaTags()
// Test thumbnail URL
debugThumbnailUrl('YOUR_THUMBNAIL_URL')
// Test social media links
getSocialMediaTestLinks(window.location.href)- Copy thumbnail URL from debug panel
- Paste in browser address bar
- Check if image loads
- If not, URL is invalid or inaccessible
// In createBlog.jsx, ensure thumbnail is saved
const thumbnailUrl = image ? await uploadToFirebase(image) : imageUrl;
// Make sure thumbnailUrl is not empty// Don't use data URLs for social media
// Instead, upload to Firebase Storage
const imageRef = ref(storage, `blogimage/${Date.now()}_${image.name}`);
const snapshot = await uploadBytes(imageRef, image);
const thumbnailUrl = await getDownloadURL(snapshot.ref);// The system should automatically convert relative URLs
// But you can manually ensure absolute URLs
if (thumbnailUrl && !thumbnailUrl.startsWith('http')) {
thumbnailUrl = `https://yourdomain.com${thumbnailUrl}`;
}- Size: 1200x630 pixels (optimal for social media)
- Format: JPG, PNG, or WebP
- File size: Under 1MB
- URL: Must be absolute (https://...)
- Accessibility: Must be publicly accessible
- Firebase Storage (already integrated)
- Cloudinary (good for optimization)
- Unsplash (for fallback images)
- Your own server (if you have one)
// Good URLs
https://firebasestorage.googleapis.com/v0/b/your-project/o/image.jpg
https://images.unsplash.com/photo-1234567890
https://yourdomain.com/images/thumbnail.jpg
// Bad URLs
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...
/logo.png (relative)
http://localhost:3000/image.jpg (local)// In browser console
console.log(document.querySelector('meta[property="og:image"]')?.content);
console.log(document.querySelector('meta[name="twitter:image"]')?.content);// Test if image loads
const img = new Image();
img.onload = () => console.log('Image loaded successfully');
img.onerror = () => console.log('Image failed to load');
img.src = 'YOUR_THUMBNAIL_URL';// Test URL validity
try {
new URL('YOUR_THUMBNAIL_URL');
console.log('Valid URL');
} catch (error) {
console.log('Invalid URL:', error.message);
}- Image size: 1200x630 pixels
- Format: JPG, PNG
- Max file size: 8MB
- URL: Must be absolute
- Image size: 1200x600 pixels
- Format: JPG, PNG, GIF
- Max file size: 5MB
- URL: Must be absolute
- Image size: 1200x627 pixels
- Format: JPG, PNG
- Max file size: 5MB
- URL: Must be absolute
The debug panel shows:
- Current Thumbnail URL: The actual URL being used
- Thumbnail Analysis: Detailed breakdown of URL issues
- Meta Tag Validation: Check if meta tags are present
- Social Media Test Links: Direct links to test on each platform
- Check debug panel on any blog page
- Identify the specific issue from the analysis
- Apply the appropriate fix from this guide
- Test with social media debuggers
- Wait 24-48 hours for social media cache to refresh
If thumbnails still don't work:
- Use the Unsplash fallback image
- Upload images to Firebase Storage
- Ensure all URLs are absolute
- Test with social media debuggers
- Contact support if issues persist
Remember: Social media platforms cache images, so changes may take 24-48 hours to appear. Use the debug tools to verify your meta tags are correct.