Netlinks

Structured data · Schema.org and JSON-LD · Netlinks

Structured data: the layer machines actually read.

We mark up the whole site with schema.org in JSON-LD, validate it in staging before release and monitor breakage on every update. It is the most neglected work in the market and the one that pays best right now.

We work in English, Portuguese and Spanish. Headquarters in Belo Horizonte, Brazil.

Translucent glass blocks connected by thin violet and cyan light lines over a navy surface, representing a structured data graph

01Overview

Structured data

Structured data is how you declare, in code, what lives on each page of your site: that this is a product with a price, a currency and availability; a service with a coverage area; a company with an address and opening hours; an article with an author and a date; a question with an answer. Without that layer, search engines and AI models have to infer. Inference is where they get it wrong, and where your page loses ground to whoever was explicit.

The standard is the schema.org vocabulary, and the format Google recommends is JSON-LD, a block of code that sits in the HTML without touching what the user sees. Done properly, it unlocks rich results in search (ratings, price, questions, breadcrumbs, availability) and gives a language model the certainty it needs to cite your brand as a source.

At Netlinks this is not a checklist item: it is our strongest technical edge, and it ships in every SEO agency and GEO engagement. We mark up the whole site, validate before publishing and monitor afterwards, because markup breaks silently on every theme, plugin or deploy update.

whole site
marked up, not just the homepage
JSON-LD
the format Google recommends
200+
companies served since 2017
24h
of schema monitoring in the App

02Definition

What structured data is, without the jargon

A product page shows a name, a number and a button. A human instantly understands that the number is the price. A machine has no such certainty: it could be a price, a weight, a manufacturer code. Structured data settles it by declaring, in a separate block, that this value is the price, in this currency, with this availability, for this product.

That explicit contract supports three concrete gains:

  • Rich results in search. Review stars, price, availability, questions, breadcrumbs, event dates. It occupies more of the screen and raises click-through without needing a better position.
  • Entity understanding. Markup ties your company to a stable identifier, with name, address, phone and official profiles. It is what lets Google know that this name refers to your company and not to a namesake.
  • Citations in AI answers. Language models prefer facts they can verify. A marked-up page leaves less room for ambiguity, and ambiguity is the main reason a source gets dropped.

Worth saying what markup does not do: it will not rescue weak content and it will not put anyone in first place on its own. It makes sure the work you already did is read the right way.

03Format

JSON-LD, microdata and what to use

There are three ways to mark up a page: JSON-LD, microdata and RDFa. In practice only one matters. JSON-LD sits in a script block separate from visible content, which keeps maintenance simple, avoids breaking the layout, and lets the markup be generated from the site's own database.

Microdata scatters attributes across the HTML, entangling markup with presentation. Every time the front-end team touches a template, the odds of breaking the markup are high, and the error goes unnoticed because nothing changes visually.

On the sites we maintain, markup is generated server side from real data instead of hand-written page by page. A new product is born marked up, a price change updates the markup with it, and a retired page leaves no orphan schema behind. That is the kind of decision only a technical SEO practice with engineering inside can sustain.

  • JSON-LD generated server side from the site's real data
  • One block per page, carrying only the types that template needs
  • No duplication between plugin, theme and custom code, a common source of errors
  • Reviewed on every template change, validated before publishing
A developer's monitors showing code and a page performance gauge, mechanical keyboard on the desk

04Scope

The schema types that matter, by industry

Marking up everything in the vocabulary helps nobody. What matters is marking up well what describes your business and what search engines actually use. This is the design we apply per type of operation.

IndustryMain typesWhat it unlocks
E-commerceProduct, Offer, AggregateRating, Review, BreadcrumbList, ItemListPrice, availability and ratings in results, and a product record an AI can read
B2B servicesOrganization, Service, WebSite, FAQPage, BreadcrumbListA recognized entity, expanded questions in search and a quotable answer
Local businessLocalBusiness, PostalAddress, OpeningHoursSpecification, GeoCoordinatesAddress, hours and service area consistent with Google Business Profile
Content and blogArticle, Author, Person, ImageObject, BreadcrumbListClear authorship, update dates and credibility for citation
Health and educationMedicalWebPage, Course, EducationalOrganization, FAQPageExpertise context, which sensitive topics require
Software and SaaSSoftwareApplication, Offer, AggregateRating, HowToProduct records and step-by-step guides understood by engines and models
Multilingual sitesThe same types per language, with inLanguage and a dedicated URLOne entity understood in each market, with no conflict between versions

05GEO

How AI models read structured data

When a language model assembles a sourced answer, it needs two things: to find the information and to trust it enough to state it. The second part is where markup carries weight. A fact declared in JSON-LD reaches the model without depending on the interpretation of running text, which lowers the risk of error and raises the chance your page becomes the cited source.

In practice markup helps GEO on three fronts: it defines who you are (Organization, Person, address, profiles), what you offer (Service, Product, coverage area, price), and how your knowledge base is organized (FAQPage, Article, HowTo) into blocks a model can lift as an answer.

