JavaScript链接和SEO?

首先,看看这个演示页面:http://vidasp.net/tinydemos/seo-javascript-links.html

在页面上有一个菜单,点击一个菜单项将显示到其他网页(这是网站的一部分)的各种链接。 链接网址采用以下格式:

www . foo . com / articles / XXX / descriptive-title-of-the-article

...其中XXX是给定文章的三位ID。

这一切似乎都没问题,但有一个问题:所有这些链接都是通过JavaScript动态创建的。 看看源代码 - 在页面底部有一个JavaScript变量( db变量),它保存用于生成链接的所有数据。

我正在使用JavaScript,因为我不想使用服务器端。 我假设,在这种情况下,我将不得不将数据存储在SQL数据库中,然后使用C#/ PHP /等。 生成链接。 然而,这不是我的选择 - 我严格面向客户端。

顺便说一句,如果你想看到更详细的JavaScript生成的链接演示,请到这里 - http://www.w3viewer.com - 该网页上有400个链接,所有这些链接都是通过JavaScript动态生成的。

问题是:

现在,我喜欢这种方法 - 使用JavaScript来生成链接 - 但是,这种方法的一个后果是,搜索引擎抓取工具不会注册任何这些链接 - 他们只是“看到”一个没有链接的空白页面(这是一个SEO的灾难,我假设)。

所以,我想知道,我怎么能优化这种方法?

更新(后续问题):

我不能使用Google站点地图告诉Google抓取工具网站上存在哪些网页? 这样我就可以保持首页(上面的演示)(没有静态链接),并且抓取工具会使用站点地图抓取我网站上的所有网页。

我对谷歌站点地图一无所知,但我想知道为什么没有人提出他们的建议。 他们可以解决我的问题吗?


看起来你真正需要做的是在部署之前使用Template :: Toolkit的ttree等模板生成HTML。 然后,您可以将数据库保存在开发机器上。 不需要JavaScript。

这是一个简化的例子:

[%- 
db = {
    Foo => [
        { id => "001", title => "First article" },
        { id => "002", title => "Another article" },
        { id => "003", title => "Yet another article" },
    ], 
    Bar => [
        { id => "004", title => "First article in this category" },
        { id => "005", title => "Another article in bar" },
        { id => "006", title => "Third bar article" },
    ],
    Baz => [
        { id => "007", title => "Baz article No. 1" },
        { id => "008", title => "The second Baz article" },
        { id => "009", title => "The last article" },
    ],
}
-%]

[%- FOR category IN db.keys -%]

<h2>[%- category -%]</h2>

[%- articles = db.$category -%]

[%- FOR article IN articles -%]

<p>Article: <a href="http://www.example.com/articles/[%- article.id -%]/">
    [%- article.title -%]</a></p>

[%- END -%]
[%- END -%]
C:Temp> tpage t.html
<h2>Bar</h2>

<p>Article: <a href="http://www.example.com/articles/004">First article in this
category</a></p>

<p>Article: <a href="http://www.example.com/articles/005">Another article in bar
</a></p>

<p>Article: <a href="http://www.example.com/articles/006">Third bar article</a><
/p>

<h2>Baz</h2>

<p>Article: <a href="http://www.example.com/articles/007">Baz article No. 1</a><
/p> 

...


如果您避免使用服务器端,因为您更喜欢将JavaScript应用于其他语言,则始终可以在服务器上使用node.js。 已经有一个适用于Express的node.js的jQuery Templates视图引擎,所以您甚至可以在客户端或服务器上使用相同的模板。

不相关:你不应该在CDN上使用jQuery的“最新”引用(即1.4 vs 1.4.4)。 这些请求是以非常短的到期头部来提供的,这是一个很大的性能劣势。 此时,如果您只使用自托管副本,则返回访问者的速度会更快。


只需要注意一点,如果您的网站地图中包含的链接无法通过抓取您的网站获得,您将在搜索引擎中进行标记。

由于这些页面被视为违背大多数主要搜索引擎的门户页面,也没有引用URL,他们将得到非常低的分数,即使他们确实被索引,他们也不会很好地排名。

链接地址: http://www.djcxy.com/p/62505.html

上一篇: JavaScript links and SEO?

下一篇: learning style project