{"id":371914,"date":"2026-09-24T07:01:48","date_gmt":"2026-09-24T07:01:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/social-preflight\/"},"modified":"2026-09-24T07:01:25","modified_gmt":"2026-09-24T07:01:25","slug":"cardlens","status":"publish","type":"plugin","link":"https:\/\/en-gb.wordpress.org\/plugins\/cardlens\/","author":17945247,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.4.0","stable_tag":"0.4.0","tested":"7.1.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Cardlens \u2013 Social Preview Checker","header_author":"Matteo Cardini","header_description":"See how any page looks when shared on Facebook, LinkedIn, X and WhatsApp, and what to fix before you publish. Works with every theme, builder and SEO plugin.","assets_banners_color":"dbe0ed","last_updated":"2026-09-24 07:01:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/matteocardini\/cardlens","header_author_uri":"https:\/\/github.com\/matteocardini","rating":0,"author_block_rating":0,"active_installs":0,"downloads":44,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"0.4.0":{"tag":"0.4.0","author":"matteocardini","date":"2026-09-24 07:01:25","revision":3710694}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3710712,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3710712,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The preview window with the four networks side by side.","2":"The list of things to fix, each with a suggestion.","3":"Tools &gt; Social previews, checking recent content in bulk."}},"plugin_section":[],"plugin_tags":[157,6487,186,324,182299],"plugin_category":[55,56],"plugin_contributors":[282414],"plugin_business_model":[],"class_list":["post-371914","plugin","type-plugin","status-publish","hentry","plugin_tags-facebook","plugin_tags-open-graph","plugin_tags-seo","plugin_tags-sharing","plugin_tags-social-preview","plugin_category-seo-and-marketing","plugin_category-social-and-sharing","plugin_contributors-matteocardini","plugin_committers-matteocardini"],"banners":{"banner":"https:\/\/ps.w.org\/cardlens\/assets\/banner-772x250.png?rev=3710712","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cardlens\/assets\/icon-256x256.png?rev=3710712","icon_2x":"https:\/\/ps.w.org\/cardlens\/assets\/icon-256x256.png?rev=3710712","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>A link shared with no image gets ignored. This plugin shows you, before anyone shares it, exactly what Facebook, LinkedIn, X and WhatsApp will display for a page, and tells you what is missing.<\/p>\n\n<p>It does not generate Open Graph tags: it checks the ones your site already outputs, whoever put them there. It reads the published page the way a social network does, so it does not care how the page was built: block editor, classic editor, Bricks, Elementor, Divi, a custom theme, Yoast, Rank Math, or nothing at all. If the tags are in the output, it sees them.<\/p>\n\n<p><strong>Where you find it<\/strong><\/p>\n\n<ul>\n<li>In the admin bar, on any page of your site and on any edit screen, so it works inside page builders too.<\/li>\n<li>As a panel in the post editor sidebar.<\/li>\n<li>Under Tools &gt; Social previews, to check the latest published content in one table.<\/li>\n<\/ul>\n\n<p><strong>What it checks<\/strong><\/p>\n\n<ul>\n<li>Preview image: missing, relative path, or served over http.<\/li>\n<li>Title: missing or too long for the platforms to show in full.<\/li>\n<li>Description: missing, too short, too long, or only inherited from the meta description.<\/li>\n<li>Twitter card.<\/li>\n<li>Alt text for the preview image.<\/li>\n<li>Tags printed twice by the theme and the SEO plugin together, naming which ones.<\/li>\n<li>Your site name repeated at the end of the title, where the platform already shows the domain.<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20my%20page%20builder%3F\"><h3>Does it work with my page builder?<\/h3><\/dt>\n<dd><p>Yes. It reads the final HTML of the published page, not the editor, so every builder is supported.<\/p><\/dd>\n<dt id=\"does%20it%20change%20my%20site%3F\"><h3>Does it change my site?<\/h3><\/dt>\n<dd><p>No. It only reads. Fix the issues wherever you set them today: your SEO plugin, your theme or the featured image.<\/p><\/dd>\n<dt id=\"a%20page%20times%20out\"><h3>A page times out<\/h3><\/dt>\n<dd><p>The plugin waits 30 seconds for your site to answer itself. If a template makes its own remote calls, that can take longer. Raise the wait with the <code>cardlens_request_timeout<\/code> filter, or better, cache those calls.<\/p><\/dd>\n<dt id=\"why%20does%20it%20say%20the%20page%20must%20be%20published%3F\"><h3>Why does it say the page must be published?<\/h3><\/dt>\n<dd><p>Social networks can only read a publicly reachable URL, and so does this plugin.<\/p><\/dd>\n<dt id=\"the%20preview%20looks%20outdated\"><h3>The preview looks outdated<\/h3><\/dt>\n<dd><p>Results are cached for five minutes. Use \"Check again\" in the preview window to force a fresh read. Facebook and LinkedIn also keep their own cache: use their official debuggers to refresh it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Renamed to Cardlens, a distinctive name for the plugin directory.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Housekeeping for the plugin directory: standard direct-access guards, and development files kept out of the released package.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Renamed to Cardlens. The plugin checks what is already published, rather than generating the tags itself, and the name now says so.<\/li>\n<\/ul>\n\n<h4>0.2.5<\/h4>\n\n<ul>\n<li>Choose how many items to check: 25, 50, 100 or 200.<\/li>\n<li>The screen now says how many of your published items it is checking.<\/li>\n<li>Fixed: titles containing dashes or quotes showed HTML entities.<\/li>\n<\/ul>\n\n<h4>0.2.4<\/h4>\n\n<ul>\n<li>Slow pages: the wait is now 30 seconds and filterable with cardlens_request_timeout.<\/li>\n<li>A timeout now explains what to check instead of showing a cURL error.<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>Fixed: the preview window opened but stayed invisible.<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>Fixed: rows in Tools could stay on \"Checking...\" forever.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Fixed: on WordPress 6.1 and earlier the interface did not load at all.<\/li>\n<li>Tools &gt; Social previews redesigned: summary counts, thumbnails, progress while scanning and a filter for what needs work.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Interface rebuilt in React, on the copy of React that WordPress already loads.<\/li>\n<li>Duplicated tags are now named, for example \"og:image x2\".<\/li>\n<li>New check: site name repeated at the end of the title.<\/li>\n<li>Issues are listed worst first, everywhere.<\/li>\n<li>Fixed: the Preview button in Tools could open the wrong post.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"See how a page looks when shared on Facebook, LinkedIn, X and WhatsApp, and what to fix. Works with any theme, builder and SEO plugin.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/371914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=371914"}],"author":[{"embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/matteocardini"}],"wp:attachment":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=371914"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=371914"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=371914"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=371914"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=371914"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=371914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}