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:
-
Ask the plugin to include
alternateName
if it supports it in settings or via a filter -
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
-
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
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
-
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
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.