TechArticle
TechArticle is the Article subtype for technical content: tutorials, API documentation, developer guides, system administration manuals, technical specifications. Google treats it the same as base Article for the article rich result, but the subtype communicates to consumers that the content requires technical knowledge. Use TechArticle when the reader needs domain expertise to follow along.
TechArticle adds two properties that base Article does not have: proficiencyLevel (the skill level the reader needs) and dependencies (software or knowledge prerequisites). Both are free-text strings. These are small additions, but they are exactly what AI systems look for when recommending documentation to users at different skill levels.
Full example of schema.org/TechArticle json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@id": "https://xoocode.com/docs/getting-started-xoostructured#article",
"@type": "TechArticle",
"headline": "Getting Started with XooStructured: Your First JSON-LD Template",
"alternativeHeadline": "A beginner guide to creating schema markup with the XooStructured IDE",
"description": "Step-by-step tutorial for installing XooStructured, creating a Product JSON-LD template, validating it against Google's requirements, and deploying the markup to a live page.",
"image": [
"https://xoocode.com/docs/images/getting-started-1x1.jpg",
"https://xoocode.com/docs/images/getting-started-4x3.jpg",
"https://xoocode.com/docs/images/getting-started-16x9.jpg"
],
"url": "https://xoocode.com/docs/getting-started-xoostructured",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://xoocode.com/docs/getting-started-xoostructured"
},
"author": {
"@type": "Person",
"name": "Tomás Herrera",
"url": "https://xoocode.com/team/tomas-herrera",
"jobTitle": "Developer Advocate",
"worksFor": {
"@id": "https://xoocode.com#organization"
}
},
"publisher": {
"@type": "Organization",
"@id": "https://xoocode.com#organization",
"name": "Xoo Code Inc.",
"url": "https://xoocode.com",
"logo": {
"@type": "ImageObject",
"url": "https://xoocode.com/images/xoocode-logo.png",
"width": "600",
"height": "60"
}
},
"datePublished": "2026-01-20T10:00:00-05:00",
"dateModified": "2026-03-05T16:45:00-05:00",
"inLanguage": "en-US",
"articleSection": "Documentation",
"wordCount": "2640",
"keywords": "XooStructured, JSON-LD, structured data, tutorial, getting started",
"proficiencyLevel": "Beginner",
"dependencies": "XooStructured 3.2 or later, Node.js 18+",
"timeRequired": "PT15M",
"about": {
"@type": "SoftwareApplication",
"@id": "https://xoocode.com/xoostructured#software"
},
"mentions": [
{
"@type": "Product",
"@id": "https://xoocode.com/shop/xootee-classic#product"
},
{
"@type": "Thing",
"name": "JSON-LD",
"sameAs": "https://en.wikipedia.org/wiki/JSON-LD"
}
],
"isPartOf": {
"@type": "CreativeWorkSeries",
"@id": "https://xoocode.com/docs#series",
"name": "XooStructured Documentation",
"url": "https://xoocode.com/docs"
},
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".article-headline", ".article-intro"]
},
"isAccessibleForFree": true,
"copyrightYear": "2026",
"copyrightHolder": {
"@id": "https://xoocode.com#organization"
}
}
</script>proficiencyLevel
proficiencyLevel is a plain text string. Schema.org does not define an enum for it, so you can write "Beginner", "Intermediate", "Advanced", "Expert", or whatever fits your documentation's skill taxonomy. Google does not currently display it in search results, but AI assistants and documentation search engines use it to filter and rank results by reader expertise. Pick a consistent vocabulary across your documentation and stick with it.
dependencies
dependencies lists what the reader needs before starting: software versions, installed tools, prior knowledge. It is a single text field, not an array, so list everything in one string separated by commas. This is not the same as the softwareRequirements property on SoftwareApplication, which lists requirements for running the software itself. dependencies on TechArticle lists requirements for following the tutorial.
timeRequired
timeRequired uses ISO 8601 duration format: PT15M for 15 minutes, PT1H30M for 90 minutes. This is the estimated reading or completion time. Google sometimes shows reading time in search results for articles, and AI systems use it when recommending content based on how much time the user has available.
TechArticle vs HowTo
TechArticle and HowTo both describe instructional content, but they target different surfaces. HowTo is a standalone type (not an Article subtype) with its own rich result that renders step-by-step instructions directly in Google Search. TechArticle is an Article subtype that earns the standard article rich result. Use HowTo when the content is a concise procedure that makes sense displayed as numbered steps in search. Use TechArticle when the content is a longer technical document that includes procedures but is primarily meant to be read as a full article.
Minimal valid version
The smallest markup that still produces a valid TechArticle entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Getting Started with XooStructured: Your First JSON-LD Template",
"image": "https://xoocode.com/docs/images/getting-started-16x9.jpg",
"datePublished": "2026-01-20T10:00:00-05:00",
"author": {
"@type": "Person",
"name": "Tomás Herrera"
}
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsArticle rich resultprimary
Common TechArticle mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
proficiencyLevel as a number
Wrong"proficiencyLevel": 1Right"proficiencyLevel": "Beginner"proficiencyLevel is a text field, not a numeric scale. Most consumers expect descriptive strings like "Beginner", "Intermediate", or "Advanced". Numbers are not standardized and mean different things across different documentation systems.
- 02
dependencies as an array
Wrong"dependencies": ["XooStructured 3.2", "Node.js 18+"]Right"dependencies": "XooStructured 3.2 or later, Node.js 18+"Schema.org defines dependencies as a Text property, not an array. List all prerequisites in a single comma-separated string. If you need structured prerequisite data, use the educationRequirements or coursePrerequisites properties from the LearningResource type instead.
- 03
timeRequired without ISO 8601 format
Wrong"timeRequired": "15 minutes"Right"timeRequired": "PT15M"timeRequired uses ISO 8601 duration format. PT15M means 15 minutes, PT1H means one hour, PT1H30M means 90 minutes. Plain-text durations are not machine-parseable and will be ignored by search engines and AI systems.
- 04
Using HowTo for a full technical article
Wrong"@type": "HowTo" for a 2500-word developer guide with code samples and architectural discussionRight"@type": "TechArticle" with proficiencyLevel and dependenciesHowTo is designed for concise step-by-step procedures that render as numbered instructions in search results. A long technical article with code, architecture diagrams, and discussion sections does not fit the HowTo step format. Use TechArticle for documentation and reserve HowTo for procedural content.
- 05
Missing proficiencyLevel on technical content
Wrong(TechArticle with no proficiencyLevel)Right"proficiencyLevel": "Beginner"proficiencyLevel is the one property that distinguishes TechArticle from base Article. Without it, there is no practical benefit to using the TechArticle subtype. AI systems and documentation platforms rely on this field to match content to readers at the right skill level.
Schema properties in this example
About the example data
The tutorial walks through creating a Product JSON-LD template using XooStructured, the fictional IDE from the SoftwareApplication example. The about property points to XooStructured via @id, and mentions references the XooTee Classic product used as the template's example data. Written by Tomás Herrera, a fictional developer advocate at Xoo Code Inc.
Comments
Loading comments...