Add consistency to that: what the markup says has to match what the page text says, what Google Business Profile says and what the press publishes. Divergence between sources is what makes a model give up on citing you. The full practice is in GEO: SEO for AI, with tracking in AI monitoring.

A person facing screens with AI chat interfaces, soft violet light filling the room

06Execution

How the implementation runs

Wrong markup is worse than missing markup, because it can trigger a structured data spam warning. So the process has a mandatory validation step before anything is published.

  1. 01

    Template inventory

    We list every page type on the site: home, category, product, service, article, contact, location. Each template gets the set of types that fits it, and nothing more.

  2. 02

    Audit of what exists

    Plenty of markup is already there, coming from a theme or plugin, with fields missing or duplicated. We map errors, warnings and conflicts before writing a single new line.

  3. 03

    Modeling

    We define identifiers, the relationships between entities and which fields come from the database. That is what prevents hand-written markup that ages on the first price change.

  4. 04

    Implementation

    JSON-LD generated server side, template by template, by our team or by yours from a written spec.

  5. 05

    Validation in staging

    Rich Results Test and the schema.org validator on every template, with errors and warnings fixed before anything reaches production.

  6. 06

    Release and monitoring

    After launch, Search Console and the Netlinks App track coverage, errors and breakage, with an alert when an update takes the markup down.

07Diagnosis

The errors that show up most in audits

Across the audits we run, these six problems account for most of the markup that exists and does not work.

Only the homepage marked up

One Organization block on the homepage and nothing on the pages that need to rank and be cited. The most common scenario in the market.

Duplicated markup

Theme, SEO plugin and custom code generating three competing blocks on the same page. The engine picks one, or discards all of them.

Missing required fields

Product without price or availability, LocalBusiness without a full address, Article without an author. It triggers warnings and loses the rich result.

Markup that contradicts the page

A rating declared but invisible to the user, a price different from the one on screen. The shortest path to a manual action.

Silent breakage

A theme update wipes the whole block. Nothing changes visually, the rich result disappears, and nobody notices for months.

Inconsistent entity

Different name, address and description across site, Google Business Profile and social profiles. The AI model cannot consolidate, so it stops citing you.

08Measurement

Schema monitoring, 24 hours a day

Markup on a living site is never finished work. A store publishes products daily, a blog publishes weekly, plugins update themselves, templates change in a redesign. Any of those events can take down the schema on an entire set of pages.

In the Netlinks App, markup state sits next to rankings, traffic and speed: which types are live, where the errors are, where the warnings are and what changed since the last check. When something breaks, the alert reaches the App and the WhatsApp group, with the affected page and type.

It is the same logic as the rest of our operation: you watch the work happen without waiting for a month-end close. The full picture is in technology.

  • Coverage by schema type and by template
  • Errors and warnings, with the exact page and the missing field
  • Breakage alerts after a theme, plugin or deploy update
  • Cross-checked against Search Console to catch divergence
A laptop and a phone on a clean desk showing a dashboard with markup coverage indicators and alerts, violet light behind

09Proof

Where markup already changed the game

Structured data shows up in results faster than most workstreams, because it does not depend on earning new authority: it depends on organizing what already exists.

  • [SP Labor](/en/cases/sp-labor/), a laboratory equipment store on WooCommerce. The audit closed in August 2026 reorganized the whole technical base: errors from 753 to 326 pages, warnings from 2,803 to 1,020, the sitemap from 383 to 20 files, and homepage PageSpeed at 97 on mobile and 99 on desktop, with the operation migrated to Google Cloud.
  • [CLM Controller](/en/cases/clm-controller/), international accounting. The domain structure went live in August 2026 with the .com in English, Spanish and Chinese, the .com.br dedicated to Brazil, 2,013 redirects mapped, complete hreflang and 20 ported pages with calculators, each one marked up per language.
  • [Master Milhas](/en/cases/master-milhas/), an airline miles marketplace. The new site launched in 2026 with 14 landing pages ranking by airline, including "vender milhas delta" on the first page, in second position.

Want to know what is marked up on your site today, and what is not? The diagnosis carries no commitment and walks through it template by template. The rest of the technical work is in technical SEO and SEO audit.

10The deliverable

What you receive

Finished work, approved by you in the App and shipped. Not a report that only describes the problem.

Markup audit

What already exists on the site, with errors, warnings, duplication and conflicts mapped template by template.

Entity modeling

How your company, services and products are declared and linked to one another, with stable identifiers.

JSON-LD implemented

Markup generated server side from real data, per template, instead of hand-written page by page.

Documented validation

Every template tested in the Rich Results Test and the schema.org validator before release, with the result on record.

Entity consistency

Alignment across site, Google Business Profile, LinkedIn and press mentions, so engines and models can close the loop.

Monitoring in the App

Markup state refreshed 24 hours a day, with an alert whenever an update breaks something.

11How it works

