The OG image scraper was using Google News redirect URLs (source_url) directly, which don't serve og:image tags. Added resolve_scrape_url() to follow redirects (including meta-refresh and JS redirects) to reach the actual publisher page before scraping. Also added a backfill AJAX endpoint and admin button to re-scrape thumbnails for existing articles. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>