Communitygithub.com

astudio · Schema markup

Ferramenta da astudio para criar e validar dados estruturados schema.org (JSON-LD), escolhendo tipos relevantes em 2026 (Organization, LocalBusiness, Product, Article, etc.) e marcando tipos obsoletos (FAQPage, HowTo).

O que é astudio · Schema markup?

Esta skill profissional para agentes de IA (Claude Code, Cursor, Codex) foca na criação e auditoria de marcação schema.org em JSON-LD, priorizando tipos que ainda geram rich results no Google em 2026. Ela guia o usuário por um fluxo completo: inventário de templates de página, linting com script próprio (`schema_lint.py`), escolha de tipos por template (Organization, LocalBusiness, Product + Offer, Article, BreadcrumbList, VideoObject, Event, JobPosting, Course, QAPage) e validação com ferramentas oficiais (Google Rich Results Test, Schema Markup Validator e validador Yandex). A skill também documenta tipos que perderam efeito (FAQPage, HowTo, ClaimReview e outros de 2025) para evitar que o cliente pague por algo sem retorno. As regras são claras: marcar apenas conteúdo visível, usar preços sem espaços, datas ISO 8601 com fuso, e manter uma entidade Organization por site referenciada por `@id`. O exemplo prático de um café (LocalBusiness) mostra o formato `@graph` com endereço, geolocalização, horários e redes sociais. A skill é parte do pacote astudio-ai-seo e atende desde lojas virtuais até sites de conteúdo, eventos e empregos, cobrindo também o mercado russo com o validador Yandex.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/whoamnesia/ai-seo/tree/HEAD/skills/schema-markup

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

astudio · Marcação Schema

<root> = dois níveis acima do diretório base desta skill. Lint: <root>/scripts/schema_lint.py. Status dos tipos: <root>/reference/facts.md § Status dos rich results.

Dados estruturados não são obrigatórios para respostas de IA (o Google afirma isso), mas definem fatos de forma inequívoca: quem você é, quanto custa o produto, onde você está, quem escreveu o artigo. Isso ajuda rich results, knowledge panels e qualquer consumidor que leia JSON-LD. Só ajuda quando corresponde ao que a página exibe.

Fluxo de trabalho

  1. Inventariar os templates de página (home, categoria, produto, artigo, contatos, eventos, vagas).
  2. Fazer lint do que existe: schema_lint.py <url> por template.
  3. Escolher os tipos por template (tabela abaixo). Um @graph por página; atribuir valores estáveis de @id (https://site.ru/#organization) e referenciá-los em vez de repetir.
  4. Escrever o JSON-LD a partir da mesma fonte de dados da página (campos do CMS), nunca copiando números manualmente.
  5. Validar: schema_lint.py, depois Google Rich Results Test e Schema Markup Validator, e para a Rússia o validador de microdados do Yandex Webmaster. Colar os resultados no relatório.
  6. Mostrar o diff; fazer deploy após um sim.

Tipos por template

TemplateTiposDeve corresponder à página
HomeOrganization (ou subtipo LocalBusiness), WebSitename, logo, contatos; sameAs para perfis oficiais (VK, Telegram, Яндекс Карты, 2ГИС, Wikipedia)
ProdutoProduct + Offer (+ AggregateRating, Review se exibidos)price, currency RUB, availability, rating value e count
CategoriaBreadcrumbList, ItemList (opcional)texto do breadcrumb
Artigo / blogArticle/BlogPosting + Person (autor)headline, nome do autor com página de perfil, datas
Contatos / filialsubtipo LocalBusiness com address, geo, openingHoursSpecification, telephoneo mesmo NAP dos mapas e diretórios
Página de vídeoVideoObjectthumbnail, data de upload, duração
Eventos / cursos / empregosEvent, Course, JobPostingdatas, preço, localização, salário
Página de fórum Q&AQAPageperguntas e respostas reais de usuários

Tipos aposentados ou sem efeito (não os venda como vantagens)

FAQPage (sem rich result do Google desde 2026-05-07), HowTo (2023), ClaimReview, EstimatedSalary, Learning Video, SpecialAnnouncement, Vehicle Listing, Book Actions (2025-06-12). Mantenha FAQPage/HowTo apenas se espelharem conteúdo visível e alguém os consumir; informe que não há efeito no SERP do Google.

Regras

  • Marcar apenas o que os usuários podem ver. Avaliações ocultas, autoavaliações tendenciosas da própria organização e preços diferentes dos da página violam a política do Google e podem gerar uma ação manual.
  • Preços: número sem espaços em price ("4990"), priceCurrency: "RUB"; exibir o mesmo preço no HTML.
  • Datas em ISO 8601 com fuso horário (2026-11-06T10:00:00+03:00).
  • Uma entidade de organização por site, referenciada por @id.

Exemplo: LocalBusiness

{"@context":"https://schema.org","@graph":[{"@type":"CafeOrCoffeeShop","@id":"https://zerno.ru/#org",
"name":"Кофейня «Зерно»","url":"https://zerno.ru/","logo":"https://zerno.ru/logo.svg","telephone":"+7 843 000-00-00",
"address":{"@type":"PostalAddress","streetAddress":"ул. Баумана, 1","addressLocality":"Казань","postalCode":"420111","addressCountry":"RU"},
"geo":{"@type":"GeoCoordinates","latitude":55.7887,"longitude":49.1221},
"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],"opens":"08:00","closes":"22:00"}],
"sameAs":["https://vk.com/zerno","https://yandex.ru/maps/org/000"]}]}

Habilidades Relacionadas