Creating “FAQPage” Schema Markup Using the Schema App Editor


If you have  Frequently Asked Questions content on your website, adding FAQPage schema markup to those pages makes you eligible for a rich result on search and Markup Action for the Google Assistant, which can help your site reach the right users. If you don’t yet have this type of content on your website, we recommend adding it so you can leverage the power of schema markup!

It’s important to mention that you should only use “FAQPage” markup if your page has a list of questions with answers. If your page has a single question and users can submit alternative answers, use “QAPage” instead.

Before You Begin

Required and Recommended Properties

Google maintains documentation to explain exactly what is required for “FAQPage” markup. We’ve captured the required fields below. You must populate the required properties for your content to be eligible for display as a rich result. Recommended properties add more information to your structured data, which could provide a better user experience.

To mark up the FAQ page, start by creating a data item for the page itself. Then you’ll need to create an embedded data item for every Question, each of which will have its own embedded data item for its Answer.
Schema Property Priority Mapping Notes
mainEntity Required 

An array of Question elements which comprise the list of answered questions that this FAQPage is about.
Schema Property Priority Mapping Notes
acceptedAnswer Required 
name Required Text: The full text of the question.
Schema Property Priority Mapping Notes
text Required Text: The full answer to the question.

NOTE: For the most current guidelines on required and recommended fields, reference the Google Developers Reference Guide.

We created the following visual to help conceptualize the structure of a FAQPage markup.

Creating Your Markup

This short video demonstrates the basics of creating FAQPage markup. Read on for a detailed step-by-step tutorial with screenshots.


Create a FAQPage data item

The first step is to create a FAQPage data item. All questions (and their answers) will be nested under this data item. In the Structured Data Editor, use the class tree to search for “FAQPage”. Once selected, click “Create”.

Assign the data item a name and a URL. We recommend assigning a name that is descriptive and clearly identifies the item you are creating. In our example, the name for our “FAQPage” is “Schema App Pricing FAQs”. Enter the URL of the page where this FAQ content exists. 

TIP! Copy the URL from the address bar to avoid any typos or missing trailing slashes.


Once created, the page will refresh and the data item will be in Edit mode. You are required to have at least one Main Entity (a question) for the FAQ Page.

Create a Question data item

Type the first question in the “Main Entity” field, and click “Convert to Data Item”.

Next, you’ll be prompted to add the URL of this new data item, as well as its “type”.  Start by changing the “type” to “Question”. Once selected, the Editor automatically appends a “#Question” anchor tag to the end of the URL. Each Question data item requires a URL with a unique anchor tag (E.g. #Question1, #Question2, etc.) to differentiate it from other content on the page. The base URL should always reflect the page on the site where the FAQs reside.

Once you have the correct URL, anchor tag, and type, click “Create”.

Create an Answer Data Item

Now you need to create an Answer data item for the question. To do so, name the data item by pasting the question In the “Accepted Answer” field, followed by the word, “Answer”.

Then click “Convert to Data Item” and a new embedded form will appear. Change the Type to “Answer”, and verify that the URL includes an anchor tag with #Answer. Once the name, URL, and type fields are correct, click the orange “Create” button.

Another form will appear, prompting you to enter the text of the answer. Copy and paste the answer into the “Text” field and click the “Done” button. Your Answer data item is now complete! You can clearly see that you have a FAQPage (data item)  that includes a specific Question (embedded data item) with a specific Answer (embedded data item).

Click “Done” again to close this question form. You’ll be taken back to the FAQPage form where you can add another Question data item to the “Main Entity” field. 

Repeat the Process

To get started on the next question, use the “+” symbol on the right-hand side of the page to add a new “Main Entity” field. Complete the above steps for each Question and Answer pair you want to mark up.

Check Your Work

When you save the data item, the Editor will alert you to any missing required or recommended fields. If this happens, either go back and fill them out or add content to the web page so that you can mark it up.

TIP! You can only mark up content that is visible on a web page


Once done, you have the option to generate the JSON-LD and test it with Google to ensure that you have captured all relevant information. The markup created in this tutorial generates the following error and warning free result in the SDTT.

Testing Your Markup

Structured Data Testing Tool or Schema Markup Validator

Export the JSON-LD and run it through the SDTT or the Schema Markup Validator, to view any errors or warnings. Again, this serves as an alert to either correct the markup or to highlight gaps in the content. 

Rich Results Preview Testing

To validate and preview your structured data, use Google’s Rich Result Test. This tool will indicate if your page is eligible for rich results. Please note that Google’s Rich Result Test is only valid for certain supported rich result types.

Deploying Your Markup

If your markup is correct and error-free, ensure that your integration method is set-up and the markup will deploy to your page. 

If you see errors (in the SDTT or in your Google Search Console) that you are unsure how to resolve, feel free to reach out to and we will be happy to help out. 

Learn how to deploy FAQs to a variety of pages – Webinar and Article
Claire Yuricek

Claire Yuricek is the Operations Manager at Schema App, and is always finding new ways to improve the effectiveness and efficiency of our company processes.