When a WordPress site shows up in search results, most listings look the same — a title, a URL, and a short description. That’s fine for basic visibility, but it leaves a lot of information that search engines could use sitting unused. Schema markup is how you provide that information in a structured format search engines can actually process.
It won’t transform your rankings on its own, but it supports everything else you’ve done for SEO by giving Google a clearer picture of what each page is, who wrote it, and what it contains. On sites I build without a heavyweight SEO plugin, I add schema directly through functions.php — it’s clean, lightweight, and doesn’t rely on a third party to stay maintained.
Two Schema Types That No Longer Do What Most Guides Claim
Before adding anything, it’s worth knowing that Google has quietly retired two of the most commonly recommended schema types for the rich results they were built to unlock.
HowTo schema is fully gone. Google removed HowTo rich results on mobile in August 2023, then removed them on desktop that September, deprecating the feature entirely as part of a stated effort to simplify search results. The schema itself still validates if you add it, but there is no rich-result benefit left to earn from it on Google.
FAQ schema followed a slower path to the same place. In August 2023, Google restricted FAQ rich results to a narrow list of well-known government and health websites, after years of ordinary sites gaming the feature with artificial questions designed purely to grab extra space in search listings. Then, as of May 2026, Google removed FAQ rich results entirely — even for the government and health sites that had kept the narrow exception. The removal was quiet: no blog post, just a deprecation note added to the top of Google’s FAQ structured data documentation, with the reporting tools and Rich Results Test support scheduled to follow through mid-2026.
If you’ve already got FAQ or HowTo schema on your site, leaving it in place isn’t harmful — it won’t get flagged as spam, and there’s a small chance it matters for some future feature. But it’s not worth new engineering effort, and any guide still pitching either one as a way to win extra search real estate is working from outdated information.
What Schema Markup Still Actually Does
Schema tells search engines things your page content alone can’t reliably communicate — that a post is an article, who the author is, when it was published, and what type of content it contains. This information sits in the <head> of your HTML as a JSON-LD block, invisible to readers but fully readable by search engines.
Article and breadcrumb schema, unlike FAQ and HowTo, remain live and functional — when present and accurate, Google can use Article schema to enable rich results like article metadata or breadcrumb paths appearing directly in search listings. It doesn’t guarantee these features appear, but it makes your pages eligible for them. Google’s own documentation on how structured data works explains what types are currently supported and how they’re evaluated — worth checking periodically, since the FAQ and HowTo removals show this list isn’t static.
Adding Schema via functions.php
If your site doesn’t use an SEO plugin — or you want full control without plugin overhead — you can output schema directly from your theme’s functions.php file. This is the approach used on this site: JSON-LD injected into the page head via wp_head, with no plugin dependency.
Article Schema for Posts
Add this to your functions.php to output Article schema on all single posts:
function my_article_schema() {
if ( is_single() ) {
global $post;
$schema = array(
'@context' => 'https://schema.org',
'@type' => 'Article',
'headline' => get_the_title(),
'datePublished' => get_the_date( 'c' ),
'dateModified' => get_the_modified_date( 'c' ),
'author' => array(
'@type' => 'Person',
'name' => get_the_author_meta( 'display_name', $post->post_author ),
),
);
echo '<script type="application/ld+json">' . wp_json_encode( $schema ) . '</script>';
}
}
add_action( 'wp_head', 'my_article_schema' );
You can extend this with a publisher object containing your site name and logo URL, which helps Google associate the article with your brand in search results.
WebSite Schema for the Homepage
Add a separate function for your homepage:
function my_website_schema() {
if ( is_front_page() ) {
$schema = array(
'@context' => 'https://schema.org',
'@type' => 'WebSite',
'name' => get_bloginfo( 'name' ),
'url' => home_url(),
);
echo '<script type="application/ld+json">' . wp_json_encode( $schema ) . '</script>';
}
}
add_action( 'wp_head', 'my_website_schema' );
Keep each schema type in a separate function so they’re easy to modify individually without touching unrelated schema blocks.
FAQ-Style Content Is Still Worth Writing — Just Not for the Schema
None of this means stop writing FAQ sections. A genuinely useful question-and-answer section on a page still helps real visitors and still has a shot at being pulled into a featured snippet or an AI Overview answer — both separate mechanisms from the retired FAQPage rich result, and both still very much active. The difference is where the payoff comes from: it’s the clean H2/H3 heading structure and genuinely useful answers doing the work now, not a JSON-LD block hoping to trigger an expandable search listing that Google no longer shows to ordinary sites.
Practical Tips
Match schema type to page content. Article for posts, WebSite for the homepage. Don’t apply schema types unless the page actually contains that content — mismatched schema produces validation errors or gets ignored.
Validate after adding. Use Google’s Rich Results Test at search.google.com/test/rich-results to confirm schema is detected correctly and check for any errors. Run it after the initial setup and again after any changes — though note the tool itself is dropping FAQ support as part of the 2026 deprecation, so don’t be surprised if FAQ schema stops validating there even though it still technically parses.
Check for duplicates before adding. If your theme or any plugin already outputs schema, adding more via functions.php can create duplicate blocks. Search the page source for application/ld+json before adding anything new.
Don’t expect instant changes. Schema won’t produce rich results the moment it’s added. Google needs to recrawl the page and process the markup — this can take days or weeks depending on your crawl frequency.
Common Mistakes
Spending time implementing HowTo or FAQ schema expecting a rich result. Both features are retired for ordinary sites as of 2026 — this is now the single most common outdated recommendation still circulating in older SEO guides.
Adding schema types that don’t match the page. Review schema on a page with no reviews is a classic mismatch — search engines cross-reference markup against visible content, and mismatched schema can trigger manual actions in severe cases.
Ignoring validation errors. Even small formatting issues in the JSON-LD output can prevent rich results from appearing. Always validate after any change.
Adding duplicate schema. If you install an SEO plugin on a site that already has functions.php schema, you may end up with two Article blocks on every post. Remove whichever one you’re not actively maintaining.
When to Use a Plugin Instead
The functions.php approach works well for sites with a consistent content structure and a developer comfortable editing theme files. If you want to manage schema per-post through the editor UI — setting different schema types on different posts without touching code — a plugin like Rank Math gives you that flexibility through its Schema Generator panel.
For most content sites publishing a single content type (blog posts or tutorials), the functions.php approach is simpler to maintain long-term and avoids the overhead of a full SEO plugin if you’re handling other SEO tasks manually. The heading structure of your posts also plays into how search engines interpret your content alongside schema, so it’s worth getting both right.
Conclusion
Add Article schema to your posts and WebSite schema to your homepage, validate both with the Rich Results Test, and keep the schema type matched to what’s actually on the page. Skip FAQ and HowTo schema unless you’re maintaining it for reasons other than rich results — that specific payoff is gone. Alongside your basic SEO setup and XML sitemap, correctly scoped schema gives search engines a complete and accurate picture of your site.

Etienne Basson works with website systems, SEO-driven site architecture, and technical implementation. He writes practical guides on building, structuring, and optimizing websites for long-term growth.