标签: seo

文本缩进:-9999px是一种用图像替换文本的糟糕技术,有哪些替代方案?

这篇文章说我们应该避免使用这种技术.这个说它很棒.谷歌在CSS文件中寻找text-indent: -9999px;并惩罚你是真的吗?:|

我使用的财产很多隐藏的文本.例如,我有一个由图标表示的按钮:

<a href="#" class="mybutton">do Stuff</a>

CSS:

.mybutton{
  text-indent: -9999px;
  background: transparent url(images/SpriteWithButtons.png) no-repeat 20px 20px;
  display: block;
  width: 16px;
  height: 16px;
}
Run Code Online (Sandbox Code Playgroud)

我没有看到任何替代我的代码.如果我用图像替换它,我会自动为每个按钮图像获得+20 HTTP请求.

如果我将链接设置为空,则它的访问次数较少,因为屏幕阅读器不会知道它是什么.空链接看起来很奇怪,可能Google也不喜欢这样......

那么处理这种情况的最佳方法是什么?

html css seo text-indent

25
推荐指数
2
解决办法
1万
查看次数

谷歌索引页面是否有隐藏的div?

我开始重新设计和开发一个包含大量文本的网站,我正在考虑如何在网站上组织信息,使其看起来更干净.在网站的某些部分,我想实现一个jquery切换效果,其中一些内容放在隐藏的div中,并且内容将根据用户的onclick事件显示或隐藏.

这种组织内容的技术是否会极大地损害网站的搜索引擎优化?谷歌什么时候开始将其视为垃圾邮件并将网站放在一起索引?

//更新 - 找到了一些答案.

我想澄清一下,作为对下面某些答案的回答,隐藏div的目的是在为组织目的显示/隐藏内容之间切换,其中任何隐藏文本最终将显示给用户.

然而,经过大量挖掘后,来自谷歌的Matt Cutts几乎可以说,只要你没有填充隐藏文字的关键词并试图欺骗googlebot滥用系统,你通常应该没问题.他还给出了一个关键字填充错误的有趣例子.

seo google-search

24
推荐指数
2
解决办法
2万
查看次数

Google会抓取AJAX内容吗?

在我的网站的主页上,我使用JQuery的ajax函数来下载最近的用户活动列表.

最近的活动显示在页面上,最近活动的每一行都包含指向执行活动的用户的用户配置文件的链接.

Google实际上是否会调用ajax调用此信息并将其用于计算页面相关性/链接汁流量?

我希望它不会,因为用户个人资料页面不是非常有价值的Google索引,我不希望所有这些链接到用户个人资料页面,从而稀释我的主页链接汁流远离其他更重要的链接.

ajax seo jquery

24
推荐指数
2
解决办法
2万
查看次数

如何在OpenCart中创建自定义SEO友好的URL?

如何在OpenCart中自定义系统URL?例如,我希望http://example.com/index.php?route=checkout/cart显示为http://example.com/cart

我知道OpenCart为产品,类别,制造商和信息页面提供了SEO URL,但看起来并没有内置任何内容(至少在1.5.0版之前).

php .htaccess seo opencart

24
推荐指数
2
解决办法
5万
查看次数

元标记与robots.txt

  1. 使用元标记*或robots.txt文件来通知蜘蛛/抓取工具包含或排除网页是否更好?

  2. 使用meta标签和robots.txt时是否有任何问题?

*例如: <#META name="robots" content="index, follow">

seo robots.txt meta-tags

23
推荐指数
2
解决办法
2万
查看次数

使用javascript或jQuery可以重定向301吗?

我正在运行Apache 2.0,我只是想知道是否可以使用JavaScript或jQuery进行301重定向.

我有一个指定位置的<a></a>标签,href当我点击该链接时,我被要求进行301重定向.

这是针对搜索引擎优化,我试图找到一种方法来301重定向到链接中的同一页面,而无需创建新页面或创建表单/提交.

javascript seo jquery http-status-code-301

23
推荐指数
4
解决办法
2万
查看次数

混合基于页面/单页面的网络应用程序(Angularjs,Ember.js),具有渐进增强功能?

我想知道是否有人找到了解决这个问题的方法.有没有办法让两全其美:

  • 构建一个基于页面的站点,具有永久链接,可访问性,SEO和优雅的后备/渐进增强(基本上所有Web开发最佳实践)
  • 并且,对于那些使用javascript,具有ajax加载内容的响应式前端体验,在导航底层网站页面时没有页面刷新,脚本/内容/ css /等的最小冗余下载.(像AngularJs或Ember.js这样的客户端框架的所有好处)

