How-To Step-by-Step Instruction Guide Schema (JSON-LD)
Rich instructional structured data for multi-step tutorials, DIY guides, configuration walkthroughs, and procedural checklists with tool requirements and step imagery.
Displayed below main page header or above the tool container. • Zero CLS Container
Production JSON-LD Code Block
Embed this structured data block directly into your HTML <head> or framework layout template.
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Configure Cloudflare Zero Trust SSH Tunneling",
"description": "A comprehensive guide to securing remote SSH access through Cloudflare Access and cloudflared tunnels without exposing open firewall ports.",
"totalTime": "PT20M",
"estimatedCost": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": "0"
},
"tool": [
{
"@type": "HowToTool",
"name": "Terminal CLI with cloudflared binary"
},
{
"@type": "HowToTool",
"name": "SSH Client (OpenSSH 8.0+)"
}
],
"supply": [
{
"@type": "HowToSupply",
"name": "Active Cloudflare Account with Domain"
}
],
"step": [
{
"@type": "HowToStep",
"name": "Install the cloudflared daemon",
"text": "Download and install the official cloudflared binary onto your target server using your OS package manager.",
"url": "https://omniseotools.com/guides/cloudflare-ssh#step-1",
"image": "https://omniseotools.com/images/guides/install-cloudflared.png"
},
{
"@type": "HowToStep",
"name": "Authenticate and create the tunnel",
"text": "Run 'cloudflared tunnel login' followed by 'cloudflared tunnel create prod-ssh-tunnel' to generate tunnel credentials.",
"url": "https://omniseotools.com/guides/cloudflare-ssh#step-2",
"image": "https://omniseotools.com/images/guides/tunnel-create.png"
},
{
"@type": "HowToStep",
"name": "Configure local ~/.ssh/config proxy command",
"text": "Add the ProxyCommand directive linking your SSH client through cloudflared access ssh command.",
"url": "https://omniseotools.com/guides/cloudflare-ssh#step-3",
"image": "https://omniseotools.com/images/guides/ssh-config.png"
}
]
}Typed Properties Specification (8 Fields)
Key Schema.org properties and sub-objects required to qualify for rich snippet treatment in Google Search.
| Property | Expected Type | Status | Description & Example |
|---|---|---|---|
| name | string | Required | Clear, task-oriented title of the how-to guide starting with 'How to...' e.g. How to Configure Cloudflare Zero Trust SSH Tunneling |
| step | HowToStep[] | Required | Ordered array of HowToStep entities containing step names, instructions, URLs, and screenshots. e.g. [ { '@type': 'HowToStep', 'name': 'Install daemon', 'text': '...' } ] |
| totalTime | string (ISO 8601 Duration) | Required | Total elapsed time required to finish the guide in ISO 8601 format (e.g. PT20M). e.g. PT20M |
| estimatedCost | MonetaryAmount | Recommended | Estimated financial expenditure for materials or software licenses. e.g. { '@type': 'MonetaryAmount', 'currency': 'USD', 'value': '0' } |
| tool | HowToTool[] | Recommended | Instruments, software applications, or physical tools utilized in the procedure. e.g. [ { '@type': 'HowToTool', 'name': 'Terminal CLI' } ] |
| supply | HowToSupply[] | Recommended | Prerequisite consumables, licenses, or accounts needed. e.g. [ { '@type': 'HowToSupply', 'name': 'Active Cloudflare Account' } ] |
| description | string | Required | Summary of what the user will achieve upon completing the steps. e.g. A comprehensive guide to securing remote SSH access. |
| image | string (URL) | Recommended | Primary visual thumbnail representing the completed tutorial outcome. e.g. https://omniseotools.com/images/guides/cloudflare-ssh-cover.png |
Google Search Console Pitfalls & Critical Warnings
Avoid these 3 common validation traps, parser errors, and algorithmic policy penalties when deploying HowTo schema.
Missing HowToStep ItemList Structure
Providing raw strings or an unstructured paragraph instead of nested HowToStep objects.
Wrap each step in a dedicated HowToStep object with distinct name and text properties.
Advertising or Non-Instructional Content in Steps
Placing promotional offers or affiliate disclaimers inside the step text array.
Keep step text strictly procedural and instructional without commercial promotions.
Incomplete ISO 8601 Duration Format
Specifying duration as free text (e.g., '20 mins') instead of standard ISO format 'PT20M'.
Format durations as ISO 8601 strings (e.g., PT15M for 15 minutes, PT1H30M for 90 minutes).
Recommended Implementation Scenarios
Related Schema Blueprints
Explore complementary structured data blueprints across the Editorial cluster.
Culinary Recipe with Dietary Restrictions Schema Markup (JSON-LD)
Video Tutorial & Streaming Media Schema Markup (JSON-LD)
Interactive Quiz & Educational Assessment Schema Markup (JSON-LD)
TechSpec & RFC Architecture Schema (JSON-LD Blueprint)
Displayed below main page header or above the tool container. • Zero CLS Container