What “Site Name” Means, and Why It Matters

Google can show a site name next to your results on mobile and sometimes desktop. It’s separate from your page title. If Google is showing your raw domain (like example.com) or the wrong brand, you’ll want to give Google stronger signals so it picks the right name.

When You Should Do This

  • Google shows your domain instead of your brand

  • You rebranded, but search still shows the old name

  • Your official name is too long and gets truncated

  • Your brand uses a short form or acronym people recognize

How Google Picks a Site Name

Google looks at a mix of signals:

  • On-page branding, header, footer, logo alt text

  • Homepage title and headings

  • Structured data for WebSite (this is the one you control directly)

  • External references across the web

  • Consistency across all of the above

The Structured Data You Need (WebSite with name and alternateName)

At minimum, add a WebSite JSON-LD block on your homepage:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Burnt Toast",
  "alternateName": ["BT", "B-T", "Burnt Toast Shop"],
  "url": "https://www.example.com/"
}
</script>

Guidelines:

  • name is your preferred brand

  • alternateName is optional and ordered by preference

  • url must be your canonical homepage URL

WordPress: Practical Ways to Implement

Option A: Quick drop-in via theme (or child theme)

Put this in your theme’s header.php just before </head> or use a small code snippet plugin to hook into wp_head.

Static version

<?php
add_action('wp_head', function () {
  if (!is_front_page() && !is_home()) { return; } // homepage only
  ?>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "Burnt Toast",
    "alternateName": ["BT", "B-T", "Burnt Toast Shop"],
    "url": "https://www.example.com/"
  }
  </script>
  <?php
});

Dynamic version using WordPress settings

<?php
add_action('wp_head', function () {
  if (!is_front_page() && !is_home()) { return; }

  $site_name = get_bloginfo('name');
  $home_url  = home_url('/');

  // Put your preferred alternates here or fetch from an option/ACF
  $alternate = ["$site_name", "{$site_name} Official"];

  // Safety: remove duplicates and empties
  $alternate = array_values(array_unique(array_filter($alternate)));

  ?>
  
  <?php
});

Option B: If you use Yoast or Rank Math

Most SEO plugins already output a WebSite graph piece. You have two choices:

  1. Ask the plugin to include alternateName if it supports it in settings or via a filter

  2. Output your own WebSite block as above on the homepage and keep all names consistent

If your plugin supports filters, you can try a light touch approach like this Yoast-style example:

<?php // Add alternateName to Yoast WebSite piece if present.
add_filter('wpseo_schema_graph_pieces', function ($pieces, $context) {
  foreach ($pieces as &$piece) {
    if (is_object($piece) && method_exists($piece, 'context') && method_exists($piece, 'generate')) {
      $data = $piece->generate();
      if (is_array($data) && isset($data['@type']) && $data['@type'] === 'WebSite') {
        $site_name = get_bloginfo('name');
        $piece_data = $piece->generate();
        $piece_data['alternateName'] = [$site_name, "{$site_name} Official"];
        // Replace piece output
        $piece->context = function () use ($piece_data) { return $piece_data; };
      }
    }
  }
  return $pieces;
}, 20, 2);

If the filter approach feels finicky in your setup, keep it simple and use Option A. The key is consistency and avoiding conflicting names.

Shopify: Practical Ways to Implement

Basic hard-coded snippet in theme.liquid

Add this inside <head> in theme.liquid and update the values:

{% if request.page_type == 'index' %}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Burnt Toast",
  "alternateName": ["BT", "B-T", "Burnt Toast Shop"],
  "url": "{{ request.origin }}/"
}
</script>
{% endif %}
  • request.origin gives your store’s origin so the URL is correct across domains

  • Keep this only on the homepage

Dynamic version using store settings and metafields

  1. Create a metafield for alternate names:

    • Admin → Settings → Custom data → Store

    • Add definition:

      • Name: Alternate Site Names

      • Namespace and key: seo.alternate_names

      • Type: List of text

    • Enter values in order of preference, like BT, B-T, Burnt Toast Shop.

  2. Use the store name and metafield in theme.liquid:

{% if request.page_type == 'index' %}
{% assign alt_names = shop.metafields.seo.alternate_names %}

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": {{ shop.name | json }},
  {% if alt_names and alt_names.size > 0 %}
  "alternateName": [
    {% for n in alt_names %}
      {{ n | json }}{% if forloop.last == false %},{% endif %}
    {% endfor %}
  ],
  {% endif %}
  "url": "{{ request.origin }}/"
}
</script>
{% endif %}

Tip: If you prefer to control the primary name too, add another store metafield like seo.site_name and switch "name": {{ shop.name | json }} to that metafield.

Do a Quick Signal Audit

Before you ship the schema, make sure everything else agrees:

  • Homepage <title> includes your brand in a natural way

  • Header logo’s alt text has the brand name

  • Footer shows the brand name

  • Business listings and social profiles use the same brand

  • Avoid keyword stuffing in the brand field

Validate and Reindex

  1. Validate your JSON-LD with Google’s Rich Results Test or the Schema Markup Validator

  2. Request indexing for the homepage in Google Search Console

  3. Monitor results for a couple of weeks

If the name doesn’t change:

  • Check for duplicate or conflicting WebSite blocks

  • Confirm that your url matches the canonical homepage

  • Keep the on-page brand signals consistent

  • Give it more time and make sure external citations reflect the right name

FAQ

Can I list more than one alternate name?
Yes. Order them by preference. Google picks the most suitable.

Will this work if I just rebranded?
Yes, but update all brand signals across the site and the web. Structured data alone won’t override strong real-world signals if everything else still shows the old name.

Do I need Organization schema too?
It helps with overall brand understanding, but the site name feature relies on the WebSite entity. Keep both consistent if you use Organization markup.