Antes das soluções, vale entender os porquês:
Renderização via JavaScript / Apps Script
Conteúdo que é inserido via scripts clientes (JS) ou via Apps Script embutido pode não aparecer no HTML inicial que o Googlebot “vê” ao fazer o crawl. Embora o Google execute JavaScript em muitos casos, não há garantia de que tudo será completamente renderizado ou que será considerado para indexação. Search Engine Land+2Google for Developers+2
Uso de iframes / embed externos
Se você está embutindo planilhas ou conteúdo via iframe, há risco de que esse conteúdo não seja associado ao seu site para efeitos de SEO, ou mesmo que não seja renderizado pelo bot. Google pode ou não levar em conta conteúdo dentro de iframes. Google for Developers+3deanlong.io+3Stack Overflow+3
Sites recomendam evitar uso de iframes para conteúdo essencial à página. deanlong.io
Bloqueios via robots.txt ou meta tags
Se seus scripts, CSS ou outros recursos estiverem bloqueados via robots.txt
, o Googlebot pode não conseguir carregar ou renderizar sua página corretamente. Search Engine Land+1
Também, se você acidentalmente tiver uma meta tag noindex
, o Google não indexará aquela página. Google for Developers+1
Indexado “sem conteúdo”
Há casos de “página indexada sem conteúdo” — isso significa que o Google considerou a URL válida, mas não conseguiu encontrar (ou processar) conteúdo significativo nela. Onely
Orçamento de rastreamento e prioridade
Mesmo que o Google “veja” sua página, se ela for considerada pouco importante ou tiver muitos recursos (scripts, cargas lentas), pode não priorizar a renderização completa ou indexar tudo. Google for Developers+1
Com esses desafios em mente, aqui vão soluções e ideias que você pode aplicar:
Estratégia | O que fazer | Vantagens / limitações |
---|---|---|
Renderização “server-side” ou pré-renderização | Gerar o HTML já com o conteúdo (em servidor ou via Apps Script como serviço web) de modo que, ao acessar a página, o bot já receba o conteúdo no HTML inicial | Conteúdo visível ao bot sem depender de JS. Mas pode exigir reestruturação ou camada de pré-renderização |
Dynamic Rendering (renderização dinâmica para bots) | Detectar o “user agent” do Googlebot e servir uma versão estática (renderizada) do conteúdo para ele, enquanto usuários normais veem a versão dinâmica | É um workaround recomendado apenas quando você não consegue reestruturar para SSR completo. Google for Developers |
Evitar iframes para conteúdo central | Incorporar o conteúdo diretamente no DOM da página em vez de usar iframe | Garante ao bot que o conteúdo faz parte da página principal |
Publicar versões “snapshot” ou estáticas | Periodicamente gerar versões HTML estáticas (snapshot) do conteúdo e disponibilizá-las para bots / indexação | Simples e eficaz para conteúdo que não muda com muita frequência |
Garantir que recursos (JS, CSS) não sejam bloqueados | Verificar robots.txt e políticas de bloqueio para permitir acesso ao JS/CSS necessários à renderização | Sem acesso a scripts, o bot pode ver página “em branco” |
Link interno / estrutura de navegação | Tornar seu conteúdo acessível através de links normais de texto (menu, sitemap interno) — não depende apenas de JS | Ajuda o bot a descobrir e seguir páginas |
Sitemap XML submetido ao Google Search Console | Gerar um sitemap com todas as URLs que você quer que sejam indexadas e submetê-lo | Facilita o descobrimento das páginas. Google for Developers+1 |
Uso de metadados e marcações estruturadas (schema, open graph, etc.) | Incluir metatags importantes no HTML (título, descrição, cabeçalhos, schema) dentro de HTML static ou renderizado | Ajuda o Google a compreender o conteúdo da página mesmo com JS |
Testes com o “URL Inspection” no Search Console | Usar a ferramenta para ver como o Google vê sua página (HTML rastreado, versão renderizada) | Ajuda a identificar o que o bot realmente está vendo |
Imagine que você tenha um Apps Script web app que gera HTML com os dados da planilha e entrega isso como resposta (em vez de embutir via iframe). Assim:
O Google acessa https://meusite.com/conteudo?item=123
Seu Apps Script (executado no servidor) consulta a planilha, monta o HTML com conteúdo já embutido, e retorna ao bot.
Usuário vê a versão dinâmica com CSS/JS, mas o bot já recebeu o conteúdo completo para indexar.
Outra opção é fazer dynamic rendering:
Quando detectar que é o Googlebot, servir uma versão “pré-renderizada” (snapshot) do HTML com os dados.
Para usuários normais, servir seu app JS ou versão interativa.
--
You received this message because you are subscribed to the Google Groups "Google Apps Script Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-apps-script-c...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-apps-script-community/93b08176-4fe9-43ea-b170-c47a22a33fc8n%40googlegroups.com.