How to add a Google Preferred Sources button for your readers

Published Updated 12 min read
How to add a Google Preferred Sources button for your readers

Check your site, add a Google Preferred Sources button or link, and test the invitation on desktop and mobile. Includes code, missing-button checks, and how to separate link clicks, completed selection and search visits.

After someone reads a useful article, how can they find that publication again in Google? A Preferred Sources button gives them a way to choose the site as one of their sources. The choice belongs to the reader; the publisher's first task is to check whether the site can be offered as an option.

This guide walks through checking a site, adding a button or link, and testing the invitation on a phone. We rechecked Google's documentation on October 9, 2026. The button display checks described below were performed on October 8.

Start with the public site's domain and a clear idea of which parts of its HTML can be edited. If editing code is not an option, a link to Google's selection page can provide a starting point.

A reader chooses one publication from several sources

Preferred Sources affects the experience of the reader who selects a site. Google describes more visibility for chosen sources in that reader's Top Stories results and a preferred badge in AI Mode and AI Overviews. That is not a promise that an AI answer will cite the site. See Google's Preferred Sources guide.

Think of someone who regularly reads a trade publication and wants to keep using it as an information source. The reader makes that choice. The publisher can make the option easier to find and explain what it does.

Preferred Sources and ordinary search rankings

An SEO report may track where a page ranks for a search term. Preferred Sources also involves a particular reader's preferences, so a badge on one person's screen is not evidence that the site has moved up for everyone.

A useful implementation goal is: “Let readers who value this article choose our publication in Google.” Avoid telling them that registration guarantees a top position in AI search. Keeping that distinction clear also makes the results easier to report.

What to check What can be observed What that observation does not establish
Does the invitation work? Button display and the destination's site candidate How many readers added the site
Do readers respond to the invitation? Clicks on a link placed on the site Completed selection in Google
Have visits changed? Search visits to the relevant pages Whether the button caused the change

This is a suggested way to separate observations, not a list of dedicated reports supplied by Google.

Check the site, not an individual article

The supported level is a domain or subdomain. Check a name such as example.com or news.example.com, rather than treating example.com/blog/ or an individual article URL as a separate preferred source.

If a company's blog is part of its main website, start with that site's domain. If the publication uses a separate subdomain, check that instead. There is no need to move a blog to a different URL structure simply to add this invitation. First identify the candidate that matches the existing public site.

Check whether your site is available as a preferred source

Checking a publication candidate separately from domain and site settings

Look for the site in Google's source preferences before adding code. Sending readers to a candidate that cannot be found leaves them unable to complete the intended action. Record the date and the exact domain searched so another person can repeat the check.

There are two separate checks here: finding the publication as a candidate, and checking the publisher's settings for Google's AI features. A reader's choice of source and a site's Search Console settings are different controls.

Find the domain in Google's selection page

Open Google's source preferences and search for the public domain in the name-or-website search field. Check the domain as well as the displayed publication name, especially when another organization has a similar name or the company has used an older website.

During preparation of this guide, we searched for agent-signal.ai and observed a matching candidate. We did not select its checkbox or complete registration, and we did not test a resulting change in search results. Finding this candidate also does not establish eligibility for another domain.

If the site is missing, check whether the entered value is an article URL or a different subdomain. If it still cannot be found, record the date and result and hold the invitation until the destination can be verified. This check does not establish a rule such as “publish a certain number of articles and the site will become eligible.”

Check the site's inclusion in Google's AI features

For Preferred Sources in AI Mode and AI Overviews, Google's guide requires the site to be included in Search generative AI features. Select the relevant property in Search Console and check Settings → Search generative AI. The official control documentation explains the available choices.

If the property inherits a parent's setting, identify the parent whose choice applies. A blog editor should not change a company-wide setting without knowing the site's policy. If a change is needed, give the site owner the current state and the specific property or section involved.

Finding the site as a preferred-source candidate is also different from checking whether an article is indexed. Do not change crawling rules or settings that remove pages from search merely because a candidate is missing. Any change to a site's public availability should have an identified target and purpose.

Choosing between a standard JavaScript button and a text link

Google recommends the standard JavaScript button when it can be installed. A text link is an alternative when a content management system only permits links or when the initial invitation will appear at the end of one article. Custom buttons are also supported through Google's software library, but starting with the simplest suitable approach makes testing easier.

Method Suitable situation Check before release
Standard JavaScript button The site's shared HTML can be edited Button rendering and the action it opens
Text link Only a link can be added The target domain and any new-tab notice
Custom implementation A custom interface or page-transition behavior is required Initialization timing and the click handler

Install the standard JavaScript button

The following minimal page shows where the standard components belong. On an existing site, add the library-loading line and the display element to their corresponding locations; do not replace the whole page with this example.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Article page</title>
  <script async src="https://news.google.com/swg/js/v1/publisher.js"></script>
</head>
<body>
  <main>
    <!-- Article content goes here. -->
    <aside aria-label="Choose this publication in Google">
      <p>If this article helped, you can choose this site as a source in Google.</p>
      <div google-add-preferred-source-btn data-theme="light"></div>
    </aside>
  </main>
</body>
</html>

If a shared template already loads the library, check with the developer before adding the same script to every article. Some editors remove scripts from their content fields. If that happens, pass the code to the person who can edit the template instead of repeatedly pasting it into the same field.

In our local check, this standard approach rendered a Japanese-language button at both desktop width and a 390-pixel viewport. Rendering a button locally is not the same as completing registration for a production domain. Google documents a return to the publication after the reader completes the standard flow; we did not complete registration during this check.

