{"id":358723,"date":"2026-08-27T01:12:19","date_gmt":"2026-08-27T01:12:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/publisher-reach-google-preferred-sources-cta-toolkit\/"},"modified":"2026-08-27T01:11:55","modified_gmt":"2026-08-27T01:11:55","slug":"publisher-reach","status":"publish","type":"plugin","link":"https:\/\/fon.wordpress.org\/plugins\/publisher-reach\/","author":14414319,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.8","requires_php":"7.4","requires_plugins":null,"header_name":"Publisher Reach CTA Toolkit for Google Preferred Sources","header_author":"Matt Gibbs","header_description":"Adds official or customizable Google Preferred Sources CTAs with editable copy, site logos, blocks, shortcodes, and automatic placement.","assets_banners_color":"5363ab","last_updated":"2026-08-27 01:11:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/mdotk\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"mdotk","date":"2026-08-27 01:11:55","revision":3667963}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3667963,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3667963,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3667963,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3667963,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3667963,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/publisher-reach-demo\\\/\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"latest\"},\"plugins\":[\"publisher-reach\"],\"siteOptions\":{\"blogname\":\"Example Publisher\",\"blogdescription\":\"Independent stories, clearly shared.\",\"permalink_structure\":\"\\\/%postname%\\\/\"},\"login\":true,\"steps\":[{\"step\":\"runPHP\",\"code\":\"<?php require_once 'wordpress\\\/wp-load.php'; wp_update_user( array( 'ID' => 1, 'display_name' => 'Editorial Team', 'first_name' => 'Editorial', 'last_name' => 'Team' ) ); $settings = get_option( 'publisher_reach_settings', array() ); $settings['runtime'] = 'deeplink'; $settings['button_design'] = 'google_badge'; $settings['badge_theme'] = 'auto'; $settings['preset'] = 'compact'; $settings['alignment'] = 'center'; $settings['logo_mode'] = 'none'; $settings['automatic_enabled'] = true; $settings['automatic_position'] = 'after'; $settings['automatic_post_types'] = array( 'post' ); $settings['prompt_enabled'] = false; $settings['onboarding_complete'] = true; update_option( 'publisher_reach_settings', $settings, false ); $existing = get_page_by_path( 'publisher-reach-demo', OBJECT, 'post' ); if ( ! $existing ) { wp_insert_post( array( 'post_title' => 'A practical guide to following the stories that matter', 'post_name' => 'publisher-reach-demo', 'post_status' => 'publish', 'post_type' => 'post', 'post_author' => 1, 'comment_status' => 'closed', 'post_content' => '<!-- wp:paragraph --><p>Independent publishers help readers understand their communities, interests, and the events shaping everyday life.<\\\/p><!-- \\\/wp:paragraph --><!-- wp:heading --><h2 class=\\\"wp-block-heading\\\">Keep trusted reporting close<\\\/h2><!-- \\\/wp:heading --><!-- wp:paragraph --><p>A preferred-source invitation gives readers a clear next step at the end of an article without interrupting the story.<\\\/p><!-- \\\/wp:paragraph -->' ) ); } flush_rewrite_rules(); ?>\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"publisher-reach\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":{"publisher-reach\/preferred-sources":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"publisher-reach\/preferred-sources","version":"1.0.0","title":"Preferred Source Button","category":"widgets","icon":"star-filled","description":"Invite readers to add this site as a preferred source on Google.","keywords":["preferred source","google","publisher"],"textdomain":"publisher-reach","editorScript":"file:.\/index.js","editorStyle":"file:.\/editor.css","style":["publisher-reach-frontend","file:.\/style.css"],"attributes":{"preset":{"type":"string","default":"inherit"},"label":{"type":"string","default":""},"heading":{"type":"string","default":""},"body":{"type":"string","default":""},"alignment":{"type":"string","default":"inherit"},"theme":{"type":"string","default":"inherit"},"language":{"type":"string","default":"inherit"},"buttonDesign":{"type":"string","default":"inherit"},"badgeTheme":{"type":"string","default":"inherit"},"showIcon":{"type":"boolean"},"fullWidthMobile":{"type":"boolean"}},"supports":{"anchor":true,"align":["wide","full"],"className":true,"html":false,"spacing":{"margin":true}}}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3667963,"resolution":"1","location":"assets","locale":"","width":1425,"height":990},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3667963,"resolution":"2","location":"assets","locale":"","width":1425,"height":990},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3667963,"resolution":"3","location":"assets","locale":"","width":1440,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3667963,"resolution":"4","location":"assets","locale":"","width":375,"height":812}},"screenshots":{"1":"Publish an official Preferred Sources invitation inside an article with editable publisher copy.","2":"Choose the official badge or custom CTA and review changes in the live Desktop\/Mobile preview.","3":"Add the Preferred Source Button block and adjust its design, badge, preset, and copy in the editor.","4":"Keep the official badge compact, readable, and overflow-free on mobile articles."}},"plugin_section":[],"plugin_tags":[1602,3019,151844,271892,262467],"plugin_category":[],"plugin_contributors":[272160],"plugin_business_model":[],"class_list":["post-358723","plugin","type-plugin","status-publish","hentry","plugin_tags-call-to-action","plugin_tags-google-search","plugin_tags-gutenberg-block","plugin_tags-preferred-sources","plugin_tags-publisher-tools","plugin_contributors-mdotk","plugin_committers-mdotk"],"banners":{"banner":"https:\/\/ps.w.org\/publisher-reach\/assets\/banner-772x250.png?rev=3667963","banner_2x":"https:\/\/ps.w.org\/publisher-reach\/assets\/banner-1544x500.png?rev=3667963","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/publisher-reach\/assets\/icon-128x128.png?rev=3667963","icon_2x":"https:\/\/ps.w.org\/publisher-reach\/assets\/icon-256x256.png?rev=3667963","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/publisher-reach\/assets\/screenshot-1.png?rev=3667963","caption":"Publish an official Preferred Sources invitation inside an article with editable publisher copy."},{"src":"https:\/\/ps.w.org\/publisher-reach\/assets\/screenshot-2.png?rev=3667963","caption":"Choose the official badge or custom CTA and review changes in the live Desktop\/Mobile preview."},{"src":"https:\/\/ps.w.org\/publisher-reach\/assets\/screenshot-3.png?rev=3667963","caption":"Add the Preferred Source Button block and adjust its design, badge, preset, and copy in the editor."},{"src":"https:\/\/ps.w.org\/publisher-reach\/assets\/screenshot-4.png?rev=3667963","caption":"Keep the official badge compact, readable, and overflow-free on mobile articles."}],"raw_content":"<!--section=description-->\n<p>Publisher Reach helps WordPress publishers add polished Google Preferred Sources invitations without hand-coding the integration or restyling every placement.<\/p>\n\n<p>Choose Google's official localized badge or create a branded CTA with editable text, a site logo, theme-aware colors, and responsive layouts. Publish it with the block, shortcode, automatic article placement, or an optional floating prompt.<\/p>\n\n<p>The complete plugin is free. There is no Publisher Reach account, API key, paid plan, telemetry, or artificial feature limit.<\/p>\n\n<h4>Get your first button live<\/h4>\n\n<ol>\n<li>Install and activate Publisher Reach.<\/li>\n<li>Open <strong>Settings &gt; Publisher Reach<\/strong> and confirm the publication hostname.<\/li>\n<li>Choose the Google flow and your official badge or custom CTA design.<\/li>\n<li>Add the block to a post, or enable automatic placement.<\/li>\n<li>Save and verify the button on the public page.<\/li>\n<\/ol>\n\n<h4>What you can publish<\/h4>\n\n<ul>\n<li>Google's official Preferred Sources badges in 17 supplied languages.<\/li>\n<li>Light, dark, automatic color-scheme, and Retina badge variants.<\/li>\n<li>Editable accessible label, heading, and supporting text.<\/li>\n<li>WordPress Site Logo, a Media Library image, or no logo.<\/li>\n<li>Theme-derived colors or seven custom color controls with contrast warnings.<\/li>\n<li>Minimal button, compact card, and callout presets with alignment, radius, shadow, and mobile-width controls.<\/li>\n<li>A Gutenberg block, safe shortcode, automatic before\/after placement, and an optional floating prompt.<\/li>\n<li>Per-entry suppression and per-block design overrides.<\/li>\n<li>Multisite-safe, per-site settings and optional data removal on uninstall.<\/li>\n<\/ul>\n\n<h4>Choose how Google opens<\/h4>\n\n<ul>\n<li><strong>Selected design + Google flow (recommended):<\/strong> keeps the official badge or custom CTA you configured and progressively enhances it with Google's flow.<\/li>\n<li><strong>Google native button:<\/strong> Google renders and localizes the interface and controls its appearance.<\/li>\n<li><strong>Direct link:<\/strong> uses a normal Google preferences link and makes no Google request before a reader clicks.<\/li>\n<\/ul>\n\n<p>One integration mode applies across the document. The selected-design and native modes request Google's library when the first Publisher Reach surface renders. Direct-link mode is the privacy-first choice when no pre-click Google request is wanted. See <strong>External Services<\/strong> before enabling a mode.<\/p>\n\n<h4>Block and shortcode<\/h4>\n\n<p>Add the <strong>Preferred Source Button<\/strong> block, or use:<\/p>\n\n<pre><code>[publisher_reach]\n<\/code><\/pre>\n\n<p>Optional attributes are <code>label<\/code>, <code>heading<\/code>, <code>body<\/code>, <code>preset<\/code>, <code>align<\/code>, <code>theme<\/code>, <code>lang<\/code>, <code>design<\/code>, <code>badge_theme<\/code>, <code>icon<\/code>, and <code>mobile_full<\/code>. They inherit the global settings unless overridden. URLs, HTML, CSS, and executable code are rejected.<\/p>\n\n<p>Example:<\/p>\n\n<pre><code>[publisher_reach heading=\"Make us a preferred source\" body=\"See more from our newsroom in Google Search.\" align=\"center\" design=\"google_badge\" badge_theme=\"auto\" preset=\"compact\"]\n<\/code><\/pre>\n\n<h4>Important boundaries<\/h4>\n\n<p>Publisher Reach does not register or approve a site or confirm that a reader completed Google's flow. It cannot guarantee selection, visibility, placement, traffic, or rankings. Google controls eligibility and the Preferred Sources service. Only domains and subdomains are eligible; a subdirectory such as <code>example.com\/news<\/code> is not a separate source.<\/p>\n\n<p>Publisher Reach is independent and is not affiliated with, sponsored by, or endorsed by Google. Google marks belong to Google LLC.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>Publisher Reach has no telemetry, advertising, or author connection. Settings stay in WordPress. The optional prompt stores only a session flag or local timestamp in the visitor's browser; it is not analytics. See <code>PRIVACY.txt<\/code>, <code>THIRD_PARTY_NOTICES.txt<\/code>, and <strong>External Services<\/strong> below.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>Publisher Reach can connect visitors to Google's Preferred Sources service. Google controls that service, including its availability, eligibility decisions, interface, completion state, and results.<\/p>\n\n<p>In the selected-design and native modes, Publisher Reach requests Google's Preferred Sources library from:<\/p>\n\n<pre><code>https:\/\/news.google.com\/swg\/js\/v1\/publisher.js\n<\/code><\/pre>\n\n<p>It is requested only after the first non-direct-link Publisher Reach surface renders. Google may process ordinary request data such as IP address, browser, referrer, and publication domain under its policies.<\/p>\n\n<p>In direct-link mode, Publisher Reach creates a local link in this form:<\/p>\n\n<pre><code>https:\/\/www.google.com\/preferences\/source?q=example.com\n<\/code><\/pre>\n\n<p>Google is contacted only after the visitor follows that link.<\/p>\n\n<p>Service documentation: https:\/\/developers.google.com\/search\/docs\/appearance\/preferred-sources<\/p>\n\n<p>Google Terms of Service: https:\/\/policies.google.com\/terms<\/p>\n\n<p>Google Privacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p>Publisher Reach does not send telemetry, site configuration, or visitor analytics to the plugin authors.<\/p>\n\n<h3>Development<\/h3>\n\n<p>Human-readable source is under <code>src\/<\/code>. Run <code>npm ci &amp;&amp; npm run build<\/code> with a supported Node.js version to reproduce generated assets from <code>scripts\/build-assets.mjs<\/code> and <code>package-lock.json<\/code>. Google's unmodified Preferred Sources badge images and their source\/licence record are under <code>resources\/<\/code>; no third-party runtime code, font, or copied Google JavaScript is bundled.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, open <strong>Plugins &gt; Add New Plugin<\/strong> and install Publisher Reach.<\/li>\n<li>Activate <strong>Publisher Reach CTA Toolkit for Google Preferred Sources<\/strong>.<\/li>\n<li>Open <strong>Settings &gt; Publisher Reach<\/strong>.<\/li>\n<li>Confirm the hostname, choose a Google flow and design, then save.<\/li>\n<li>Add the block or enable automatic placement and verify the public result.<\/li>\n<\/ol>\n\n<p>A working button does not prove eligibility or selection. Check Google's source preferences tool separately.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20publisher%20reach%20make%20my%20site%20eligible%20for%20preferred%20sources%3F\"><h3>Does Publisher Reach make my site eligible for Preferred Sources?<\/h3><\/dt>\n<dd><p>No. Google controls eligibility. Only domains and subdomains are eligible, not subdirectories.<\/p><\/dd>\n<dt id=\"does%20it%20guarantee%20google%20rankings%20or%20traffic%3F\"><h3>Does it guarantee Google rankings or traffic?<\/h3><\/dt>\n<dd><p>No. Publisher Reach cannot guarantee selection, visibility, placement, traffic, or rankings.<\/p><\/dd>\n<dt id=\"when%20does%20a%20visitor%27s%20browser%20contact%20google%3F\"><h3>When does a visitor's browser contact Google?<\/h3><\/dt>\n<dd><p>The selected-design and native modes request Google's script where a CTA renders. The direct-link mode makes no pre-click Google request; Google is contacted only after the visitor follows the link.<\/p><\/dd>\n<dt id=\"what%20does%20the%20direct%20link%20contain%3F\"><h3>What does the direct link contain?<\/h3><\/dt>\n<dd><p>It contains only the validated WordPress Home URL hostname as Google's <code>q<\/code> value, never a post path, shortcode URL, HTML, or visitor data.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20track%20visitors%3F\"><h3>Does the plugin track visitors?<\/h3><\/dt>\n<dd><p>No author telemetry is sent. Prompt dismissal stays in browser local or session storage. Google may process ordinary request data when its service or link is used.<\/p><\/dd>\n<dt id=\"what%20should%20i%20know%20about%20content%20security%20policy%3F\"><h3>What should I know about Content Security Policy?<\/h3><\/dt>\n<dd><p>The selected-design and native modes require Google's script and interface. Publisher Reach never weakens Content Security Policy. Direct-link mode needs no external script or iframe.<\/p><\/dd>\n<dt id=\"what%20should%20i%20know%20about%20multisite%3F\"><h3>What should I know about multisite?<\/h3><\/dt>\n<dd><p>Settings are per site. Network activation does not establish eligibility, and subdirectory paths are not separate source identities.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20my%20theme%20has%20no%20site%20logo%20or%20global%20styles%20colors%3F\"><h3>What happens if my theme has no Site Logo or Global Styles colors?<\/h3><\/dt>\n<dd><p>Missing logos are omitted. Theme mode inherits the surrounding article when no usable Global Styles palette exists. Custom logos and fixed colors remain available in <strong>Design<\/strong>.<\/p><\/dd>\n<dt id=\"can%20i%20use%20google%27s%20official%20preferred%20sources%20badge%3F\"><h3>Can I use Google's official Preferred Sources badge?<\/h3><\/dt>\n<dd><p>Yes. Choose <strong>Official Google badge<\/strong> in <strong>Design<\/strong>. Publisher Reach includes Google's supplied light, dark, localized, and Retina artwork. Editable publisher copy and logos remain visually separate from the unmodified badge.<\/p><\/dd>\n<dt id=\"what%20happens%20on%20uninstall%3F\"><h3>What happens on uninstall?<\/h3><\/dt>\n<dd><p>With <strong>Delete data on uninstall<\/strong> enabled (the default), uninstall removes only Publisher Reach settings and suppression metadata, never posts. Browser-stored prompt dismissals cannot be cleared server-side.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Add selected-design, Google-native, and privacy-first direct-link flows.<\/li>\n<li>Add block, shortcode, automatic article placement, and optional floating prompt.<\/li>\n<li>Add editable copy, logos, official badges, theme-aware colors, custom colors, responsive presets, and live Desktop\/Mobile previews.<\/li>\n<li>Add accessibility, multisite-safe settings, privacy controls, safe migrations, reproducible assets, and deterministic packaging.<\/li>\n<\/ul>","raw_excerpt":"Add Google Preferred Sources buttons with official badges, editable CTAs, blocks, shortcodes, and automatic placement.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/358723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=358723"}],"author":[{"embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mdotk"}],"wp:attachment":[{"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=358723"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=358723"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=358723"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=358723"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=358723"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=358723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}