Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsUse the most specific Open Graph type that truthfully describes the object represented by the page. Use article for an article, book for a book, profile for a person’s profile, an applicable music.* or video.* subtype for media, and website when the page represents a general site or has no more specific documented type. Put the value in a <meta property="og:type"> element in the document head, alongside the other required Open Graph properties.
The type is a description of the page’s represented object—not a URL category, HTML element, or arbitrary content label. The official protocol explains that Open Graph lets a web page become a rich object in a social graph (official Open Graph documentation).
What does og:type mean?
Open Graph metadata describes a web page as an object that social platforms and other consumers can interpret. The og:type property identifies what kind of object the page represents. It is one of the protocol’s required basic properties, and the selected type determines which additional properties are relevant.
For example, a news story and a company homepage may both be HTML documents, but they represent different objects. The story can use article and provide an author, section, and publication time. The homepage generally uses website, which has no additional type-specific properties in the protocol.
#1 Best Overall
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
A minimal head might look like this:
<meta property="og:title" content="Open Graph Types">
<meta property="og:description" content="How to choose the correct Open Graph object type.">
<meta property="og:url" content="https://example.com/open-graph-types">
<meta property="og:image" content="https://example.com/images/open-graph-types.png">
<meta property="og:type" content="article">
The protocol’s basic metadata belongs in the document’s <head>. Type-specific fields should be added only when they apply to the selected object.
What are the Open Graph types?
The official documentation organizes built-in types into global verticals. Global vertical names use a period between the family and subtype, such as video.movie. The documented global types and their notable properties are:
| Family or type | Values | Use it for | Type-specific information documented by the protocol |
|---|---|---|---|
| Music | music.song, music.album, music.playlist, music.radio_station |
Songs, albums, playlists, or radio stations | Depending on the subtype: duration, album or song relationships, track positions, musicians, creators, and release dates |
| Video | video.movie, video.episode, video.tv_show, video.other |
Movies, episodes, television shows, or other video objects | Actors and roles, directors, writers, duration, release date, tags, and— for an episode—the series it belongs to |
| Article | article |
A published article, post, or similar editorial object | Publication, modification, and expiration times; author; section; and tags |
| Book | book |
A book object | Author, ISBN, release date, and tags |
| Profile | profile |
A person’s profile object | First name, last name, username, and gender |
| Website | website |
A general website or a page without a more specific documented object type | No extra type-specific properties beyond the basic Open Graph set |
These names and property definitions come from the official Open Graph type documentation. Do not assume that a property from one family applies to another; use the fields documented for the selected type.
How should I choose a type?
- Identify the represented object. Ask what a visitor would say the URL is: a story, a book, a user profile, a song, a movie, or the site itself.
- Select the most specific documented value. A movie should be
video.movie, not the genericvideo.other; a song should bemusic.song, notwebsite. - Add the matching properties. Supply article dates and authors for an article, book details for a book, or the applicable media fields for music and video.
- Leave unrelated fields out. More tags do not make a type more accurate. A field is useful only when it belongs to that object family and has a truthful value.
Should this page be website or article?
Use article when the URL represents an article or post and you can describe its editorial metadata. Use website for a homepage, a general site landing page, or another page that is not represented by a more specific documented type. The protocol states that a page with no markup should be treated as website.
Rank #2
A CMS may map templates differently. For example, Yoast documents website for a homepage, profile for user profile pages, and article for posts and other templates. That is Yoast’s implementation convention, not a universal rule for every CMS (Yoast OpenGraph functional specification).
What if no built-in type fits?
The protocol supports a custom type in CURIE-style form, such as my_namespace:my_type. Declare the namespace with a prefix attribute on the document’s <head>. This syntax is distinct from the period-separated names used by the documented global verticals: video.movie is a global type, while my_namespace:my_type is the custom form.
Global vertical types in detail
Music types
Choose the subtype that matches the object, rather than treating every music URL as a generic album or website. A song, album, playlist, and radio station are separate documented objects. Their associated metadata can describe relationships between songs and albums, track positions, duration, musicians, creators, and release dates. Only include the fields relevant to the chosen subtype.
Video types
video.movie, video.episode, video.tv_show, and video.other distinguish the video object. The protocol documents fields for people and roles, directors, writers, duration, release date, and tags. An episode also has a relationship to the series it belongs to. A standalone film therefore should not be modeled as an episode merely because both are video.
Rank #3
Article, book, and profile
An article can carry publication, modification, and expiration timestamps, author, section, and tags. A book can carry author, ISBN, release date, and tags. A profile can carry a person’s first name, last name, username, and gender. Those property sets describe different objects; do not mix them simply because a page contains similar text.
Implementing Open Graph types
Static HTML
Place one og:type declaration in the head generated for each URL. For an article:
<head>
<meta property="og:title" content="A Practical Guide">
<meta property="og:type" content="article">
<meta property="article:published_time" content="2026-09-29T09:00:00Z">
<meta property="article:author" content="https://example.com/authors/alex">
<meta property="article:section" content="Technology">
</head>
Use the actual values for the page. The example illustrates where article-specific fields belong; it does not make every article’s dates, author, or section mandatory beyond the basic Open Graph requirements.
Server-rendered or CMS templates
Set the type from the content model, not from the URL pattern alone. A template that renders a post can emit article, while a homepage template can emit website. If your CMS plugin supplies the tags, inspect its documented mapping and override it only when the page’s represented object differs from the default.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #4
- Brand: Wiley
- Set of 2 Volumes
- A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
Single-page applications
Ensure the initial HTML response contains the tags in the <head>, rather than relying exclusively on JavaScript that runs after load. Consumers that fetch the URL may not execute your application code in the same way as a normal browser. Render the correct type for each route and keep the server output synchronized with the visible page.
Common mistakes and fixes
- Using a URL label as the type: A URL such as
/blog/does not automatically make every page an article. Choose based on the represented object. - Using
websiteeverywhere: This discards the documented article, book, profile, music, or video distinctions. Use a specific type when it truthfully applies. - Confusing periods and colons: Periods identify documented global vertical types such as
music.song; a custom type uses a colon and a declared namespace. - Adding the wrong properties: Type-specific fields vary. Remove fields that belong to another family instead of hoping consumers will infer your intent.
- Duplicate declarations: Multiple competing
og:typetags can make the result ambiguous. Emit one authoritative value per page. - Stale template output: If a page changed from a post to a landing page, clear the CMS or edge cache and inspect the delivered HTML, not only the editor preview.
- Missing head markup: Verify that the response includes the tags before client-side rendering. A page without markup is treated as
websiteby the protocol.
Preview the finished page before publishing
To verify a type in practice, request the final URL, inspect the raw HTML head, and confirm that the title, URL, image, and type describe the same object. Check a representative URL for every template—homepage, article, profile, and media page—because a correct one-off tag does not prove that the CMS mapping is correct site-wide.
Or skip the browser setup
ScreenshotNeo can capture the rendered page through one request while you inspect the visual result. Before capture it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be disabled. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in X-Page-Verdict and X-Billed headers. It also provides an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.
Use the ScreenshotNeo documentation for the full option list. A direct cURL request is:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutecurl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.
Best Value
Performance, reliability, and cost considerations
Open Graph types themselves are metadata strings; they do not require a separate service or runtime dependency. The practical reliability work is template consistency: generate tags in the initial response, keep values synchronized with the page, and test each content model after template changes. If you use a screenshot service to inspect rendered output, control waits, caching, and resource blocking according to the page’s behavior. ScreenshotNeo supports selector or delay waits, network-idle waits, custom headers and cookies, cache TTLs, bulk capture of up to 100 URLs per call, asynchronous jobs with signed webhooks, and a usage API; these options are available on every plan.
ScreenshotNeo’s listed plans are Free (1,000 shots/month), Starter ($5 for 3,000), Growth ($15 for 15,000), Pro ($39 for 60,000), Scale ($99 for 250,000), and Business ($249 for 1,000,000). Yearly billing gives two months free. These prices and allowances are plan terms, not a claim about Open Graph performance.
Frequently Asked Questions
Is og:type required?
The Open Graph protocol lists og:type among the required basic properties. Choose the value that describes the represented object.
Can I invent a value such as blog?
Use a documented global type or the documented custom CURIE-style form with a declared namespace. Do not substitute an undeclared label for a global type.
What type should a product page use?
The documented type list does not define a product type. Use the type that truthfully represents the page—often website unless your implementation has a documented, appropriate custom type.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

