The Schema Graph on Every Page
The JSON-LD Vibe writes and why it is one connected graph.
The Schema Graph on Every Page
Schema is the structured data that tells Google exactly who you are: your business name, type, phone, address, service area, hours, star rating, and FAQ answers. Vibe writes this for you as JSON-LD and drops it into the hidden <head> of every front-end page on your site. You never touch code. You fill in a form, and Vibe builds the markup.
The important part is the word "graph." Vibe does not scatter separate, disconnected snippets around your page. It emits one connected @graph where every piece points to the others by a shared ID. Your WebPage node says its main subject is your business. It also says it is part of your WebSite and was published by your Organization. Your rating and each review say the thing being reviewed is that same business. Your FAQ block attaches to the WebPage. Because everything cross-references everything else, search engines read it as one coherent entity instead of loose fragments, and that is what earns rich results like review stars and FAQ accordions.
Where it lives
In WordPress, go to the Vibe SEO menu in the left sidebar and click Schema. Most of the top fields are already filled from your Setup profile: business name, phone, address, email, and service area all prefill automatically. You are just filling the gaps.
The nodes Vibe emits
Vibe assembles up to seven kinds of nodes into the single graph:
- WebPage, one per page, carrying that page's own URL, title, and description.
- Organization, the publisher of your content, with your logo and social links.
- Your business block, either LocalBusiness or a more specific type you choose, holding your address, hours, phone, geo pin, payments, and area served.
- AggregateRating, your overall star rating and review count.
- Review, each individual customer review you add.
- WebSite, which includes a SearchAction so Google understands your site search.
- FAQPage, built automatically from a page of questions and answers you select.
How to set it up
- Confirm Enable is checked so Vibe emits JSON-LD on every front-end page.
- Under Identity, set the Primary @type to the most specific match for your trade. RoofingContractor, Electrician, and Plumber are all more precise than the generic Local Business, and Google indexes the specific type. Add a Slogan, a Description override if you want to control the wording, and a Logo URL.
- Under Location and contact, add your Geo coordinates (latitude and longitude). Set this even if you travel to customers, because it anchors your physical location while Area served covers the wider region. Add a hasMap URL, which is the share link from your Google Maps listing.
- Under Business details, set your Price range, tick the Payment accepted options, and add Opening hours rows by selecting day pills and setting open and close times.
- In Knows about, list the topics you are authoritative on, one per line. In Social profiles, pick each platform and paste its URL. These feed the sameAs field Google uses to confirm your identity.
- For reviews, the recommended path is Live from Google. Paste your Google Place ID and a Places API key, and Vibe pulls your live star rating and review count straight from Google so the schema never goes stale. If you skip that, type a rating and count into the manual fallback fields, and add individual reviews below.
- In FAQ page, pick the WordPress page that holds your FAQ. Vibe reads the question and answer pairs off that page and emits them as a FAQPage block linked to your WebPage.
- Click Save Schema. Then use the Live preview panel to see the exact JSON-LD, and click Test in Google or Validate at schema.org to confirm it parses on a live URL.
What a good result looks like
The Live preview shows a clean @graph with your business type, address, hours, rating, and FAQ all present. The conflict scan at the top of the page reports "No conflicting schema detected," and Google's Rich Results Test shows your page is eligible for the rich features that match your markup.
Pro tips and common mistakes
Watch the warning banners. If Vibe finds schema it did not create, from a code snippet, another plugin, or your theme, it flags it, because two sources of business schema confuse search engines about which one is real. Turn on "Let Vibe be the only schema source" and Vibe strips the duplicates so only its graph survives. If a competing SEO plugin like Yoast or Rank Math is active, either disable schema there and keep Vibe as the source of truth, or tick "Defer to competing SEO plugin" so Vibe stays silent and you avoid duplicate nodes.
Do not leave the FAQ page unset if you have an FAQ. That single dropdown is what turns your existing questions into an FAQPage block, and skipping it leaves a rich result on the table. And always validate after saving, because the preview shows what Vibe writes, but only a live test confirms Google can fetch and read it.