5

如何在 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

4 回答 4

4

不幸的是,没有一种直接/受支持的方法可以删除metaDNN 中的大部分标签。您需要在一定程度上更改核心代码和/或假设某些 ID 将保持不变。例如,您可以通过在皮肤中添加如下代码来删除/替换机器人元标记:

private void Page_PreRender(object sender, EventArgs e) {
    var metaRobots = Page.FindControl("MetaRobots") as HtmlMeta;
    if (metaRobots != null) {
        metaRobots.Visible = false;
    }
}
于 2012-06-13T14:36:40.087 回答
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 创建数组,您的调用:)。

于 2012-08-06T09:14:36.933 回答
0

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

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

于 2012-06-13T14:55:58.417 回答
0

我不知道具体适用于问题的第一部分的答案,dotnetnuke CMS但是我确实有一些评论可以帮助您解决有关SEO.

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

搜索引擎优化

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

元标签

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

任何无法识别元标记的应用程序或服务都应该简单地忽略元标记。

来自 W3C 的建议:

笔记。META 元素是用于指定元数据的通用机制。但是,一些 HTML 元素和属性已经处理了某些元数据,作者可能会使用而不是 META 来指定这些元数据:TITLE 元素、ADDRESS 元素、INS 和 DEL 元素、title 属性和 cite 属性

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

id没有为 meta 元素指定属性,应该会导致验证失败。

于 2012-06-13T14:42:48.730 回答