Compare production WordPress sites against their baked static versions to find differences...
Compare a production WordPress site against its baked static version to ensure they're visually and functionally identical.
/Users/coreyja/Projects/bake/bake.kdlRead /Users/coreyja/Projects/bake/bake.kdl to get:
production field (e.g., https://theconnectedapproach.com)alternative-hosts entry ending in .lavenderiguana.live (e.g., tca.lavenderiguana.live)If user specifies a site name (e.g., "tca", "lavenderiguana"), use that site's config. Otherwise, ask which site to compare.
Get all pages to compare using one of:
/sitemap.xml from production site/sitemap_index.xml if it's a sitemap index/, /contact/, and any pages from sitemapFor each page, compare production vs baked version:
FontAwesome Icons:
// Check if FontAwesome icons are rendering
document.querySelectorAll('[class*="fa-"]').length
// Check FontAwesome stylesheets loaded
Array.from(document.styleSheets).filter(s => s.href?.includes('fontawesome')).map(s => s.href)
Lazy-Loaded Images:
// Check for images with data-src/data-srcset (WordPress lazy loading)
document.querySelectorAll('img[data-src], img[data-srcset]').length
// Verify actual src is populated after scroll
document.querySelectorAll('img').forEach(img => {
if (img.dataset.src && !img.src.includes(img.dataset.src)) {
console.log('Lazy image not loaded:', img.dataset.src);
}
});
Background Images:
// Check for elements with background-image in inline styles
document.querySelectorAll('[style*="background"]').length
// Check Elementor data-settings for background images
document.querySelectorAll('[data-settings]').forEach(el => {
const settings = JSON.parse(el.dataset.settings || '{}');
if (settings.background_image) console.log('BG:', settings.background_image);
});
Elementor Forms:
// Check if Elementor Pro frontend config exists and has correct ajaxurl
window.ElementorProFrontendConfig?.ajaxurl
// On baked sites, this should point to the form handler service, not WordPress
External Resources:
// Check if CDN resources are loading (should NOT be rewritten to /external/)
Array.from(document.querySelectorAll('link[href], script[src]'))
.filter(el => (el.href || el.src)?.includes('/external/'))
.map(el => el.href || el.src)
For each difference found, record:
For each significant issue, create a Linear issue in the Bake project:
Team: Bake (or appropriate team)
Title: [BAKE-XXX] Brief description of the issue
Labels: bug, site-comparison
Description:
- Production URL: [url]
- Baked URL: [url]
- Issue: [detailed description]
- Evidence: [screenshot/console output/network log]
- Affected pages: [list if multiple]
Group related issues (e.g., if the same asset is missing on multiple pages, create one issue).
/external/ paths when they should be allowedcdn-allowlist in bake.kdldata-src/data-srcset attributes not being processedajaxurl pointing to WordPress instead of form handlerElementorProFrontendConfig.ajaxurl value/external/ pathsAfter comparison, provide a summary:
## Site Comparison Results: [site-name]
Production: [url]
Baked: [url]
### Pages Checked: X
### Issues Found: Y
- [Issue 1]: Brief description (Linear: BAKE-XXX)
- [Issue 2]: Brief description (Linear: BAKE-XXX)
### All Clear:
- FontAwesome: OK/Issues
- Lazy Images: OK/Issues
- Background Images: OK/Issues
- Forms: OK/Issues
- Console Errors: OK/Issues
- Network 404s: OK/Issues
### Linear Issues Created:
- BAKE-XXX: [title]
- BAKE-YYY: [title]