=== NewsArticle Schema Pack ===
Contributors: kitmobley
Tags: news, newsarticle, schema, seo, structured data, publisher
Requires at least: 5.8
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Publisher-grade NewsArticle JSON-LD schema, author E-E-A-T signals, Google News sitemap, and meta description bulk backfill — for hyperlocal newspapers, community pubs, and trade journals priced out of Yoast News SEO.

== Description ==

Yoast News SEO is $229/yr on top of Yoast Premium. That's fine for the New York Times. It's not fine for a Florida Keys weekly, a niche trade pub, or a community publisher network. This plugin gives you the pieces you actually need without the price shock.

= Free =

* NewsArticle JSON-LD on singular posts (with proper Person + Organization linkage)
* Article family disambiguation — prevents Article/NewsArticle/BlogPosting duplication with your existing SEO plugin
* SpeakableSpecification on headline + lede (voice-search ready)
* Basic Organization publisher schema (name, url, logo)
* Auto-computed dateModified / wordCount / articleSection
* Meta description backfill via excerpt truncation
* Coexistence with Yoast / Rank Math / AIOSEO / SEOPress — @id namespaced so no clash

= Solo Pro — $79/yr, 1 site =

* Google News sitemap at /news-sitemap.xml (last 48h, protocol-correct)
* Full NewsMediaOrganization publisher schema — correctionsPolicy, ethicsPolicy, verificationFactCheckingPolicy, diversityPolicy, ownershipFundingInfo, missionCoveragePrioritiesPolicy
* Author E-E-A-T upgrade — Person schema with sameAs (LinkedIn, ORCID, Muck Rack, .gov/.edu, personal), jobTitle, worksFor, alumniOf, knowsAbout, award
* BYO-LLM meta description backfill (OpenAI / Anthropic / Gemini) — real AI-generated descriptions, not naive truncation
* Automatic plugin updates
* Priority support

= Publisher Pro — $299/yr, 25 sites =

* Everything in Solo, licensed across a publisher network or sister-pub group
* Deactivate and move between sites freely

Buy at https://kitmobley.com/plugins/newsarticle-schema-pack/

== Installation ==

1. Upload ZIP via **Plugins → Add New → Upload Plugin** and activate.
2. Go to **News SEO** in the admin sidebar.
3. Fill in your **Publisher** details (name, url, logo).
4. Go to **Meta Descriptions** and run a backfill batch on any posts missing them.

== Frequently Asked Questions ==

= Will it clash with Yoast / Rank Math / AIOSEO's Article schema? =

No. We emit with a unique `@id` namespace by default. If you'd rather we step aside when one is active, flip the coexistence setting to "defer_if_present". If Yoast News SEO (the paid add-on) is active, we auto-defer — it already emits NewsArticle.

= Do I need a Pro license to use the plugin? =

No. Free tier gives you NewsArticle emission, basic publisher schema, article family disambiguation, and excerpt-based meta backfill. Pro adds the Google News sitemap, editorial trust signals, author E-E-A-T emission, and the BYO-LLM meta backfill.

= What LLMs are supported for meta descriptions? =

OpenAI, Anthropic, and Google Gemini. You bring your own API key — the key stays on your server, never phones home to kitmobley.com. Model names are configurable (default: gpt-4o-mini / claude-3-5-haiku-latest / gemini-2.0-flash).

== Changelog ==

= 1.0.0 =
* Initial release
* NewsArticle JSON-LD emission with Person/Organization linkage and SpeakableSpecification
* Article family coexistence detection (Yoast/RM/AIOSEO/SEOPress; auto-defer to Yoast News SEO)
* Author E-E-A-T fields on user profile
* Publisher NewsMediaOrganization schema builder
* Google News sitemap at /news-sitemap.xml
* Meta description bulk backfill (excerpt + BYO-LLM paths)
* Admin dashboard: eligible-post count, missing-meta count, author E-E-A-T completeness
* License activation + automatic plugin updates