The official guide also describes light and dark themes and an optional language override. Begin by checking the default language behavior and change it only if necessary. The library chooses its default language from the reader's browser settings. Refer to Google's implementation guide for the source of these code examples and customization options.

If JavaScript cannot be installed, use a link. Replace example.com with the domain already checked in Google's candidate list. This is not the place for an article URL or an administrative page URL.

<a href="https://www.google.com/preferences/source?q=example.com"
   target="_blank" rel="noopener">
  Choose this site as a preferred source in Google (opens a new tab)
</a>

This example opens a new tab so the original article remains available. For same-tab navigation, remove the target attribute and update the link text to match. Styling this link as a button does not automatically complete the reader's selection in Google.

Before release, open the destination and confirm that the prefilled domain and candidate match. We verified the candidate by navigating directly to the destination URL. We did not verify the click-to-new-tab behavior in that check, so test that action on the site where the invitation will be published.

Test the invitation on desktop and mobile

Checking an article invitation on desktop and mobile

Check the page readers will actually see, not just the content editor's preview. A button that fits on desktop can overlap a fixed banner or extend beyond the screen on a phone.

Choose a representative article that includes the body, the invitation and the footer. A test containing only the isolated button cannot show where readers will encounter the invitation in the full page.

Work through a missing-button problem

If the button is absent, first ask the implementation owner to check whether the code was saved, the library loaded, and the display element exists on the page. Keep a rendering failure separate from a publication that cannot be found in Google's source list.

What happens What to investigate next What not to change without a reason
Only the invitation text appears Whether the script and display element were retained and loaded The domain or URL structure
The button disappears after navigating within the site Initialization when the page changes The entire article body
The button appears but the candidate is wrong The public domain and destination The site's search visibility settings
The button is difficult to tap on a phone Spacing, overlap and available width Shrinking the label until it is unreadable

For a site that changes pages using JavaScript, ask the developer whether automatic rendering is sufficient. Google's ES Module and callback examples provide alternatives when programmatic control is needed. Investigate the cause before broadly allowing every external script through a site's security restrictions.

Place the invitation where it makes sense to readers

The end of a useful article, or an area where readers choose how to follow the publication, is a reasonable first location to test. Explain the action plainly: “If this guide helped, you can choose our site as a source in Google.” Avoid a label or appearance that could be confused with submitting an inquiry or signing up for the publisher's service.

Evaluate whether the invitation interrupts reading as well as whether it receives clicks. On a small screen, check that a fixed invitation does not cover the article. Testing one location before adding several gives the team a smaller set of changes to investigate.

What to check after adding the Preferred Sources invitation

Separating invitation clicks, unverified selection and article visits

Record the installation date, pages, implementation method and invitation text. Otherwise, a later comparison of visits may overlook changes to the button's location or wording and leave the team unsure what was tested.

The following is a suggested internal record. If completed registrations cannot be observed, leave them unverified rather than filling that field with an estimate.

Record Example entry
Initial scope The end of explanatory articles using one template
Implementation Standard button or text link
Display checks Desktop, mobile and the date checked
Action checks Candidate domain matched; whether selection was completed
Measurements Invitation-link clicks and search visits to the relevant articles
Other changes Any title edits or concurrent campaign

Separate registration from visits to the article

Suppose the invitation link receives 20 clicks. That does not establish that 20 readers added the publication: one person might click more than once, or leave the selection screen without finishing. This is a hypothetical example, not an AgentSignal result.

A click observed on the publisher's site should be named for the action it records, such as opening the selection page, rather than “registration completed.” If search visits increase, also check new articles, changing news demand and title edits during the same period. A before-and-after difference alone does not establish that the button caused the increase.

For AI-search visibility, the guide to Search Console's generative AI report provides related context. Keep appearing in a result separate from a reader opening the article.

Keep the article itself useful and current

An invitation cannot make outdated instructions useful to a returning reader. Recheck information that changes, including product steps, prices and availability, and record when those details were checked.

Start by finding one domain candidate and making one page's invitation work. Then review reader interaction and article visits as separate observations while improving the content and placement. For the wider context, see Google AI Mode for business websites.

FAQ

Q. Does being chosen as a preferred source guarantee an AI citation?
No. Google describes visibility for chosen sources in the reader’s Top Stories results and a preferred badge in AI Mode and AI Overviews. It does not promise citations or higher rankings for every searcher.
Q. Can each article be a separate preferred source?
The supported level is a domain or subdomain. Check the candidate for the public site rather than treating an article URL or a blog subdirectory as a separate publication.
Q. Can I add an invitation without JavaScript?
Yes. Use a text link to Google’s source preferences and replace example.com with the domain you have checked in the candidate list. Verify that the destination shows the intended site before release.
Q. What should I check if the standard button is missing?
Check that the library script and display element were retained and that the library loads. If the button disappears only after navigation, ask the implementation owner to check initialization when the page changes.
Q. Can button clicks be reported as completed registrations?
A click does not show whether the reader completed selection in Google. Name the event for the action observed, such as opening the selection page, and keep it separate from completed selection and article visits.
Q. Which parts of this guide were tested?
On October 8, 2026, we checked standard-button rendering at desktop and 390-pixel widths and a matching domain candidate in Google’s selection page. Completed selection, the return flow, click-to-new-tab behavior and changes in search results were not verified.

Sources

  1. [1] Preferred sources (Google Search Central) — accessed 2026-10-09
  2. [2] Search generative AI control (Google Search Console Help) — accessed 2026-10-09

About the author

Shogo Mizushima

CEO of kairos Inc. / AgentSignal Developer

Develops AgentSignal, a tool for measuring AI crawler visits and AI-referred traffic, and diagnosing AIO readiness. Writes about measurement and practical improvements for AI search using observed data.

Related articles