Introduction
Easy Schema 1.0 is a Joomla package from JoomlaX that adds Schema.org JSON-LD without writing markup. Create Items, map properties, assign pages, and let the system plugin inject one clean @graph.
Think of it as three pieces that always work together:
- Component (Easy Schema): Dashboard, Items, presets, and Configuration (site identity, cleaner, optional Markdown).
- System plugin (System - Easy Schema): injects JSON-LD on matching public pages and runs the Schema Cleaner. If this plugin is disabled, the head stays unchanged.
- Content plugin (Content - Easy Schema): adds a Schema tab on articles so one page can inherit, disable, or override fields.
What you can do
- Emit Article, Product, Event, FAQ, HowTo, LocalBusiness, and more
- Fill site name, logo, address, hours, and social profile URLs once
- Strip duplicate JSON-LD from Joomla core and templates
- Map auto page data, custom fields, or a fixed value
- Override one article from the Schema tab
Live demo
Open demo.joomlax.com/demo/utilities/easy-schema, then View Source and search for application/ld+json.
Built for modern Joomla
- Joomla 4, 5, and 6
- PHP 8.1 or later
- Works beside Easy Meta (Open Graph and canonical stay there; JSON-LD stays here)
Requirements
Before you install
- Joomla: 4.x, 5.x, or 6.x
- PHP: 8.1 or newer
- Database: MySQL or MariaDB
- Access: a Super User (or administrator) account so you can install extensions
Optional companions
- Easy Meta for Open Graph, X Cards, canonical, and robots
- VirtueMart or HikaShop if you want Product offers from the shop
- Easy Events Calendar, Easy Team, or Easy Store Locator for first-party mappings
Student tip
You need the component and both plugins. The package installs all three in one step, so you do not have to guess which zip to pick.
Installation
Step 1: Download
Email: After you buy from the JoomlaX store, you get an email with the download link.
Store: You can also open the Downloads section and use the same email you used when buying.
File name: EasySchema_UNZIP.zip
Step 2: Unzip on your computer
- Right-click
EasySchema_UNZIP.zip and choose Extract (or Unzip).
- Inside you should see:
- pkg_easyschema_1.0.0.zip (install this one: component + both plugins)
- ReadMe.txt
For a normal new install, always use pkg_easyschema_1.0.0.zip.
Step 3: Install in Joomla
- Log in to the Joomla administrator.
- Go to System > Install > Extensions.
- Click Upload Package File.
- Choose
pkg_easyschema_1.0.0.zip and wait for the success message.
- Open Components > Easy Schema to confirm the Dashboard loads.
- Clear Joomla cache: System > Maintenance > Clear Cache.
What the package installs
- com_easyschema: Dashboard, Items, presets, Configuration
- plg_system_easyschema: System - Easy Schema (JSON-LD runtime and cleaner)
- plg_content_easyschema: Content - Easy Schema (article Schema tab)
Updates
Install a newer pkg_easyschema zip the same way. The package uses method="upgrade", so Items and Configuration stay safe.
First-time setup
Follow these steps in order the first time. Most people finish in about 10 minutes.
1. Confirm both plugins are enabled
- Go to System > Plugins.
- Search for Easy Schema.
- Confirm System - Easy Schema and Content - Easy Schema show a green enabled status.
- Open the system plugin and keep Enable on site set to Yes.
2. Fill site identity
- Open Components > Easy Schema.
- Click Options (or System > Global Configuration > Easy Schema).
- Set site name and logo. Add social profile URLs, one https URL per line, if you have them.
- Leave BreadcrumbList and Strip core Article schema on unless you have a reason to turn them off.
- Click Save.
3. Keep or create an Article Item
- Install already creates a published Articles Item for Joomla content.
- Or open the Dashboard and apply the Blog article preset.
- Edit the Item later if you want to limit it to selected categories or menus.
4. Clear cache and test
- Clear Joomla cache.
- Open a public article.
- View Source (Ctrl+U) and search for
application/ld+json.
- You should see
@graph with Organization or Person, WebSite, BreadcrumbList, and Article.
Student tip
Start with one published Article Item on all articles. After you see JSON-LD, add Product or FAQ Items.
Component or plugin?
Easy Schema always uses the component plus two plugins. Here is the simple difference.
Component (Components > Easy Schema)
- Where you manage Items, presets, and Configuration
- Where you set site identity and the Schema Cleaner list
- Does not change the frontend by itself
System plugin (System > Plugins > System - Easy Schema)
- Injects JSON-LD in the public page head
- Runs the cleaner and optional Markdown output
- Must stay Enabled, with Enable on site = Yes
Content plugin (System > Plugins > Content - Easy Schema)
- Adds the Schema tab on article edit
- Does not inject JSON-LD by itself
Simple rule
- Build and edit behaviour: use the component
- Make it actually run for visitors: keep the system plugin on
- Per-article override: keep the content plugin on
Dashboard
Open Components > Easy Schema. The Dashboard is your home screen.
What you see
- Hero summary: total Items, published count, and whether the system plugin is on
- Quick links: New Item, Manage Items, Configuration
- Preset cards: Blog article, News article, FAQ page, How-to, Local business, Product
How to use a preset
- Click a preset card.
- Open Items and edit the new Item if you want different categories, menus, or mapping.
- Save, clear cache, then View Source on a matching page.
Student tip
Presets create a normal published Item you can open and change later. Nothing is locked.
If Easy Meta is also enabled, the Dashboard reminds you that Easy Schema owns JSON-LD. Leave Easy Meta on Open Graph, canonical, and robots.
Items list
Open Components > Easy Schema > Items.
List tools
- New: create a blank Item
- Enable / Disable: publish or unpublish selected Items
- Duplicate / Delete: copy or remove Items
- Search and filters: find an Item by title or type
What each column means
- Status: green means the Item can match pages
- Title: your friendly name
- Type: article, product, faq, and so on
- Integration: Joomla Content, Menu Manager, a shop, or a JoomlaX component
Student tip
Unpublish an Item instead of deleting it while you test. That way you can turn it back on in one click.
Item details
Click New or open an existing Item. The Details tab is identity.
- Title (required): for example Blog articles
- Schema type: Article, Product, Event, FAQ, HowTo, LocalBusiness, Recipe, JobPosting, Course, Video, Person, Book, Movie, Service, Review, Fact check, Custom Code
- Sub-type: optional Schema.org type such as NewsArticle, BlogPosting, Restaurant, or Store
- Integration: which component view this Item matches (Joomla Content, Menu Manager, YOOtheme, SP Page Builder, VirtueMart, HikaShop, Easy Events Calendar, Easy Team, Easy Store Locator)
- Status, language, access, ordering: standard Joomla publishing fields
Student tip
Use Sub-type when Google expects a more specific type (NewsArticle instead of Article). Leave it blank for the default.
Mapping
The Mapping tab decides how each property is filled.
- Auto from page: article title, intro image, shop price, event dates, and similar
- Page meta: document title or description
- Site identity: values from Configuration (name, logo, telephone)
- Custom field: enter the Joomla custom field name in Value
- Fixed value: a string you type once
- Omit: never send that property, even if Auto would fill it
Headline, description, and image are the ones most sites need. Price, SKU, and availability matter for Product. Start and end dates matter for Event.
Student tip
Leave sources on Auto until a property is wrong. Then switch that one property to Custom field or Fixed value.
Publishing rules
The Publishing tab decides where an Item matches.
- Homepage: Any page, Homepage only, or Exclude homepage
- Views: comma-separated view names. Leave empty for the integration default (article, productdetails, and so on)
- Menu items: leave empty for all menus of this integration. Required when Integration is Menu Manager
- Categories: limit Joomla content to selected categories
- Article IDs: optional comma-separated IDs
Student tip
For a whole-site Article test, leave menus and categories empty. For Local Business, set Integration to Menu Manager and pick the contact menu item.
FAQ, steps, custom
The FAQ, steps, custom tab appears for types that need extra lines.
FAQ
One pair per line: Question || Answer. Google retired FAQ rich results in Search (May 2026). The JSON-LD is still valid Schema.org.
HowTo and Recipe
One step per line. Recipe also has one ingredient per line.
Custom Code
Paste a JSON object without wrapping script tags. Tokens are replaced:
{eschema.page.url}
{eschema.page.title}
{eschema.item.cf.fieldname}
Invalid JSON is skipped so a typo does not break the rest of the graph.
Configuration
Open Options from the Items toolbar, or go to System > Global Configuration > Easy Schema.
Site identity
- This site represents: An organisation or A person
- Site name, logo, telephone, email, address, lat/lng
- Opening hours: one line per day,
Monday|09:00|17:00
- Social profile URLs: one https URL per line (sameAs)
Output and cleaner
- BreadcrumbList JSON-LD: keep Yes unless another extension must own crumbs
- One Article per page: skip extra Article Items when one already matched
- Strip core Article schema: adds Article and BlogPosting to the cleaner list
- Types to remove: one Schema.org type per line
- Debug comment: HTML comment for Super Users showing how many Items matched
Markdown for AI
Off by default. When Yes, matching pages can be served as Markdown via a .md URL or Accept header. Those responses send X-Robots-Tag: none so they stay noindex.
Click Save after changes.
Article Schema tab
Edit any article. Open the Schema tab (Content - Easy Schema must be Enabled).
- Use global Items: default. Published Items still match this article.
- Disable schema: no Easy Schema JSON-LD on this article.
- Override fields: keep matching Items, then replace headline, description, and/or image.
Extra FAQ rows (Question || Answer) are added when an FAQ Item matches this article.
Student tip
Use Disable for legal or thin pages you do not want in the graph. Use Override when one news story needs a different headline than the article title.
Schema Cleaner
Joomla core can emit Article JSON-LD. Templates and page builders often add itemtype microdata. Easy Schema is built to be the single JSON-LD owner.
- Keep Strip core Article schema on in Configuration.
- Add extra types to Types to remove if a template still prints Product or BreadcrumbList.
- View Source after a cache clear. You should see one Easy Schema
application/ld+json block, not two Article scripts.
When Easy Meta is installed, it defers schema automatically if System - Easy Schema is enabled. Leave Easy Meta schema mode Off or Defer.
Test on the front end
After an Item is published and the system plugin is enabled, test like a visitor (and like Google).
Checklist
- Clear Joomla cache.
- Open a matching article in a normal browser tab.
- Hard-refresh once (Ctrl+F5).
- View Source and search for
application/ld+json.
- Confirm
@type values you expect (Organization, WebSite, BreadcrumbList, Article).
Live demo: demo.joomlax.com/demo/utilities/easy-schema
Optional: paste the public URL into Google Rich Results Test after the page is online.
Support
Open a ticket at support.joomlax.com.
Please include:
- Joomla version and PHP version
- Easy Schema version (1.0.0 or later)
- The public page URL
- Whether System - Easy Schema and Content - Easy Schema are Enabled
- A short note of what you expected versus what View Source showed
- A screenshot or paste of the
application/ld+json block if you have one