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:
- 
                        nameis your preferred brand
- 
                        alternateNameis optional and ordered by preference
- 
                        urlmust 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)));
  ?>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": <?php echo json_encode($site_name, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); ?>,
    "alternateName": <?php echo json_encode($alternate, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); ?>,
    "url": <?php echo json_encode($home_url, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); ?>
  }
  </script>
  <?php
});Option B: If you use Yoast or Rank Math
Most SEO plugins already output a WebSite graph piece. You have two choices:
- 
                        Ask the plugin to include alternateNameif it supports it in settings or via a filter
- 
                        Output your own WebSiteblock 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.origingives your store’s origin so the URL is correct across domains
- 
                        Keep this only on the homepage 
Dynamic version using store settings and metafields
- 
                        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.
 
- 
                        
- 
                        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 alttext 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
- 
                        Validate your JSON-LD with Google’s Rich Results Test or the Schema Markup Validator 
- 
                        Request indexing for the homepage in Google Search Console 
- 
                        Monitor results for a couple of weeks 
If the name doesn’t change:
- 
                        Check for duplicate or conflicting WebSiteblocks
- 
                        Confirm that your urlmatches 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.
 
						
						
 
				 
				