Loyalty program (MemberProgram
) structured data

Many merchants have loyalty programs that offer members special benefits, such as special prices and
loyalty points. When you add MemberProgram
structured data to your site, Google Search can
use this information to display loyalty benefits with your products and knowledge panels in Search results.
How to add structured data
Structured data is a standardized format for providing information about a page and classifying the page content. If you're new to structured data, you can learn more about how structured data works.
Here's an overview of how to build, test, and release structured data.
- Add the required properties. Based on the format you're using, learn where to insert structured data on the page.
- Follow the guidelines.
- Validate your code using the Rich Results Test and fix any critical errors. Consider also fixing any non-critical issues that may be flagged in the tool, as they can help improve the quality of your structured data (however, this isn't necessary to be eligible for rich results).
- Deploy a few pages that include your structured data and use the URL Inspection tool to test how Google sees the page. Be sure that your page is
accessible to Google and not blocked by a robots.txt file, the
noindex
tag, or login requirements. If the page looks okay, you can ask Google to recrawl your URLs. - To keep Google informed of future changes, we recommend that you submit a sitemap. You can automate this with the Search Console Sitemap API.
Examples
Here's an example of a MemberProgram
structured data markup for a loyalty program with two membership tiers.
<html> <head> <title>About Us</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "MemberProgram", "name": "Membership Plus", "description": "For frequent shoppers this is our top-rated loyalty program", "url": "https://www.example.com/membership-plus", "hasTiers": [ { "@type": "MemberProgramTier", "@id": "#plus-tier-silver", "name": "silver", "url": "https://www.example.com/membership-plus-silver", "hasTierBenefit": [ "https://schema.org/TierBenefitLoyaltyPoints" ], "membershipPointsEarned": 5 }, { "@type": "MemberProgramTier", "@id": "#plus-tier-gold", "name": "gold", "url": "https://www.example.com/membership-plus-gold", "hasTierRequirement": { "@type": "CreditCard", "name": "Example platinum card plus" }, "hasTierBenefit": [ "https://schema.org/TierBenefitLoyaltyPrice", "https://schema.org/TierBenefitLoyaltyPoints" ], "membershipPointsEarned": 10 } ] } </script> </head> <body> </body> </html>
Guidelines
For your loyalty program markup to be eligible for usage in Google Search, you must follow these guidelines:
Technical guidelines
- We recommend placing loyalty program information on a single page on your site that describes your organization's loyalty program(s). You don't need to include it on every page of your site. If you have separate pages describing each tier under one program we recommend to include the entire definition of that member program and its tiers on a single page. Separate member programs can be defined on separate pages.
-
Include the
MemberProgram
structured data type under theOrganization
structured data type. Refer to the Organization markup for more information. -
To specify the loyalty benefits (such as loyalty prices and points earned) for your individual products,
add the
UnitPriceSpecification
markup defined for merchant listings. TheMemberProgram
markup you define for your business works together withvalidForMemberTier
andMembershipPointsEarned
structured data to define the loyalty benefits for your customers when buying your products.
Structured data type definitions
You must include the required properties for your structured data to be eligible for usage in Google Search. You can also include the recommended properties to add more information about your loyalty programs, which could provide a better user experience.
MemberProgram
Use the following properties to describe one or more loyalty programs and one or more
tiers per loyalty program for your business.The full definition of MemberProgram
is
available at schema.org/MemberProgram.
Required properties | |
---|---|
description |
The description of the loyalty program, describing the primary benefits for members. |
hasTiers |
Repeated Defines a tier under a loyalty program. A loyalty program must have at least one tier.
See the list of |
name |
The name of the loyalty program. |
Recommended properties | |
---|---|
url |
A URL of the web page where a shopper can sign up for this loyalty program.
Don't provide multiple URLs. If not provided, the URL of the page
containing the |
MemberProgramTier
MemberProgramTier
is used to define a tier under a MemberProgram
.
A loyalty program can have multiple tiers. For example, bronze, silver, and gold.
The full definition of MemberProgramTier
is available at
schema.org/MemberProgramTier.
Required properties | |
---|---|
hasTierBenefit |
Repeated Benefit for members of this member tier. A member tier can have multiple benefits. The short names without the URL prefix
are also supported (for example
|
name |
The name of the membership tier. |
Recommended properties | |
---|---|
hasTierRequirement |
The requirement to join a member tier. If not specified, anyone can join the tier for free. For a non-free tier, specify a value of the type representing the requirement to join the tier.
|
membershipPointsEarned |
The number of loyalty points earned by the consumer per currency unit spent when |
url |
A URL of the web page where a shopper can sign up for this specific member tier. Don't provide multiple URLs. |
Using Merchant Center to configure loyalty programs with Google
Loyalty programs can be difficult to configure and keep up-to-date with markup. If you have a Google Merchant Center account, you can alternatively consider configuring your loyalty program directly in Google Merchant Center instead of using markup. Refer to the Merchant help center article about loyalty program for more information.
If you provide both markup and Merchant Center loyalty programs, Google will use the Merchant Center settings.
Troubleshooting
If you're having trouble implementing or debugging structured data, here are some resources that may help you.
- If you're using a content management system (CMS) or someone else is taking care of your site, ask them to help you. Make sure to forward any Search Console message that details the issue to them.
- Google does not guarantee that features that consume structured data will show up in search results. For a list of common reasons why Google may not show your content in a rich result, see the General Structured Data Guidelines.
- You might have an error in your structured data. Check the list of structured data errors and the Unparsable structured data report.
- If you received a structured data manual action against your page, the structured data on the page will be ignored (although the page can still appear in Google Search results). To fix structured data issues, use the Manual Actions report.
- Review the guidelines again to identify if your content isn't compliant with the guidelines. The problem can be caused by either spammy content or spammy markup usage. However, the issue may not be a syntax issue, and so the Rich Results Test won't be able to identify these issues.
- Troubleshoot missing rich results / drop in total rich results.
- Allow time for re-crawling and re-indexing. Remember that it may take several days after publishing a page for Google to find and crawl it. For general questions about crawling and indexing, check the Google Search crawling and indexing FAQ.
- Post a question in the Google Search Central forum.