如何在DotNetNuke中编辑元标记

时间:2012-06-13 02:30:50

标签: html dotnetnuke meta-tags w3c-validation

如何编辑DotNetNuke CMS中的标签?

它会生成大量元标记,并且每个元标记都有一个ID元素,而不在w3c建议中。我看过SEO优化文章,它说除了关键字和名称之外没有任何其他元标记 - 这是真的吗?

查看源代码时的元标记:

<meta id="MetaKeywords" name="KEYWORDS" content="naruto, fan, forums, DotNetNuke,DNN" />
<meta id="MetaCopyright" name="COPYRIGHT" content="Copyright naruto"/>
<meta id="MetaGenerator" name="GENERATOR" content="DotNetNuke " />
<meta id="MetaAuthor" name="AUTHOR" content="naruto" />
<meta name="RESOURCE-TYPE" content="DOCUMENT" />
<meta name="DISTRIBUTION" content="GLOBAL" />
<meta name="REVISIT-AFTER" content="1 DAYS" />

4 个答案:

答案 0 :(得分:4)

不幸的是,没有一种简单/受支持的方式来删除DNN中的大多数meta标记。您需要在某种程度上更改核心代码和/或假设某些ID将保持不变。例如,您可以通过将code like this放在皮肤中来删除/替换机器人元标记:

private void Page_PreRender(object sender, EventArgs e) {
    var metaRobots = Page.FindControl("MetaRobots") as HtmlMeta;
    if (metaRobots != null) {
        metaRobots.Visible = false;
    }
}

答案 1 :(得分:2)

您可以使用任何文本编辑器从Default.aspx中删除它们,但是这可能会很麻烦,因为您可能会在下次更新时重写它,所以我建议您将这个简单的C#片段附加到您的皮肤底部。 ascx文件

<script runat="server">
protected override void OnLoad(EventArgs e)
{
    var metatagsToKeep = new[] { "Content-Type", "Content-Script-Type", "Content-Style-Type", "Refresh", "DESCRIPTION", "KEYWORDS", "COPYRIGHT", "GENERATOR", "AUTHOR", "RESOURCE-TYPE", "DISTRIBUTION", "ROBOTS", "REVISIT-AFTER", "RATING", "PAGE-ENTER" };

    var metaTags = (from headerControl in this.Page.Header.Controls.OfType<HtmlControl>() let cont = headerControl where !metatagsToKeep.Contains(cont.Attributes["name"]) && !metatagsToKeep.Contains(cont.Attributes["http-equiv"]) select headerControl).Cast<Control>().ToList();

    foreach (var metaTag in metaTags)
    {
        this.Page.Header.Controls.Remove(metaTag);
    } 
}
</script>

在controlsToKeep数组中,只需删除要删除的数组,即可完成。如果DNN添加了一些你想要的新东西(不太可能),你必须将它们添加到列表中。或者你可以反转逻辑并为metatagsToDelete创建数组,你的调用:)。

答案 2 :(得分:0)

我不知道问题的第一部分专门适用于dotnetnuke CMS的答案,但我确实有一些意见可以帮助您解决有关SEO的问题。

一般来说,元标记在搜索引擎优化中不会对您造成伤害。谷歌没有在其排名算法中使用关键字标签,如果您的关键字没有显着的页面密度,那么识别它的其他搜索引擎可能会损害您的排名。

搜索引擎优化

SEO通常被认为是排名的良好实践的集体。相反,每个搜索引擎都有自己独特的算法。要真正拥有良好的SEO,您需要专注于您希望改善结果并相应优化的特定区域。

元标记

元标记是您网页的元数据,不一定是整个网站。其中包含的信息应有助于应用程序和服务处理该页面上的信息。此标记是一般属性,不一定被任何内容识别。对于什么是有效的元标记没有中心权限,因为它是一个通用的元素。

任何不能识别元标记的应用程序或服务都应忽略元标记。

来自W3C建议:

  

请注意。 META元素是用于指定元数据的通用机制。但是,某些HTML元素和属性已经处理了某些元数据,作者可能会使用它来代替META来指定这些部分:TITLE元素,ADDRESS元素,INS和DEL元素,title属性和cite属性

就元元素的正确语法而言,有一个规范。 W3C为元标记定义了nameschemecontenthttp-equiv属性。 langdir属性也被定义为由父属性继承的元素的属性,但可以在元素级别覆盖。

未为元素指定id属性,导致验证失败。

答案 3 :(得分:0)

在DotNetNuke中,关键字和描述标签来自两个地方。 1.)在管理员 - &gt; “站点详细信息”部分中的“站点设置”,您将看到“关键字和描述”的条目,这些条目用于填充所有页面的相应元标记。我们建议您将这两个字段留空,因为您不想要多个页面的冗余条目。 2.)页面设置:对于每个页面,您可以通过页面设置指定关键字和描述。主要搜索引擎会忽略关键字,因此我们建议将其留空。然而,描述通常会显示在搜索结果页面上,因此非常重要。

至于生成的其他元标记,我还没有听说它们有很大影响。我建议让他们成为。