HTML
Project final - Structured data
Add full Schema.org markup to an article and document it.
Final step: publisher and wrap-up
In the final step you'll combine what you learned and add a publisher to the article. The publisher is the organization that releases the article and is marked with the Organization type.
You use the same nested approach: the outer span gets itemprop="publisher" itemscope itemtype, the inner span gets itemprop="name" with the org name.
Finally, add a short HTML comment above the article to flag the structured data. This helps anyone reading the code.
Document with comments
As you add structured data, the HTML gets busier. To help readers of your code you can add HTML comments.
A comment has the form <!-- ... --> and is invisible in the browser. A note like <!-- Structured data: Schema.org Article markup --> above the article tells anyone opening the file that structured data lives there.
Comments explain code without changing content.
Exercise Add a publisher and flag the structured data with a comment
Take the article from the previous step. After the author paragraph, add a new <p> with a nested Organization structure:
Outer span: itemprop="publisher" itemscope itemtype="https://schema.org/Organization". Inner span: itemprop="name" with the publisher name (e.g. Learning Press).
Also add a short HTML comment before the <article> to flag the structured data (e.g. <!-- Structured data: Schema.org Article markup -->).
Show example solution
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Education in the AI Era</title>
</head>
<body>
<!-- Structured data: Schema.org Article markup -->
<article itemscope itemtype="https://schema.org/Article" itemid="/articles/education-in-the-ai-era">
<h1 itemprop="headline">Education in the AI Era</h1>
<p>Published: <time itemprop="datePublished">2026-03-15</time></p>
<p>Author: <span itemprop="author" itemscope itemtype="https://schema.org/Person"><span itemprop="name">Alex Carter</span></span></p>
<p>Publisher: <span itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span itemprop="name">Learning Press</span></span></p>
<p>AI is reshaping the relationship between teacher and student in classrooms.</p>
</article>
</body>
</html>
Project complete!
Congratulations! You finished the five-lesson project. You now hold a fully Schema.org marked-up article.
What you learned:
- Opening a scope with itemscope
- Specifying a type with itemtype
- Adding a unique id with itemid
- Marking properties with itemprop
- Nested Person and Organization types
You can apply this method to news, blog posts, product and event pages too.
Test yourself
-
Which type is used for the publisher organization?
<span itemprop="publisher" itemscope itemtype="...">
- https://schema.org/Person
- https://schema.org/Organization
- https://schema.org/Article
- https://schema.org/Event
Show answer
https://schema.org/Organization — Correct. The publisher is an organization, so Organization is used.
-
Complete the Organization type URL
<span itemprop="publisher" itemscope itemtype="____"><span itemprop="name">Publisher</span></span>
Show answer
<span itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span itemprop="name">Publisher</span></span>
-
Match each type with the entity it marks
- Article
- The marked article
- Person
- Author
- Organization
- Publisher
- name
- Sub-property
Next lesson: Template element