我看到一些主要网站能够管理这个(gmail,stackoverflow),我看到Jeff的新网站在一个noscript标签中构建了一个简单的网站版本.

  1. 基于混合页面/单页面应用程序的解决方案是构建网站的两个版本,发送两个版本,并让客户决定它可以显示哪个版本?(这是gmail的功能吗?)
  2. 或者是AngularJS等人的问题.根本不是为了让优雅降级而设计的?

我认为#1就是答案,让我的DRY大脑受伤.

(我关注AngularJs的原因是我喜欢它支持html模板,声明式样式,以及它修复js范围的尝试.Ember和其他框架也很出色;也许其中一个更适合混合站点?)

seo progressive-enhancement graceful-degradation ember.js angularjs

23
推荐指数
1
解决办法
5615
查看次数

Angular-ui.router:更新URL而不刷新视图

我有一个Angular SPA,根据一些餐馆数据的不同削减,提供各种推荐列表和谷歌地图,(见m.amsterdamfoodie.nl).我希望这些列表中的每一个都有自己的URL.为了让Google抓取不同的列表,我使用了<a>用于offcan数据导航的标签.

目前,<a>标签会导致视图刷新,这对于地图非常明显.

  • 我可以使用ng-click和阻止这种情况$event.preventDefault()(参见下面的代码片段),但是我需要实现一种更新浏览器URL的方法.
  • 但是在尝试Angular $state或浏览器时history.pushstate,我最终会触发状态更改和视图刷新......!

因此,我的问题是如何更新模型和URL,但不刷新视图? (另请参阅Angular/UI-Router - 如何在不刷新所有内容的情况下更新URL?)

我已经尝试了很多方法,目前有这个HTML

<a href="criteria/price/1" class="btn btn-default" ng-click="main.action($event)">Budget</a>
Run Code Online (Sandbox Code Playgroud)

在控制器中:

this.action = ($event) ->
    $event.preventDefault()
    params = $event.target.href.match(/criteria\/(.*)\/(.*)$/)

    # seems to cause a view refresh
    # history.pushState({}, "page 2", "criteria/"+params[1]+"/"+params[2]);

    # seems to cause a view refresh
    # $state.transitionTo 'criteria', {criteria:params[1], q:params[2]}, {inherit:false}

    updateModel(...)
Run Code Online (Sandbox Code Playgroud)

并且,我认为发生的是我触发$stateProvider代码:

angular.module 'afmnewApp'
.config ($stateProvider) ->
  $stateProvider
  .state 'main',
    url: '/' …
Run Code Online (Sandbox Code Playgroud)

seo angularjs single-page-application angular-ui-router

23
推荐指数
2
解决办法
2万
查看次数

验证错误:"指定了itemprop属性,但该元素不是任何项目的属性"

为了更好的搜索引擎优化,我需要在我的页面上添加一些元素:

<!-- Schema.org markup for Google+ -->
<meta itemprop="name" content="The Name or Title Here">
<meta itemprop="description" content="This is the page description">
<meta itemprop="image" content="http://www.example.com/image.jpg"> 
Run Code Online (Sandbox Code Playgroud)

这是来源.

然后我在标记验证服务上检查此代码:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta itemprop="name" content="The Name or Title Here">
  <meta itemprop="description" content="This is the page description">
  <meta itemprop="image" content="http://www.example.com/image.jpg">
  <meta charset="UTF-8">
  <title>My title</title>
</head>
<body>
  My body.
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

抛出这个错误:

第4行,第57列:itemprop指定了属性,但该元素不是任何项的属性.

 <meta itemprop="name" content="The Name or Title Here">
Run Code Online (Sandbox Code Playgroud)

第5行,第70列:itemprop指定了属性,但该元素不是任何项的属性.

 <meta itemprop="description" content="This is the …
Run Code Online (Sandbox Code Playgroud)

seo w3c-validation meta-tags microdata schema.org

23
推荐指数
1
解决办法
2万
查看次数

Angular2 - SEO - 如何操纵元描述

谷歌搜索结果通过TitleTag和<meta name="description"..."/>标签显示.该<title>-Tag是通过Angular2 editiable 如何更改网页标题中angular2路由器

剩下的就是描述.

是否可以在angular2中编写一个指令,它操纵<head>页面部分的元标记.
因此,根据所选路线,元描述会发生变化,如:

<meta name="description" content="**my description for this route**"/>
Run Code Online (Sandbox Code Playgroud)

seo meta-tags angular

23
推荐指数
4
解决办法
2万
查看次数