On 20 August 2026, Google made its Preferred Sources button embeddable. A reader clicks it on your page, adds your site as a preferred source, and lands straight back where they were reading. Before that, marking a site meant leaving the page for Google’s settings screen and searching for you by name. That friction is now gone, and it is the whole change.
It is worth being precise about what the button does. It changes what a reader who chose your site sees, in Top Stories and increasingly in AI answers, where a preferred source can carry a badge that sets it apart. It does not raise your rankings for everyone, and it changes nothing for readers who never selected you. Treat it as a way to convert loyal readers into repeat visibility, not as a lever on rankings. Pages that sell it as a ranking hack are overselling it.
The reason it earns a place in an AI-visibility programme is the surface it touches. A preferred source is more likely to be shown, and to be badged when cited, in AI Overviews and AI Mode. That is the Selection layer of the AI Discovery Stack. Being chosen once by a reader raises the odds of being chosen again by the machine, and repeat selection is the kind of durable signal the Stack is built around.
Check you are eligible first
Before you place anything, confirm your site actually appears in Google’s source preferences tool at google.com/preferences/source. Search for your domain. If it is not listed, the button cannot help, because there is nothing for a reader to select. The button is the last step, not the first.
Google supports domains and subdomains, but not subdirectories. example.com and news.example.com are valid targets; example.com/blog is not. The deeper question of what makes a site eligible in the first place is the subject of the companion guide on what Preferred Sources is and what determines eligibility.
The three ways Google lets you add it
Google documents three implementation routes, not the two most write-ups mention. They are not interchangeable, and each trades something away.
1. The standard button (recommended)
Two lines of HTML. A script tag that loads the library, preferably in the document head, and an empty element that Google fills with a localised, on-brand button.
<script async src="https://news.google.com/swg/js/v1/publisher.js"></script>
<div google-add-preferred-source-btn></div>
Google renders the button, translates it to the reader’s browser language, and returns them to your page after they confirm. Add data-theme="dark" for a dark background, or data-lang="en" to fix the language to one setting. You do not hard-code your domain; the library knows the page it sits on. Google publishes the full list of supported language codes if you need one other than the reader’s own.
2. The advanced button (your own element)
If you want the action bound to your own styled control rather than Google’s rendered button, load the library with preferred-sources-control="manual" so it does not render itself, then drive it through the PREFERRED_SOURCE queue and call addPreferredSource() from your element. For build pipelines, the same library is published as an ES module at publisher.mjs. This is the route most guides skip, and it is the one worth knowing if your design system will not tolerate a third-party button. It is also what makes reliable measurement possible, and it is the mode the plugin below uses for its trackable button.
3. The deeplink (no JavaScript)
An ordinary link, no script required, of the form google.com/preferences/source?q=your-domain.com. It opens Google’s general preferences screen with your site searched, where the reader still has to tick the box, so it is one action longer than the embed. One thing to get right: match your-domain.com to the exact way Google lists you, because most sites are listed under the bare domain and a leading www can return no match. Confirm yours in the source preferences tool first. Its value is that it works anywhere a script cannot go: email, social posts, or a content management system that will not let you add JavaScript. If you want it to look like a button, Google provides official badge images in light and dark that you can wrap in that link.
The catch nobody mentions, and why it shapes where you load it
The rendered button is not an image. It is an iframe served from news.google.com, and merely placing it loads publisher.js and pulls in one iframe per button on page view, before anyone has clicked. Put the raw two lines site-wide and you load Google’s library and an iframe on every page, whether or not the button is used.
The fix is simple: load the library only on the pages that actually carry a button, and use one button per page. That single decision is the difference between a clean implementation and a slow one, and it is the main thing the raw snippet gets wrong.
The clean way to do this in WordPress
Pasting Google’s script into your theme works, but it is the crude version of the job. It loads the library on every page, it has no fallback if a reader blocks the script, and it puts the button in exactly one place. So I built a small plugin, Preferred Sources Button, that does the job properly and puts all three of Google’s methods behind one setting.
- Three display modes. The standard Google button, a custom trackable button that uses Google’s manual API for the same confirm-and-return flow, or a plain deeplink that loads no Google JavaScript at all. Which one? The standard button gives you Google’s official badge with the G, the strongest trust signal, but its click sits inside a Google frame and cannot be measured; the custom button trades the G for a click you can record; the deeplink is for anywhere a script cannot run.
- Placed your way. A block, a
shortcode, or a widget for older themes, all rendering the same. - Loaded only where used. Google’s library loads only on pages that carry a button, keeping its iframe off the rest of your site, with a site-wide in-head option if you want it.
- A no-JavaScript fallback deeplink ships with every button.
- Honest, opt-in measurement. Off by default. When you turn it on, it records the start of the flow in the GA4 or Google Tag Manager you already run. That is reliable in the custom and deeplink modes, where the click is on your own element, and deliberately absent in standard mode, where the click sits inside Google’s frame and cannot be seen.
- Theme, alignment and language set once and overridable per placement.
It is built for WordPress.org and follows the same discipline as the LLMs.txt Curator: it sends nothing home, and it is honest about what the feature does. It changes what a reader who opted in sees; it is not a ranking product.
Here it is, live on this page:
Where to put the button
Placement is most of the result. Put it at a moment of goodwill: the end of an article a reader has just finished, or beside your share links, where the decision to trust you has already been made. Not the homepage, where a visitor has read nothing of yours yet. One button per page keeps it fast and keeps the ask clear.
Measuring interest honestly
Here is a subtlety most write-ups get wrong. Google’s standard button renders inside an iframe served from news.google.com, and a click inside that frame cannot be seen by your page. So you cannot reliably count clicks on the standard button from your own analytics, and any snippet that claims to is measuring the wrong thing.
For a reliable signal, use the custom trackable button or the deeplink, where the click happens on your own element. The plugin fires a preferred_source_flow_started event into the GA4 or Google Tag Manager you already run, and only when you switch it on. With Google Tag Manager, create a custom event trigger of that name and fire a GA4 event tag from it; with gtag.js and no container, it goes straight to GA4. Confirm it once in DebugView. Read it as the start of the flow, not a confirmed selection, which Google completes on its own screens.
The honest bottom line
None of this is a ranking shortcut, and the button will sit unclicked on a site readers have no reason to return to. It pays off when you have already earned the loyalty, and when your site is the kind Google lists as a source in the first place. That eligibility is the real work, and it is the same work that earns durable AI citation and recommendation. To see whether your site is there yet, that is what an AI visibility audit is for, and the companion guide on what determines eligibility is the place to start.
Google’s own reference is at developers.google.com/search/docs/appearance/preferred-sources.