Tag: SEO

如何在HTML5中正确使用h1

以下哪一项是构build页面的正确方法: 1) h1只在header <header> <h1>Site title</h1> <nav>…</nav> </header> <section> <h2>Page title</h2> </section> 如果我仅在header内使用h1作为网站的标题,则每个页面将具有相同的h1标记内容。 这似乎没有很多信息。 2) header和section h1 ,用于站点和页面标题 <header> <h1>Site title</h1> <nav>…</nav> </header> <section> <h1>Page title</h1> </section> 我也看到了在header和section标签中不止一次使用h1例子。 然而,在同一页面上有两个标题是不是错了? 此示例显示多个标题和h1标记http://orderedlist.com/resources/html-css/structural-tags-in-html5/ 3) h1只在section ,强调页面标题 <header> <p>Site title</p> <nav>…</nav> </header> <section> <h1>Page title</h1> </section> 最后,W3似乎推荐在主要section元素中使用h1 ,这是否意味着我不应该在header元素中使用它? 部分可能包含任何级别的标题,但是强烈build议作者只使用h1元素,或者使用适合级别的元素来嵌套级别。

pushState和SEO

很多人一直在说,使用pushState而不是hashbang。 我不明白的是,如果不使用hashbang,你将如何search引擎友好? 推测你的pushState内容是由客户端JavaScript代码生成的。 该情景因此是: 我在example.com 。 我的用户点击一个链接: href="example.com/blog" pushState捕获点击,更新URL,从某处抓取JSON文件,并在内容区域创build博客文章列表。 随着hashbangs,谷歌知道去escaped_fragmenturl获取其静态内容。 使用pushState,Google只是看不到任何东西,因为它不能使用JavaScript代码来加载JSON并随后创build模板。 唯一能做的就是在服务器端渲染模板,但是这完全否定了将应用层推送到客户端的好处。 所以,我得到这个权利,pushState是不友好的客户端应用程序的search引擎优化?

“单页”JS网站和SEO

现在有很多很酷的工具可以制作function强大的“单页”JavaScript网站。 在我看来,这是通过让服务器充当一个API(而不是其他任何东西)并让客户端处理所有的HTML生成东西来完成的。 这种“模式”的问题是缺乏search引擎支持。 我可以想到两个解决scheme: 当用户进入网站时,让服务器完全按照客户端的导航来呈现页面。 所以如果我直接去http://example.com/my_path那么如果我通过pushState去到/my_path ,服务器将会呈现和客户端一样的东西。 让服务器只为search引擎机器人提供一个特殊的网站。 如果一个普通用户访问http://example.com/my_path ,服务器应该给他一个JavaScript网站的繁重版本。 但是,如果谷歌机器人访问,服务器应该给它一些最小的HTML与我要谷歌索引的内容。 第一个解决scheme在这里进一步讨论。 我一直在做这个网站,这不是一个很好的经验。 这不是干的,在我的情况下,我不得不为客户端和服务器使用两个不同的模板引擎。 我想我已经看到了一些好的Flash网站的第二个解决scheme。 我比第一个更喜欢这种方法,并且在服务器上使用正确的工具,可以非常轻松地完成。 所以我真正想知道的是以下几点: 你能想到更好的解决scheme吗? 第二种解决scheme有什么缺点? 如果Google以某种方式发现我没有像普通用户那样为Google bot提供完全相同的内容,那么我是否会在search结果中受到惩罚?

url:Dash vs. Underscore

应该是/ about_us还是/ about-us ? 从可用性的angular度来看,我个人认为/ about-us对于最终用户来说是好得多,而Google和大多数其他网站(和javascript框架)都使用下划线命名模式。 这只是风格的问题吗? 是否有与破折号兼容性问题?

如何要求Google重新抓取我的网站?

有人知道要求Google重新抓取网站的方法吗? 如果可能的话,这不应该持续数月。 我的网站在Google的search结果中显示了一个旧的标题。 我怎样才能显示正确的标题和描述?

什么是“slu'”的词源?

