none
Criar meta tags para SEO dinâmicamente RRS feed

  • Pergunta

  • Boa tarde pessoal,

    Estou com uma dúvida, preciso criar as meta tags DESCRIPTION e KEYWORDS dinâmicamente, atribuindo a elas os dados que são retornados do banco. Elas devem estar dentro da tag HEAD, mas ao tentar atribuir as meta tags ao head (conforme o código abaixo) ocorre um erro dizendo que os demais dados dentro do head não são literais.

    head.InnerHtml = "<meta name=\"DESCRIPTION\" content=\"" + descricao + "\">";
    head.InnerHtml += "<meta name=\"KEYWORDS\" content=\"" + conteudo.PalavraChave + "\">";

    O head da página está assim:

    <head id="head" runat="server">
    <title>Site</title> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <link rel="shortcut icon" type="image/x-icon" href="imagens/favicon.ico" /> <script src="javascript/jquery.js" type="text/javascript"></script> <script src="javascript/lightbox.js" type="text/javascript"></script> <script src="javascript/funcoes.js" type="text/javascript"></script> <!--[if IE 6]> <script src="javascript/pngTransparente.js" type="text/javascript"></script> <script> DD_belatedPNG.fix('h1 a'); DD_belatedPNG.fix('#menu li a'); DD_belatedPNG.fix('#menuConta'); DD_belatedPNG.fix('#menuLogout'); </script> <![endif]-->
    </head>

    Já tentei atribuir tudo isso via código, mas também não deu certo, pois estou utilizando themes e daí acontece o mesmo erro quando o ASP.NET inclui as chamadas para os arquivos CSS.

    Agora estou atribuindo as meta tags dentro de uma DIV que coloquei DENTRO da tag HEAD, funcionou corretamente, mas não sei se o SEO estaria válido dessa forma.

    Alguém poderia me dar uma dica?

    Obrigado
    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
    quarta-feira, 16 de dezembro de 2009 18:27

Respostas

  • Olá Amigo,

    Teste da seguinte forma:

                HtmlMeta meta = new HtmlMeta();
                meta.Content = "ASP.NET,Metatags,Dinamicas";
                meta.Name = "Keywords";
                Page.Header.Controls.Add(meta);


    Coloque dentro do evento Load da sua página e substitua as strings pelo seus dados oriundos do banco.

    Abraço
    sexta-feira, 18 de dezembro de 2009 00:06

Todas as Respostas

  • Olá Amigo,

    Teste da seguinte forma:

                HtmlMeta meta = new HtmlMeta();
                meta.Content = "ASP.NET,Metatags,Dinamicas";
                meta.Name = "Keywords";
                Page.Header.Controls.Add(meta);


    Coloque dentro do evento Load da sua página e substitua as strings pelo seus dados oriundos do banco.

    Abraço
    sexta-feira, 18 de dezembro de 2009 00:06
  • Obrigado Mariano, funcionou do jeito que eu queria!

    Valeu pela força!

    André Luis. Vida de Desenvolvedor Web é assim mesmo... Cheia de hacks e baixos!
    sexta-feira, 18 de dezembro de 2009 11:57
  • Olá Amigo, boa tarde!

    Essa solução inclui a meta tag na página, correto? Se entendi bem, o método "Add" de Controls incluirá a meta tag dinâmicamente na página no evento Load, certo?

    quinta-feira, 19 de julho de 2012 18:08
  • Certo!
    quinta-feira, 19 de julho de 2012 18:39