From the audit to the page going live

The same path on every project, with an owner and a date on each step.

  1. 01

    Diagnosis

    A survey of what is already marked up, what is wrong and what is missing, prioritized by impact.

  2. 02

    Design per template

    Types and fields defined for each page type, based on your industry and on what search engines actually use.

  3. 03

    Technical spec

    A document with the expected JSON-LD, the source of each field and the validation criteria. Ready for our team or yours.

  4. 04

    Implementation

    Markup generated server side, template by template, without duplicating what plugin and theme already produce.

  5. 05

    Validation and release

    Tested in staging, errors and warnings fixed, and only then pushed to production.

  6. 06

    Continuous monitoring

    Tracked in the App and in Search Console, with breakage alerts and a review every cycle.

12Who leads

Who leads your project

The three of them own the process and manage the team on every account. No senior who shows up at kickoff and disappears: they sign off on the plan, review the work and talk to your team.

Digo Garcia, founder and CAIO at Netlinks

Digo Garcia

Founder and CAIO

Over 20 years in digital. Built and scaled Letras.mus.br, then worked at Méliuz and in the joint venture with Globo.com. Owns AI, technical SEO and engineering inside every project.

Letras.mus.br · Méliuz · Globo.com

André Mousinho, Chief SEO Officer at Netlinks

André Mousinho

Chief SEO Officer

Comes from Rock Content, Tray/Locaweb and LWSA. Designs the keyword mapping, the content architecture and the GEO strategy that turns a brand into the answer.

Rock Content · Tray/Locaweb · LWSA

Gabriel Raposo, Chief Authority Officer at Netlinks

Gabriel Raposo

Chief Authority Officer

Comes from Ambev and Agibank. Owns link building, digital PR and the authority that holds up both rankings and citations inside AI answers.

Ambev · Agibank

And the team behind them: Nathália Barcala (cofounder and COO, governance), Roberto Murta (CTO), Marcelo Ligere (senior advisor, 30+ years, formerly Grupo Globo) and Alfred, the artificial intelligence that runs the day to day: delivery queue, reporting and 24/7 support on WhatsApp.

13Who it is for

Where this work pays off the most

Stores with large catalogs

Product, price, rating and availability have to be declared and updated automatically, or the markup ages on the first price change.

Companies that want AI citations

A consistent entity and a marked-up knowledge base are the foundation of GEO. Without them, the model prefers whoever was explicit.

Businesses with several locations

Address, hours and service area per location, consistent with Google Business Profile. The base of local SEO.

FAQ

Frequently asked questions

What is structured data?

It is code that declares, in a standardized vocabulary (schema.org), what exists on each page: product, price, service, company, address, author, rating, question and answer. It lets search engines and AI models understand the page without inferring it from running text.

Does structured data improve rankings?

It is not a direct ranking factor, and it is fair to say so. What it does is raise click-through through rich results, make the page eligible for special formats, and reduce ambiguity for AI models choosing a source. In practice the traffic effect often shows up without the position changing at all.

Which markup format do you use?

JSON-LD, the format Google recommends. It lives in a block separate from visible content, which makes maintenance simpler and allows the markup to be generated from the site database instead of written by hand page by page.

I already have an SEO plugin that generates schema. Do I need more?

Almost always, yes. Plugins cover the basics and tend to produce generic, incomplete or duplicated markup against the theme. In the audit we show what is live, what has errors and what is missing for your industry, and we define who generates what so nothing conflicts.

Does structured data help me appear in ChatGPT and Gemini?

It helps, because it reduces ambiguity about what the page states and who your company is, and a model that does not have to infer cites more. Markup alone is not enough: it needs citable content, a consistent entity and authority. The full practice is in GEO.

How do I know if my markup is broken?

Search Console shows errors and warnings by type, with a delay. In the Netlinks App the markup state is visible 24 hours a day and breakage becomes an alert, with the affected page and type, right after the update that caused it.

Is marking up star ratings safe?

It is safe when the rating genuinely exists, is visible on the page and comes from real customers. Declaring a score the user cannot see, or that does not exist, breaches the guidelines and can trigger a manual action. We do not do it, and we remove it when we find it.

How long does it take to mark up a whole site?

A corporate site with a handful of templates usually takes two to three weeks, including audit, implementation and validation. A large e-commerce site with a catalog and filters is one to two months of work, because the markup gets generated from the database and every page type needs testing.

Next step

Get a diagnosis of your case

Tell us what your company sells and to whom. One of the three looks at your scenario, points out what is holding organic back today and shows where we would start.

  • A review of your site and your market, with no commitment
  • An answer from a senior specialist within 24 business hours
  • A direct conversation: what can be done, in what order and how deep

Prefer WhatsApp?

Chat directly with a Netlinks Expert on WhatsApp.

Rather talk now? WhatsApp is answered by the team, with Alfred covering the rest of the day.

Talk to an Expert

Fill out the form and we will get back to you within 24 business hours.