slu a是一个完全任意的词? 或者它代表什么? 我用这个词和某人交谈,当他们问我为什么叫我意识到我不知道的时候。 我知道当然是什么意思: http : //codex.wordpress.org/Glossary#Slug 那么 – 这个词背后有实际意义吗?

在robots.txt中可以使用相对的网站地图url吗?

在robots.txt中,我可以为站点地图文件编写以下相对URL吗? sitemap: /sitemap.ashx 或者,我必须使用站点地图文件的完整(绝对)url,例如: sitemap: http://subdomain.domain.com/sitemap.ashx 为什么我想知道: 我拥有一个新的博客服务www.domain.com,允许用户在accountname.domain.com上进行博客。 我使用通配符,所以所有子域(帐户)指向:“blog.domain.com”。 在blog.domain.com,我把robots.txt让search引擎find网站地图。 但是,由于通配符,所有用户帐户共享相同的robots.txt文件。这就是为什么我不能使用第二个select。 而现在我不能使用URL重写txt文件。 (我猜想,更高版本的IIS可以处理这个?)

为什么有些网站在url的末尾添加“Slugs”?

许多网站,包括这一个,都添加了显然被称为slu – 的东西 – 描述性的,但据我可以告诉无用的文本 – 到URL的末尾。 例如,网站给这个问题的url是: https://stackoverflow.com/questions/47427/why-do-some-websites-add-slugs-to-the-end-of-urls 但是下面的URL也是一样的: https://stackoverflow.com/questions/47427/ 这个文本的目的是为了让URL更友好或者还有其他的好处吗?

我可以在跨度标记中使用多个ItemProp for schema.org丰富片段吗?

假设我有以下句子,我想添加丰富的片段: 我在纽约生活和工作 由于纽约既是我的居住地,也是我工作的城市,理论上我想用schema.org标准来标记这样的行: <div itemscope itemtype = 'http://schema.org/Person'>I live and work in <span itemprop = 'homeLocation' itemprop = 'workLocation'>New York</span></div> 在一个span标签中有两个itemprops是否有效? 如果不是的话,下面的工作会是? <div itemscope itemtype = 'http://schema.org/Person'>I live and work in <span itemprop = 'homeLocation'><span itemprop = 'workLocation'>New York </span></span></div>

Google bot通过HTML5模式路线在AngularJS网站上爬行

我们有一个使用HTML5路线的AngularJS网站。 我只是做了一些testing“抓取谷歌”运行。 结果有点混乱: 在抓取选项卡上,我看到我们的网站,因为它看起来在视图源,所有的前端绑定{{}},而不是所有的HTML呈现 在渲染选项卡上,我们的网站看起来非常好,没有{{}}variables,看起来像谷歌机器人抓取和渲染的网站,这也许是符合这个http://googlewebmastercentral.blogspot.ae/2014/ 05 /渲染页面与提取作为google.html 。 不过,我们已经准备好让Google无法抓取我们的网站,所以我们已经添加了,所以Google bot会以“?_escaped_fragment_ =”重新访问我们的网页,我们遵循https://developers.google.com / webmasters / ajax-crawling / docs / getting-started (“3.处理没有哈希碎片的页面”)在我们的Nginxconfiguration中,我们有这样的内容: if ($args ~ "_escaped_fragment_=") { serve the static HTML snapshots } ,如果我们自己传递_escaped_fragment_ =,它确实可以正常工作。 但是,Google机器人从未尝试使用此参数来抓取我们的网站,因此它从不抓取快照。 我们错过了什么吗? 我们是否也应该在我们的Nginx conf上添加Google bot的代理检测? 像这样的东西? if ($http_user_agent ~* "googlebot|yahoo|bingbot|baiduspider|yandex|yeti|yodaobot|gigabot|ia_archiver|facebookexternalhit|twitterbot|developers\.google\.com") { server from snapshots } 如果我们能更好地理解这一点,那将是非常好的,非常感谢你! 更新: 我只是读了这个, http://scotch.io/tutorials/javascript/angularjs-seo-with-prerender-io?_escaped_fragment_=tag#caveats 。 所以,在使用手动工具(Google抓取)的时候,我们也应该把自己放在#! 或?_escaped_fragment_ […]