Preencha antes de enviar
[nome do servidor][nome licenciado][gerente responsável][médico responsável pelo conteúdo][editor do site][lista de médicos][tratamentos][telefone][WhatsApp][endereço][horários][domínio]
Use minha conexão com o Opus Growth para isso. Se você não encontrar a ferramenta de que precisa, procure entre as ferramentas do Opus Growth (com search_tools, se estiver na sua lista); se não conseguir acessar as ferramentas de forma alguma, não adivinhe, me avise.
Crie do zero um novo site para a minha clínica no meu servidor de hospedagem [nome do servidor]. Detalhes:
1. Nome registrado (licenciado): [nome licenciado], tipo: [policlínica odontológica / consultório particular / clínica de estética]
2. Gerente responsável: [gerente responsável], médico responsável pelo conteúdo: [médico responsável pelo conteúdo], editor do site: [editor do site]
3. Médicos com títulos, formação e áreas de atuação: [lista de médicos]
4. Tratamentos para os quais escrever páginas informativas, e o médico que prepara cada uma: [tratamentos]
5. Telefone: [telefone], WhatsApp: [WhatsApp], endereço: [endereço], horário de funcionamento: [horários]
6. Domínio: [domínio], preferência de cor: [preferência de cor], fotos reais: [onde estão as fotos, ou "nenhuma"]
Este site deve cumprir integralmente o Regulamento da Turquia sobre Atividades de Promoção e Informação em Serviços de Saúde (Diário Oficial de 12.11.2025, nº 33075). As regras:
1. Nada de avaliações de pacientes, mensagens de agradecimento, estrelas ou notas. Nada de aggregateRating nem review no JSON-LD também; o Google não aceita no markup uma nota que o próprio negócio atribui a si mesmo.
2. Nada de preços, descontos, campanhas, parcelamento, formas de pagamento ou frases como "consulta grátis". Nada de offers, price ou priceRange no JSON-LD.
3. Nada de promoção de produtos ou marcas: não cite marcas de implantes, alinhadores, restaurações ou aparelhos.
4. Nada de superioridade ou promessa de resultado: evite "o melhor", "líder", "garantido", "solução definitiva", "sem dor", "impecável", "100 por cento". Use "varia de pessoa para pessoa e fica claro após o exame".
5. Nada de números não verificáveis: nada de "15 anos de experiência", "5.000 pacientes" ou "milhares de implantes".
6. Títulos corretos: um dentista sem especialidade é "Dt.", um especialista é "Uzm. Dt."; "Dr." só é usado com doutorado. Uma policlínica indica um "mesul müdür" (gerente responsável), não um "médico-chefe".
7. Nada de fotos de pacientes, nem imagens de cirurgia ou de áreas íntimas. Imagens de antes e depois só podem ser publicadas com o consentimento escrito do paciente, no mesmo ambiente e com a mesma técnica, com a data do procedimento e a data em que a imagem foi feita; se eu não tiver isso, não use imagens de antes e depois. Se usar, adicione esta frase literalmente logo abaixo: "Her cerrahi veya girişimsel işlemde sonuçlar kişiden kişiye değişiklik gösterebilir. İşlem öncesinde hekiminizden detaylı görüş almanız önerilir." Coloque-a também nas páginas de procedimentos invasivos.
8. Um expediente institucional em todas as páginas: nome registrado, gerente responsável, médico responsável pelo conteúdo, editor do site e data da última atualização.
9. Conteúdo de turismo de saúde não pertence a este site; ele exige uma autorização própria e uma plataforma separada.
Para verificar essas regras automaticamente, escreva o uyum-check.mjs na raiz do site. Ele varre o texto visível e o texto alternativo das imagens de cada página, separadamente dos blocos JSON-LD: expressões de avaliação e nota; números com TL, ₺; as palavras preço, valor, desconto, campanha, parcela, grátis, melhor, garantia, sem dor, solução definitiva; nomes de marcas; números como "15+ anos" ou "5000 pacientes"; "Dr." e "médico-chefe"; "antes e depois"; turismo de saúde; e aggregateRating, review, offers, price no JSON-LD. Ele também verifica os cinco campos do expediente em todas as páginas, lastReviewed e reviewedBy nas páginas de tratamento, e a frase de aviso nas páginas de procedimentos invasivos. Marque as frases que explicam o regulamento (por exemplo "este site não exibe preços") com data-uyum="aciklama"; o script não as conta como erros, mas as lista para revisão manual. Encerre com código de saída 1 em caso de qualquer violação.
Depois confirme o servidor com list_servers e execute scaffold_site com style="clinic", primeiro com confirm=false e depois com confirm=true, após a minha aprovação. Leia site_design_guide e site_seo_guide. Escreva uma decisão editorial de design em _kaynak/ART.md e mostre-a para mim: uma fonte serifada refinada para títulos da Fontshare (por exemplo Zodiak) com uma fonte de texto calma (por exemplo Switzer), fundo creme, texto verde-escuro quase preto, um único destaque em azul-petróleo profundo e bastante espaço em branco. O elemento de assinatura é um cartão "médico que preparou esta página" ao lado de cada página de tratamento: o nome do médico com título, a área e a data da revisão médica. Se não houver foto do médico, não use foto de banco de imagens de uma pessoa; use um simples selo com as iniciais. Nenhum paciente pode aparecer nas fotos das instalações.
Páginas e schema:
1. Início: o que é a clínica, quantos médicos atuam em quais áreas, a abordagem "primeiro o exame, depois decidimos juntos", tratamentos, médicos, etapas do agendamento e 4 perguntas frequentes. Schema: WebPage, FAQPage. No grafo base, o tipo de negócio é Dentist (MedicalClinic para uma clínica estética).
2. Uma página de tratamentos e uma página informativa para cada tratamento: o primeiro parágrafo diz o que é o tratamento e para quem ele é considerado; depois para quem é indicado ou não, as etapas de avaliação, o curso do tratamento, riscos e precauções, cuidados posteriores e 3 perguntas frequentes. Schema: MedicalWebPage (about um MedicalProcedure, reviewedBy e author como o nó Person do médico, lastReviewed), FAQPage.
3. Nossos médicos: nome com título, especialidade, formação e áreas de atuação de cada um. Schema: um Person com @id para cada médico (honorificPrefix, jobTitle, worksFor #business, knowsAbout). O tipo Physician do schema.org descreve uma organização; não o use para uma pessoa.
4. Agendamento e contato: telefone, formulário de WhatsApp, endereço, horários, uma lista de "o que levar" e como chegar. Schema: ContactPage.
5. Uma página de expediente, privacidade e princípios de publicação, e uma página 404.
Nada de invenção: não escreva avaliações, notas, prêmios, certificados, números de clientes nem afirmações como "o melhor" que não sejam reais. Não acrescente ao schema nem ao texto horários de funcionamento, coordenadas, preços ou e-mail que eu não tenha informado; deixe o campo de fora e liste-o como ausente no relatório. Não use travessões longos nem slogans genéricos, e faça o primeiro parágrafo de cada página responder diretamente à pergunta daquela página.
SEO compartilhado: cada página recebe um title único de 48 a 60 caracteres, uma description de 145 a 158 caracteres, um único H1 e um canonical terminado em barra. Adicione a cada página o seu próprio nó WebPage e um BreadcrumbList, ligados ao grafo base por @id. No robots.txt escreva Allow: / para Googlebot, Bingbot, OAI-SearchBot, ChatGPT-User, GPTBot, Claude-SearchBot, Claude-User, ClaudeBot, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended e CCBot, explique a decisão em um comentário e anote o que mudar caso eu queira bloquear os crawlers de treinamento. O sitemap.xml traz datas lastmod reais. O llms.txt descreve o negócio com precisão em duas frases e lista o NAP e as páginas importantes com links.
Configuração técnica (o caminho padrão do kit não é usado neste site, pelos motivos abaixo):
1. Compile o Tailwind e elimine o CDN. O kit carrega o Tailwind pelo Play CDN, que compila no navegador, exibe um aviso no console e reduz o desempenho no celular. Escreva _kaynak/package.json com site_write_file, instale com site_run_command("cd _kaynak && npm i -D tailwindcss@3 html-validate", background=true) e aguarde com site_command_status. Em _kaynak/tailwind.config.js defina content como "./*.html", "./**/*.html", "!./_kaynak/**" e "./_kaynak/chrome.mjs". Mova as regras @font-face, as linhas @tailwind e o anel de foco, o skip link e a proteção contra overflow do app.css do kit para _kaynak/site.css. Gere a saída em assets/app.css, porque o design-check.mjs procura as fontes nesse arquivo, e adicione ?v=<hash do conteúdo> ao link em todas as páginas para que o cache de borda nunca sirva o arquivo antigo.
2. Hospede as fontes você mesmo. Leia a URL do CSS das famílias da Fontshare que escolheu (api.fontshare.com/v2/css?f[]=...) com site_read_url, baixe os arquivos woff2 com site_fetch para assets/fonts/ e declare-os com @font-face e font-display: swap. Faça preload de cada peso usado acima da dobra com <link rel="preload" as="font" type="font/woff2" crossorigin>, no máximo três arquivos. Se pular isso, a troca de fonte desloca o layout; na demonstração, o CLS no desktop foi 0,078 por esse motivo e caiu para 0 com o preload.
3. Torne o menu e o rodapé HTML estático. Os componentes <site-nav> e <site-footer> do kit rodam em JavaScript, e a maioria dos crawlers de IA nunca vê o menu, o endereço nem o telefone. Remova os scripts chrome.js e motion.js de todas as páginas. Em _kaynak/chrome.mjs escreva duas funções que montem o HTML do cabeçalho e do rodapé a partir de assets/site.config.js; construa o menu mobile sem JavaScript usando <details> e <summary>, e marque a página atual com aria-current="page". Escreva na raiz do site o build.mjs que, nesta ordem, executa node seo-stamp.mjs, reaplica em todas as páginas tudo o que está entre <!-- chrome:header:start --> e <!-- chrome:header:end --> (e o mesmo para o rodapé), compila o Tailwind e atualiza o hash no link do CSS. Após cada alteração, execute apenas site_run_command("node build.mjs").
4. Sem animação. Não carregue GSAP, Lenis, Swiper nem qualquer script de animação; o briefing é um site informativo, calmo e legível.
5. Reduza as imagens. Baixe cada foto com site_fetch em arquivos separados usando resize="480x", "800x", "1200x", "1600x", image_format="webp" e qualidade entre 60 e 68. Dê a cada <img> srcset, sizes, e width e height que correspondam à proporção real; se recortar, adicione uma classe de proporção como aspect-[4/3] com object-cover, senão o layout se desloca quando a imagem carrega. A imagem da primeira tela recebe fetchpriority="high" e não é lazy; todas as outras recebem loading="lazy". Baixe a imagem de compartilhamento como um JPG 1200x630 com site_fetch.
6. Pequenos detalhes que custam pontos: adicione um favicon SVG com <link rel="icon"> (caso contrário o navegador solicita /favicon.ico, o 404 aparece como erro no console e a pontuação de Boas Práticas cai). Escreva DOCTYPE em maiúsculas, não use atributos style e não deixe espaços no fim das linhas. Use em vez de espaços no texto visível dos links de telefone (regra tel-non-breaking do html-validate). Links no menu, rodapé, breadcrumb e títulos devem ter pelo menos 44 pixels de altura e largura. Não incorpore um iframe do Google Maps; o site não deve fazer nenhuma requisição externa, então mostre o endereço e um link "Como chegar".
7. Nenhuma requisição pode sair do site: fontes, scripts, estilos e imagens ficam todos no seu próprio servidor. Não há processador de formulário, então o formulário de contato é um formulário method="get" apontando para https://wa.me/[número do WhatsApp] com um textarea pré-preenchido chamado "text"; nenhum JavaScript é necessário.
Verificações (nesta ordem; não diga que terminou até que todas passem):
1. Execute node build.mjs com site_run_command e depois node seo-check.mjs: 0 erros, 0 avisos. Um aviso de conteúdo duplicado significa que duas páginas não são diferentes o bastante; reescreva-as.
2. node design-check.mjs: 0 erros. Se você escolheu um estilo sem animação, informe o aviso de "sem animação" como uma decisão deliberada, com o motivo.
3. _kaynak/node_modules/.bin/html-validate em todos os arquivos HTML: 0 erros. Coloque uma linha _kaynak/ em um arquivo .htmlvalidateignore na raiz do site para que as dependências não sejam analisadas.
4. node uyum-check.mjs: 0 violações. Leia todas as frases explicativas da lista de revisão manual e confirme que elas explicam, e não promovem.
5. Veja todas as páginas com site_preview em view="mobile", view="desktop", e também em 360 e 768 de largura. Corrija rolagem horizontal, títulos que transbordam, botões apertados ou texto ilegível e confira de novo.
6. Meça todas as páginas com core_web_vitals em strategy="mobile" e strategy="desktop", e obtenha as pontuações de acessibilidade, boas práticas e SEO com seo_audit. A meta no mobile é 100 em acessibilidade, boas práticas e SEO e pelo menos 95 em desempenho; no desktop, pelo menos 95 nos quatro. Em uma página que não atingir a meta, execute core_web_vitals com resources=true, encontre o elemento LCP e qualquer imagem grande demais, corrija e repita o seo_audit com runs=2, porque uma única execução de laboratório pode oscilar.
7. As requisições de rede não podem conter nenhum endereço fora do domínio do próprio site.
Após a publicação: envie o sitemap.xml com gsc_submit_sitemap e verifique a página inicial e as três páginas mais importantes com gsc_inspect_urls. Nenhuma ferramenta consegue clicar em "Solicitar indexação"; liste o que eu preciso solicitar manualmente no Search Console.
Termine com este relatório: a lista de páginas com as pontuações de mobile e desktop por página em uma tabela (desempenho, acessibilidade, boas práticas, SEO, LCP, CLS), o resultado de cada verificação, as correções que você fez e as informações que ainda precisa de mim. Se alguma meta não foi atingida, diga isso claramente em vez de dizer que terminou.
No fim do relatório, adicione o checklist do regulamento: para cada uma das nove regras, "em conformidade" ou "não conforme" com a evidência. Este trabalho não é aconselhamento jurídico; pergunte-me sobre qualquer frase da qual você não tenha certeza.